これは本質的に、コーナー ケースのバッグ全体をチェックする問題です。
- ドライブは /proc/mounts に表示されます
- ドライブをスワップとして使用できます (use /proc/swaps)
- ドライブは、アクティブな LVM pv の一部にすることができます (pvdisplay を使用)
- ドライブは dm-mapper RAID グループの一部にすることができます (/proc/mdstat を使用)
- アプリケーションからドライブに直接アクセスできる (たとえば、Oracle はファイルシステムではなく、ドライブまたはパーティションへの直接書き込みをサポートしています) (fuser を使用)
- 仮想マシンから直接ドライブにアクセスできる (fuser を使用)
- ループバック デバイスからドライブを参照できます (例:
mount /dev/sda -o offset=1M /foo
) (losetup -a を使用)
これらは、1 分半考えてみたときに思いついた例にすぎません。他にも何十人もいると思います.
この最後の例は、最も興味深いと思いますが、それについて知っている人はほとんどいません。パーティションを使用せずにファイルシステムをマウントできます。開始オフセットを指定するだけで、Linux は透過的にループバック デバイスを作成します。上記の例は次の結果をもたらします:
# cat /proc/mounts
...
/dev/loop0 /foo ext4 relatime,data=ordered 0 0
# losetup -a
/dev/loop0 [0005]:2048 (/dev/sda), offset 1048576
どうしてそうするか?通常、これには以前にひどくうまくいかなかった状況が含まれます。
また、ネームスペース機能が現在メインラインにあるため (unshare を参照)、異なるプロセスは、マウントされているものとマウントされていないものについて異なるビューを持つことができることに注意してください。ここで、物事は少し赤丸になり始めます.