Linux系统迁移
1. 简介
Linux 系统迁移系统相对于 Windows 来说还是简单许多,使用 Linux 系统自带的 dd
命令即可。
2. 系统迁移
2.1 创建分区表
如果是一块新硬盘,则首先要为这个新硬盘创建分区表(不是则可以跳过该步)。分区表类型有 MBR 和 GPT 两种,具体使用哪种要看个人的电脑配置。
进入电脑的 BIOS,查看电脑是否支持 UEFI 启动,如果支持则说明兼容 GPT 分区的硬盘(新电脑现在都默认是 UEFI 启动的);如果只有 Legacy,则说明电脑只支持 MBR 格式的硬盘。
当电脑支持 UEFI 启动时,建议最好使用 GPT 分区。不过此时还要看你原来的系统所在的硬盘是使用 MBR 还是 GPT 分区,有些电脑虽然支持 UEFI 启动,但默认还是 Legacy 启动。如果不想折腾,那还是继续使用 MBR 分区吧。
MBR 分区有个限制,就是硬盘大小最多为 2 TB,且最多只支持 4 个分区,也就是说一个 MBR 在硬盘上最多不超过 4 个系统分区。
如果不介意折腾的话,可以先将原有系统所在的硬盘由 MBR 分区转为 GPT。
-
具体为先用 U 盘制作一个 Linux Live 系统,然后启动到 Live 系统中使用
gdisk
工具将原有系统所在的硬盘转为 GPT 分区。1
2gdisk /dev/sdX # sdX 为要转的硬盘
# 然后在打开的交互窗口中依次输入 w 和 y 即可
2.2 创建引导分区
创建好分区表后还要创建一个 ESP 分区,用来存储系统的引导文件。Linux 下可以使用 fdisk
工具来创建新分区,然后将其格式化为 FAT32 格式:
1 | mkfs.fat -F32 /dev/sdUV # /dev/sdUV 为创建的 ESP 分区 |
2.3 划分空间
要迁移系统,还得先划分一块大于等于原系统分区大小的空间。如果只是划分空间,即创建/删除分区,不涉及 Resize 分区大小,则可以直接使有 fdisk
工具;如果涉及到 Resize 分区(比如原系统很大,想先 Resize 一下再迁移),则这个过程可以使用可视化的 GParted 软件或 KDE Partition Manager 软件来进行操作。
2.4 迁移系统
划分好分区后,就可以迁移系统了。
-
具体为先用 U 盘制作一个 Linux Live 系统,然后启动到 Live 系统中,使用 Live 系统中的
dd
命令将原有系统拷贝到新硬盘划分的分区中去。1
2
3
4sudo dd if=/dev/sdXY of=/dev/sdUW bs=4M
# /dev/sdXY 为原系统分区
# /dev/sdUW 为新系统分区
# bs 指定拷贝的数据单元大小 -
然后进入旧的 Linux 系统,执行以下命令来生成迁移系统的引导项:
1
2
3
4
5
6## 不同 Linux 发行版可能不太一样
# Ubuntu
sudo update-grub
# ArchLinux
sudo grub-install /dev/sdU # sdU 为新硬盘
sudo grub-mkconfig -o /boot/grub/grub.cfg -
接着重启电脑并进入迁移后的 Linux 系统,成功进入后再执行以下命令:
1
2
3
4
5
6## 不同 Linux 发行版可能不太一样
# Ubuntu
sudo update-grub
# ArchLinux
sudo grub-install /dev/sdU # sdU 为新硬盘
sudo grub-mkconfig -o /boot/grub/grub.cfg
最后重启,整个 Linux 系统迁完成(如果后续将旧系统移除了,也要执行以上命令来更新新系统的 GRUB 引导菜单) 。
事实上,如果是 ArchLinux 系统,则可以直接从 Live 系统中使用
arch-chroot
工具进入迁移后的系统,然后直接执行以下命令即可:
1
2 sudo grub-install /dev/sdU # sdU 为新硬盘
sudo grub-mkconfig -o /boot/grub/grub.cfg
附录
参考资料: