在 CentOS 中“替换系统分区”通常指 更换 /(根分区)所在的磁盘或分区,比如:
下面按 最常见、最安全的做法 给你一个完整思路。⚠️ 操作有风险,请务必先备份数据。
新盘 / 新分区 → 复制系统 → 修改启动
流程:
/etc/fstab假设:
/dev/sda/dev/sdb1/mnt/newroot避免系统运行中复制文件出错
systemctl set-default multi-user.target
reboot
# 或直接使用 CentOS 安装盘 → Rescue Mode
fdisk /dev/sdb
# 或 parted / gdisk
mkfs.xfs /dev/sdb1 # CentOS 7/8 默认 xfs
# 或 mkfs.ext4
mount /dev/sdb1 /mnt/newroot
✅ 推荐 rsync(比 cp 更安全)
rsync -avxHPS / /mnt/newroot/
参数说明:
-a 保留权限-x 不跨文件系统-H 保留硬链接-P 显示进度⚠️ 不要复制 /proc /sys /dev 里的设备文件,rsync 会自动处理
blkid /dev/sdb1
记下 UUID,然后编辑:
vi /mnt/newroot/etc/fstab
示例:
UUID=xxxx-xxxx-xxxx / xfs defaults 0 0
mount --bind /dev /mnt/newroot/dev
mount --bind /proc /mnt/newroot/proc
mount --bind /sys /mnt/newroot/sys
chroot /mnt/newroot
grub2-install /dev/sdb
grub2-mkconfig -o /boot/grub2/grub.cfg
exit
mount /dev/sdb2 /mnt/newroot/boot/efi
grub2-install --target=x86_64-efi --efi-directory=/boot/efi
reboot
进入 BIOS / UEFI 选择新盘启动
如果是:
/dev/mapper/centos-root
pvcreate /dev/sdb
vgextend centos /dev/sdb
lvextend -l +100%FREE /dev/centos/root
xfs_growfs /
pvmove /dev/sda
vgreduce centos /dev/sda
原因:
解决:
dracut --force
set root=(hd0,msdos1)
linux /vmlinuz root=/dev/sdb1
initrd /initramfs
boot
| 目的 | 推荐方案 |
|---|---|
| 换系统盘 | rsync + grub2-install |
| 根分区扩容 | LVM |
| 磁盘损坏 | 新盘迁移 |
| 生产环境 | 必须备份 + 救援模式 |
如果你愿意,可以告诉我:
我可以给你 完全针对你环境的命令清单 ✅