シングルディスクブートをraid1ブートに変換しようとしています
これまでのところ、これが私が持っているものです:
カーネルは私に次のように伝えます:1-ルートデバイスがmdデバイスであることを検出しました2-ルートデバイスを決定します3-ルートをマウントします4-/newrootに/ dev/md125をマウントできませんでした:入力/出力エラー。別のルートデバイスを入力してください:.。
この時点で、/ dev/sda3(まだraidに変換されていない「古い」ルートデバイス)を入力すると、ルートがなくてもすべて正常に起動します。/dev/md125デバイスは実際に作成されますが、デバイスのロード後に作成されるため、エラーが発生した後に作成されるようです、mdadmがロードされると。
どういうわけか、RAIDアレイをマウントする必要がある前にロードできない/ロードできないように見えますが、どうすればそれを解決できるのかわかりません。
私の設定ファイル(ルートデバイスとしてsda3を使用して起動するとシステムから取得):
$ cat /etc/mdadm.conf
ARRAY /dev/md/md0-r5 metadata=0.90 UUID=1a118934:c831bdb3:64188b84:66721085
ARRAY /dev/md125 metadata=0.90 UUID=48ec4190:a80d4dde:64188b84:66721085
$ cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4] [raid0] [raid10]
md125 : active raid1 sdc3[1]
477853312 blocks [2/1] [_U]
md127 : active raid5 sdd[0] sdf[3] sdb[2] sde[1]
4395415488 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
unused devices: <none>
$ cat /boot/grub/menu.lst
default 0
timeout 8
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Gentoo Linux 2.6.31-r10
root (hd0,0)
#kernel /boot/kernel-genkernel-x86_64-2.6.31-gentoo-r10 root=/dev/ram0 real_root=/dev/sda3
kernel /boot/kernel-genkernel-x86_64-2.6.31-gentoo-r10 root=/dev/md125 md=125,/dev/sdc3,/dev/sda3
initrd /boot/initramfs-genkernel-x86_64-2.6.31-gentoo-r10
# blkid
/dev/sda1: UUID="89fee223-b845-4e0a-8a0b-e6cf695d5bcf" TYPE="ext2"
/dev/sda2: UUID="a72296a8-d7d4-447f-a34b-ee920fd1a767" TYPE="swap"
/dev/sda3: UUID="97eb0a6a-c385-4a9d-bf74-c0bab1fa4dc1" TYPE="ext3"
/dev/sdb: UUID="1a118934-c831-bdb3-6418-8b8466721085" TYPE="linux_raid_member"
/dev/sdc1: UUID="d36537fd-19a0-b8a3-6418-8b8466721085" TYPE="linux_raid_member"
/dev/sdd: UUID="1a118934-c831-bdb3-6418-8b8466721085" TYPE="linux_raid_member"
/dev/sde: UUID="1a118934-c831-bdb3-6418-8b8466721085" TYPE="linux_raid_member"
/dev/md127: UUID="13a41589-4cf1-4c04-91ca-37484182c783" TYPE="ext4"
/dev/sdf: UUID="1a118934-c831-bdb3-6418-8b8466721085" TYPE="linux_raid_member"
/dev/sdc2: UUID="a1916397-1b48-45d7-9f98-73aa521e882f" TYPE="swap"
/dev/sdc3: UUID="48ec4190-a80d-4dde-6418-8b8466721085" TYPE="linux_raid_member"
/dev/md125: UUID="c947ed64-1d4d-4d1d-b4d2-24669fff916e" SEC_TYPE="ext2" TYPE="ext3"
# mdadm -E
mdadm: No devices to examine
# fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xe975e9fc
Device Boot Start End Blocks Id System
/dev/sda1 1 5 40131 83 Linux
/dev/sda2 6 1311 10490445 82 Linux swap / Solaris
/dev/sda3 1312 60801 477853425 83 Linux
Disk /dev/sdc: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xe975e9fc
Device Boot Start End Blocks Id System
/dev/sdc1 1 5 40131 83 Linux
/dev/sdc2 6 1311 10490445 82 Linux swap / Solaris
/dev/sdc3 1312 60801 477853425 83 Linux
Disk /dev/md125: 489.3 GB, 489321791488 bytes
2 heads, 4 sectors/track, 119463328 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Disk identifier: 0x00000000
Disk /dev/md125 doesn't contain a valid partition table
Linuxが起動すると、最初にinitramfs内から最小限のLinuxディストリビューションが起動します。これは、単純なルートファイルシステムを備えた単なるRAMディスクです。 initramfsは初期化を行い、必要なすべてのブロックデバイスとファイルシステムドライバーをロードしてから、実際のルートファイルシステムをマウントし、そこにピボットして、そこから起動します。 RAIDデバイスがメインのLinuxファイルシステムで適切に構成されているようですが、initramfsファイルシステム内では構成されていません。
Initramfsをクラックオープンする可能性があります(gzipで圧縮されたcpioアーカイブ、変更を加えて再アーカイブします。initramfsinitスクリプトをシェルにドロップして把握するように変更することで、このような問題のトラブルシューティングを行うことがよくあります。 initramfsは、カーネルの構築と同時に作成されている必要があり、通常、システムをbootstrapするために必要なすべてのものが含まれています。ただし、特に、システムの後にswraidが追加された場合はそうです。すでに実行されているため、ビルドで正しく追加されていない可能性があります。このドキュメントのswraid情報を確認してください。
覚えておく必要があることの1つは、GrubがRAIDアレイを認識しないため、両方のドライブにgrubをインストールする必要があるということです。 Grubが起動すると、通常は最初のHDDから起動しますが、アレイに何か変更があった場合、grubがインストールされていない2番目のHDDから起動しようとします。