Linux将磁盘转换上层成LVM
Contents
这篇文章记录了如何将磁盘的上层结构换成LVM,来自于老的笔记部分内容可能没有再次验证仅供参考。
环境
CentOS7.x
需求是要去调整 / 的大小,但是当初部署的时候是一个自动分区的系统很奇怪,各种软链接已经乱了套,后续是决定改上层结构用lvm来去管理。
准备
首先给节点添加一个新的磁盘
添加后我们可以进行初始化磁盘的操作,将会分成两个区
/boot 200M 左右的大小
剩下的全部给后续的lvm
初始化lvm:
pvcreate /dev/vda2
vgcreate centos /dev/vda2
lvcreate --extents 100%FREE --name root centos
初始化文件系统
mkfs.ext2 /dev/vda1
mkfs.xfs /dev/mapper/centos-root
挂载分区
mkdir -pv /mnt/centos
mount /dev/mapper/centos-root /mnt/centos
mkdir -pv /mnt/centos/boot
mount /dev/vda1 /mnt/centos/boot
同步系统到新的分区
可以使用rsync来去同步目前系统的所有文件到新的分区:
rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /mnt/centos
收尾工作
修改fstab,首先可以使用blkid
查看新分区的uuid再去写到fstab中如:
blkid
/mnt/centos/etc/fstab
UUID=682dff8d-3480-4f52-9f6a-1f9e832e5880 /boot ext2 defaults 0 0
UUID=0db29396-38bb-4a7b-94b0-344e7c122fd4 / xfs defaults 0 0
进入choot
挂载必要的文件系统:
mount --types proc /proc /mnt/centos/proc
mount --rbind /sys /mnt/centos/sys
mount --make-rslave /mnt/centos/sys
mount --rbind /dev /mnt/centos/dev
mount --make-rslave /mnt/centos/dev
进入chroot:
chroot /mnt/centos
重新生成内核和grub
rm -rf /boot/*
yum install kernel -y
grub2-install /dev/vda
grub2-mkconfig -o /boot/grub2/grub.cfg
exit
其他
关机之后取消连接原有磁盘再去开机。
开机验证原有的服务等是否正常,确认无误之后再去将原有的磁盘文件删除释放空间。
后记
这个需求是一个比较特殊的需求,并且这也做转换耗费的精力也是比较多的,至少需要和当前一样占用的磁盘大小。 如果说是简单的扩容是可以直接加好容量然后growpart之类的。
如果你觉得这篇文章对你有所帮助,欢迎赞赏~
Sponsor