저는 임베디드 Linux 빌드에 Yocto를 사용하고 있습니다. 내 목표는 시스템이 시작될 때마다 파일을 강제로 검사하는 것입니다. 파일을 수정 /etc/default/rcS
하고 ENABLE_ROOTFS_FSCK=yes
및 FSCKFIX=yes
. fsck
rootfs 확인을 시도했지만 다음 오류가 발생했습니다.
e2fsck 1.46.2 (28-Feb-2021)
fsck.ext2: No such file or directory while trying to open /dev/root
Possibly non-existent device?
fsck failed. Please repair manually and reboot. Please note that the root filesystem is currently mounted read-only. To remount it read-write:
# mount -n -o remount,rw /
CONTROL-D will exit from this shell and REBOOT the system.
여기에는 두 가지 문제가 있습니다. 첫째, e2fsck
파일 시스템을 확인할 수 없는 이유는 무엇입니까? 둘째, 검사 ext4 파일 시스템이 왜 e2fsck
호출 됩니까? 정상적으로 부팅 후 사용 fsck.ext2
해보면 fsck -n <partition>
아주 잘 작동됩니다. 다음 로그를 얻습니다.
e2fsck 1.46.2 (28-Feb-2021)
Warning! <partition> is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
<partition> clean
도움을 주셔서 미리 감사드립니다.
편집하다:저는 Yocto, 커널 3.18 및 systemVinit로 구축된 Linux를 사용하고 있습니다. 부팅 중에 fsck를 강제하는 방법도 있지만 systemd가 있는 시스템에서는 작동하는 것 같습니다. 내 생각엔 e2fsck가 어떤 파티션을 확인해야 할지 모르는 것 같아요. 내 물리적 파티션 /dev/mmcblk0p2 대신 /dev/root를 확인하려고 시도합니다.