我在默认 CentOS 7.3 安装上配置了 DRBD,如下所示:
/dev/centos/home
占用了所有空间,sda2
因此减少了空间并创建了/dev/centos/home
(20% 空间)和/dev/centos/drbd
(剩余空间使用 lvcreate -l 100%VG -n drbd centos
)
DRBD 资源设备为/dev/drbd0
,磁盘/dev/mapper/centos-drbd
格式为ext4
.
现在每次我重新启动系统时都会出现错误:
Warning: /dev/centos/root does not exist
Warning: /dev/centos/swap does not exist
Warning: /dev/mapper/centos-root does not exist
我从 dracut shell 运行:
$ lvm vgscan
$ lvm vgchange -ay
$ exit
并且系统启动正常。但它再次失败reboot
。
有什么解决办法吗?
更新:找到原因,drbd 设备导致了问题。我从两台服务器上删除了它,它修复了第二台服务器,但没有修复第一台服务器。blkid
仍然显示错误的 UUID 和类型/dev/sda2
$ blkid
/dev/sda1: UUID="bdfa3672-b24b-41ec-88f8-d0f0a81057d1" TYPE="xfs"
/dev/sda2: UUID="d8d241f07976f3ce" TYPE="drbd"
/dev/mapper/centos-swap: UUID="3c8653bb-060a-4e46-8eaa-ce51637752ee" TYPE="swap"
/dev/mapper/centos-root: UUID="93941d8b-22e0-4ad7-8666-1ce8ba8d1109" TYPE="xfs"
/dev/mapper/centos-home: UUID="63c9a5ad-9b4b-4852-8e95-22b356d8729a" TYPE="xfs"
答案1
您看到此情况的原因是由于 initramfs 内核映像是为其运行的特定系统构建的,因此迁移到新硬件将导致其无法启动。
在紧急模式下重建 initramfs(或进入救援模式):
然后
列出您拥有的 initramfs 映像:
ls -ltrh /boot/initramfs-*
找到您正在使用的内核版本并创建它的备份:
cp -iv /boot/initramfs-3.10.0-1062.el7.x86_64.img /boot/initramfs-3.10.0-1062.el7.x86_64.img.back
为该特定内核重建内核映像
dracut -f
选择新的内核镜像
ls -ltrh /boot/initramfs-*
指定新的内核版本(例如):
dracut -f /boot/initramfs-3.10.0-1062.el7.x86_64.img 3.10.0-1062.el7.x86_64
进入GRUB配置
vim /boot/grub2/grub.cfg
删除旧的菜单项并确保新的菜单项位于所有菜单项的顶部
生成 GRUB 配置文件
grub2-mkconfig
重启
完毕
答案2
- 在Centos中编辑
/etc/default/grub
如下:GRUB_CMDLINE_LINUX="resume=/dev/mapper/cs-swap rd.lvm.lv=cs/root rd.lvm.lv=cs/swap rhgb quiet"
- 将交换路径更改为正确的路径
- 跑步
和grub2-mkconfig
dracut -f
- 重启