Linux 장치에서 USB를 안전하게 제거

Linux 장치에서 USB를 안전하게 제거

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

관련 정보