[Tutorials] deepin如何给根目录扩容?--给你支招
Tofloor
poster avatar
babyfengfjx
Super Moderator
CQA
2022-05-21 00:12
Author

友情提醒

数据无价,以下操作请大家提前备份好自己的个人数据,以防操作失误造成不可逆损失,操作前确认自己知晓可能存在的系统损坏或者数据丢失风险!

前言

阅读建议:查看图片如果不清晰,可以点击放大后查看,部分动图有操作步骤,可以核对后操作,确保理解操作步骤后执行。

基于一些历史原因,deepin在全盘安装的时候,划分给根分区的空间只有区区15G,随着用户日渐使用过程中,这15G空间总会是捉襟见肘的,况且当下硬盘动不动就是几个T,其他都给那“没用”的data了,但是已经使用这么久了,总不该要我重新安装选择手动分区吧,而且用户也需要AB分区的备份功能怎么办?

这个时候就需要进行扩容操作了,过程其实非常简单,当前方案操作流程主要涉及如下内容:

Untitled Diagram.png

Step One:进入live系统

1.gif
很多人可能还不知道如何进入deepin的live系统,可以看上面动图的操作,也是非常简单:

方案一

  1. 首先准备好一个装有deepin镜像的启动U盘(推荐使用ventoy);

  2. 直接走装镜像的路子,启动到系统安装界面;

  3. 唯一区别是在grub安装界面的时候,不要选择任何选项,而是按一下键盘上的 “E” 按键(如果是非EFI启动,可能需要按TAB键);

  4. 按过之后就会出现下图的编辑界面,通过上下左右按键移动到下方红框标识处,删除 “cd-installer” 内容;

    2.png

  5. 然后直接按键盘上F10按键,接下来就会直接进入live系统界面了。

  6. 进入live系统后是如下界面的样子(下图是V20.6的镜像):

  7. 特别提醒:在live系统下长时间也会自动锁屏了,如果你也遇到了锁屏发现没有密码无法进入系统,可能你需要重新来一次,此时可以直接通过ctrl+alt+F2 进入TTY,然后在TTY界面设置密码即可:sudo passwd uos,然后再切回来用设置的密码登录即可。

3.png

方案二

可以使用论坛中大佬提供的live系统,电梯直达:https://bbs.deepin.org/post/236521

Step Two:连接网络

我们进入live系统后,第一时间就是记得去连接好网络,准备下一步的工具安装,连接好后确认一下你的网络是否正常哦。

Step Three:新增系统仓库

因为live系统本身是未带系统仓库的,我们需要手动添加系统仓库信息,具体操作可以看下面动图:

# 编辑源文件
sudo vim /etc/apt/sources.list
# 然后敲入下面的源地址
deb https://community-packages.deepin.com/deepin/ apricot main contrib non-free

4.gif

Step Four:安装gparted应用

  1. 先通过 sudo apt update更新源信息;
  2. 然后通过 sudo apt install gparted 命令来安装gparted工具。

5.gif

Step Five 使用gparted进行扩容操作

观察当前分区

  • 应用打开后,可以观察到如下硬盘分区的情况,其中Roota 和 Rootb 则是我们说的AB镜像分区,他们的大小是一样大,也就是我们根目录的大小;
  • 可以看到下图中我的根目录已经被我调整成了30G了(原来只有15G);
  • 那么下面我们在这30G的基础上,再将其调整成40G大小。

image.png

压缩data分区

  • 我们首先需要压缩data分区的空间,总共压缩20G出来,后面给Roota 和 Rootb一人分配个10G;
  • 先选中data分区,然后右键选择【更改大小/移动】选项;
  • 然后在“之前的空余空间”设置项中,填写20G大小换算成MB,就是 20480
  • 再然后在“之后的空余空间”输入框中点击一下,确保为0;
  • 最后点击一下【调整大小】按钮就完事了。

6.gif

压缩后的效果如下图所示,多出一个20G可用的空间了:

7.png

完成上面那步骤后,估计你也知道下面该怎么玩了,跟拼积木一样,先将这20G空间与上面紧挨着的Rootb空间合并;

  • 然后再将Rootb的空间压缩个10G出来;
  • 最后将这10G空间与Roota合并;
  • 最终应用就大功能告成了!

Rootb分区合并空闲空间

按照下图操作完成合并

8.gif

Rootb分区压缩空间

与上面同样的操作,将此时扩容后的Rootb空间再压缩10G给Roota。

9.gif

压缩完后就像下图一样,这个空间接下来就可以给Roota了:

10.png

Roota合并空闲空间

老办法,直接按照下图将空余空间直接给Roota拉满即可:

