umount -l
が安全でない場所をいくつか読んだことがあります。
外付けドライブを安全に取り外すことができる場合を気にする場合は、
umount
の--lazy
オプションを使用しないでください。
umount --lazy
は安全ではないため、安全にすることはできません。 [...]
これutil-linux
Ruediger Meierによるコメント :
umount -l
は使用しないでください。/tmp/mountpoint
を使用しているすべてのプロセスを強制終了し、オプション-l
なしでアンマウントします。
umount -l
が安全でない/危険なのはなぜですか?
安全にする方法はありますか?
誤った安心感があります:ファイルシステムはマウント解除されているようですが、実際にはファイルの名前空間/階層からのみ隠されています。
つまり、umount -l /media/hdd
を使用すると/media/hdd/dir/file
絶対パス名)にアクセスできなくなりますが、作業ディレクトリ/media/hdd
のプロセスがある場合は、./dir/file
(相対パス名)を読み書きできる新しいプロセスを引き続き作成できます。
デバイスをアンマウントしようとすると、混乱するメッセージが表示されます。
# umount --force --all-targets /dev/sdb2
umount: /dev/sdb2: not mounted
これにより、デバイスはununtuntされたように見えますが、ディスクに書き込むプロセスがstillあります。
Umountをブロックする可能性のあるさまざまな_(非自明な状況= があるため、lsof +f -- /dev/device
に何も表示されていなくても、ファイルシステムはアンマウントされない可能性があります。
ファイルシステムが実際にマウント解除されているかどうかはわかりません。調べる方法はありません。
リムーバブルディスクをumount -l
する場合は、不安定な状態にあります。保留中のすべてのデータがディスクに書き込まれたかどうかはわかりません。
umount -l
の後にできる最善の方法は、 すべての書き込みが完了し、今後の書き込みを防止する にすることですが、アンマウントされていることを保証することはできません。
リムーバブルデバイスでは、デバイスが適切にアンマウントされていないと、次に接続したときに奇妙な動作が発生する可能性があります。
デバイスはインクリメントされたデバイス名を取得します。つまり、/dev/sdb
は/dev/sdc
になります。そのデバイスが/dev/sdb
の下のファイルとして存在しなくなった場合でも、カーネルログメッセージは/dev
を参照している可能性があります。 (これを解決する唯一の方法は、再起動することです。)
btrfsの破損が発生する可能性があります。 btrfsは、特定のUUIDを持つファイルシステムが一度に1つだけ存在することを期待しています。カーネルは、ファントムデバイスと新しいデバイスで利用可能な同じUUIDをまだ認識しています。 (btrfsバックアップHDDを再構築する必要がありました)。
systemd
gotchasレイジーなアンマウントまたは MNT_DETACH
は、x-systemd.mount-timeout=
で/etc/fstab
を使用するか、AutomountファイルでTimeoutIdleSec=
を使用することにより発生するようです 。
上記のsystemd
オプションは、特にbtrfs
を使用することを避けてください。私は苦い経験から学びました(上記のbtrfsリファレンスを参照)。