在没有预先安装 LVM 的 CentOS 7 系统上,你可以通过以下步骤安装 LVM 并将原来的根分区迁移到 LVM 上。这个过程包括安装 LVM、创建新的逻辑卷,并将现有的根分区迁移到 LVM。
步骤概述
- 安装 LVM 相关工具
- 创建新的 LVM 逻辑卷
- 迁移现有根分区到 LVM 逻辑卷
- 更新引导加载器配置
- 测试新配置并移除旧的根分区
1. 安装 LVM 工具
首先,安装 LVM
软件包,如果系统中没有它:
yum install lvm2
确认 LVM
工具已成功安装:
pvscan
2. 准备新的 LVM 分区
- 检查可用的磁盘空间
使用以下命令检查系统中的可用磁盘空间:
lsblk
找到未分配的磁盘空间或额外的磁盘设备。
- 创建物理卷
如果你有未使用的磁盘或分区,可以将其转换为物理卷:
pvcreate /dev/sdb
将 /dev/sdb
替换为你的实际设备名称。
- 创建卷组
创建一个新的卷组,例如 vg_root
,并将物理卷添加到卷组中:
vgcreate vg_root /dev/sdb
- 创建逻辑卷
创建一个逻辑卷 lv_root
,其大小与你现有的根分区大小相同或更大:
lvcreate -L 20G -n lv_root vg_root
20G
是逻辑卷的大小,你可以根据需要调整。
- 格式化逻辑卷
将逻辑卷格式化为合适的文件系统,例如 ext4
:
mkfs.ext4 /dev/vg_root/lv_root
3. 迁移现有根分区
- 挂载新创建的 LVM 逻辑卷
将新的 LVM 逻辑卷挂载到临时挂载点,例如 /mnt
:
mount /dev/vg_root/lv_root /mnt
- 复制现有根分区内容
将现有根分区内容复制到新的逻辑卷中,使用 rsync
保持文件的权限和时间戳:
rsync -aAXv / /mnt --exclude=/mnt --exclude=/proc --exclude=/sys --exclude=/dev/pts --exclude=/tmp
--exclude
参数用于防止复制到 /mnt
的循环挂载。
- 设置新逻辑卷中的文件系统
将 /mnt
中的文件系统设置为根分区的功能,例如:
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
4. 更新引导加载器和 fstab
- 更新
fstab
在新逻辑卷的 /mnt
挂载目录中,修改 /mnt/etc/fstab
文件,使用新的 LVM 逻辑卷挂载根分区。
查找原有根分区挂载点,将其修改为:
/dev/vg_root/lv_root / ext4 defaults 0 1
- 更新 GRUB 引导加载器
从 chroot
环境更新引导加载器:
chroot /mnt
grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg
这将确保新的引导加载器使用 LVM 根分区启动系统。
5. 重启并测试
- 退出
chroot
并卸载所有挂载点:
exit
umount /mnt/dev
umount /mnt/proc
umount /mnt/sys
umount /mnt
- 重新启动系统
reboot
在系统重新启动后,确认系统现在是从 LVM 逻辑卷启动的。
6. 删除旧的根分区(可选)
确认系统从 LVM 启动后,你可以选择删除旧的根分区,并将其空间重新分配给其他用途,例如扩展 LVM 逻辑卷。
通过以上步骤,你可以成功将非 LVM 的 CentOS 7 根分区迁移到 LVM,同时确保系统平稳运行。