Kernel hoảng loạn khi chuyển noatime trong bootargs


7

Tôi có một hệ thống nhúng sử dụng jffs2 và muốn truyền rootflags=noatimevào bootargstham số kernel .

Điều này dẫn đến sự hoảng loạn hạt nhân:

jffs2: Error: unrecognized mount option 'noatime' or missing value
[...]
No filesystem could mount root, tried:  jffs2
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,3)

Tuy nhiên, nếu tôi khởi động bình thường và sau đó kết nối lại hệ thống tập tin jffs2 với thời gian rảnh, nó hoạt động tốt:

$ mount -o remount,noatime /

Tôi bối rối vì điều này vì theo tài liệu , đối số rootflags "cho phép bạn đưa ra các tùy chọn liên quan đến việc gắn hệ thống tập tin gốc giống như bạn làm với chương trình gắn kết".

Trông giống như một lỗi kernel đối với tôi, nhưng mặt khác nó dường như quá rõ ràng đến nỗi có lẽ tôi đang nhìn vào thứ gì đó.

Tôi đã thử nghiệm điều này với các phiên bản kernel 3.7 và 3.14.

Ai đó có thể làm sáng tỏ?


tại sao bạn không cho bạn fstab để thiết lập thời gian rảnh trong /?
c4f4t0r

Tôi có thể làm điều đó tất nhiên nhưng điều đó không trả lời câu hỏi của tôi (tại sao rootflags = noatime không hoạt động)
Grodriguez

Câu trả lời:


7

Googling rootflags noatimeđưa lên bài đăng này từ năm 2003 bởi Andrew Morton, có lẽ nó vẫn được áp dụng.

http://lkml.org/lkml/2003/8/12/236

Trong khi thử nghiệm một cái gì đó, tôi đã thử khởi động với 'rootflags = noatime' và thấy hệ thống sẽ không khởi động, như ext3, ext2 và reiserfs đều không thể nhận ra tùy chọn. Nhìn vào mã trong fs / ext3 / super.c: parse_options () và init / do_mounts.c: root_data_setup (), dường như không thể đặt bất kỳ cờ nào độc lập với hệ thống tệp thông qua rootflags, giải thích trường hợp đặc biệt mã cho các cờ 'ro' và 'rw'. Tuy nhiên, dường như không có cách nào để vượt qua gật đầu, buổi trưa, giờ gật đầu hoặc bất kỳ lá cờ nào khác. (Và vâng, cả 3 thứ đó đều có ý nghĩa trong môi trường của tôi - đó là một chiếc máy tính xách tay và tôi không cần dùng đồng thời, và tôi sử dụng devfs nên gật đầu ở gốc cũng có ý nghĩa).

Các tùy chọn độc lập fs được phân tích cú pháp trong không gian người dùng bằng mount (8) và được truyền vào kernel dưới dạng các bit riêng lẻ trong một đối số `flags '.


Đây sẽ là một lỗi tài liệu sau đó?
Grodriguez

Tôi thấy tài liệu bạn liên kết cũng là ngày 2003. Vì vậy, bạn có thể đưa ra lập luận đó. Nếu đây là một vấn đề phổ biến, tôi sẽ đổ lỗi cho kernel không nhất quán. Trong thực tế ... nếu bạn tiếp tục đọc các luồng, nó gợi ý rằng sử dụng initrd / initramfs để gắn kết các rootfs thay vào đó có thể hoạt động xung quanh nó, và initramfs là trường hợp phổ biến hiện nay (ít nhất là không nhúng). Tìm kiếm của tôi cũng đưa ra các khiếu nại cụ thể rằng vấn đề này đã xảy ra khi khởi động mà không có initramfs. Mà tôi nên đề cập nếu tôi không lười biếng. Ví dụ: bugzilla.kernel.org/show_orms.cgi?id=61601
sourcejedi
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.