我的原来ubuntu20.04系统装的时候不是LVM格式的分区, 所以先将新硬盘转成LVM,再将原来的系统dd到新硬盘,从新硬盘的分区启动,之后再将原来的分区转成LVM,在融入进来
1:将新硬盘制作成 LVM分区
我的新硬盘时/dev/sdb
用fdisk /dev/sdb
(要是原来的/dev/sdb上已经有分区,用d
可以删除,看自己的情况,删与不删)
用n
创建新分区,全部回车默认,
用l
查看一下LVM是多少号,网上大多是8e,而我的是31
用t
然后输入31
将新建的分区/dev/sdb1
转换成LVM格式
2: 用PV, VG, LV创建逻辑卷
了解一下相关的还是方便后续工作也就几分钟
pvcreate /dev/sdb1
创建物理卷
vgcreat vg1 /dev/sdb1
创建卷组,vg1是卷组的名字
lvcreate -L 33G -n lv1 vg1
33G可以写 +100%FREE(原来的系统就是要复制到这个lv1)
用mkfs.ext4 /dev/vg1/lv1
设置格式
好了逻辑卷创建完了,可以查看一下
这是用lsblk查看的结果
这是用blkid查看的结果
复制系统
我不知道路径/dev/vg1/lv1
和路径/dev/mapper/vg1-lv1
有什么不同,有明白的人可以告诉我一下吗
但我还是把系统复制到了后边那个路径了
dd if=/dev/sda2 of=/dev/mapper/vg1-lv1
复制系统
再开一个终端执行watch -n 5 pkill -USR1 -x dd
,就可以在原来的终端看执行过程
时间可能有些长,我是50M/s
这里复制完之后有一个问题,就是/dev/mapper/vg1-lv1
的uuid和/dev/sda2
的uuid一样,
参考这个链接更改掉前者
更改启动
网上有说更改/boot/grub/grub.conf 文件重启的,但是我没有成功
我用如下方法,先在/mnt
文件夹下创建个文件夹newroot
,将/dev/vg1/lv1/(就是复制的系统)挂在到该文件夹下,命令如下
mkdir /mnt/newroot
mount /dev/vg1/lv1 /mnt/newroot/
mount --bind /dev /mnt/newroot/dev/
mount --bind /sys /mnt/newroot/sys/
mount -t proc /proc /mnt/newroot/proc/
chroot /mnt/rootfs/
此时如果切换成功,就相当与我们已经在复制过来的系统了
**接着是要更改/etc/fstab
中的uuid
用blkid
查看一下啊/dev/mapper/vg1-lv1
的UUID
将它复制到对应的/
文件目录那行,
还有个启动引导的boot那行,我的系统启动分区时分开的,所以uuid不用更改,前面我也没有将它从/dev/sda1
复制到新硬盘的其他分区,要是你复制了可以做相应的更改
另外就是启动分区不能时LVM格式的,要么时ext要么是vfat格式的
exit
退出
如果你的开机没有grub引导,这里可以参考这个链接设置一下,让开机有grub引导
update-grub
你会看到它检测到了新磁盘分区上面的系统
reboot
选择新磁盘分区系统进入
祝你好运
参考链接
链接1
链接2
链接3