Uefi

fakeraid + UEFI + GPT - 使用 dmraid 安裝 debian 後 grub 未檢測到 raid 卷

  • January 29, 2017

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

引用自:https://unix.stackexchange.com/questions/340782