环境和工具
操作环境
-
笔记本:1T SSD, 安装有 win10 (500G) 和 Ubuntu20(200G) 双系统,其他剩余空间资料存储分区
-
M730q小主机:500G SSD + 1T HHD, SSD系统盘(没有分区)安装有win10系统, 1T HHD 资料盘,分成两个500G的分区
需求:把笔记本上的Ubuntu20 无损迁移到M730q的HHD,使M730q主机变成双盘双系统。
工具
- U 盘,容量大于 16G , 制作成Ubuntu的启动盘,可使用 Rufus 或 balenaEtcher 将 Ubuntu的镜像写入U盘
- 移动硬盘或U盘,用于临时存放迁移系统,容量要足够存放需要迁移的系统
一 、原系统打包
原Ubunut系统的分区:
/boot
300MB 分区swap
16GB(和物理内存一致) 交互分区/
(95GB) 根目录分区/home
(剩下所有,大概90GB)用户目录分区
按照系统的分区,迁移系统只需要打包 /
和 /home
分区的数据就可以。
1. 进入U盘启动盘中的Ubuntu
根据不同的电脑的型号,在电脑开机的时候按F1-F12 或使 Esc中的某个按键,使电脑从U盘启动。启动之后选择“试用ubuntu” (Try Ubuntu)
2. 挂载原系统的分区
在挂载原系统分区之前需要将用于转移使用的移动硬盘或u盘格式化,格式化之前先把硬盘中的资料备份
查看移动硬盘的设备路径
$ sudo fdisk -l
我使用的使一个250GB 的移动硬盘,在列出的磁盘中,它是 /dev/sdc
,将它格式化
$ sudo mkfs.ext4 /dev/sdc
上面命令的磁盘名称/dev/sdc
根据实际的填写。
创建挂载点
$ cd /mnt
$ sudo mkdir root_old home_old data
root_old
、home_old
、 data
三个目录分别挂载原系统根目录,用户目录,以及迁移的磁盘
$ cd /mnt # 切换到 /mnt
$ sudo mount /dev/nvme0n1p8 root_old #挂载旧的“/”到/mnt/root_old
$ sudo mount /dev/nvme0n1p9 home_old #挂载旧的“/home”到/mnt/home_old
$ sudo mount /dev/sdc data #挂载压缩包存储区到/mnt/data
3. 打包
首先是/
目录
$ tar -cvpzf data/ubuntu_root_backup.tar.gz --exclude=root_old/proc --exclude=root_old/tmp\
--exclude=root_old/home --exclude=root_old/lost+found --exclude=root_old/media\
--exclude=root_old/mnt --exclude=root_old/run root_old
把root_old
所有内容打包到data/ubuntu_root_backup.tar.gz
,--exclude
是打包时排除的目录
然后是/home
目录
$ tar -cvpzf data/ubuntu_home_backup.tar.gz home_old
把home_old
所有内容打包到data/ubuntu_home_backup.tar.gz
打好包后,取消挂载旧系统的/
和/home
:
$ sudo umount /mnt/root_old
$ sudo umnout /mnt/home_old
二、迁移系统
原系统需要迁移到M730q的HHD中,因为HHD的所有空间都已创建分区,需要使用Windows自带的磁盘管理工具压缩出大约 200GB 的空闲空间,压缩的空间只需要能够存放下原系统的文件就可以。
1. 新建分区
进入U盘启动盘,选择试用Ubuntu,在系统的应用中查找 GParted 软件,创建以下四个分区,分区大小需要能够存放下原系统的数据,如果不确定,那就和原系统分区大小差不多
/boot
300MB 分区swap
16GB(和物理内存一致) 交互分区/
(95GB) 根目录分区/home
(剩下所有,大概90GB)用户目录分区
2. 解压原系统
将原系统打包的文件解压到对应的分区,在解压之前,同样要挂载分区
$ cd /mnt
$ mkdir root home data
$ sudo mount /dev/sda1 root #挂载旧的“/”到/mnt/root_old
$ sudo mount /dev/sda2 home #挂载旧的“/home”到/mnt/home_old
$ sudo mount /dev/sdc data #挂载压缩包存储区到/mnt/data
新建分区和迁移硬盘的名称使用 sudo fdisk -l
命令查看
解压文件
$ tar -xzvpf data/ubuntu_root_backup.tar.gz -C root
$ tar -xzvpf data/ubuntu_home_backup.tar.gz -C home
注意,完成解压后,旧系统/
的文件可能是在当前的/mnt/root/root_old
里面,需要用mv
命令挪动一下把文件都挪到/mnt/root
下,home
目录也是类似的操作。
$ mv /mnt/root/root_old/* /mnt/root
$ rm -r /mnt/root/root_old
$ mv /mnt/home/home_old/* /mnt/home
$ rm -r /mnt/home/home_old
3. 修改uuid
查看硬盘uuid:
$ blkid
打开/mnt/root/etc/fstab
,修改列出的Ubuntu系统分区、home目录所在分区、EFI分区等分区的名称和uuid,使其与目标盘各分区的对应:
$ sudo nano /mnt/root/etc/fstab
4.重建引导
下载boot-repair并运行,以修复引导:
$ sudo add-apt-repository ppa:yannubuntu/boot-repair
$ sudo apt-get update
$ sudo apt-get install boot-repair
$ boot-repair
运行之后选择默认的就可以修复引导。