Linuxを実行する組み込みデバイスでUSBを使用しています。問題は、umount /media/sda1
コマンドを実行してUSBをアンマウントすると、アンマウントが成功する場合がありますが、USBの削除を続行すると、FSをダーティとしてマークできないこと、およびプラグを差し戻すと、エラーが発生することです。でエラーVolume was not properly unmounted. Some data may be corrupt. Please run fsck.
が発生しましたLinux端末にUSBを安全に取り出すために使用できる他のコマンドはありますか? 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
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