Linux를 실행하는 임베디드 장치에 USB를 사용하고 있습니다. 문제는 어떤 경우에는 명령을 내려 USB를 언마운트하면 umount /media/sda1
언마운트가 성공하는데 USB를 계속 제거하려고 하면 fs를 더티로 표시할 수 없다는 오류가 뜨고, 다시 연결하면 오류 메시지가 나타납니다. Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
USB를 안전하게 꺼내는 데 사용할 수 있는 Linux 터미널에 다른 명령이 있습니까? 이렇게 하면 USB 장치를 분리하기 전에 꺼집니다.
업데이트: 동기화를 사용해 보았지만 아래와 같이 오류가 지속됩니다.
root@(none):~# sync
root@(none):~# umount /media/sda1
root@(none):~# ls /media/sda1
root@(none):~# [ 296.021241] usb 2-1: USB disconnect, device number 3
[ 296.026879] sd 1:0:0:0: [sda] Synchronizing SCSI cache
[ 296.031175] sd 1:0:0:0: [sda]
[ 296.033743] Result: hostbyte=0x01 driverbyte=0x00
[ 296.048283] FAT-fs (sda1): unable to read boot sector to mark fs as dirty
답변1
eject /dev/sda
커널에서 장치를 안전하게 제거하고 안전하게 제거할 수 있도록 시도합니다. 파티션 항목이 삭제되었는지 확인하기 위해 /dev를 살펴봄으로써 삭제되었는지 확인할 수 있습니다(기본 장치가 계속 표시될 수 있음).
예를 들어 방금 USB 스틱을 연결했는데 /dev/sdg라고 표시되고 파티션에 sdg1이 표시됩니다. 제거할 수 있는데 계속 표시되지만 꺼내고 나면 사라집니다.
$ ls /dev/sdg*
/dev/sdg /dev/sdg1
$ df | grep sdg
/dev/sdg1 59632764 47460364 9136496 84% /media/sweh/music
$ umount /dev/sdg1
$ ls /dev/sdg*
/dev/sdg /dev/sdg1
$ sudo eject /dev/sdg
$ ls /dev/sdg*
/dev/sdg