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

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

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

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

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

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

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

sudo apt updatesudo 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

  1. 更新/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分区应该自动挂载。


以上是引用大佬https://blog.csdn.net/wenquantongxin/article/details/130192728
以下是我个人实操:

不重装系统的硬盘更换方式

这两天折腾了下Ubuntu的硬盘扩容。
把500G的升级成了2000G的。

方式1(失败了)

DiskGenius 硬盘备份、还原

因为ITX只能插两个硬盘,所以刚开始我想分两步:
500G的Ubuntu→1000G的Windows→2000G的Ubuntu
刚开始用DiskGenius,先是硬盘备份到本地,只能选择按文件备份(DiskGenius还提示说这样防止碎片),但是按文件备份好慢啊,等了俩小时备份好了,又等了俩小时把备份硬盘还原到2000G的硬盘中。
但是启动的时候报错:

systemd-udevd.service: Failed to excute command: No such file or directory

grub文件生成

救援模式进不去,网上也搜不到。我查了下,大概意思就是文件损坏了。
那我想就把引导启动的 grub 文件修复一下呗。
于是使用刻录好Ubuntu的U盘启动,选择Try it,而不是安装。

# 挂载系统分区
sudo mount /dev/sda1 /mnt 
# 挂载必要的虚拟文件
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo mount --bind /run /mnt/run
# 切换root环境
sudo chroot /mnt
# 重新生成启动配置
grub-mkconfig -o /boot/grub/grub.cfg
# 重启
sudo reboot

重启之后,Ubuntu的选择页面变成了Debian的了,颜色也由灰色变成了蓝色,但是依旧不解决问题。
仍旧有服务无法启动

apt更新

那我想把他报错的systemd更新一下好了。

# 挂载系统分区
sudo mount /dev/sda1 /mnt 
# 挂载必要的虚拟文件
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo mount --bind /run /mnt/run
# 切换root环境
sudo chroot /mnt

进入虚拟环境之后,apt update && apt upgrade, 但是网络有点问题。
发现是网络配置没有继承,于是通过 mv /etc/resolv.conf /mnt/etc/resolv.conf 解决了。
看来chroot也不是很好用,很多系统加载的时候的配置,都不会自动生成,也不会使用宿主机的环境。
再之后虽然apt upgrade没有问题,但是apt update报错python环境有问题,无法完成指令。
没办法,能力不足以修复系统

方式2(success)

后来我想着用启动盘,直接500G的Ubuntu→2000G的Ubuntu拷贝过去就行了。
刚开始我用的老毛桃,里面有DiskGenius软件,我想着这样通过硬盘克隆,应该跟dd命令没什么区别。
但跟方式1产生了一样的错误

于是我使用Ubuntu的启动盘,这次我使用dd命令 sudo dd if=/dev/sdX1 of=/dev/sdY1 bs=128K conv=noerror,sync status=progress
不超过5分钟,就将500G的硬盘拷过去了(是的,进度条提示是500G,而不是硬盘中的60G文件。dd命令应该是直接硬件层面盘对盘拷贝,无需考虑虚拟磁盘中的文件系统),这才是固态硬盘的正常速度嘛!
教程还让改一下复制后磁盘的 /etc/fstab 里的内容,但是我想测试一下还会报什么样的环境问题,就直接重启试了下,没想到直接点亮了。

所以我猜方式1的问题主要在于系统格式不匹配,Ubuntu的Ext4格式读入Windows的时候,被转义了。所以系统就寄了。

Linux也不愧是一切皆是文件,直接磁盘拷过去,系统就复制过去了。

搞定之后的磁盘空间就是这样
在这里插入图片描述

磁盘UUID直接自动配置好了
在这里插入图片描述

  • 17
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,确保你的固态硬盘已经连接到计算机上。接下来,按照以下步骤在Ubuntu上挂载和使用固态硬盘: 1. 打开终端(Ctrl+Alt+T)并输入以下命令以查看系统中的磁盘设备: ``` sudo fdisk -l ``` 2. 根据输出的信息,找到你的固态硬盘设备(通常是类似于 /dev/sdX 的形式,其中 X 是字母)。 3. 使用以下命令创建一个新的分区: ``` sudo fdisk /dev/sdX ``` 4. 在 fdisk 命令提示符下,按下 n 键创建一个新分区。 5. 接着,选择分区类型。如果你只想在固态硬盘上创建一个新的文件系统,选择主分区类型(主分区编号为 1-4)。如果你想创建更多的分区,请选择扩展分区类型。 6. 设置分区的起始和结束扇区。按照默认值使用回车键即可。 7. 现在,按下 w 键将分区表写入磁盘并退出 fdisk。 8. 使用以下命令创建一个文件系统(例如 ext4): ``` sudo mkfs.ext4 /dev/sdX1 ``` 如果你选择了其他分区类型,请相应地替换 ext4。 9. 创建一个目录以挂载固态硬盘: ``` sudo mkdir /mnt/ssd ``` 10. 使用以下命令将固态硬盘挂载到新创建的目录: ``` sudo mount /dev/sdX1 /mnt/ssd ``` 11. 确认挂载是否成功: ``` df -h ``` 在输出中,你应该能够看到固态硬盘已经成功挂载到 /mnt/ssd 目录中。 12. 如果你希望在每次启动时都自动挂载固态硬盘,可以将以下行添加到 /etc/fstab 文件中: ``` /dev/sdX1 /mnt/ssd ext4 defaults 0 0 ``` 替换 /dev/sdX1 和 /mnt/ssd 为你的实际设备和挂载点。 现在,你的固态硬盘已经成功挂载到Ubuntu系统上,并可以在 /mnt/ssd 目录中访问和使用它。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值