同じデバイス ファイルによって表される異なるデバイスを、異なるマウント ポイントに自動的にマウントするにはどうすればよいですか?

同じデバイス ファイルによって表される異なるデバイスを、異なるマウント ポイントに自動的にマウントするにはどうすればよいですか?

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/sdb1etcではなく、これらのシンボリックリンクです。

答え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

関連情報