[deepin exploration] 如何扩大系统盘容量?
Tofloor
poster avatar
听风者
deepin
2024-09-09 18:31
Author

系统盘容量告急,大神们指教如何扩大系统盘容量?

Reply Favorite View the author
All Replies
ㅤ旭旭哥
deepin
2024-09-09 19:07
#1

DiskGenius, 昨天才弄过

Reply View the author
阿尼樱奈奈
Moderator
2024-09-09 20:58
#2

参考这个帖子:https://bbs.deepin.org.cn/phone/zh/post/237402

Reply View the author
xclimbing
deepin
2024-09-10 10:12
#3

一般来说,分区的压缩,最好是在分区的后面腾出空间来操作,毕竟,大部分文件系统的空间分配策略都是优先使用分区前面的空间。楼上帖子中的这个操作就正好违背了这个原则,几乎每一步空间的腾出,都是在有数据的空间上进行,第一步就是在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