
このボックスは、Ubuntu 16.04 を実行している HP マイクロサーバーです。最近、ブート デバイスを 64 GB SSD に「アップグレード」しました。さらに、1 TB の SATA ドライブもあります。
/dev/sda1
通常、 をプライマリ パーティション (SSD 上) として起動し、/dev/sda5
をスワップとして起動し、/dev/sdb1
にマウントされている 1Tb HDD 上のパーティションを指します/mnt/media0
。
問題は、それがすべて変更されることがあり、SSD が になり/dev/sdb1
、/dev/sdb5
メディア パーティションが になることです/dev/sda1
。
もちろん、これにより、スワップとメディアのマウントは/etc/fstab
以前の/dev/sd*
名前を使用してリストされるため失敗します。
ので、私は持っています:
BIOS を確認すると、64GB SSD が常に最初のドライブとして、1TB IDE が 2 番目のドライブとしてリストされています。
ボリューム ラベルでメディア ドライブを参照するように変更しようとしました
/etc/fstab
が、Ubuntu の起動が失敗し、回復モードになります。/etc/fstab
スワップと(ext4)メディアパーティションをUUIDを使用して参照するように変更しようとしました(実際にはプライマリパーティションがリストされているため)しかしここで、2 番目の問題が発生します。
さまざまなパーティションの UUID を見つけるために以下を実行すると...
ls /dev/disk/by-uuid
blkid
どちらも 1 つのエントリ (プライマリ パーティションの UUID) のみをリストします。メディア パーティションの UUID は、(ブート時に割り当てが明らかになっているsdb1
)を使用してのみ確認できます。
tune2fs -l /dev/sdb1
しかし、もう一度、その UUID を使用すると、/etc/fstab
Ubuntu は起動に失敗し、回復モードになります。
私の質問は次のとおりです。
/dev/sda
ドライブ間のスワッピングを開始および/dev/sdb
停止する方法はありますか?システムに他のパーティションの UUID を表示させて、 で使用できるようにするにはどうすればよいでしょうか
fstab
?また、スワップ パーティションとメディア パーティションを確実にマウントできる他の方法はありますか?
答え1
の「disk/by-id」名を使用できます/etc/fstab
。
ls -l /dev/disk/by-id
これらのデバイス名は他のファイル (initrd、grub configs) でも使用される可能性があることに注意してください。そのため、grub config を更新して initrd を再作成することもできます。
答え2
異なるカーネルには udev がサポートされており、他のカーネルには udev (eudev) がサポートされていないため、ハード ドライブの交換が継続されます。
そうですね、私も sysv、openrc、s6 init の置き換え (systemd の置き換え) を試し始めたときにこれに悩まされました。
問題は、同じディスク内に異なる Linux vmlinuz イメージを構築する場合の grub ユーティリティとその構成ファイルにあります。特に、 1 つのカーネル ビルドに対してGRUB_DISABLE_LINUX_UUID
(/etc/default/grub
など) を有効にし、他のカーネル ビルドに対しては有効にしない場合に発生します。
== 原因 #1 ==
では、犯人は誰でしょうか? 古い非 systemd です。非 systemd によってスワッピングが発生し、どの SATA/IDE コネクタが使用されているかに関係なく、sda ドライブが常に開始ディスク ラベルになります。
ドライブの順序付けは ATA (SATA または libata ライブラリ) デバイスによって行われ、並べ替えは によって行われますdrivers/scsi/ida_probe()
。これをファイルGRUB_DEVICE_BOOT
から削除します/etc/default/grub
。
== 原因その2 ==
CONFIG_SCSI_DEBUG
「yes」を指定すると(またはscsi_debug=add_host:1
、vmlinuz ブートパラメータで「」を使用して initramfs を使用する場合は「m」を指定すると)、既存のハード ドライブの「sd」ラベル インデックスのインデックス番号が確実に 1 つ増加します。つまり、 は にsda1
なりますsdb1
。