我已经被困在这个问题上 5 天了,所以任何帮助都会很感激> 这是一台运行 Ubuntu 22.04 的 OVH 裸机服务器。操作系统安装在使用两个“系统磁盘”(这些是常规 SSD)的 RAID1 阵列上。在创建我们拥有的 6 个“数据磁盘”(这些是 nvme 磁盘)的 RAID10 阵列时出现此问题。在阵列上创建分区(ext4)、挂载它并修改 fstab 和 mdadm.conf 后,操作系统将无法启动。以下是lsblk
打印输出:
loop0 7:0 0 63.9M 1 loop /snap/core20/2105
loop1 7:1 0 111.9M 1 loop /snap/lxd/24322
loop2 7:2 0 40.9M 1 loop /snap/snapd/20290
loop3 7:3 0 40.4M 1 loop /snap/snapd/20671
sda 8:0 0 447.1G 0 disk
├─sda1 8:1 0 511M 0 part
├─sda2 8:2 0 1G 0 part
│ └─md2 9:2 0 1022M 0 raid1 /boot
├─sda3 8:3 0 445.1G 0 part
│ └─md3 9:3 0 445G 0 raid1 /
├─sda4 8:4 0 512M 0 part [SWAP]
└─sda5 8:5 0 2M 0 part
sdb 8:16 0 447.1G 0 disk
├─sdb1 8:17 0 511M 0 part /boot/efi
├─sdb2 8:18 0 1G 0 part
│ └─md2 9:2 0 1022M 0 raid1 /boot
├─sdb3 8:19 0 445.1G 0 part
│ └─md3 9:3 0 445G 0 raid1 /
└─sdb4 8:20 0 512M 0 part [SWAP]
nvme0n1 259:0 0 3.5T 0 disk
└─nvme0n1p1 259:6 0 3.5T 0 part
└─md127 9:127 0 10.5T 0 raid10 /db
nvme1n1 259:1 0 3.5T 0 disk
└─nvme1n1p1 259:8 0 3.5T 0 part
└─md127 9:127 0 10.5T 0 raid10 /db
nvme2n1 259:2 0 3.5T 0 disk
└─nvme2n1p1 259:9 0 3.5T 0 part
└─md127 9:127 0 10.5T 0 raid10 /db
nvme3n1 259:3 0 3.5T 0 disk
└─nvme3n1p1 259:10 0 3.5T 0 part
└─md127 9:127 0 10.5T 0 raid10 /db
nvme4n1 259:4 0 3.5T 0 disk
└─nvme4n1p1 259:11 0 3.5T 0 part
└─md127 9:127 0 10.5T 0 raid10 /db
nvme5n1 259:5 0 3.5T 0 disk
└─nvme5n1p1 259:12 0 3.5T 0 part
└─md127 9:127 0 10.5T 0 raid10 /db
文件系统:
UUID=9079d740-3f55-4f57-880b-56f6a628494f / ext4 defaults 0 1
UUID=e780ca2c-b474-4ae9-9c1d-6224a23fca6b /boot ext4 defaults 0 0
LABEL=EFI_SYSPART /boot/efi vfat defaults 0 1
UUID=d3ebca74-ffff-4b55-a9e4-70c002e3edf5 swap swap defaults 0 0
UUID=b8298672-7b7c-48bf-9022-9d9408adafeb swap swap defaults 0 0
UUID=257b2715-613a-44c7-8744-7c159764c09a /db ext4 defaults 0 0
mdadm.conf:
现有 MD 阵列的定义
ARRAY /dev/md/md2 metadata=1.2 UUID=109fefd8:aa46fdd6:bddb613e:892bce00 name=md2
ARRAY /dev/md/md3 metadata=1.2 UUID=950bfa3c:f52d5cfd:9f9c1435:0d85a63f name=md3
此配置由 mkconf 于 2024 年 1 月 14 日星期日 18:51:06 +0000 自动生成
ARRAY /dev/md/md2 metadata=1.2 name=md2 UUID=109fefd8:aa46fdd6:bddb613e:892bce00
ARRAY /dev/md/md3 metadata=1.2 name=md3 UUID=950bfa3c:f52d5cfd:9f9c1435:0d85a63f
ARRAY /dev/md/md0 metadata=1.2 name=ns3229089:md0 UUID=a38b6d22:2e7220cb:79f5ce7d:e0c3d63a
操作系统已全面更新。已尝试:
- 在中添加“resume=none”
/etc/initramfs-tools/conf.d/resume
- 将 btrfs 列入黑名单
/etc/modprobe.d/blacklist
- 注释掉“GRUB_CMDLINE_LINUX="nomodeset iommu=pt console=tty0 console=ttyS0,115200n8”(不确定为什么会存在这个,它是由默认的 OVH 安装添加在那里的)
无论我怎么尝试,操作系统总是卡在同一行。我可以进入恢复模式并操作文件,但就是无法启动系统。
答案1
同样的问题,最后它运行了。我当时在 madm.conf 文件中对 RAID ARRAYS 进行了双重声明,所以我将其减少到较新的版本。我的服务器是 Debian 12、2 SSD、4 HD,全新安装。在此操作中,我不会安装 RAID 5 HD 阵列,只安装 RAID1 BOOT 和 RAID1 for /。因此,在恢复模式下,我以 root 用户身份执行了此操作:
mount /dev/md126 /mnt
mount -t proc proc /mnt/proc/
mount -t sysfs sys /mnt/sys/
mount -o bind /dev /mnt/dev/
mount -t devpts devpts /mnt/dev/pts
mkdir -p /run/chroot/lock
mount -o bind /run/chroot /mnt/run
chroot /mnt /bin/bash
mount /dev/md127 /boot
source /etc/default/locale
update-initramfs -u -v
这将挂载根分区 md126 和启动分区 md127。使用 chroot 切换,将根分区从救援分区切换到根分区,并创建启动所需的新 initramfs,其中包含所需的脚本、二进制文件和内核模块
然后退出,干净地卸载并重新启动。感谢所有人
答案2
终于解决了。问题出在initramfs
。再次在恢复模式下运行sudo update-initramfs -u
命令似乎可以解决问题。
不完全确定为什么会发生这种情况,需要进一步探索。一个假设是该mdadm.conf
文件有两次写入初始操作系统安装 RAID1 阵列。
无论如何,我希望其他人发现这很有帮助。