我正在准备基于 PC 的 NAS 系统。该系统使用 RAID 5 配置中的 4 个 HD。我希望系统也能从 RAID 启动,因此我选择了支持 Intel 快速存储技术的主板。启用该功能后,在 BIOS 中创建了 RAID 卷。安装是从 Debian 稳定版(bullseye)netinst iso 映像以专家安装模式执行的。在安装过程中,在对磁盘进行分区之前,我必须激活第二个控制台并手动运行:
mdadm -Asv
此后,安装程序开始查看 RAID(/dev/md126
),我可以:
- 创建 ESP(
/dev/md126p1
)和 boot(/dev/md126p2
)分区。 - 在 上创建加密卷
/dev/md126p3
。 - 在加密卷和
mynas_vg
其中的卷组上创建 LVM。 - 在组中创建
swap
、root
(用于系统)和data
(用于服务的目录)卷。mynas_vg
- 继续安装系统。
安装正确。然而,系统重启后,我收到一系列消息(其中一些消息重复多次):
Volume group mynas_vg not found
Cannot process volume group mynas_vg
cryptsetup: Waiting for encrypted source device UUID=xxxxxxxxxxxxxx
最后启动过程被中断了,我收到
(initramfs)
提示。系统无法启动。
答案1
即使没有使用安装程序的救援模式,我也已经解决了该问题。
按照(initramfs)
提示我运行:
IMSM_NO_PLATFORM=1 mdadm -Asv
此后,/dev/md126
及其分区都可用。然后我运行:
cryptsetup luksOpen /dev/md126p3 md126p3_crypt
卷组mynas_vg
开始可见。我已将(initramfs)
其保留CTRL+D
,并且系统已正确启动。
在启动的系统中,我编辑了目录中的文件/usr/share/initramfs-tools/scripts/local-block
:
- 在
cryptroot
文件中,我已将:更改PREREQ=""
为PREREQ="mdadm"
- 在该
mdadm
文件中,我添加了以下行:#!/bin/sh PREREQ="multipath" export IMSM_NO_PLATFORM=1 # <-- This line is added prereqs() { echo "$PREREQ" }
完成上述修改后我运行了:
update-initramfs -c -k all
然后我重新启动了系统。使用经过修改的初始 ramdisk,系统可以正确启动。它显示三次有关不可用mynas_vg
组的消息,一次有关等待加密源设备的消息,但随后要求输入 md126p3_crypt 磁盘的密码,输入密码后,系统可以正确启动。
当然,对于其他 raid 参数,RAID 设备的名称可能与 不同/dev/md126
。如果您想按照我的方案操作,则必须相应地更改该名称以及从中派生的所有其他名称。
请记住,系统更新可能会恢复修改脚本的原始内容。如果您的系统停止启动,您可能需要重复上述过程。