fakeraid + UEFI + GPT - 使用 dmraid 安装 debian 后,grub 未检测到 raid 卷

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

我可以使用 ubuntu live chroot 进入系统而不是 debian 救援模式并完成安装步骤,除了实际设置 grub 的 root 之外。

据我所知,这似乎是 grub 没有正确使用 mdadm 或根本没有使用 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 吗?

答案1

我终于找到了一种方法来做到这一点,但不使用 fakeraid (sataraid) 和 RAID0。相反,我禁用了 BIOS raid 并将其设置为 AHCI。

然后,我使用 Ubuntu live 擦除驱动器,并为 Windows 创建一个空分区,然后在第一个磁盘中创建一个用于交换的分区。我使用 gparted 来执行此操作,因为它总是抱怨 Windows GPT 表。然后我像往常一样安装了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 双启动。

相关内容