Ubuntu 20.04系统搬家,迁移至更大容量硬盘

Ubuntu从512G固态搬家到2T固态

注意:我的/boot文件夹没有和Ubuntu系统其他分区放在同一个物理硬盘上,这个设置和大多数的默认配置并不一样,因此本文章只是个人记录而非教程。

将Ubuntu 20.04从较小容量硬盘迁移到较大容量硬盘的过程分为几个步骤。以下是详细步骤:

1. 准备新的大容量硬盘。确保已经正确地安装和连接到计算机上。

2. 从Ubuntu 20.04的安装介质(例如USB驱动器)启动计算机。可以使用UltraISO制作Linux的硬盘镜像。

3. 在启动菜单中选择"Try Ubuntu"(尝试Ubuntu)而不是安装。

4. 打开终端并安装gparted分区编辑器(如果尚未安装):

sudo apt update
sudo apt install gparted

5.使用gparted创建新硬盘上的分区。首先,通过以下命令启动gparted

sudo gparted

使用gparted为新硬盘创建一个与旧硬盘相同的分区布局。确保为/boot/(root)和swap分区创建相应的分区。如果有/home分区或者其他分区,也需要对应创建。

6. 使用命令行进行各分区的搬家

1)复制根目录分区

sudo dd if=/dev/sdX1 of=/dev/sdY1 bs=64K conv=noerror,sync status=progress

其中,/dev/sdX1是旧硬盘上的根目录分区,/dev/sdY1是新硬盘上的根目录分区。

2)复制/home分区

sudo dd if=/dev/sdX2 of=/dev/sdY2 bs=64K conv=noerror,sync status=progress

其中,/dev/sdX2是旧硬盘上的/home分区,/dev/sdY2是新硬盘上的/home分区。

3)复制/var分区

sudo dd if=/dev/sdX3 of=/dev/sdY3 bs=64K conv=noerror,sync status=progress

其中,/dev/sdX3是旧硬盘上的/var分区,/dev/sdY3是新硬盘上的/var分区。

4)复制和设置swap分区

a.使用dd命令复制swap分区:

sudo dd if=/dev/sdX4 of=/dev/sdY4 bs=64K conv=noerror,sync status=progress

其中,/dev/sdX4是旧硬盘上的swap分区,/dev/sdY4是新硬盘上的swap分区。

b.使用mkswap命令在新硬盘上的swap分区创建swap签名:

sudo mkswap /dev/sdY4

c.更新/etc/fstab文件以引用新的swap分区UUID。首先,获取新swap分区的UUID:

sudo blkid /dev/sdY4

然后,使用文本编辑器(例如nano)打开/etc/fstab文件(见后文常见问题1):

sudo nano .../etc/fstab # 仅作示例,需要挂载新硬盘并在对应硬盘上操作

/etc/fstab文件中找到旧swap分区的UUID,并将其替换为新swap分区的UUID。保存更改并关闭文件(Ctrl+X后选择Y)。

7. GParted修复unallocated空间

使用dd将/home等分区转移至新硬盘后,GParted显示新硬盘上出现了unallocated空间,是因为dd会精确复制源分区的大小,所以如果新硬盘上的分区比源分区大,那么就会产生未分配的空间。

解决问题:在GParted中选择对应红色感叹号的硬盘选择Check自动修复

注意:如果其他硬盘安装了Windows系统,由于Windows系统的保留也会出现红色感叹号的硬盘,请忽略,只修复安装了Linux系统的对应硬盘位置。

8. 使用boot-repair自动修复引导

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update

sudo apt-get install -y boot-repair && boot-repair

选择Advanced Options,选择对应引导所在的硬盘,并实行自动修复。

常见问题1:如何编辑大容量硬盘(系统迁移的目标硬盘)上的/etc/fstab文件

需要先挂载新硬盘上的根分区。

1. 创建一个临时挂载点,例如 /mnt/new_root

sudo mkdir /mnt/new_root

2. 挂载新硬盘上的根分区

sudo mount /dev/sdY1 /mnt/new_root

其中,/dev/sdY1是新硬盘上的根分区。请根据实际情况替换Y

3. 现在,可以编辑目标大容量硬盘上的/etc/fstab文件

sudo nano /mnt/new_root/etc/fstab

4. 更新/etc/fstab文件中的UUID,然后保存并关闭文件。(由于dd拷贝,新旧硬盘的UUID应该是对应一致的,经过检查如果确实如此,可以省略此步)

5. 最后,卸载新硬盘上的根分区

sudo umount /mnt/new_root

完成这些步骤后,目标大容量硬盘上的/etc/fstab文件已更新,以正确挂载新硬盘上的/home/var/swap分区。

常见问题2:在迁移完Ubuntu系统后,swap空间依然为迁移前旧硬盘的大小

以下是如何调整swap分区大小的步骤:

1. 关闭旧硬盘上的swap分区:

sudo swapoff -a

或者

sudo swapoff /dev/sdX4

其中,/dev/sdX4是旧硬盘上的swap分区。请根据实际情况替换X

2. 更新/etc/fstab文件以引用新的swap分区UUID。

/etc/fstab文件中找到swap分区的配置行,或者如果不存在,请创建一个新行。确保该行遵循以下格式:

UUID=你的swap分区UUID none swap sw 0 0

swap分区UUID替换为第1步中获得的UUID(UUID可以通过Ubuntu自带的“磁盘”工具获得)。

例如:

UUID=12345678-90ab-cdef-1234-567890abcdef none swap sw 0 0

保存更改并关闭/etc/fstab文件。

3. 重新启动计算机:

sudo reboot

现在,每次重启时,swap分区应该自动挂载。

你可能感兴趣的:(ubuntu,linux,运维)