
Ubuntu では、異なるブロック デバイス (例: 外付けハード ドライブとフラッシュ ドライブ) が同じデバイス ファイル (例: ) で次々に表される場合でも、それらは自動的に異なるマウント ポイント (例:と)/dev/sdb1
にマウントされます。これはどのように実現されるのでしょうか。Ubuntu はどのようにして各デバイスの「名前」を認識し、その「名前」を使用してマウント ポイントに名前を付けるのでしょうか。( ではこれらのプラグイン デバイスは説明しません。)/media/b/mydrive
/media/b/myflashdrive
/etc/fstab
どうすればそれをシミュレートできますか?ブロックデバイスを手動でマウントする場合、
sudo mkdir /media/b/mountingpoint1
sudo mount -t ntfs /dev/sdb1 /media/b/mountingpoint1
sudo umount /media/b/mountingpoint1
sudo rmdir /media/b/mountingpoint1
デバイスをデタッチして別のブロック デバイスを接続すると、新しいデバイスは再び同じデバイス ファイルで表され/dev/sdb1
、上記のコマンドによって同じマウント ポイントにマウントされます/media/b/mountingpoint1
。デバイスごとにマウント ポイントに異なる名前を付ける方法が必要です。
答え1
同じデバイスファイル(例:/dev/sdb1)で表される
問題は、ない同じデバイス ファイルによって表される: カーネルによって管理される文字と数字を含むプライマリ デバイス ファイルに加えて、/dev/disk/by-*
たとえば、ファイル システムのボリューム名、ハード ドライブのベンダーとモデル、またはデバイス パスを含むシンボリック リンクもあります。
/etc/fstab
そして、内部で使用する必要があるのは、/dev/sdb1
etcではなく、これらのシンボリックリンクです。
答え2
(例: および
/media/b/mydrive
)/media/b/myflashdrive
。これはどのように実現されるのでしょうか? Ubuntu はどのようにして各デバイスの「名前」を認識し、その「名前」を使用してマウント ポイントに名前を付けるのでしょうか? (/etc/fstab
はこれらのプラグイン デバイスをカバーしていません。)
リムーバブル デバイスのマウントは UDisk によって行われ、これによりそれらのマウントポイントも作成されます。マウントポイントの形式は常に (Ubuntu では) です/media/<user>/<unique_id>
。最後の部分は、ファイル システムにラベルがない場合はファイル システムのラベルまたは UUID です。リムーバブル ディスクとドライブは通常、事前にフォーマットされており、パーティションはベンダーによってラベル付けされています (たとえば、私の Kingston フラッシュ ドライブの VFAT パーティションには というラベルが付けられていますKINGSTON
)。
デバイスのラベル (および UUID) は で取得できますlsblk -f
。
デバイスを手動でマウントして(GUI からではなく)、同じ効果を得るには、 を使用できますudisksctl mount -b /dev/sdb1
。
また、(将来)自動マウントに使用する場合は、の代わりにfstab
常に UUID ( ) を使用する必要があります。UUID=
/dev/sdb1