Làm thế nào để tôi thực hiện gắn kết noatime mặc định?


8

Tôi đang tạo một dẫn xuất Ubuntu và tôi muốn biến tùy chọn gắn kết mặc định cho tất cả các hệ thống tập tin (thay vì tương đối là mặc định trong Ubuntu).

Dường như có một default_relatimetham số kernel boolean để chuyển đổi giữa mặc định thành atime hoặc relatime (cũng có sẵn bằng cách viết vào / Proc / sys / kernel / default_relatime), nhưng tôi không thể tìm thấy tương đương với noatime và tôi không biết làm thế nào để cho phép trong một bản phân phối theo mặc định.

Làm thế nào để cấu hình để ghi lại dữ liệu để khởi động ngay lập tức? gợi ý rằng có một cách để thêm tham số mount noatime qua udev, nhưng tôi không biết liệu nó có hoạt động với phương tiện truyền thông nội bộ hay không và làm thế nào để làm điều đó.

Cách ít xâm lấn nhất để làm cho kernel mặc định là không?

Mặc định hiện tại có thể được xem bằng cách sử dụng "cat / Proc / mounts" bởi vì nó hiển thị ngay cả các tham số mount ẩn; không tin tưởng "gắn kết".

Có, tôi đã đọc Có đáng để điều chỉnh Ext4 với thời gian không? và tôi vẫn muốn làm điều đó


3
Relatime là tùy chọn mặc định trong kernel, không phải trong Ubuntu. Bạn sẽ phải sửa đổi kernel hoặc thêm tùy chọn /etc/fstab.
sắp xếp

Câu trả lời:


4

Hạt nhân được sử dụng để có tùy chọn cấu hình cho việc sử dụng ATIME hay RELATIME; dunno nếu điều đó cũng bao gồm một số tùy chọn cho NOATIME. Trong mọi trường hợp, điều đó đã biến mất ngay bây giờ.

Tôi cũng đã nghiên cứu về linux-linux, để xem liệu lệnh mount có mặc định cấu hình hoặc có thể được sửa đổi hay không, nhưng dường như không phải vậy.

Tuy nhiên, có vẻ như bạn có thể vá kernel để thay đổi hành vi mặc định. Sửa đổi ./fs/namespace.c, xung quanh dòng 2334:

long do_mount(...)
...
    /* Default to relatime unless overriden */
    if (!(flags & MS_NOATIME))
            mnt_flags |= MNT_RELATIME;
...

Trao đổi xung quanh:

long do_mount(...)
...
    /* Default to noatime unless overriden */
    if (!(flags & MS_RELATIME))
            mnt_flags |= MNT_NOATIME;
...

Và rằng nên làm điều đó.


1
Giải pháp thứ hai @ Bryce - đây dường như là cách duy nhất để làm điều đó. Tất nhiên, điều đó có nghĩa là cán cập nhật kernel của riêng bạn với bản vá này - làm thế nào xâm lấn đó là là tùy thuộc vào bạn :)
ish

Đó là IMHO thực sự xâm lấn vì nó yêu cầu duy trì các bản dựng kernel tùy chỉnh và sẽ dẫn đến rất nhiều vấn đề đau đầu với khởi động an toàn. Tuy nhiên, +1 vì điều này là khả thi.
Shnatsel

Askubfox.com/questions/61448/ cho thấy các quy tắc udev có thể nối thêm các tham số gắn kết, có thể điều đó sẽ hoạt động? Tôi sẽ cập nhật cơ thể với liên kết này ngay bây giờ ...
Shnatsel

Đây là những dòng 2315+ trong Linux 3.2, xem lxr.free-electrons.com/source/fs/namespace.c?v=3.2#L2315 if (flags & MS_NOATIME) mnt_flags |= MNT_NOATIME; trong dòng 2326 làm phiền tôi, tôi đoán tôi cũng sẽ phải lật nó. Cảm ơn bạn đã giúp đỡ!
Shnatsel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.