Gentoo Linuxを古いハードウェアにインストールします。マザーボードにはIDEとSATAハードドライブの両方があります。2つのIDEと1つのSATAハードドライブがあります。接続され、それらでRAIDを実行する予定です。
しかし、私は問題に気づきました:/ dev/sdaにマップされたハードドライブは、起動するたびに変更されます!
インターネットから答えを探していました。そして、私は 永続的なデバイス名 が解決策になる可能性があることを発見しました。しかし、システム全体で互換性の問題が発生するのではないかと心配しています。さらに、/dev/disk/by-label
を使用できない限り、(名前が非常に長いため)非常に不便です。しかし、by-label
は/dev/sda
および/dev/sdb
を参照できないようです-/dev/sda1
のみが可能です。さらに、BIOSを使用する古いハードウェアの場合、 GPTではなくMBRしか使用できない と思います。 MBR環境でディスクラベルを変更するにはどうすればよいですか?
一方、私の心の理想的なソリューションは、/dev/sda
がすべてのブートで同じハードディスクにマップされることです。想像上、これは「bootmap」という名前のファイルをハードディスクに保存することで実現できます。そして、「/ sda」は「bootmap」ファイルに書き込まれます。システムの起動中に、「bootmap」内に「/ sda」が見つかった場合、ドライブは/dev/sda
にマップされます。 「/ sdb」が見つかると、/dev/sdb
にマッピングされます。等々。 (しかし、私はそれがおそらくそれほど理想的ではないことを知っています。)
では、ブート間の/dev/sda
変更のマッピングを回避するにはどうすればよいですか?
別の方法として、ラベルを編集する方法もいいでしょう。 -互換性の問題がどこにもないことを考えると。
(PS-どちらの方法でも、インターネット上での解決策はまだありません。)
ほとんどのファイルシステムには固有のUUIDがあり、ラベルを付けて、固有の値に設定できます。これらにより、/dev/disk/by-uuid
または/dev/disk/by-label
を介してファイルシステムを含むボリュームを参照できます。他のタイプのボリューム(RAID、LVMなど)にも一般に名前が付けられています。 RAIDおよびLVMボリュームは、ボリュームの接続方法に関係なく、物理ボリューム内の一意の識別子に基づいて組み立てられます。したがって、ディスクをそのように参照する必要があるのは珍しいことです。
接続方法に基づいてディスクにアクセスする必要がある場合は、/dev/disk/by-id
を使用できます。エントリはBUS-SERIAL
またはBUS-NAME-SERIAL
の形式です。ところで、すべての/dev/disk/
サブディレクトリは dev 、特に 永続ストレージルール によって維持されます。
別の解決策は、/dev
の下に独自のシンボリックリンクを作成することです。これを行うためのudevルールを作成できます。次のようなルールを含むファイル/etc/udev/rules.d/50-local-persistent-disks.rules
を追加します
SUBSYSTEM=="block", ATTRS{model}=="Yoyodine HD9001", \
ATTRS{serial}=="123-456-789", \
SYMLINK+="myfancyname"
udevadm info -a /dev/sda
を実行して、使用できる…==…
パターンを確認します。複数のパターンを使用する場合、それらは同じ出力ブロックからのものである必要があり、異なる親デバイスからのパターンを混在させることはできません。
ディスクタイプ/モデルにのみバインドされている/ dev/disk/by-id /リンクを安全に使用できると思います。
lrwxrwxrwx 1 root root 9 Jul 14 15:13 ata-Hitachi_HDS123456789_PVC1234567890 -> ../../sda
/ dev/disk/by-pathがコントローラーと偶然に遭遇する可能性は低いです:
lrwxrwxrwx 1 root root 9 Jul 14 15:13 pci-0000:00:1f.2-ata-2 -> ../../sda
lrwxrwxrwx 1 root root 10 Jul 14 15:13 pci-0000:00:1f.2-ata-2-part1 -> ../../sda1
lrwxrwxrwx 1 root root 11 Jul 14 15:40 pci-0000:00:1f.2-ata-2-part10 -> ../../sda10
lrwxrwxrwx 1 root root 11 Jul 14 15:43 pci-0000:00:1f.2-ata-2-part11 -> ../../sda11
lrwxrwxrwx 1 root root 11 Jul 14 15:13 pci-0000:00:1f.2-ata-2-part12 -> ../../sda12