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
内部で使用する必要があります。
答え2
(例:
/media/b/mydrive
と/media/b/myflashdrive
)。これはどのように達成されますか? Ubuntuはどのように各デバイスの「名前」を知り、その「名前」を使用してマウントポイントの名前を指定しますか? (/etc/fstab
これらのプラグインデバイスは含まれていません。)
リムーバブルデバイスのマウントはUDiskによって実行され、UDiskは常に(Ubuntuから)フォーマットのマウントポイントを作成します/media/<user>/<unique_id>
。最後の部分はファイルシステムラベル、またはファイルシステムにラベルがない場合はUUIDです。リムーバブルディスクとドライブは通常事前にフォーマットされており、パーティションにはベンダーからラベルが付けられています(たとえば、KingstonフラッシュドライブにはVFATパーティションラベルがありますKINGSTON
)。
を使用してデバイスのタグ(およびUUID)を取得できますlsblk -f
。
GUIを介さずにデバイスを手動でインストールして同じ効果を得るには、を使用できますudisksctl mount -b /dev/sdb1
。
(今後)自動マウントを使用する場合は、代わりにfstab
常にUUID()を使用する必要があります。UUID=
/dev/sdb1