centos分区如何进行系统迁移
导读:CentOS 分区级系统迁移实操指南 一、场景与总体思路 典型场景包括:同架构物理机/虚拟机之间的系统盘克隆、跨硬盘替换、仅迁移某些目录到新分区、以及跨发行版的就地转换升级。 基本原则:先完整备份(含分区表与引导)、尽量使用离线迁移减少运...
CentOS 分区级系统迁移实操指南
一、场景与总体思路
- 典型场景包括:同架构物理机/虚拟机之间的系统盘克隆、跨硬盘替换、仅迁移某些目录到新分区、以及跨发行版的就地转换升级。
- 基本原则:先完整备份(含分区表与引导)、尽量使用离线迁移减少运行态差异、迁移后校验引导与文件系统一致性、必要时调整 fstab/UUID/网络 配置。
二、方案一 整盘克隆到新硬盘(保留分区布局,最稳妥)
- 适用:同架构、从旧盘迁移到新盘,或整机替换。
- 步骤
- 准备与备份
- 关机后接入新盘;确认设备名(如 /dev/sdb),避免误操作。
- 备份关键分区表与引导信息:
- 备份分区表:sfdisk -d /dev/sda > sda.sfdisk
- 备份 MBR/GPT 引导:dd if=/dev/sda of=/root/mbr.bak bs=512 count=1
- 克隆分区表
- 精确克隆:sfdisk /dev/sda < sda.sfdisk
- 或按容量重建分区后继续下一步(需保证分区大小≥原分区已用数据)。
- 克隆文件系统
- 非 LVM:对每个分区执行 dd if=/dev/sda1 of=/dev/sdb1 bs=4M conv=noerror,sync
- LVM:先 pvcreate/vgcreate/lvcreate 建立相同 LV 结构,再对每个 LV 执行 dd(或使用 LVM 快照+镜像方式减少停机)。
- 扩容目标分区文件系统(如新盘更大)
- ext4:resize2fs /dev/sdb1
- xfs:xfs_growfs /mountpoint(注意:XFS 不支持缩小)
- 修复引导(关键)
- BIOS/MBR:
- grub2-install --target=i386-pc /dev/sdb
- 生成配置:grub2-mkconfig -o /boot/grub2/grub.cfg
- UEFI:
- 挂载 EFI 分区(如 /dev/sdb1 为 vfat):mount /dev/sdb1 /boot/efi
- grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=CentOS
- grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
- BIOS/MBR:
- 验证
- 以新盘启动,检查 df、lsblk、mount、/etc/fstab 的 UUID 是否匹配,必要时修正 fstab 使用 UUID。
- 准备与备份
- 提示:若跨机器迁移,优先保持控制器/固件类型一致;差异较大时,建议改用 rsync 方式迁移根文件系统并在目标机全新安装引导。
三、方案二 仅迁移部分目录到新分区或新盘(不改系统盘)
- 适用:把 /home /var /data 等迁移到新磁盘/新分区,系统盘保持不动。
- 步骤
- 准备新分区并挂载
- 分区与格式化:fdisk /dev/vdc → mkfs.xfs /dev/vdc1(或 ext4)
- 挂载临时目录:mkdir /mnt/newpart; mount /dev/vdc1 /mnt/newpart
- 迁移数据(保持权限与时间戳)
- rsync -aAX --info=progress2 /data/ /mnt/newpart/
- 校验
- diff -r /data /mnt/newpart 或 du -sh 对比;抽样校验关键文件。
- 切换挂载点
- 备份并编辑 /etc/fstab,建议使用 UUID(blkid 获取):
- UUID=xxxx-xxxx /data xfs defaults 0 0
- 原子切换:
- mount --move /data /mnt/olddata
- mount /dev/vdc1 /data
- 确认无误后 rm -rf /mnt/olddata
- 备份并编辑 /etc/fstab,建议使用 UUID(blkid 获取):
- 应用与清理
- 重启依赖该目录的服务(如数据库、容器),观察日志与磁盘占用。
- 准备新分区并挂载
- 要点:使用 rsync -aAX 可保留 ACL/扩展属性;XFS 仅支持在线扩容,如需缩小需先备份-重建-恢复。
四、方案三 跨发行版就地转换升级(系统盘数据保留)
- 适用:在 CentOS 7/8 与 Anolis OS 7/8、Alibaba Cloud Linux 3 等之间做原地转换,保留系统盘数据。
- 能力与限制
- 支持的典型路径:CentOS 7.x → Anolis 7/8、Alibaba Cloud Linux 2/3;CentOS 8.x → Anolis 8、Alibaba Cloud Linux 3;部分场景支持 CentOS 7.9 → RHEL 7、CentOS 8.5 → RHEL 8(白名单)。
- 迁移工具会重装系统软件包,涉及内核/工具链变化,部分内核接口相关场景(如 OOT 模块、硬件使能)可能不兼容,需预先评估。
- 资源与软件限制:需预留内存≥600 MiB,/usr≥250 MiB、/var≥4 GiB、/boot≥100 MiB;不提供 i386 包;部分特性(如 epel-modular)可能不可用;迁移不可直接指定 RHEL 小版本。
- 基本流程(以 Anolis 为例)
- 安装迁移工具并检测环境:
- wget https://gitee.com/anolis/centos2anolis/raw/master/centos2anolis.py
- yum -y install python3
- 执行迁移(示例到 Anolis OS 8):
- python3 centos2anolis.py -v 8.2
- 重启并验证:cat /etc/os-release,检查关键服务与驱动。
- 安装迁移工具并检测环境:
五、常见问题与排错要点
- 启动失败
- 检查 BIOS/UEFI 启动项与设备顺序;确认 /boot 与 EFI 分区已正确挂载且 grub 配置指向正确的 UUID/设备。
- 使用 LiveCD/救援模式挂载原系统分区后执行 grub2-install 与 grub2-mkconfig 修复。
- 文件系统与分区
- XFS 不支持缩小,扩容需从后向前调整(先扩分区/PV/LV,再 xfs_growfs)。
- 迁移后若发现挂载异常,优先用 UUID 而非设备名更新 /etc/fstab,避免盘序变化导致误挂载。
- LVM 场景
- 目标机需先创建相同的 VG/LV 名称与大小(或使用镜像/快照方式),再逐 LV dd 克隆;必要时 vgimportclone 处理 VG UUID 冲突。
- 网络与主机标识
- 克隆后可能出现 IP 冲突/主机名重复,按需调整 /etc/hostname、/etc/sysconfig/network-scripts/ifcfg-* 或使用 DHCP。
- 云环境
- 云盘克隆后需确保 UUID 唯一、更新 fstab 与引导;部分平台提供快照/镜像工具,优先使用平台原生能力。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos分区如何进行系统迁移
本文地址: https://pptw.com/jishu/774687.html
