Linux RAID 1:如何进行辅助 HD 启动?

Linux RAID 1:如何进行辅助 HD 启动?

我在 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

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 安全吗?这是使其可启动的正确方法吗?

是的,您需要grub在阵列中的两个磁盘上进行安装。

答案2

您标记了 software-raid,因此学习 grub 可以帮助:RAID 故障(软件 RAID)后如何启动?

GRUB Legacy 在 /boot/grub/device.map 文件中识别 HDD 设备并将它们映射到 Linux 设备。GRUB Legacy(启动管理器)文件识别磁盘的方式与 Linux 不同。第一个磁盘将被识别为 (hd0),而不是 /dev/sda。

关于 grub 命令的教程可以在网上的其他地方找到。

本质上,链接中的作者运行 grub 命令,其中每个 Linux 设备都被视为 GRUB Legacy 的同一驱动器(根据 device.map 文件,它是这样认为的),例如,三个磁盘都是 (hd0),而不是 (hd1) 等等。这确保了 (hd0) 和 /dev/sda 等之间的正确映射,以实现冗余目的。

但是,链接作者指出的解决方案不会修改 MBR。备用软件 RAID 特定解决方案需要在磁盘故障之前完成;否则,您将需要一个启动磁盘/设备。对于 RAID 1 阵列,每个磁盘的 MBR 应该相同,即使使用 LVM 也是如此。MBR 引导加载程序无法将系统引导到另一个磁盘,只能引导到同一引导标记分区的 GRUB Legacy,否则它将绕过引导扇区并加载内核(取决于代码),并且据我所知,只能在同一磁盘内进行。

相关内容