如何在不丢失数据的情况下合并Ubuntu 22.04笔记本的所有SSD分区?
如何在不丢失数据的情况下合并Ubuntu 22.04笔记本的所有SSD分区?
嘿,我来帮你搞定这个问题!要把所有分区合并成一个根分区(/)且不丢数据,得按步骤稳扎稳打,先把风险降到最低:
第一步:万全备份(绝对不能省!)
分区操作哪怕再小心都有意外风险,先把重要数据和软件列表备份好:
- 把**/home和/scratch**里的所有个人文件(文档、照片、下载内容等)复制到外部存储设备(移动硬盘、大容量U盘都行)
- 导出已安装的apt包列表,这样之后能一键恢复所有软件:
把这个dpkg --get-selections > installed-packages.txtinstalled-packages.txt文件也备份到外部存储,别弄丢了
第二步:制作Ubuntu 22.04 Live USB启动盘
因为不能在当前系统运行时修改根分区,得用Live环境来操作:
- 找个至少8GB的空U盘,用Ubuntu自带的「启动盘创建器」(或者其他工具)制作Ubuntu 22.04的Live USB
- 制作完成后重启笔记本,按品牌对应的按键(比如F2、F10、F12)进入BIOS,选择从U盘启动
第三步:在Live环境中合并分区
进入Live Ubuntu后,用GParted来调整分区:
- 打开「GParted分区编辑器」,如果没安装,先在终端执行:
sudo apt install gparted - 找到你的1TB SSD(一般是
/dev/sda或者/dev/nvme0n1,看容量就能分辨),右键点击每个分区(/、/home、/scratch、swap),选择「卸载」 - 处理swap分区:右键点击swap分区,先选「关闭交换空间」,再选「删除」
- 删除/home和/scratch分区:右键点击这两个分区,分别选择「删除」,现在会腾出一大块未分配空间
- 扩大根分区:右键点击原来的根分区(挂载点为/的那个),选择「调整大小/移动」,把右侧的滑块拉到最右边,让它占满所有未分配空间,点击顶部的对勾按钮「应用」,等待操作完成(别中途断电!)
第四步:更新系统挂载配置文件
原来的fstab里记录了/home、/scratch和swap的挂载信息,得删掉这些条目,不然系统启动会出错:
- 挂载调整后的根分区到/mnt(假设你的根分区是
/dev/sda2,根据实际情况替换):sudo mount /dev/sda2 /mnt - 编辑fstab文件:
sudo nano /mnt/etc/fstab - 删除所有关于/home、/scratch和swap的行(比如类似
UUID=xxxxxx /home ext4 defaults 0 2这样的条目) - 保存退出:按
Ctrl+O,回车确认,再按Ctrl+X
第五步:恢复数据和软件
一切调整好后,就可以恢复你的数据和软件了:
- 把之前备份的/home内容复制到新根分区的/home目录:
替换sudo cp -r /path/to/backup/home/* /mnt/home//path/to/backup/home为你外部存储上备份的路径 - 如果需要保留/scratch目录,先创建目录:
sudo mkdir /mnt/scratch,再把备份的/scratch内容复制进去 - 重启回到原来的Ubuntu系统后,把备份的
installed-packages.txt复制到系统里,执行以下命令恢复所有已安装的apt包:sudo dpkg --set-selections < installed-packages.txt sudo apt-get dselect-upgrade
备注:内容来源于stack exchange,提问作者dark wake
相关产品推荐
相关产品推荐

