Linux 磁盘管理
df/du/lsblk 看容量、分区与格式化、fstab 挂载、inode 与空间不足排查。
Key Pointsdf 看文件系统余量,du 看目录占用;空间没满却写不进去,多半是 inode 用完了。
看容量
Bash
df -h
df -i # inode 使用情况
du -sh /var/* | sort -h | tail
lsblk分区、格式化、挂载
Bash
sudo fdisk -l
sudo fdisk /dev/sdb # n 新建,w 写入
sudo mkfs.ext4 /dev/sdb1
sudo mkdir -p /data
sudo mount /dev/sdb1 /data开机自动挂载
Text
# /etc/fstab
/dev/sdb1 /data ext4 defaults,noatime 0 2Bash
sudo mount -a # 先测试,别直接重启
findmnt /dataA bad fstab prevents boot. Always validate with
mount -a, and reference UUIDs from blkid rather than /dev/sdb1, whose name can change.空间去哪了
Bash
du -xhd1 / | sort -h | tail -10
lsof +L1 | head # 已删除但仍被进程占用的文件
journalctl --disk-usageWhen du totals far less than df reports, a process still holds deleted file handles. lsof +L1 lists them; restarting that service frees the space.
LVM 扩容
Bash
sudo pvs && sudo vgs && sudo lvs
sudo lvextend -r -l +100%FREE /dev/vg0/lv_root
df -h /看容量
Bash
df -h
df -i # inode 使用情况
du -sh /var/* | sort -h | tail
lsblk分区、格式化、挂载
Bash
sudo fdisk -l
sudo fdisk /dev/sdb # n 新建,w 写入
sudo mkfs.ext4 /dev/sdb1
sudo mkdir -p /data
sudo mount /dev/sdb1 /data开机自动挂载
Text
# /etc/fstab
/dev/sdb1 /data ext4 defaults,noatime 0 2Bash
sudo mount -a # 先测试,别直接重启
findmnt /datafstab 写错会导致开不了机。改完必须
mount -a 验证;用 UUID(blkid)而不是 /dev/sdb1,否则插拔磁盘后设备名可能变。空间去哪了
Bash
du -xhd1 / | sort -h | tail -10
lsof +L1 | head # 已删除但仍被进程占用的文件
journalctl --disk-usagedu 加起来远小于 df 的已用量,通常是有进程还持有已删除的文件句柄——lsof +L1 能看到,重启对应服务即可释放。
LVM 扩容
Bash
sudo pvs && sudo vgs && sudo lvs
sudo lvextend -r -l +100%FREE /dev/vg0/lv_root
df -h /