fakeraid + UEFI + GPT - 使用 dmraid 安裝 debian 後 grub 未檢測到 raid 卷
我在debian 論壇上也有一個文章,但它的流量似乎比這裡少,所以我想我也會在這裡試試運氣。
我正在嘗試使用 UEFI 和 GPT 在 fakeraid 上安裝 Windows 10 和 debian 以及可能更多的發行版。因此,我遵循本指南並使用 dmraid 可以成功分區和安裝。分區如下所示:
/dev/mapper/isw_dagfijbabd_RAID0SYS |- Microsoft Recovery |- EFI / boot |- Microsoft MRS |- Windows |- swap |- LVM PV \ |-- VG0 \ |--- LV OS_2 |--- LV debian |--- LV home
問題是 grub 在為核心設置 root 時似乎沒有看到 raid。我得到這個錯誤
modprobe: module dm-raid45 not found in module.dep Gave up waiting for root device. Common problems: - Boot args (cat /proc/cmdline) - Check rootdelay= (did the system wait long enough?) - Check root= (did the system wait for the right device?) - Missing modules (cat /proc/modules; ls /dev) ALERT! /dev/mapper/VG0-debian does not exist. modprobe: module ehci-orion not found in modules.dep
除了實際為 grub 設置 root 之外,我可以使用 ubuntu live chroot 進入系統而不是 debian 救援模式並完成安裝步驟。
據我所知,grub 沒有正確或根本沒有使用 mdadm 似乎是一個問題。所以我需要編輯 initramfs 以某種方式包含 mdadm,對嗎?但這是如何工作的?我已經使用來自 ducea.com 的本指南成功安裝了 initramfs。但我將如何繼續?
# All work is done in a temporary directory mkdir /tmp/initrdmount # Copy the image, uncompress it cp /boot/initrd.img-2.6.15-1-686-smp /tmp/initrd.img.gz gunzip -v /tmp/initrd.img.gz # Extract the content of the cpio archive cd /tmp/initrdmount cpio -i < /tmp/initrd.img
編輯:我還將添加從 initramfs shell 收集的一些資訊:
# this depends ofc on whether I use dmraid or mdadm for kernel boot (initramfs) cat /proc/cmdline BOOT_IMAGE=/boot/vmlinuz-3.16.0.4-amd64 root=/dev/mapper/VG0-debian ro {dmraid/mdadm}=true (initramfs) cat /proc/mdstat # returns nothing (initramfs) cat /etc/mdadm/mdadm.conf ARRAY metadata=imsm UUID=xxxx:xxxx:xxxx:xxxx ARRAY /dev/md/isw_dagfijbabd_RAID0SYS container=xxxxxxxxxxxxxxxx member=0 UUID=xxxxxx:xxxxxx:xxxxxx:xxxxxx ARRAY /dev/md/isw_dagfijbabd_RAID0RST container=xxxxxxxxxxxxxxxx member=1 UUID=xxxxxx:xxxxxx:xxxxxx:xxxxxx (initramfs) ls /dev/mapper/ control isw_dagfijbabd_RAID0RST isw_dagfijbabd_RAID0SYS (initramfs) lvm pvs # returns nothing
無論我在核心引導行中使用 dmraid 還是 mdadm,這個輸出實際上是相同的。我意識到我可以在 /sbin 中找到 mdadm 並且檢測到 RAID0 磁碟 isw_dagfijbabd_RAID0SYS / dm-0 但不是它的內容。
我想知道 dmraid 和 mdadm 是否存在干擾。我應該從 initramfs 中刪除 dmraid 嗎?
我終於找到了一種方法來做到這一點,但不使用 fakeraid (sataraid) 和 RAID0。相反,我禁用了 BIOS RAID 並將其設置為 AHCI。
然後我使用 Ubuntu live 來擦除驅動器並為 Windows 創建一個空分區,然後在第一個磁碟中創建一個用於交換的分區。我使用 gparted 來執行此操作,因為它總是抱怨 windows GPT-table。然後我像往常一樣安裝了windows。
然後我在 linux 安裝程序中使用 LVM 分區來創建兩個物理卷 (PV),一個在我放置 windows 的驅動器上的剩餘空間中,另一個佔據了第二個驅動器的整個空間。然後,我創建了一個包含這兩個物理卷的單個卷組 (VG)。然後我可以使用 LV 來創建我想要的分區。
我是這樣做的
HDD 1 HDD 2 ================================ =============================== || Windows | Swap | PV 1 || || PV 2 || || (boot/EFI) | | || || || ================================ =============================== | | V V ------------------------------------------------ | Volume Group 0 | ------------------------------------------------ | | | | V V V V -------- -------- --------------- -------- | Lv1 | | Lv2 | | LV3 | | | | Fedora | | Debian | | Home | | Unused | | 20 GB | | 20 GB | | ~100 GB | | | -------- -------- --------------- --------
我不是這些事情的專家,我不知道這將如何影響性能與 RADI0。但它提供相同的功能而完全不干擾視窗。預設情況下,至少 Fedora、Debian 和 Ubuntu 安裝程序會檢測到 LVM 分區,並且 GRUB 是開箱即用的。
我不知道這是否是常識,我只是遲到了聚會(但我仍然沒有在任何一個論壇上評論甚至一個評論,所以可能不是那麼明顯)。無論如何,我只是想與遇到同樣困難的任何人分享這個。我強烈推薦這種設置,而不是花費無數小時試圖找出 fakeraid dualboot。