要我说,“系统盘满了”这件事,在统信UOS上发生的频率,远比很多人想象中高。尤其是那些从Windows迁移过来的老用户,习惯了C盘动不动就飙红,到了Linux生态里,以为换个文件系统就一劳永逸了。实际上,当你在UOS里装了几个大型软件、跑了一段时间的Docker、或者频繁更新系统内核之后,那个20GB的根分区(/)很快就会告急。更麻烦的是,UOS默认的自动分区方案,往往把根分区和家目录(/home)分得很死,一旦根分区满了,哪怕Home目录还有几百GB空闲,系统也会开始出现各种莫名其妙的问题,比如软件打不开、无法保存设置,甚至直接无法登录。
我之前就遇到过一台机器,根分区只剩不到200MB,用户反馈说“开机进不了桌面”。查了一圈,不是硬件故障,就是磁盘满了导致关键服务起不来。最后用图形化工具扩容,前后不到十分钟,问题直接消失。今天这篇就把这套方法完整写出来,分两种场景:有PE环境下的无损扩容,和没有PE环境时用Live U盘搞定,全都是图形化界面操作,不需要硬啃命令行。顺便再把几种UOS系统盘爆满的常见原因和清理技巧一并附上,省得你扩完容之后过两个月又来一轮。
1. 先别急着扩容,搞清楚空间去哪了
很多人的第一反应是“扩成分区就完事了”,但如果根源问题没解决,扩容只是把危机往后推迟而已。在动手之前,花五分钟检查一下空间分布,其实更重要。
1.1 系统盘满的四种典型情况
- 根分区小,Home分区大:UOS安装时如果选了“全盘安装”,很多时候是把大部分空间都留给
/home,根分区也就是30-50GB。普通办公没问题,但一旦装了开发工具、虚拟机镜像或者大型依赖库,根分区很快就见底。 - 日志文件堆积:Linux系统的
/var/log目录天生是个“只进不出”的口袋。UOS里跑的应用、内核模块、系统服务,每天都会往里面写日志。长时间不清理,几十GB的占据空间很正常,尤其是在重启次数多、异常报错频繁的机器上。 - 软件缓存失控:应用商店下载的安装包缓存、浏览器缓存、包管理器(apt)的缓存,这些散落在各个用户目录和
/var/cache下的文件,平时看不见摸不着,占起空间来却毫不含糊。 - Docker/虚拟机镜像文件:用UOS跑容器或虚拟机的用户,镜像文件默认放在
/var/lib/docker或/var/lib/libvirt/images下。一个镜像几个GB,几个镜像叠加起来,根分区瞬间就悲剧了。
1.2 用自带的图形化工具定位大文件
UOS桌面版自带一个“磁盘占用分析器”(也叫Baobab),在启动器里搜索“磁盘”就能看到。打开后它会扫描整个文件系统,生成一张块状图,每个色块代表一个文件或目录,色块越大说明占用越高。这个工具对普通用户特别友好,鼠标点几下就能看出到底是哪个目录在吞噬空间。
另一个稳妥的办法是用终端执行du -xh --max-depth=1 / | sort -h,但既然标题说了图形化方案,这里就不展开了,有兴趣的可以自己在终端里试试。图形化扫出来之后,先别急着删,重点看一下这几个位置:
/var/log:日志目录,能清理就清理/var/cache/apt/archives:软件包缓存/home/用户名/.cache:用户级缓存/tmp:临时文件,重启后一般会自动清,但有些异常情况不会
把能清的清掉,然后再判断是否需要扩容。如果清理完空间还是不够用,或者你不想三天两头清理第二次,那就进入正式扩容环节。
注意:扩容操作属于高风险操作,动手前务必把重要数据备份到移动硬盘或另一台设备。虽然下面介绍的方法在正常情况下不会丢数据,但“分区分区,越分越急”,数据安全永远排在第一位。
2. 图形化扩容第一招:PE环境下的无损扩容
如果你的机器上已经有一个UOS PE启动盘(或者Windows PE,但最好用UOS官方的),那扩容相对最简单。原理说起来一句话就能讲清楚:系统盘在运行时,分区表被锁定,没法直接修改,所以需要从U盘启动一个独立的系统环境,在这个环境里把磁盘分区调大。听起来跟Windows下用DiskGenius扩C盘一个道理。
2.1 准备PE启动盘和DiskGenius
UOS官方提供了一套PE维护系统镜像,下载后用U盘制作工具写进U盘就行。具体操作不赘述,网上有很多教程。另外还需要一个叫DiskGenius的工具,PE里通常自带,如果没有,提前下载Windows版或Linux版放到U盘里备用。
从这个环节开始,我建议你直接看方案二——用GParted Live,因为它在Linux生态里更通用、体积更小,而且对ext4文件系统的支持做得比Windows工具更稳妥。PE环境下常见的DiskGenius扩容法,其实跟下方要写的核心操作基本一致,区别只在于你是从PE启动还是从Live U盘启动。
2.2 PE下扩容的具体步骤
- 插入启动U盘,开机按启动项快捷键(F12或Esc,不同机器不同),进入PE系统。
- 打开DiskGenius,左侧磁盘列表里找到目标硬盘,右键点击你要扩容的分区(比如
/dev/sda2,挂载点是/)。 - 选择“扩容分区”,软件会提示你选择一块空闲空间作为扩容来源。如果你在安装UOS时给
/home留了太多空间,可以先压缩/home,把它尾部腾出来的空闲区域分配给根分区。 - 设定好新的大小,点击“开始”并确认。这一步软件会自动完成“移动数据块→调整分区表→重建文件系统元数据”整个流程,期间不要断电、不要拔U盘。
- 等待进度条走完,重启进入系统,用
df -h命令确认根分区大小是否变化即可。
这个方法我实测过多次,稳定性很高。但有一个前提条件:逻辑相邻。有些分区表方案里,根分区和Home分区中间隔着一个swap分区或EFI分区,这时扩容路径变长,速度会变慢,而且磁盘碎片多的时候,耗时会超出预期。另外,扩容期间如果意外断电,分区表有损坏风险。所以再次强调,重要数据先备份。
3. 图形化扩容第二招:GParted Live U盘方案
如果你手头没有UOS PE启动盘,推荐走GParted Live这条路。GParted是一个开源的图形化分区管理工具,国内玩Linux的人基本都认识,相当于Linux领域的“分区魔术师”。它支持ext4、xfs、btrfs等主流Linux文件系统,操作直观,全程鼠标点选,完美契合标题里说的“图形化解决方案”。
3.1 制作GParted Live启动盘
GParted Live官方提供了ISO镜像,体积只有几百MB,烧录到U盘的方式有两种:
- 在Windows下用Rufus或balenaEtcher烧录
- 在Linux下用
dd命令烧录,终端执行sudo dd if=gparted-live-xxx.iso of=/dev/sdX bs=4M status=progress
烧录完成后,U盘要保留一个FAT32分区用于存放数据?其实不需要,你只要确保U盘能从BIOS启动即可。GParted Live启动时会进入一个非常简陋的菜单,直接回车选默认项就行。它启动完成后直接进入图形化桌面,桌面环境很轻量,但够用。
启动GParted后,界面长得跟Windows的磁盘管理有点类似,上方是磁盘和分区图形条,下方是详细列表。你能看到每块硬盘上的分区布局,包括根分区、Home分区、swap分区、EFI分区等。
3.2 无损扩容根分区实操流程
先描述一个典型的UOS分区布局:
/dev/nvme0n1p1:EFI系统分区(FAT32,约500MB)/dev/nvme0n1p2:根分区/(ext4,约50GB)/dev/nvme0n1p3:Home分区/home(ext4,剩余所有空间)
在这种布局下,根分区和Home分区通常是相邻的,Home分区前面就是根分区。扩容思路是:先把Home分区缩小,腾出空间,再把根分区扩大。
步骤如下:
- 在GParted中选中Home分区
/dev/nvme0n1p3,右键选择“Resize/Move”。 - 弹出的窗口里,把“New Size”调小,比如从200GB缩小到100GB。注意,它默认会把释放出来的空间放在分区后面,而不是前面。你需要手动把分区整体“向右移”,让释放出来的空闲空间出现在Home分区的左边(即靠近根分区的那一端)。这一步的关键是理解“空闲空间的位置”,如果放错了,后边扩根分区时根本选不到。
- 点“Resize/Move”确认,这时GParted会在下方任务队列中加入一个待执行的“resize”操作。
- 接着选中根分区
/dev/nvme0n1p2,右键选择“Resize/Move”,把“New Size”调大,拉满至刚才释放出来的空间。 - 再次确认操作队列,然后点工具栏上的绿色对勾“Apply All Operations”。
- 等待执行完成。视磁盘速度和数据量,可能几分钟到十几分钟不等。进度条跑完后,重启系统即可。
一个重要细节:如果分区布局不是上面说的这样,比如Home分区在根分区左边,或者中间夹着其他分区,操作顺序和方向会跟着变。核心原则是:保证根分区紧邻空闲空间,然后让根分区向空闲空间一侧“长大”。如果物理位置不相邻,那就没法直接扩,得先把中间的分区挪走才行。
3.3 操作后的验证与必要修复
重启进桌面后,不要急着用,先打开终端验证一下:
df -h看一下挂载点/的那一行的Size和Avail是否已经变大了。如果没变,大概率是文件系统大小没有同步,需要执行一条扩容文件系统的命令。不过GParted在resize分区时通常已经自动扩展了文件系统,一般不会出现这种情况。万一遇到了,可以手动执行sudo resize2fs /dev/nvme0n1p2,它会检测当前分区大小并把ext4文件系统调整到最大。这是最典型的修复手段。
还有一种情况是启动失败,emergency mode。通常是/etc/fstab里的UUID与分区新UUID不匹配导致的。GParted正常情况下不会改变分区的UUID,但如果它提示过“detected a change in a partition”之类的内容,重启后就可能出现这个错误。解决方式也不难,在你的UOS安装U盘或GParted Live环境里,把根分区挂载到/mnt,然后编辑/mnt/etc/fstab,把对应行改成磁盘实际的UUID。查看UUID用blkid命令即可。
4. 如果只是空间紧张,分区不用动:系统内部瘦身实战
很多人一看到“扩容”两个字,就以为必须动分区表。其实在动刀之前,大多数场景下做一次深度清理就够了,尤其是那些只装了办公软件和日常应用的UOS桌面用户。用自带的磁盘占用分析器扫一遍,你会发现很多空间是白白浪费掉的。
4.1 安全清理日志与临时文件
系统日志是Linux下最容易忽略的空间杀手。UOS默认用journald做系统日志管理,日志文件通常保存在/var/log/journal,时间长了会积累好几个GB。用系统自带的图形化日志工具去清不够彻底,最省事的是直接在“终端”里跑一条命令(虽然标题是图形化方案,但这种一行命令就能解决的场景没必要非绕圈子):
sudo journalctl --vacuum-time=7d这条命令把7天前的日志清掉,只保留最近一周的记录。如果日志量特别大,第一次清理时会释放出几个G的空间。另外,/tmp下可能会有残留的临时大文件,用文件管理器打开,Ctrl+A全选,删除即可。注意先看看有没有正在被占用的文件,一般人不需要担心这个,因为UOS会自动把占用的文件跳过或者报错。
4.2 清除软件缓存与旧内核
软件包缓存是另一个容易堆积的地方。打开文件管理器,地址栏输入/var/cache/apt/archives,这里存放着所有下载过的deb安装包。装完软件之后,这些安装包就没有用了,可以手动全选删除,也可以用图形化的“应用商店”或“软件包管理”工具里的“清理缓存”。另外,系统更新后会自动保留两个以上版本的内核,老内核会占据/boot和/lib/modules下的空间。UOS系统的更新管理器有时不会自动清理旧内核,可以手动查看当前正在使用的内核版本,然后把旧内核包卸载掉。安装新的系统更新前,最好先做一次旧内核清理,不然新老内核叠加可能突然涨出1-2GB空间。
- 提示:删除旧内核是一项有一定風險的操作。如果你不确定哪个内核是当前正在跑的,先在终端执行
uname -r查看版本号,卸载时避开这个版本即可。图形化的卸载入口在“应用商店”的已安装列表里,搜索不带版本号的linux-image关键词,就能看到所有已安装的内核包。
4.3 进阶技巧:Trash目录和跨设备文件联动
有些用户习惯把文件拖进回收站,以为删掉了。实际上,回收站里的文件依然占着硬盘空间,只是从“桌面”移到“隐藏目录”而已。打开UOS文件管理器,左侧列表里找到“回收站”,右键“清空回收站”,这个动作建议每个月做一次。
另外一个容易忽略的点是,localsend这类局域网传输工具在使用时,接收文件默认存放在~/Downloads或~/Documents下。如果经常用手机往电脑传视频、大文件,这些文件会直接占据Home分区空间。既然提到了localsend,顺带说一句:这工具在UOS上除了传文件之外,文本剪贴板联动也很好用,手机上复制一段文字,电脑端可以直接粘贴,不用走任何中转服务器。但它默认会存历史记录,历史文件累积多了也会在后台悄悄吃空间。定期打开localsend设置页,清空历史记录即可解决。
5. 实操中常见的问题与解决方案速查表
就算把步骤写得再详细,实际操作时还是会遇到各种“意外”。这里把我在多台不同硬件配置的UOS机器上扩容时踩过的坑、以及同行交流中高频出现的若干问题整理成一张速查表:
| 常见问题 | 可能原因 | 解决方案 |
|---|---|---|
| 扩容后启动进入emergency mode | /etc/fstab中的UUID与分区UUID不匹配 | 在Live环境中挂载根分区,编辑fstab,用blkid更新UUID |
根分区没有变化,df -h还是老样子 | 文件系统没有扩展到新分区大小 | 执行sudo resize2fs /dev/分区名 |
| GParted提示“unallocated space is not adjacent” | 空闲空间与根分区不相邻 | 调整迁移路径数据小磁盘复杂度较大,需要逐段挪分区 |
| 扩容过程中断电导致系统无法启动 | 分区表损坏或文件系统元数据不一致 | 用GParted Live启动,重新检测文件系统;异常损坏时只能重装系统,所以提前备份容错 |
| 缩Home分区时提示“not enough space” | Home分区当前已用空间超过目标容量 | 先把Home里的大文件挪走,再重新调整分区大小 |
| 扩容之后某些软件无法启动 | 原软件缓存路径和权限未变,但空间挂载关系变了 | 重启后重新打开应用商城“修复模式”或重新安装对应软件 |
| 双系统共存时扩容失败 | Windows的快速启动/休眠文件锁定了分区表信息 | 先在Windows里关闭快速启动,再重启进入Linux环境 |
这张表的内容每一行都是真实经历过的。尤其是扩容后启动不了系统这种,一旦发生,小白很容易慌。其实解决方法不复杂,关键是提前在手机上存一份blkid输出结果,或者干脆在扩容前先用终端lsblk -f记录下所有分区的UUID,有备无患。
5.1 判断硬件瓶颈是否被误判为空间不足
有一种情况容易误导人:明明磁盘还有很大空间,但系统运行很卡,打开软件也报错“设备上没有剩余空间”。这时要检查的其实是inode是否耗尽。通俗地说,空间是仓库面积,inode是货架数量。如果货架被无数个小文件占满了,哪怕仓库面积再大也放不进新东西。UOS桌面系统如果长期不清理微信记录、浏览器缓存这类会产生大量小文件的应用,是可能把inode耗尽的。
查看inode占用,终端执行:
df -i如果IUse%接近100%,即使df -h显示剩余很多GB,系统也无法正常创建新文件。处理方法只能是小文件清理或转移。图形化角度来说,使用磁盘占用分析器扫一遍,找出那些文件数量特别多但体积不大的目录,直接删除或迁移到其他分区。
5.2 扩容后依然紧张:考虑根分区与Home分区合并或迁移
有些用户仔细算过之后发现,即使扩到100GB,home和根分区的比例还是不合理,干脆入场彻底调整分区策略。实际操作中,有一种做法是把/home的数据全部迁移到一块独立硬盘或独立分区,然后释放原home分区的空间全部分配给根分区。或者反过来,如果你只需要一个大root分区,分区时干脆不要home分区,所有空间都给根分区,把个人数据放普通数据盘。这种方式对用UOS做轻办公的用户尤其实用,因为很多人的数据其实放在移动硬盘或NAS上,本地home分区形同虚设。
迁移Home数据到新硬盘/新分区的图形化思路很简单:
- 新硬盘插入后,UOS会自动弹窗提示格式化并挂载,或者用“磁盘管理”工具把它格式化成ext4。
- 打开文件管理器,把
/home的重磅内容(比如下载、文档、桌面)整个拖到新分区的对应目录里。 - 修改
/etc/fstab,把新分区的挂载点指向/home的具体目录(比如/home/用户名/文档),重启后生效。
这个操作涉及一点配置文件的修改,不算纯图形化,但对把UOS作为主力生产工具的人来说,比单纯扩容更一劳永逸。谨慎起见,改fstab之前记住要用cp -a保留文件权限和所有者的复制方式,千万不要用普通的cp不带参数复制,否则文件权限错乱后,某些应用会拒绝读取配置文件。
6. 扩容后的日常维护:防止再次爆满的几个习惯
最后这部分算是我个人经验的一个收尾,算是“授人以渔”的部分。扩容只是解决一次问题,但养成几个好习惯,比任何扩容技巧都管用。
6.1 每周固定清理缓存和日志
在UOS的应用商店里可以安装“护眼”类小工具吗?不需要,直接自带的“定时清理”就够了。打开“控制中心”的“通用”设置,里面有一个“磁盘清理”选项,可以设置每周自动清理缓存。这条对小白用户特别省心,勾一下就行,不用记命令。顺手把浏览器缓存、系统日志、debian软件包缓存都勾上,设置好之后基本一劳永逸。
6.2 重视文件夹分类与远程存储
如果经常处理大文件,比如视频素材、虚拟机镜像,那不要把它们放在/home下,更不要放在根分区。把这些大件挪到独立数据盘,或者设置自动同步到NAS、网盘目录,是很好的习惯。或者更极客一点,用rclone挂载一个云盘,把不常用的归档文件统统扔上去,本地只留工作版本。UOS的应用商店里有坚果云、百度网盘等客户端,直接安装登录,把“同步文件夹”指向本地磁盘中单独分出的分区即可。
有几项额外的细节值得留意:
- 挂载点要直观:UOS安装完成后,外部移动硬盘会自动挂载在
/media/用户名/设备名下,路径里带空格很常见,脚本路径会容易出问题,所以个人建议用“磁盘”工具自己定义一个挂载点,比如/data。 - 定期备份fstab:改过分区、挂过新盘之后,把
/etc/fstab文件复制一份存到U盘,哪天系统崩了重装,这个文件能帮你快速恢复挂载关系。 - UOS系统更新前看一眼可用空间:系统更新时需要下载并解压几百MB到几GB的软件包,如果空间只剩几百MB,最好先执行一次清理再更新,否则可能更新到一半报错,更麻烦。
6.3 对“是否要升级成更大大容量硬盘”的判断
有朋友扩容完之后发现,根分区扩到了200GB,但磁盘整体只有256GB,根本空间不够用。这时也不用强撑着,当前固态硬盘价格不算贵,直接把系统盘换成大容量NVMe盘是更省心的方案。换盘后的数据迁移,可以用UOS自带的“全盘备份”功能先做一个镜像,再通过PE或GParted把镜像恢复到新盘上。这一步也是全程图形化,不需要重装系统。
硬盘替换时有个小技巧:买新盘之前先看一眼当前主板是SATA还是NVMe协议,别买错接口类型。如果主板支持NVMe,尽量选NVMe,后续扩容(迁移)会更方便,速度也有明显提升。
最后说点体己话
UOS系统盘空间不足这件事,说大不大,说小不小,关键看你怎么处理。很多人一听到“分区”“扩容”就觉得头皮发麻,其实真到动手那一步,在图形化工具的帮助下,耗时比想象中短得多。我见过不止一个用户,在我远程指导下,用GParted Live成功给系统盘扩容,全程没有碰过一行纯粹的命令行操作(除了收尾验证时输了个df -h)。你只要记住三件事:动手前备份、操作时看懂“空闲空间的位置”、扩容后检查一遍fstab,这个事儿的风险就完全可控。
如果你运气好,只是临时空间紧张,那更简单,清一轮日志和缓存先顶着。要是已经动了“反正都要处理,干脆换个大盘”的念头,那就按文里的备份恢复方案来,全程图形化走完,稳得很。希望这篇东西能帮你少走点弯路。