jffs2를 사용하는 임베디드 시스템이 있고 rootflags=noatime
커널 bootargs
매개변수를 전달하고 싶습니다.
이로 인해 커널 패닉이 발생합니다.
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)
그러나 정상적으로 부팅한 다음 noatime을 사용하여 jffs2 파일 시스템을 다시 마운트하면 정상적으로 작동합니다.
$ mount -o remount,noatime /
나는 이것에 대해 혼란스러워요. 왜냐하면문서, rootflags 매개변수를 사용하면 "마운터와 마찬가지로 루트 파일 시스템 마운트와 관련된 옵션을 제공할 수 있습니다".
나에게 이것은 커널 버그처럼 보이지만 다른 한편으로는 분명해 보이고 어쩌면 내가 뭔가를 간과하고 있을 수도 있습니다.
커널 버전 3.7 및 3.14에서 이것을 테스트했습니다.
누군가 이것에 대해 밝힐 수 있습니까?
답변1
Google 검색 rootflags noatime
에서 Andrew Morton이 쓴 2003년 기사가 나타났는데, 아마도 여전히 적용되는 내용일 것입니다.
http://lkml.org/lkml/2003/8/12/236
무언가를 테스트하는 동안 "rootflags=noatime"으로 부팅을 시도했는데 ext3, ext2 또는 reiserfs가 해당 옵션을 인식하지 못하기 때문에 시스템이 부팅되지 않는 것을 발견했습니다. fs/ext3/super.c:parse_options() 및 init/do_mounts.c:root_data_setup()의 코드를 보면 rootflags를 통해 파일 시스템과 관련되지 않은 플래그를 설정하는 것이 불가능해 보입니다. 이는 'ro' 및 'ro' 및 ' rw' 플래그에 대한 코드입니다. 그러나 nodev, noatime, nodiratime 또는 기타 플래그를 전달할 방법은 없는 것 같습니다. (예, 이 세 가지 모두 제 환경에서는 의미가 있습니다. 노트북이고 atime이 필요하지 않으며 devfs를 사용하므로 루트의 nodev도 의미가 있습니다.)
파일 시스템 독립적인 옵션은 사용자 공간에서 mount(8)에 의해 구문 분석되고 "flags" 매개변수의 개별 비트로 커널에 전달됩니다.