컴팩트 플래시에서 부팅하고 initrd.img 램디스크가 설치된 루트로 실행되는 임베디드 시스템이 있습니다. 시작 시 읽기 전용 모드로 initrd 이미지를 마운트하지만, inittab을 실행하면 첫 번째 마운트 명령을 건너뛰는 것 같습니다.
null::sysinit:/bin/mount -o remount,rw /
내가 아는 한 내 /etc/fstab 설정에는 올바른 옵션이 있습니다.
/dev/root / ext2 rw,noauto,noatime 1 1
그런 다음 시스템에서 명령 프롬프트를 표시했고 루트로 로그인하여 마운트 명령을 입력하면 제대로 작동했습니다.
또한 동일한 설정은 겉보기에 동일한 대상 하드웨어에서도 작동합니다. 차이점은 우리가 사용하는 일반적인 서버 대신 랩톱에서 부팅 이미지를 생성한다는 것입니다. 내 노트북에는 이미지용 부트로더를 만드는 데 사용하는 최신 버전의 grub이 실행되고 있습니다. 어쩌면 램디스크로 사용할 이미지를 만들기 위한 최신 버전의 geneext2fs가 있을 수도 있습니다. 서버는 FC10을 실행하고 있지만 내 노트북은 우분투에 있으므로 마운트나 inittab에 영향을 미치는 차이점이 간과하고 있는 것 같습니다. 이것이 /dev/null과 관련이 있을 수 있습니까?
시스템이 램디스크 이미지를 다시 마운트하지 않는 이유는 무엇입니까? 어떻게 고치나요?
답변1
나는 두 단계로 문제를 해결했습니다.
첫 번째는 inittab의 줄 시작 부분에서 null을 제거하는 것입니다. 이렇게 하면 콘솔에만 오류가 표시됩니다. 이는 오류가 /proc/mounts와 관련되어 있음을 나타냅니다. 내용 위에 있도록 inittab을 변경했는데 이제 작동 ::sysinit:/bin/mount -t proc /proc
합니다 .remount,rw /
어쨌든 다른 시스템이 동일한 커널과 비지박스 바이너리로 부팅되는 이유는 미스터리로 남아 있습니다. 저는 여전히 genext2fs가 내 버전에서 뭔가 다른 설정을 해야 명령이 mount -o remount,rw
/proc/mounts 없이도 작동할 수 있다고 생각합니다. 아래에서 계속하세요
답변2
당신의 배포판이 이렇다고 확신합니까 /etc/inittab
?
예를 들어, Ubuntu는 이제 upstart
다른 구성 파일 세트를 사용합니다.
또 다른 아이디어: 다른 항목을 넣어서 실행 mount
하고 출력을 파일로 리디렉션하는 것입니다. 이를 통해 inittab
재설치를 실행하려고 할 때 읽기가 진행 중이고 파일 시스템이 예상된 상태에 있음을 증명할 수 있습니다 .