12.gif

核实最终空间分配情况

  • 有时候可能在操作的时候没注意,会跑出来个1MB的未分配空间,不用理会也是可以的;
  • 不过你要是有强迫症,那按照上面方法,把这些未分配的空间随便合并到哪个空间就行;
  • 要学会举一反三不能钻牛角尖哈。

13.png

应用最终的数据变更

  • 在做这一步之间,还有后悔药,一旦执行了这一步,有可能会存在意外,导致数据不可恢复;
  • 请在执行此操作之前,确认你是想好了,出了问题这锅自己背呀。
  • 这一步的操作,根据自己机器性能和数据量大小不同,耐心等待即可,完成后就会有成功的提示。

15.gif

最终核实分区情况:

完成后,即可看到上方的应用按钮是置灰的,此时分区大小也是与你预期是一致的。

16.png

验证你的成果

直接重启你的系统,检查下你的系统盘容量吧!

17.png

后记

  • 基于这个根分区大小的诉求,我们也在新版本的安装器中,增加了在全盘安装时可以自定义调整根分区大小的功能,在V20.6新版本镜像中就可以体验了。
  • 此方案不仅仅只是适用于全盘分区的情况,适用于任何分区安装方式的后期调整,只要思路原理清晰,即可顺利完成。
Reply Favorite View the author
All Replies
4 / 4
To page
180******90
deepin
2024-04-23 11:33
#61
babyfengfjx
  • 好建议。

linux假设玩她的都是专家,win假设用户是傻瓜。专家也有失手时,这就是linux不能办公的原因。只适合有精力鼓捣的。

Reply View the author
文件傳輸助手
deepin
2024-06-12 22:51
#62

我去。。。单单如何进入live系统我就研究了两天sob ,最后只能按照教程,使用20.6版本deepin才成功解决

Reply View the author
乾豫恒益
deepin
2024-09-05 17:23
#63

agree

Reply View the author
听风者
deepin
2024-09-10 07:22
#64

感谢所有的兄弟姐妹们啊!!!数据无价,操作谨慎!

Reply View the author
xclimbing
deepin
2024-09-10 10:07
#65

一般来说,分区的压缩,最好是在分区的后面腾出空间来操作,毕竟,大部分文件系统的空间分配策略都是优先使用分区前面的空间。楼主这个操作就正好违背了这个原则,几乎每一步空间的腾出,都是在有数据的空间上进行,第一步就是在data分区前面腾出20G空间,第二步则是在Rootb前面给Roota腾出10G的空间。无论是data和Rootb都是有数据的空间。实际上这种操作非常危险,因为你腾出20G空间,原则上就在往后挪动20G(甚至更多,取决于无损分区软件的操作策略)的数据,很难保证不出错。

那么,换一个思路呢?linux本来就不强调分区这个概念,而zfs甚至完全取消了分区这个概念(用虚拟的分区和数据集来代替)。同样的,Roota分区空间不够了,那么直接将占用空间大的目录的数据迁移到一个新分区,然后将新分区以挂载点的方式挂载到原来的目录不就完了。这样只需要建立新分区,将原来目录的数据复制到新分区,然后再编辑fstab,将新分区挂载到原目录。整个操作都是非常稳健的操作,基本上不用担心数据损失。

比如以deepin v23为例,我用sudo qdirstat统计一下Roota分区谁占用了最多的空间,/usr最大,但它比较关键,我们不用动它,然后我发现/.osrepo-cache是第二占用空间大的,既然是Cache,肯定也不是关键目录,那么我们就移动它。操作步骤大概如下:

1、用livecd启动。

2、用gparted将_dde_data分区缩小,从分区后面腾出20G空间,然后建立一个新分区,假设叫Roota-add1。甚至不需要分区,可以将/.osrepo-cache目录直接迁移到data分区,这样更简单。

3、挂载Roota-add1分区到临时挂载点,假设:/mnt/tmp,将/.osrepo-cache目录复制到/mnt/tmp/.osrepo-cache。然后先不要删除原来的/.osrepo-cache目录,可以先改个名叫:/.osrepo-cache.bak

4、编辑/etc/fstab,将新的.osrepo-cache目录挂载到/.osrepo-cache。

5、重启系统进行测试,如果一切正常,则删除/.osrepo-cache.bak。

6、大功告成!当然,安全起见,在进行任何数据操作之前,备份数据是一个良好的习惯。

Reply View the author
SyntaxError
deepin
2024-11-22 19:13
#66

可不可以通过Ubuntu的gparted来完成扩容,因为我的V23版本在live无法下载gparted

Reply View the author
4 / 4
To page