GRUB2 未檢測到 RAID 分區上的作業系統
我最近向系統添加了一個驅動器,並成功地對分區進行了突襲(RAID-1),但引導分區除外。我已經準備好並進行了鏡像,但無法讓 GRUB2 (update-grub) 找到它。
系統:Ubuntu 11.04 突襲元數據:1.2
如果我執行 update-grub,它會在 /dev/sda2 分區(目前根)上找到核心映像,但不會在 /dev/md127 上找到映像。
/dev/md127 由“missing”和“/dev/sdb2”組成。
/dev/sdb 上的 fdisk 確認 sdb2 的類型為 fd(raid 自動檢測)並且也被標記為可引導。
我有兩件事想做。
- 使 /dev/sdb2 上的 boot.cfg 有一個菜單選項以將根目錄設置為 /dev/md127
- 將 grub 安裝到 /dev/md127 上,以便使用來自那裡的實際 boot.cfg。
磁碟分區:
$ sudo sfdisk -l /dev/sda Disk /dev/sda: 30394 cylinders, 255 heads, 63 sectors/track Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sda1 0+ 13 14- 112423+ de Dell Utility /dev/sda2 * 14 7837 7824 62846280 83 Linux /dev/sda3 7838 8882 1045 8393962+ 82 Linux swap / Solaris /dev/sda4 8883 30393 21511 172787107+ 5 Extended /dev/sda5 8883+ 30393 21511- 172787076 83 Linux $ sudo sfdisk -l /dev/sdb Disk /dev/sdb: 30394 cylinders, 255 heads, 63 sectors/track Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdb1 0+ 13 14- 112423+ de Dell Utility /dev/sdb2 * 14 7837 7824 62846280 fd Linux raid autodetect /dev/sdb3 7838 8882 1045 8393962+ 82 Linux swap / Solaris /dev/sdb4 8883 30393 21511 172787107+ 5 Extended /dev/sdb5 8883+ 30393 21511- 172787076 fd Linux raid autodetect
這裡要注意的是 /dev/sdb2 是 raid 的一部分,而 /dev/sda2 不是。/dev/sda2 是目前執行良好的非 RAID 引導。我想切換到raid 啟動,當這很好時,將sda2 轉換為raid 並將其添加到“失去的”raid 驅動器中。
$ cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md5 : active raid1 sda5[2] sdb5[1] 172785980 blocks super 1.2 [2/2] [UU] md127 : active raid1 sdb2[1] 62846208 blocks [2/1] [_U]
mdadm.conf 的尾部。這是由 /usr/share/mdadm/mkconf 自動生成的
# This file was auto-generated on Thu, 30 Jun 2011 14:38:15 -0500 # by mkconf $Id$ ARRAY /dev/md127 UUID=352d87d1:23d5c92d:04cfec0a:0340cbb1 ARRAY /dev/md/5 metadata=1.2 UUID=7ea17a90:6cbf0816:feef74da:5fa4f88a name=ramuh:5
從 /dev/sda2 正常啟動的 grub.cfg 文件
menuentry 'Ubuntu, with Linux 2.6.38-11-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os { recordfail set gfxpayload=$linux_gfx_mode insmod part_msdos insmod ext2 set root='(/dev/sda,msdos2)' search --no-floppy --fs-uuid --set=root 7bbe19ee-c62c-4674-b0ca-281d1cedac00 linux /boot/vmlinuz-2.6.38-11-generic-pae root=UUID=7bbe19ee-c62c-4674-b0ca-281d1cedac00 ro quiet splash vt.handoff=7 initrd /boot/initrd.img-2.6.38-11-generic-pae
謝謝!
Grub2 現在對
md
設備有了一些了解。它應該根據需要通過可載入模組提供。確保您的系統了解它需要這些
md
設備才能啟動。確保列出所有陣列/etc/mdadm/mdadm.conf
並執行:# dpkg-reconfigure mdadm
(注意:我最近在我的 Debian 系統上也有類似的東西,但它也應該適用於 Ubuntu)
在 grub 菜單中,按“e”編輯菜單條目並手動更改 root= kernel 參數以指向 raid 陣列並手動從它啟動。然後執行 update-grub,它會看到你目前正在從 RAID 陣列啟動,並配置它自己在將來這樣做。
此外,您不需要單獨的 /boot 分區。