我在Centos 6.5服务器上有以下RAID 1:
# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sdb1[3] 974713720 blocks super 1.0 [2/1] [_U] bitmap: 7/8 pages [28KB], 65536KB chunk md1 : active raid1 sdb2[3] sda2[2] 2045944 blocks super 1.1 [2/2] [UU] unused devices: <none> # df -h Sist. Arq. Size Used Avail Use% Montado em /dev/md0 915G 450G 420G 52% / tmpfs 7,8G 0 7,8G 0% /dev/shm
/ dev / sda即将失败。 我甚至把它标记为有问题,因为它导致了读取错误。
今天我得到了新的HD,它将取代/ dev / sda。
问题是,当我拔掉当前的/ dev / sda时,我不能用/ dev / sdb启动它。 看起来PC的BIOS在/ dev / sdb上找不到可引导的东西。
1)如何检测grub是否安装在/ dev / sdb的MBR中?
2)在/ dev / sdb中运行grub-install是否安全? 这是使它可引导的正确方法吗?
1)如何检测grub是否安装在/ dev / sdb的MBR中?
你可以发出:
# dd if=/dev/sda bs=512 count=1 | xxd | grep -i grub 1+0 records in 1+0 records out 512 bytes (512 B) copied, 0.00103986 s, 492 kB/s 0000180: 4752 5542 2000 4765 6f6d 0048 6172 6420 GRUB .Geom.Hard
2)在/ dev / sdb中运行grub-install是否安全? 这是使它可引导的正确方法吗?
是的,您需要在arrays中的两个磁盘上安装grub 。
您标记了软件RAID,所以学习GRUB可以帮助: 如何在RAID故障(软件RAID)后启动?
GRUB Legacy可识别/boot/grub/device.map文件中的HDD设备,并将其映射到Linux设备。 GRUB Legacy(引导pipe理器)文件不能像Linux那样识别磁盘。 第一个磁盘将被标识为(hd0),而不是/ dev / sda。
关于grub命令的教程可以在网上find。
本质上,链接中的作者运行grub命令,其中每个Linux设备被视为与GRUB Legacy(根据device.map文件看到的)相同的驱动器,例如(hd0),而不是(hd1)等等。这确保了(hd0)和/ dev / sda等之间的正确映射,以实现冗余目的。
链接作者指出的解决scheme不会修改MBR。 备用的软件RAID特定的解决scheme需要在磁盘故障之前完成; 否则,你将需要一个启动磁盘/设备。 即使使用LVM,每个磁盘的MBR对于RAID 1arrays的每个磁盘也应该是相同的。 MBR引导加载程序不能将系统引导到另一个磁盘,只能引导到相同的引导标志分区的GRUB Legacy,或者它将绕过引导扇区并加载内核(取决于代码),并且只能在我了解的同一个磁盘内。