Ubuntu管理大容量硬盘空间的实用方法
大容量硬盘的高效管理始于合理的分区设计。对于容量>2TB的硬盘,必须使用GPT分区表(支持更大容量且具备备份分区表的高可靠性),可通过parted工具操作(避免使用fdisk)。常见的分区方案包括:
/(根分区,30-50GB,安装系统和核心软件)、Swap(交换分区,物理内存≤4GB时设为2倍,>4GB时设为1.5倍或等同内存,用于休眠或内存不足时的虚拟内存)、/home(家分区,剩余所有空间,存储用户个人数据,重装系统时可保留)。/boot(1-2GB,存放内核和启动文件)、/var(20-50GB,存储日志、数据库等动态数据,避免日志占满根分区)、/opt(可选,用于安装大型第三方软件,如Oracle数据库)。/boot/efi),用于存放引导文件。/home、/var/log)。df -h:快速查看所有文件系统的使用情况(总容量、已用、可用),-h参数使输出更易读(如GB、MB)。du -sh *:查看当前目录下各文件夹的大小,-s汇总、-h易读,可递归分析子目录(如du -sh /home/user/Documents)。lsblk:列出所有块设备(硬盘、分区),查看分区挂载点和大小。/var/cache/apt/archives),可通过以下命令清理:
sudo apt-get clean:彻底清理所有缓存包。sudo apt-get autoclean:清理不再需要的旧缓存包(仅保留当前可用的软件包)。dpkg -l | grep linux-image:列出所有已安装的内核版本。sudo apt-get purge linux-image-x.x.x-x-generic:删除指定旧内核(保留当前正在使用的内核,可通过uname -r查看)。/var/log)会随时间增长占用空间,可使用以下命令清理:
sudo journalctl --vacuum-time=3d:删除3天前的日志(--vacuum-size=100M可限制日志大小为100MB)。sudo rm /var/log/*.gz:删除压缩的旧日志文件(谨慎操作,避免删除正在使用的日志)。/var/lib/snapd/snaps),可通过以下命令删除:
snap list --all:查看所有Snap包及其版本。sudo snap remove <package-name> --revision=<revision-number>:删除指定旧版本(保留最新版本)。sudo rm -rf /tmp/*:清理/tmp目录下的临时文件(重启系统后会自动清理,但可手动加速)。rm -rf ~/.cache/thumbnails/*:清理缩略图缓存(位于用户家目录的.cache/thumbnails)。sudo find / -type f -size +100M:查找系统中大于100MB的文件(需root权限,避免遗漏系统文件)。FSlint(查找重复文件)、FDUPES(命令行工具,fdupes -r /home递归查找重复文件)。/home分区剩余空间多),可通过GParted(Live CD/USB启动)调整分区大小:缩小未使用的分区,扩展需要更多空间的分区(如/根分区)。lsblk查看设备名,如sdb)。parted或GParted创建分区(如/dev/sdb1),格式化为ext4(sudo mkfs.ext4 /dev/sdb1)。/mnt/newdisk),编辑/etc/fstab文件(添加/dev/sdb1 /mnt/newdisk ext4 defaults 0 2),实现开机自动挂载。sudo pvcreate /dev/sdaX(将现有分区或新硬盘设为物理卷)。sudo vgcreate vg_name /dev/sdaX(将物理卷加入卷组)。sudo lvcreate -L 50G -n lv_name vg_name(从卷组中分配50GB创建逻辑卷)。sudo lvextend -l +100%FREE /dev/vg_name/lv_name),最后调整文件系统大小(sudo resize2fs /dev/vg_name/lv_name)。GParted或fdisk扩展分区(需注意:扩展分区前需将未分配空间添加到现有分区,或创建新分区并挂载)。cron定时任务自动化(如编辑/etc/crontab,添加0 3 * * * root /usr/bin/apt-get clean && /usr/bin/journalctl --vacuum-time=7d,每天凌晨3点清理)。docker system prune -a:清理所有未使用的容器、网络、镜像和构建缓存。docker volume prune:清理未使用的卷。OPTIMIZE TABLE table_name),减少碎片占用空间(适用于频繁插入、删除数据的表)。