LinuxでHDDの命名は?


5

Linuxは毎回ドライブに同じ文字を与えようとしますか?
たとえば、2台のドライブを自分のコンピュータに接続する場合は、それらを取り外し、逆の順序で接続し直します。sdbとsdcは同じ物理ドライブに対応しますか。

これは私が欲しいものです:

First:  
    Plug in HDD A, which becomes sdb.
    Plug in HDD B, which becomes sdc.


Then:
    Plug in HDD B, which becomes sdc.
    Plug in HDD A, which becomes sdb.

問題はLinuxがこれを自動的に行うのかということです。そうでない場合、どうすればこのようなことができますか? (私は3つのドライブを任意の順序で初期化することができますが、それでも同じポイントにマウントすることができます)。

回答:


12

いいえ、 sd* どのディスクが最初に検出されたかに基づいて、名前が順番に割り当てられます。

永続的な名前が必要な場合、udevはすでにファイルシステムラベル/ UUIDなどのいくつかのプロパティに基づいてそれらを提供しています。パーティションラベル/ UUID(GPTのみ)。ディスク接続パスSCSI WWN等々。

を見てみましょう /dev/disk

┌ rain ~ 
┘ tree /dev/disk/
/dev/disk/
├── by-id  (ハードウェアID)  │├──ata-Slimtype DVD_A_DS8A5SH_012160166091  - > ../../sr0
│├──ata-ST9640320AS_5WX1ZH91  - > ../../sda
│├──ata-ST9640320AS_5WX1ZH91-part7  - > ../../sda7
│├──mmc-SD4GB_0x0054b5cf  - > ../../mmcblk0
│├──mmc-SD4GB_0x0054b5cf-part1  - > ../../mmcblk0p1
│├──wwn-0x5000c5002f0e9ce1  - > ../../sda
│├──wwn-0x5000c5002f0e9ce1-part1  - > ../../sda1
│└──…
├──by-label  (ファイルシステムのヘッダにエンコードされた名前)  │├──キーカード - > ../../mmcblk0p1
│├──raindows  - > ../../sda6
│├──レインホーム - > ../../sda5
│└──…
├──by-partlabel  (GPTパーティションテーブルにエンコードされた名前)  │├──アーチ - > ../../sda4
│├──EFI  - > ../../sda1
│├──home  - > ../../sda5
│├──スワップ - > ../../sda8
│└──…
├──by-partuuid  (GPUパーティションテーブルにエンコードされたUUID)  │├──14420948-2cea-4de7-b042-40f67c618660  - > ../../sda4
│├──1c737f60-8667-4d1a-9c92-5f5caf69be60  - > ../../sda3
│├──267bbb83-0bb5-48b8-aa4c-ffe328328f5b  - > ../../sda5
│└──…
└──by-uuid  (ファイルシステムのヘッダにエンコードされたUUID)  ├──0C5C17E25C17C57C  - > ../../sda7
    ├──413b42fe-77f7-41d0-8d40-a7578f70995d  - > ../../sda4
    ├──4b30e8db-563e-4947-8d41-f242d94a6d3a  - > ../../mmcblk0p1
    ├──8594cc4c-9c42-436a-8723-9a0611b1f97d  - > ../../sda5
    └──… 

あなたはそれらをそのように使うことができます:

/dev/disk/by-label/arch_boot  /boot  ext4  rw,auto  0  1

fstabでは、別の構文も使えます。 label そして uuid フィールド:

LABEL=arch_boot               /boot  ext4  rw,auto  0  1

注:一部の古いLinuxディストリビューションでは、さまざまなudevルールがあります。 試み するために sd* 名前は永続的です。しかしそれは できない 確実に機能します。別のディスクに目的の名前が割り当てられているため、 "名前の変更"が失敗することがよくあります。この関数は、それ以降のudevバージョンでは削除されました。 頼らないで sd* たとえそうであっても名前は永続的です


私のすべての固定ディスクは、UUIDによって、またはLVM(その下のPVのUUIDを使用)を介してマウントされます。これには/ bootが含まれます。結局、別のLinuxシステムから別のハードドライブを接続した場合はどうなりますか?いずれにせよあなたは決して頼るべきではありません sd* 名前は一貫しています。
Michael Hampton

だから私はちょうどHDDのUUIDを見て、そのUUIDに基づいて特定のポイントにマウントするためにシェルスクリプトを使用することができますか?例:uuid == xxxxxxxxxxの場合、/ dev / sdb / w / / my / mount / point /がマウントされている
Billylegota

@ビリーレゴタ:え?いいえ。UUIDは/ etc / fstabで直接使用できます。私はまさにそのために2つの例を挙げました。何にシェルスクリプトが必要ですか。
grawity

@重力:申し訳ありません、その部分を見ていませんでした。 / dev / diskのツリーを見て、「bashの仕事のように見えます」と言っただけです; D
Billylegota

パーティションの代わりに一貫してディスクを取得する方法はありますか? / dev / sda1の代わりに/ dev / sda?
sep332
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.