fat-fs(mmcblk0p1): 볼륨이 제대로 분리되지 않았습니다. 일부 데이터가 손상되었을 수 있습니다. fsck를 실행해주세요

fat-fs(mmcblk0p1): 볼륨이 제대로 분리되지 않았습니다. 일부 데이터가 손상되었을 수 있습니다. fsck를 실행해주세요

이 경보는 사용자 정의된 시스템이 시작될 때 나타나며 mmcblk0p1종료 시 파티션을 마운트 해제하지 않았음을 나타냅니다. /etc/fstab정전시 자동으로 제거되도록 수정하는 방법은 무엇입니까 ?

부분인쇄 dmesg:

...
    [    6.488912] CAN device driver interface
    [    6.502179] f81604_probe: Fintek F81604 driver version: v1.19
    [    6.550910] f81604 1-8:1.0: Channel #0 registered as can0
    [    6.597869] f81604_is_hw_disable: ch: 1, i: 100, r: 100
    [    6.597872] f81604 1-8:1.0: f81604_probe: channel 1 is h/w diabled
    [    6.597905] usbcore: registered new interface driver f81604
    [    6.613718] EXT4-fs (mmcblk0p2): recovery complete
    [    6.614116] EXT4-fs (mmcblk0p2): mounted filesystem fbc7620b-3aec-4ad5-8f01-b1d8f2006a4c r/w with ordered data mode. Quota mode: none.
    [    6.615305] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
    [    6.637649] i2c i2c-0: ioctl, cmd=0x705, arg=0x7ffc39b81308
    [    6.637663] i2c i2c-0: ioctl, cmd=0x703, arg=0x74
    [    6.637667] i2c i2c-0: ioctl, cmd=0x720, arg=0x7ffc39b812d0
...

조각:

root@dobot:~# blkid
/dev/mmcblk0p3: UUID="2692a861-c28c-4127-a037-dd1756b28da0" TYPE="ext4"
/dev/mmcblk0p2: UUID="fbc7620b-3aec-4ad5-8f01-b1d8f2006a4c" TYPE="ext4"
/dev/mmcblk0p1: UUID="C377-C6E3" TYPE="vfat"

/etc/fstab:

root@dobot:~# cat /etc/fstab
#device          mount-point            type           options     dump   fsck order
UUID=2692a861-c28c-4127-a037-dd1756b28da0   /                      ext4           defaults    0          1
UUID=fbc7620b-3aec-4ad5-8f01-b1d8f2006a4c   /boot                  ext4           defaults    0          1
UUID=C377-C6E3   /boot/efi              vfat           umask=0077  0          0
proc             /proc                  proc           defaults    0          0
sysfs            /sys                   sysfs          defaults    0          0
tmpfs            /tmp                   tmpfs          defaults    0          0
tmpfs            /var                   tmpfs          defaults    0          0
debugfs          /sys/kernel/debug      debugfs        default     0          0
mdev             /dev                   ramfs          defaults    0          0
devpts           /dev/pts               devpts         defaults    0          0

답변1

시중에 예측 가능한 기기가 없기 때문에모두실제로 정전이 발생하기 전에 이 문제를 해결하는 일반적인 방법은 무정전 전원 공급 장치(UPS)를 사용하는 것입니다.

외부 전원 공급 장치에 장애가 발생하면 UPS는 시스템에 경고를 보내고 UPS 배터리가 소진되기 전에 시스템을 제어된 방식으로 종료할 수 있습니다.

이러한 솔루션을 원하지 않는 경우 완전한 보호를 제공하지는 않지만 충분할 수 있는 해결 방법이 있습니다.

/boot/efi두 가지 경우에만 필요합니다.

  • 시작 시(읽기 전용 액세스로 충분함)
  • 부트로더를 업데이트할 때(읽기 및 쓰기 액세스 필요)

부트로더 업데이트가 설치될 때 마운트되도록 시스템 업데이트 메커니즘에 기능을 추가한 다음 /boot/efi마운트 해제할 수 있는 경우 일반적인 사용 중에 마운트 해제된 상태로 둘 수 있습니다( noauto에서 마운트 옵션을 추가하기 만 하면 됩니다 /etc/fstab).

사용자 정의 시스템에 업데이트를 제공하기 위해 패키지 관리자를 사용하는 경우 부트로더 패키지에 사전 설치 스크립트를 추가하여 설치되었는지 테스트하고 /boot/efi, 그렇지 않은 경우 설치한 후 이를 기억하도록 플래그를 설정하세요. 사전 설치 스크립트가 이 플래그를 설정하면 사후 설치 스크립트가 이를 다시 제거합니다.

유사한 것이 있는 경우 grub.cfg필요할 때 자동으로 설치 및 제거 되도록 패치 또는 유사한 실행 구성 업데이트 도구를 /boot/efi원할 수도 있습니다 .grub2-mkconfig/boot/efi

이렇게 하면 파일 시스템을 마운트하고 에 기록해야 하는 시간이 크게 줄어들어 /boot/efi부트로더나 해당 구성을 업데이트하는 동안 정전이 발생하지 않는 한 이 오류가 발생하는 것을 방지할 수 있습니다. 이런 상황은 극히 드뭅니다.

fsck order숫자 필드를 /etc/fstab0에서 2로 변경할 수도 있습니다 /boot/efi. 시스템에 있는 경우 /sbin/fsck.vfat정전 후 다음에 부팅할 때 시스템이 자동으로 이 오류를 수정할 수 있습니다.

관련 정보