*《企鹅的Linux生存指南》第2篇 · 磁盘管理篇*
小王的电脑弹了个红色警告:磁盘空间不足。
他第一反应是去找"我的电脑"看C盘还剩多少。找了一圈没找到。
企鹅路过,说了一句:Linux没有C盘。

先看全局:df -h
这条命令会列出所有分区的使用情况。你会看到类似这样的输出:
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda2 50G 47G 1.2G 98% /
/dev/sda1 512M 5.2M 507M 2% /boot/efi
-h 表示"人类可读"(human-readable),用G和M代替一大串字节,不然你得自己算。
找元凶:du -sh *

知道哪个分区满了,接下来找是什么占了空间:
du是disk usage的缩写。-s表示汇总,-h同样表示人类可读。
du -sh /var/log
du -sh /var/cache
如果想按大小排序找最大的文件夹:
du -ah / | sort -rh | head -20
这条会列出整个系统里最大的20个文件和文件夹,从大到小排。
Linux没有C盘D盘
Windows用C、D、E来区分硬盘分区。Linux不用字母,用【挂载点】。
挂载点就是一个文件夹路径,比如 /(根分区)、/home(用户数据)、/var(日志和缓存)。

你可以把挂载点理解成"把硬盘接到文件树的哪个位置"。
查看所有磁盘和分区:
清理空间
找到吃空间的东西之后,几个常用清理命令:
# 清理不再需要的软件包和缓存
sudo apt autoremove
sudo apt clean
# 清理系统日志(只保留最近3天的)
sudo journalctl --vacuum-time=3d
# 查看日志占了多少空间
journalctl --disk-usage
apt clean 会删掉 /var/cache/apt 里的安装包缓存,通常能省几个G。
journalctl --vacuum-time 可以控制日志文件的总保留时间,系统日志是隐形的空间杀手,用久了不动它可能吃掉十几G。

新硬盘怎么挂载
买了新硬盘插上去,但是看不到?
Linux不会自动挂载新硬盘。你需要手动操作:

# 查看新硬盘的设备名
lsblk
# 假设新硬盘是 /dev/sdb,先格式化
sudo mkfs.ext4 /dev/sdb1
# 创建挂载点
sudo mkdir /data
# 挂载
sudo mount /dev/sdb1 /data
现在 /data 就是你的新硬盘了。
想要开机自动挂载,编辑 fstab 文件:
在末尾加一行:
/dev/sdb1 /data ext4 defaults 0 2
这样每次开机都会自动挂载。不放心的话先不写fstab,需要的时候手动mount就行。
给分区扩容(进阶)
根分区不够用了,但又不想删东西?如果用的是LVM或者有未分配的空间,可以扩容。
最简单的办法是用GParted工具(需要Live USB启动):
1. 制作GParted Live USB启动盘
2. 从USB启动
3. 在GParted里调整分区大小
4. 重启回到系统
操作之前【一定要备份重要数据】。调整分区有风险,断电或误操作可能丢数据。

本篇速查表(建议截图保存)
df -h # 查看所有分区使用情况
du -sh /path/* # 查看文件夹大小
du -ah / | sort -rh | head -20 # 找最大的20个文件
lsblk # 查看所有磁盘和分区
sudo apt autoremove # 清理无用软件包
sudo apt clean # 清理安装包缓存
journalctl --disk-usage # 查看日志占用空间
journalctl --vacuum-time=3d # 只保留3天日志
sudo mkfs.ext4 /dev/sdb1 # 格式化新硬盘
sudo mount /dev/sdb1 /data # 挂载硬盘
sudo umount /data # 卸载硬盘
sudo nano /etc/fstab # 配置开机自动挂载
*下期:小王用root干了三天,企鹅差点报警*