我试图做一个现有的Linux Ubuntu安装RAIDarrays。
我正在按照这个教程… http://howtoforge.org/software-raid1-grub-boot-fedora-8
经过一百万次的事物清单后,我终于明白发生了什么事情。 你让RAID设备,在你的新的空盘,复制你的旧/驱动器,设置grub menu.lst,fstab,mtab initrd和grub MBR都指向RAID设备(我已经定义和正在工作),然后重新启动。 一旦你启动,你现在运行在RAID设备(/ dev / md0)然后你只要把你的原始驱动器上的RAIDarrays,同步,并说你完成了。
所以我设置我的menu.lst主要加载从raid设备的内核和initrd,并故障转移到我的原始(仍然完好)旧磁盘。 当我重新启动时,它总是故障切换。 我启动机器,运行我的新的GRUB条目,它说:“找不到错误15文件”。 网上有很多关于它的东西,似乎没有任何帮助。
唯一奇怪的是当我用grub设置MBR时,你会说“root(hd0,0)”,我终于理解它的意思了,它应该说文件系统types是ext2fs,分区types0xfd或类似的东西那。 我没有说什么。 但是当我运行安装程序(hd0)和设置(hd2)时,它说正确的驱动器是正确的。 所以我认为它的工作。 但不能从md0设备加载initrd /内核。
我唯一想到的另一件事情是,grub怎么知道什么是raid设备。 内核没有加载,软件raid模块没有加载,怎么能愚蠢的小grub有什么想法从哪里加载initrd? 所以我在想,好的,从/ dev / md0到/ dev / sdc1(新的raid驱动器)有一个映射,但是我没有看到可能发生的情况。 对于踢,(我做了很多次,以各种组合)我试图设置grub menu.lst尝试从root = / dev / sdc1(我的新驱动器)加载initrd和内核,它仍然说没有find文件。 所以无论是grub mbr安装程序不工作,或者我错过了一些非常简单的东西。
有任何想法吗?
这里有一些更多的信息... root @ io:〜#cat / proc / mdstat 个性:[线性] [多重] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0:激活raid1 sdc1 [1] 18771840块[2/1] [_U] root @ io:〜#fdisk -l 磁盘/ dev / sda:20.8 GB,20847697920字节 255个磁头,63个扇区/磁道,2534个磁道 单位= 16065 * 512 = 8225280字节的柱面 磁盘标识符:0x9d949d94 设备引导启动结束块Id系统 / dev / sda1 * 1 2337 18771921 83 Linux / dev / sda2 2338 2434 779152+ 5扩展 / dev / sda5 2338 2434 779121 82 Linux swap / Solaris 磁盘/ dev / sdb:320.0 GB,320072933376字节 16个磁头,63个扇区/磁道,620181个磁道 单位= 1008 * 512 = 516096字节的柱面 磁盘标识符:0x00000000 设备引导启动结束块Id系统 / dev / sdb1 * 1 4064 2048224+ 83 Linux / dev / sdb2 4065 620181 310522968 83 Linux 磁盘/ dev / sdc:20.0 GB,20020396032字节 255个磁头,63个扇区/磁道,2434个磁道 单位= 16065 * 512 = 8225280字节的柱面 磁盘标识符:0x00000080 设备引导启动结束块Id系统 / dev / sdc1 * 1 2337 18771921 fd Linux raid autodetect / dev / sdc2 2338 2434 779152+ 5扩展 / dev / sdc5 2338 2434 779121 82 Linux swap / Solaris 磁盘/ dev / md0:19.2 GB,19222364160字节 2个磁头,4个扇区/磁道,4692960个圆柱体 单位= 8 * 512 = 4096字节的柱面 磁盘标识符:0x00000000 磁盘/ dev / md0不包含有效的分区表 root @ io:〜#mdadm -E mdadm:没有设备要检查 root @ io:〜#cat /etc/mdadm.conf ARRAY / dev / md0 level = raid1 num-devices = 2 UUID = 5248ed76:cba39cc2:3082255a:649c0d18 根@ IO:〜# root @ io:〜#cat /boot/grub/menu.lst 默认为0 #8/14/09加了这个 后备1 ##超时秒 #在自动引导默认条目之前,以SEC秒为单位设置超时 #(通常定义的第一个条目)。 超时3 ## hiddenmenu #默认隐藏菜单(按ESC查看菜单) hiddenmenu #增加了这个8/14/09 raid引导,注意这将在下一次内核更新时被吹走 #如果是在魔法标记之后 #这意味着当有内核升级时,我们将不得不手动更新:-( #grub land hd0 = / dev / sda and hd1 = / dev / sdb and hd2 = / dev / sdc我希望 #我们现在把sdc放在第一位 标题Ubuntu 8.04.3 LTS,内核2.6.24-24-generic(raid) 根(hd2,0) #kernel /boot/vmlinuz-2.6.24-24-generic root = UUID = b11d6b08-fdfe-4b0d-adec-4e263455be23 ro kernel /boot/vmlinuz-2.6.24-24-generic root = / dev / md0 ro initrd /boot/initrd.img-2.6.24-24-generic 安静 标题Ubuntu 8.04.3 LTS,内核2.6.24-24-generic 根(hd0,0) kernel /boot/vmlinuz-2.6.24-24-generic root = UUID = d8c402cc-7445-4878-b3aa-c9568b740b51 ro initrd /boot/initrd.img-2.6.24-24-generic 安静 标题Ubuntu 8.04.3 LTS,内核2.6.24-24-generic(恢复模式) 根(hd0,0) kernel /boot/vmlinuz-2.6.24-24-generic root = UUID = d8c402cc-7445-4878-b3aa-c9568b740b51 ro single initrd /boot/initrd.img-2.6.24-24-generic root @ io:〜#blkid / dev / sda1:UUID =“d8c402cc-7445-4878-b3aa-c9568b740b51”SEC_TYPE =“ext2”TYPE =“ext3” / dev / sda5:TYPE =“swap”UUID =“e0509276-30eb-4dcb-8e17-20f8244f5403” / dev / sdb1:LABEL =“alt”UUID =“ea1789eb-9d6f-47a9-a074-18121792b30a”SEC_TYPE =“ext2”TYPE =“ext3” / dev / sdb2:LABEL =“sp”UUID =“3b6d1173-f9fd-4a3e-8e5d-249fc682355b”SEC_TYPE =“ext2”TYPE =“ext3” / dev / sdc1:UUID =“76ed4852-c29c-a3cb-5a25-8230180d9c64”TYPE =“mdraid” / dev / md0:UUID =“b11d6b08-fdfe-4b0d-adec-4e263455be23”SEC_TYPE =“ext2”TYPE =“ext3”
关于Grub的一点是,在Linux系统的其他部分(显然)被调用之前 ,所以它不知道你的软件raid。 它只看到裸露的硬盘。
所以,在RAID1arrays的两个驱动器上安装grub是非常重要的。 BIOS将从中select一个启动,如果该驱动器上没有安装grub,它将不会启动。 (我发现这是困难的方式,当我的一个RAID驱动器在RAID1configuration失败 – 系统拒绝启动,说它没有启动分区..安装GRUB的驱动器已经失败,可启动硬盘,安装Grub就可以了)
所以在提示符下打开grub(你可以在linux下运行),并input:
grub
获取grub提示。
root(hd0,0) setup(hd0) root(hd1,0) setup(hd1)
将grub设置为驱动器上的每个第一个分区(如果启动分区位于驱动器上的其他位置,则更改0以反映正确的分区),然后安装程序将安装grub启动文件。
这应该是你需要做的一切。 如果没有正确的工作,你确定你有正确的启动分区,并且你的驱动器是相同的布局?
对于那些最终遭受我所做错误15的人来说,事实certificategrub(hd0,hd1,hd2 …)中的设备命名scheme在grub启动和grub运行系统正在运行。 我花了一个星期的根(hd2,0),因为这是什么grub告诉我,我想要的驱动器被称为。 但是当我在启动时掉到grubshell上时,我惊讶地发现机器启动时的hd2是在启动时是hd1。 所以我改变了menu.lst使用root(hd1,0),它开始工作。 我希望能挽救别人的头发。
Grub 不知道你的RAID设备; 它只是从驱动器直接读取(在RAID-1设置中),因为驱动器的整个副本就在那里(不会像在RAID-5或RAID-10上那样碎片化)组态)。
你还没有提供足够的信息来确定发生了什么, 有什么好处的是: