What to do when debian partition is full
Jump to navigation
Jump to search
在使用围棋 AI 时,遇到了软件解压时,磁盘分区不足,导致 apt 报错的问题。经过多方排查,才知道是 /tmp
分区满了,且 /
分区立马也要满了。一旦重启,/tmp
分区较为空闲时, apt 能正常工作;一旦安装那个占用几个 G 的软件时,进度达 45% 时就报错。
报错为:
E: Write error - write (28: No space left on device) 或 E: Sub-process /usr/bin/dpkg returned an error code (1)
不重装
这是很常见的问题,以前安装 LaTeX 时也曾遇见 /
分区容量 (disk partition space) 不足的问题。总不可能分区容量不足就重装系统吧!所以,怎样在不重装的情况下,调整分区的容量?我们需要一款叫作 Gparted 的软件。
在讨论所有问题之前,我们必须明确一个理论:我们正在使用 /
/usr/bin
/usr/lib
/home/user
/tmp
等分区,不要生猛地硬调。正在用的分区,强行改写分区状况,那肯定丢数据。当然,你想强制去调,你会发现正在用的分区上锁了没法调。
未分配
对硬盘上未分配过的部分,可以用 Gparted 直接调。
已分配
对硬盘上已分配过的部分,即已 mount
的部分,必须在既没 mount,也没 umount 的情况下调。听到这里你恐怕想打人了,这是个啥状态?其实就是在 U 盘里装一个 live boot 系统,用 U 盘里的系统去更改电脑里系统的磁盘分区。
具体操作:
- 进 Gparted 官网
- 下载 Gparted Live USB,它就相当于一个超小 Linux 系统,足以完成更改电脑 Debian 磁盘分区的重任
- 在 Gparted Live USB 制作页面 学习怎么把这个超小 Linux 装进 U 盘。参考命令
sudo dd if=/home/user/Downloads/gparted-live-1.5.0-6-amd64.iso of=/dev/sdxxx-for-yours bs=4M; sync
- 进电脑 BIOS,选择从 U 盘启动。进入超小 Linux 后,会见到 Gparted 已预装且自动启动
- 选择想要调整的硬盘
Gparted 调整分区的核心技巧:假设左边 50G在用,右边 40G 未分配。那先把未分配合并形成 90G 一大块,再把它拆分成前边 30G,中间在用 50G,右边 10G 空着。就像一个吞并再拆分的游戏,调整好后点应用,就成功了。
这对以后安装新系统的启示是:尽量买大硬盘,按系统自动分区都不会出问题。在硬盘容量有限的情况下,各分区比例大概为:
/boot/efi | 0.2G | 0.133% |
/ | 40G | 26.62% |
/tmp | 10G | 6.65% |
/home | 100G | 66.60% |