lsblk

lsblk

最近,我不得不用 RAID1(2 个三星 NVMe 磁盘)替换 Centos 7.5 服务器上有故障的硬盘

更换磁盘后,服务器使用另一个驱动器启动,我使用 fsdisk 在新磁盘上复制了相同的分区,将分区添加到 RAID,在 RAID 同步后,我使用以下命令在新 HD 上安装了 GRUB:

grub2-install /dev/nvme1n1

以使其可启动(因此如果其他磁盘出现故障,服务器仍然能够启动)。

重新启动服务器后,出现了 GRUB 菜单,但是在选择任何内核后,服务器停止启动并出现错误:

symbol 'grub_efi_secure_boot' not found

在 BIOS 中更改启动顺序并首先选择旧驱动器后,我设法重新启动了服务器。

我怎样才能使新磁盘可启动?请注意,服务器有 BIOS,而不是 UEFI,并且我使用预安装的映像获得它。

lsblk

NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
nvme0n1     259:0    0   477G  0 disk
├─nvme0n1p1 259:2    0    32G  0 part
│ └─md0       9:0    0    32G  0 raid1 [SWAP]
├─nvme0n1p2 259:3    0   512M  0 part
│ └─md1       9:1    0 511.4M  0 raid1 /boot
└─nvme0n1p3 259:4    0 444.4G  0 part
  └─md2       9:2    0 444.3G  0 raid1 /
nvme1n1     259:1    0   477G  0 disk
├─nvme1n1p1 259:5    0    32G  0 part
│ └─md0       9:0    0    32G  0 raid1 [SWAP]
├─nvme1n1p2 259:6    0   512M  0 part
│ └─md1       9:1    0 511.4M  0 raid1 /boot
└─nvme1n1p3 259:7    0 444.4G  0 part
  └─md2       9:2    0 444.3G  0 raid1 /

猫/proc/mdstat

Personalities : [raid1]
md1 : active raid1 nvme1n1p2[2] nvme0n1p2[0]
      523712 blocks super 1.2 [2/2] [UU]

md2 : active raid1 nvme1n1p3[2] nvme0n1p3[0]
      465895744 blocks super 1.2 [2/2] [UU]
      bitmap: 2/4 pages [8KB], 65536KB chunk

md0 : active raid1 nvme0n1p1[0] nvme1n1p1[2]
      33521664 blocks super 1.2 [2/2] [UU]

unused devices: <none>

答案1

我设法通过重建 initramfs 来解决启动问题:重建 RAID 阵列并在新磁盘上安装 grub2 后,我运行

dracut -f

建议先备份当前的 initramfs img 文件。您可以为系统中任何可用的内核重建 initramfs img 文件。查看更多这里

我不知道为什么这是必要的,因为新磁盘与旧磁盘完全相同(制造商/型号),所以不需要存储在 initramfs 中的新驱动程序。

相关内容