我有一个帖子关于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 双启动。