linux 系统迁移到lvm分区

对于普通分区磁盘空间不够,而采用lvm分区,原来系统进行迁移或者备份还原。

dd命令用于将整个硬盘进行备份,包括uuid,适用于对对整个物理盘的备份

tar 备份可以对整个系统进行归档压缩,这个需要在启动盘环境下进行备份

dump这个也是备份,还原的工具

rsync 这个备份工具可以在系统运行下进行备份

 

对于lvm迁移的 步骤可以去自己搜索一下,无非就是 备份还原。

下面要说的就是引导启动问题了 :新添加的硬盘做lvm分区后,备份系统到分区,但是grub需要重新安装,grub制作一个initramfs-$(uame -r).img启动镜像 包含lvm的模块,这样才可以正确引导到系统

 

 

 =================================================================================================================================================

 

对于如何备份系统和还原系统到 lvm分区这里就不多说

这里说明还原了系统不能启动的问题

注意一下几点:

1.boot分区不支持ext4 ,支持ext2,3或者xfs;最好是普通分区,这样grub配置文件就不用insmod lvm了

2.内核命令行 需要这样写:root=/dev/mapper/cl-root rd.lvm.lv=/cl/root quit (命令行可以参照原来grub.cfg 添加命令)

3.initramfs初始加载系统(有的是initrd) ,这个文件必须要支持lvm模块和ext4模块,(如果你的分区文件类型是ext4;默认支持xfs),如果没有lvm模块的话 挂载不了sysroot,

因为备份还原系统到 lvm分区,这个是没有问题的,但是之前的启动项是没有加载lvm 模块,开始 search root 不能识别lvm 分区,不能挂载lvm 分区到 root ;需要使用dracurt工具来添加上面需要的lvm和ext4模块,重新生成一个initramfs 文件系统

  dracut -f -k "lib/modules/$(uname -r)/kernel/" --add-drivers ext4 --add lvm 

在/boot文件覆盖原来的 initramfs-$(uname -r).img

之后参照还原部署 把initramfs文件替换掉,如果还原的系统文件没问题是可以支持启动的

 

dracut --list-modules 可以查看dracut 支持的模块有哪些

dracut -f initramfs 这个是覆盖之前的文件

dracut -k 指定内核模块的位置

dracut --add-driver 这个是添加内核模块到 initramfs 

dracut -add "lvm" 这个是从 dracut --list-modules 添加模块到initramfs

dracut -m "lvm" 从/usr/dracut/modules.d 加载模块到initramfs  

 

只有是 -add 的选项 添加模块,-m -d 这个是 构建模块时候从不同的模块集合构建 initramfs

 ================================================================================================================================================

以上是踩坑总结语言组织欠佳,如果在迁移的时候遇到问题可以参考 redhat  、centos是dracut ;ubuntu 用得 mkinitcpio 这个可以了解下

  

 

posted @ 2022-02-20 12:42  caibird_bg  阅读(576)  评论(0编辑  收藏  举报