Linux分区:如何解决分区空间不足的问题
导读:1. 清理现有文件系统释放空间 在扩展分区前,优先通过清理无用数据快速释放空间,适用于大多数场景: 清理包缓存:Debian/Ubuntu系统使用sudo apt clean;RHEL/CentOS系统使用sudo yum clean a...
1. 清理现有文件系统释放空间
在扩展分区前,优先通过清理无用数据快速释放空间,适用于大多数场景:
- 清理包缓存:Debian/Ubuntu系统使用
sudo apt clean;RHEL/CentOS系统使用sudo yum clean all,可清除软件安装缓存(通常占1-5GB)。 - 卸载旧内核:旧内核占用
/boot分区空间,通过dpkg --list | grep linux-image(Debian/Ubuntu)或rpm -q kernel(RHEL/CentOS)列出已安装内核,卸载旧版本(保留当前使用的linux-image-x.x.x-x-generic),再用sudo update-grub更新引导器。 - 清理日志文件:系统日志(
/var/log)易膨胀,使用sudo journalctl --vacuum-time=7d保留最近7天日志,或手动删除旧日志(sudo rm /var/log/*.gz /var/log/*.1)。 - 清理Docker数据:若使用Docker,
docker system prune -af可删除所有未使用的镜像、容器、网络和构建缓存(谨慎使用,会彻底删除未使用资源)。 - 查找大文件:用
find / -type f -size +100M -exec ls -lh { } \; 2> /dev/null | sort -k 5 -rh | head -n 20查找大于100MB的大文件,确认后手动删除无用文件(如旧备份、下载的安装包)。
2. 调整现有分区大小(需未分配空间或缩小相邻分区)
若磁盘有未分配空间或相邻分区(如/home)有冗余空间,可通过调整分区大小为根分区(/)扩展空间:
- 使用fdisk/gparted:
- 备份重要数据(分区操作有风险);
- 用
sudo fdisk /dev/sdX(sdX为目标磁盘,如sda)删除目标分区(如/dev/sda1,根分区),注意不要删除分区表; - 重新创建分区,设置更大结束扇区(如
+50G),确保分区类型(如83为Linux)不变; - 用
sudo partprobe刷新分区表,使系统识别新分区大小; - 调整文件系统大小:ext4用
sudo resize2fs /dev/sda1,XFS用sudo xfs_growfs /dev/sda1(XFS需先挂载)。
- 注意事项:若分区为LVM逻辑卷,操作更简单(见第3点);调整系统分区(如
/)需从Live CD/USB启动,避免系统无法挂载。
3. 使用LVM(逻辑卷管理)动态扩展(推荐)
LVM提供灵活的空间管理,支持动态扩展逻辑卷(LV),无需删除数据:
- 前提条件:磁盘已创建物理卷(PV)、卷组(VG)和逻辑卷(LV)(若未使用LVM,需先转换,但会丢失数据)。
- 扩展步骤:
- 添加新磁盘或未分配空间:物理添加硬盘(
lsblk查看是否识别,如/dev/sdb),或使用现有未分配空间; - 创建物理卷:
sudo pvcreate /dev/sdb1(sdb1为新分区); - 扩展卷组:
sudo vgextend vg-root /dev/sdb1(vg-root为卷组名,可通过vgdisplay查看); - 扩展逻辑卷:
sudo lvextend -L +10G /dev/mapper/vg-root(+10G为增加10GB,也可用-l +100%FREE用尽剩余空间); - 扩展文件系统:ext4用
sudo resize2fs /dev/mapper/vg-root,XFS用sudo xfs_growfs /(XFS需挂载)。
- 添加新磁盘或未分配空间:物理添加硬盘(
- 优势:可多次扩展,不影响数据;支持缩小逻辑卷(需先缩小文件系统)。
4. 添加新硬盘并挂载到目标目录
若现有磁盘无剩余空间,添加新硬盘是最彻底的解决方案:
- 步骤:
- 物理添加硬盘:插入新硬盘,用
lsblk查看设备名(如/dev/sdb); - 分区:
sudo fdisk /dev/sdb,按提示创建主分区(n→p→设置分区号→设置大小→w); - 格式化:
sudo mkfs.ext4 /dev/sdb1(或ext3、xfs,根据需求选择); - 创建挂载点:
sudo mkdir /mnt/newdisk(如需挂载到/home,则mkdir /home); - 临时挂载:
sudo mount /dev/sdb1 /mnt/newdisk,验证是否成功(df -h查看); - 永久挂载:编辑
/etc/fstab,添加/dev/sdb1 /mnt/newdisk ext4 defaults 0 0(重启后自动挂载)。
- 物理添加硬盘:插入新硬盘,用
- 适用场景:
/home、/var等目录空间不足时,可将新硬盘挂载到对应目录,不影响系统分区。
5. 移动数据到其他分区或外部存储
将大文件或目录迁移到其他有空间的分区(如/mnt/newdisk)或外部存储(如NAS、U盘):
- 示例:将
/var/log迁移到/mnt/newdisk/log:sudo mkdir /mnt/newdisk/log;sudo mv /var/log/* /mnt/newdisk/log/;sudo ln -s /mnt/newdisk/log /var/log(创建符号链接,使系统仍访问原路径)。
- 注意事项:迁移系统目录(如
/var)需谨慎,避免影响服务运行;建议在维护模式下操作。
6. 启用磁盘配额(限制用户/组空间使用)
若多用户共享磁盘,可通过配额限制单个用户的空间使用,防止个别用户占用过多空间:
- 启用步骤:
- 安装配额工具:
sudo apt install quota(Debian/Ubuntu)、sudo yum install quota(RHEL/CentOS); - 修改
/etc/fstab,在挂载选项中添加usrquota,grpquota(如/dev/sda1 / ext4 defaults,usrquota,grpquota 0 0); - 重新挂载:
sudo mount -o remount /; - 初始化配额数据库:
sudo quotacheck -avug; - 启用配额:
sudo quotaon /; - 设置用户配额:
sudo setquota -u username 1G 2G 0 0 /(username为用户,1G为软限制,2G为硬限制)。
- 安装配额工具:
- 作用:避免单个用户占用全部空间,适合多用户服务器环境。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux分区:如何解决分区空间不足的问题
本文地址: https://pptw.com/jishu/735040.html
