CentOS 系统盘迁移

前端之家收集整理的这篇文章主要介绍了CentOS 系统盘迁移前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

环境

  • Linux 物理机,已安装 VirtualBox 虚拟机软件
  • CentOS6.9 live 启动 U 盘
  • CentOS6.9 iso 镜像文件
  • 待安装笔记本 IBM x32

VirtualBox 创建 Redhat6 虚拟机

VMware 没用过,建议硬件配置尽量和目标设备一致,比如我的 X32 的处理器只有一核,无 PAE,内存 1024MB,虚拟硬盘 8G 就够了,使用 CentOS6.9 iso 装好虚拟机后,禁用 selinux,可能需要重启生效。

打包操作系统根目录

cd /
tar cvpzf backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys /

导出 /backup.tgz 文件

返回物理机操作系统,通过 ssh、http 或其他方式把虚拟机的 /backup.tgz 拷贝至物理机中 /root 下

格式化磁盘

取出待安装笔记本的硬盘,通过 USB 或其他方式挂载到该物理机上,fdisk 分区,格式化

# fdisk 分成俩个分区,前面一个大的根分区,后面一个2G的 swap 分区,其他情况自己决定
# 假设刚挂载的这个目标磁盘设备是 sdg
mkfs.ext3 /dev/sdg1
mkswap /dev/sdg2

部署操作系统

挂载待部署磁盘的根分区,解压操作系统文件修改启动相关参数

mount /dev/sdg1 /mnt
tar xvpzf /root/backup.tgz -C /mnt/
mkdir /mnt/proc
mkdir /mnt/sys
mkdir /mnt/mnt
# 查看目标磁盘根分区的 uuid,替换 /mnt/boot/grub/grub.conf 和 /mnt/etc/fstab 中对应项
ls -lh /dev/disk/by-uuid/|grep sdg1
# 查看目标磁盘 swap 分区的uuid,替换 /mnt/etc/fstab 中对应项
ls -lh /dev/disk/by-uuid/|grep sdg2
# 检查 /mnt/etc/mtab 中列出的信息是否正确

安装 grub2

取消挂载,把部署好的磁盘安装回待安装笔记本中,插上 CentOS6.9 的启动 U 盘,从 U 盘启动待安装笔记本,进入 live 模式(安装盘可以在安装界面开始时按下 Alt + F1 切换到 live 模式下),安装 grub2

# 在 live 模式下切换到 root
sudo -i
# 挂载(假设 live 识别到的硬盘根分区是 /dev/sda1)
mount /dev/sda1 /mnt
# 安装 grub2
grub-install --root-directory=/mnt/ /dev/sda
# 如果显示 “no error”,即可退出,取消挂载
exit
umount -f /mnt

此时重启就可以正常进入系统了,如果 centos7 需要更新 grub 配置,则执行以下步骤

# 挂载
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
# 切换根目录
chroot /mnt/ /bin/bash
## 更新grub配置
grub-mkconfig -o /boot/grub/grub.cfg

猜你在找的CentOS相关文章