Software-Raid

Linux RAID 1:如何進行二級 HD 引導?

  • July 17, 2014

我在 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. 如何檢測 /dev/sdb 的 MBR 中是否安裝了 grub?

  2. 在 /dev/sdb 中執行 grub-install 是否安全?這是使其可啟動的正確方法嗎?

  1. 如何檢測 /dev/sdb 的 MBR 中是否安裝了 grub?

您可以發出:

# 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
  1. 在 /dev/sdb 中執行 grub-install 是否安全?這是使其可啟動的正確方法嗎?

是的,您需要grub在陣列中的兩個磁碟上都安裝。

你標記了軟體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,否則它將繞過引導扇區並載入核心(取決於程式碼),並且只能在同一個磁碟內。

引用自:https://serverfault.com/questions/612529