当前位置: 首页 > news >正文

Linux磁盘大师:存储管理完全指南

引言

在Linux系统中,磁盘就像一座庞大的数据仓库🏭,高效管理磁盘空间是每个系统管理员和开发者的必备技能!本文将带你从基础命令到高级LVM管理,全面掌握Linux磁盘管理的核心技术。无论你是遇到"磁盘空间不足"的紧急情况,还是需要规划复杂的存储架构,这篇文章都将成为你的救星!我们将通过生动示例和实用技巧,让你轻松玩转Linux磁盘管理~ 🚀

物理磁盘
分区
文件系统
挂载点
LVM
逻辑卷

一、磁盘管理核心命令

1.1 磁盘信息查看命令

1.1.1 列出系统磁盘设备

lsblk                      # 列出所有块设备(树状图)
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT  # 自定义列显示
lsblk -d                   # 只显示磁盘(不显示分区)

1.1.2 查看磁盘详细信息

fdisk -l                   # 查看所有磁盘和分区表
parted -l                  # 更详细的分区信息(支持GPT)
hdparm -I /dev/sda         # 查看磁盘详细信息(包括支持特性)
smartctl -a /dev/sda       # 查看SMART信息(需安装smartmontools)

1.1.3 文件系统信息

df -h                      # 查看已挂载文件系统使用情况
df -i                      # 查看inode使用情况
du -sh /path               # 查看目录大小
du -h --max-depth=1 /      # 查看根目录下各子目录大小

1.2 分区管理命令

1.2.1 使用fdisk进行分区

fdisk /dev/sdb             # 进入交互式分区工具

常用fdisk命令:

n - 新建分区
d - 删除分区
p - 打印分区表
t - 更改分区类型
w - 写入并退出
q - 不保存退出

1.2.2 使用parted进行分区(支持GPT)

parted /dev/sdb            # 进入交互式分区工具

常用parted命令:

mklabel gpt                # 创建GPT分区表
mkpart primary ext4 1MiB 1GiB  # 创建主分区
print                      # 显示分区表
rm 1                       # 删除分区1
quit                       # 退出

1.2.3 使用gdisk(GPT专用)

gdisk /dev/sdb             # 类似fdisk但专用于GPT

1.3 文件系统创建与管理

1.3.1 创建文件系统

mkfs.ext4 /dev/sdb1        # 创建ext4文件系统
mkfs.xfs /dev/sdb2         # 创建XFS文件系统
mkfs.vfat -F 32 /dev/sdb3  # 创建FAT32文件系统
mkswap /dev/sdb4           # 创建交换分区

1.3.2 文件系统检查与修复

fsck /dev/sda1             # 检查并修复文件系统
xfs_repair /dev/sdb1       # XFS文件系统修复
e2fsck -f /dev/sda2        # 强制检查ext文件系统

1.3.3 调整文件系统大小

resize2fs /dev/sda1        # 调整ext2/3/4文件系统大小
xfs_growfs /mount/point    # 扩展XFS文件系统

1.4 挂载管理命令

1.4.1 基本挂载操作

mount /dev/sdb1 /mnt/data  # 临时挂载
umount /mnt/data           # 卸载
umount -l /mnt/data        # 延迟卸载(当设备忙时)

1.4.2 自动挂载配置

编辑 /etc/fstab 文件示例:

/dev/sdb1  /data  ext4  defaults  0  2
UUID=xxxx-xxxx  /backup  xfs  defaults  0  2

1.4.3 特殊挂载选项

mount -o remount,rw /      # 重新挂载根分区为可写
mount -t tmpfs -o size=1G tmpfs /mnt/tmp  # 挂载临时文件系统
mount --bind /old /new     # 绑定挂载

1.5 逻辑卷管理(LVM)

1.5.1 物理卷(PV)管理

pvcreate /dev/sdb          # 创建物理卷
pvdisplay                  # 显示物理卷信息
pvmove /dev/sdb1           # 迁移物理卷数据
pvremove /dev/sdb1         # 删除物理卷

1.5.2 卷组(VG)管理

vgcreate vg_data /dev/sdb1 /dev/sdc1  # 创建卷组
vgextend vg_data /dev/sdd1           # 扩展卷组
vgreduce vg_data /dev/sdb1           # 缩减卷组
vgdisplay                            # 显示卷组信息
vgremove vg_data                     # 删除卷组

1.5.3 逻辑卷(LV)管理

lvcreate -L 10G -n lv_www vg_data    # 创建逻辑卷
lvresize -L +5G /dev/vg_data/lv_www  # 扩展逻辑卷
lvreduce -L -2G /dev/vg_data/lv_www  # 缩减逻辑卷(需先缩减文件系统)
lvdisplay                            # 显示逻辑卷信息
lvremove /dev/vg_data/lv_www         # 删除逻辑卷

1.6 RAID管理

1.6.1 软件RAID创建

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
mdadm --detail /dev/md0     # 查看RAID详细信息
cat /proc/mdstat            # 查看RAID状态

1.6.2 RAID维护

mdadm --manage /dev/md0 --add /dev/sdd1  # 添加备用磁盘
mdadm --manage /dev/md0 --fail /dev/sdb1 # 标记磁盘为故障
mdadm --manage /dev/md0 --remove /dev/sdb1 # 移除故障磁盘

1.6.3 RAID配置文件

mdadm --detail --scan > /etc/mdadm.conf  # 生成RAID配置

1.7 磁盘性能测试

1.7.1 基本性能测试

hdparm -Tt /dev/sda        # 测试缓存和磁盘读取速度
dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct  # 测试写入速度
dd if=testfile of=/dev/null bs=1G count=1  # 测试读取速度

1.7.2 高级性能测试

# 使用fio进行专业测试(需安装)
fio --name=randread --ioengine=libaio --iodepth=16 \
    --rw=randread --bs=4k --direct=1 --size=1G --numjobs=4 \
    --runtime=60 --group_reporting

1.8 高级磁盘操作

1.8.1 磁盘克隆

dd if=/dev/sda of=/dev/sdb bs=4M status=progress  # 整盘克隆
dd if=/dev/sda1 of=sda1.img bs=4M status=progress  # 创建分区镜像

1.8.2 磁盘擦除

shred -v -n 1 /dev/sdb     # 单次覆盖磁盘
dd if=/dev/zero of=/dev/sdb bs=1M status=progress  # 全盘写零

1.8.3 磁盘健康监控

smartctl -H /dev/sda       # 查看磁盘健康状态
smartctl -A /dev/sda       # 查看所有SMART属性
smartctl -l error /dev/sda # 查看错误日志

1.9 SSD优化命令

1.9.1 TRIM操作

fstrim -v /                # 手动执行TRIM
# 启用自动TRIM(编辑/etc/fstab添加discard选项)

1.9.2 查看SSD信息

nvme list                  # 查看NVMe SSD列表
nvme smart-log /dev/nvme0  # 查看NVMe SMART信息

1.10 故障排查命令

1.10.1 查看磁盘错误

dmesg | grep -i error      # 查看内核错误日志
journalctl -k -b | grep -i sda  # 查看系统日志中的磁盘信息

1.10.2 修复常见问题

badblocks -v /dev/sdb1     # 检查坏块
fsck -y /dev/sda1          # 自动修复文件系统错误

二、磁盘分区与挂载

2.1 准备工作

2.1.1 识别磁盘设备

lsblk                      # 查看所有块设备
sudo fdisk -l              # 列出所有磁盘和分区
sudo ls -l /dev/disk/by-*  # 通过不同标识查看磁盘

示例输出:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  100G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0     1G  0 part /boot
└─sda3   8:3    0  98.5G  0 part 
  └─vg-root 253:0    0  98.5G  0 lvm  /
sdb      8:16   0    1T  0 disk 

2.1.2 确定要操作的磁盘

  • /dev/sdX:SATA/SCSI/USB 磁盘(如 sda, sdb)
  • /dev/nvmeXnY:NVMe 磁盘(如 nvme0n1)
  • /dev/vdX:虚拟磁盘(如 vda, vdb)

2.2 分区操作

2.2.1 使用 fdisk 进行分区(MBR格式)

sudo fdisk /dev/sdb

交互命令:

n - 新建分区
p - 主分区(1-4)
e - 扩展分区
分区号 - 默认回车
起始扇区 - 默认回车
结束扇区 - 可指定大小如 +20G
t - 更改分区类型(82=swap, 83=Linux, 8e=LVM)
p - 预览分区表
w - 写入并退出
q - 不保存退出

2.2.2 使用 gdisk 进行分区(GPT格式)

sudo gdisk /dev/sdb

交互命令与fdisk类似,但支持更多分区(128个)

2.2.3 使用 parted 进行高级分区

sudo parted /dev/sdb

常用命令:

mklabel gpt                # 创建GPT分区表
mkpart primary ext4 1MiB 1GiB  # 精确指定分区范围
unit GB                    # 切换单位为GB
print                      # 显示分区表
quit                       # 退出

2.3 创建文件系统

2.3.1 常用文件系统类型

  • ext4:传统Linux文件系统
  • xfs:高性能文件系统
  • btrfs:支持高级特性(快照等)
  • vfat:兼容Windows(FAT32)
  • swap:交换分区

2.3.2 格式化分区

# ext4文件系统
sudo mkfs.ext4 /dev/sdb1

# xfs文件系统
sudo mkfs.xfs /dev/sdb2

# swap分区
sudo mkswap /dev/sdb3
sudo swapon /dev/sdb3   # 立即启用

# FAT32文件系统
sudo mkfs.vfat -F 32 /dev/sdb4

2.3.3 添加文件系统标签

sudo e2label /dev/sdb1 "DATA"          # ext2/3/4
sudo xfs_admin -L "BACKUP" /dev/sdb2   # XFS
sudo fatlabel /dev/sdb4 "SHARE"        # FAT

2.4 挂载文件系统

2.4.1 临时挂载

sudo mkdir /mnt/data
sudo mount /dev/sdb1 /mnt/data

2.4.2 永久挂载(/etc/fstab)

sudo blkid /dev/sdb1  # 获取UUID

编辑 /etc/fstab 添加:

# 格式:<设备> <挂载点> <文件系统> <选项> <dump> <fsck>
UUID=xxxx-xxxx  /mnt/data  ext4  defaults  0  2
或
/dev/sdb1      /mnt/data  xfs   defaults  0  2

常用挂载选项:

  • defaults:默认选项(rw,suid,dev,exec,auto,nouser,async)
  • noatime:不更新访问时间,提升性能
  • nodiratime:不更新目录访问时间
  • discard:启用SSD TRIM功能
  • nofail:启动时忽略挂载失败

2.4.3 验证fstab配置

sudo mount -a  # 挂载所有fstab中定义的文件系统

2.5 高级分区与挂载场景

2.5.1 挂载ISO文件

sudo mkdir /mnt/iso
sudo mount -o loop ubuntu.iso /mnt/iso

2.5.2 绑定挂载(Bind Mount)

sudo mount --bind /var/www /mnt/www_backup
# 永久绑定(在fstab中添加):
/var/www    /mnt/www_backup    none    bind    0 0

2.5.3 使用LVM的挂载

# 创建物理卷
sudo pvcreate /dev/sdb1

# 创建卷组
sudo vgcreate vg_data /dev/sdb1

# 创建逻辑卷
sudo lvcreate -L 50G -n lv_files vg_data

# 格式化并挂载
sudo mkfs.xfs /dev/vg_data/lv_files
sudo mount /dev/vg_data/lv_files /mnt/files

2.5.4 挂载网络共享

# NFS挂载
sudo mount -t nfs 192.168.1.100:/share /mnt/nfs

# CIFS/SMB挂载
sudo mount -t cifs -o username=user //192.168.1.100/share /mnt/smb

2.6 日常维护与管理

2.6.1 查看已挂载文件系统

mount                      # 显示所有挂载点
findmnt                    # 树状显示挂载点
df -hT                     # 显示磁盘使用情况

2.6.2 卸载文件系统

sudo umount /mnt/data      # 通过挂载点卸载
sudo umount /dev/sdb1      # 通过设备卸载

# 强制卸载(当设备忙时)
sudo umount -l /mnt/data   # 延迟卸载
sudo fuser -vm /mnt/data   # 查看占用进程
sudo kill -9 <PID>         # 结束占用进程后卸载

2.6.3 调整文件系统大小

# 扩展ext2/3/4文件系统(先扩展分区)
sudo resize2fs /dev/sdb1

# 扩展XFS文件系统(分区必须已扩展)
sudo xfs_growfs /mnt/data

# 缩小ext文件系统(需先卸载并检查)
sudo e2fsck -f /dev/sdb1
sudo resize2fs /dev/sdb1 20G

2.7 故障排除

2.7.1 修复文件系统错误

# 检查ext文件系统
sudo fsck /dev/sdb1

# 修复XFS文件系统
sudo xfs_repair /dev/sdb2

2.7.2 恢复损坏的分区表

sudo testdisk /dev/sdb     # 交互式分区恢复工具

2.7.3 处理"mount: unknown filesystem type"错误

# 确保文件系统工具已安装
sudo apt install xfsprogs btrfs-progs dosfstools  # Debian/Ubuntu
sudo yum install xfsprogs btrfs-progs dosfstools  # RHEL/CentOS

2.8 最佳实践

  1. 始终使用UUID挂载:避免设备名变化导致的问题
  2. 重要操作前备份数据:分区操作有风险
  3. 合理规划分区方案
    • /boot:500MB-1GB
    • 根分区:20-50GB
    • /home:根据用户数据量
    • 交换分区:物理内存的1-2倍(但不超过8GB)
  4. SSD优化
    • 使用fstrim定期TRIM
    • 挂载选项添加discard,noatime
  5. 定期检查磁盘健康
    sudo smartctl -H /dev/sda
    

三、LVM逻辑卷管理

LVM(Logical Volume Manager)是Linux环境下对磁盘分区进行管理的一种高级机制,它提供了比传统分区更灵活的磁盘管理方式。

3.1 LVM基本概念

3.1.1 LVM组成架构

文件系统
  ↓
逻辑卷(Logical Volume, LV)
  ↓
卷组(Volume Group, VG)
  ↓
物理卷(Physical Volume, PV)
  ↓
物理设备(硬盘/分区)

3.1.2 核心组件

组件说明
物理卷(PV)实际的物理磁盘或分区
卷组(VG)由一个或多个PV组成的存储池
逻辑卷(LV)从VG中划分出的逻辑存储单元
物理扩展(PE)PV分配的最小单位(默认4MB)
逻辑扩展(LE)LV使用的最小单位

3.2 LVM基本操作

3.2.1 创建LVM环境

1. 准备物理设备
sudo fdisk /dev/sdb  # 创建分区并将类型改为8e (Linux LVM)
2. 创建物理卷
sudo pvcreate /dev/sdb1 /dev/sdc  # 可以针对分区或整块磁盘
sudo pvdisplay                    # 查看PV信息
3. 创建卷组
sudo vgcreate vg_data /dev/sdb1 /dev/sdc
sudo vgdisplay                    # 查看VG信息
4. 创建逻辑卷
sudo lvcreate -L 20G -n lv_files vg_data  # 创建20G的逻辑卷
sudo lvcreate -l 100%FREE -n lv_backup vg_data  # 使用全部剩余空间
sudo lvdisplay                    # 查看LV信息
5. 创建文件系统并挂载
sudo mkfs.xfs /dev/vg_data/lv_files
sudo mkdir /mnt/files
sudo mount /dev/vg_data/lv_files /mnt/files

3.2.2 扩展LVM容量

1. 扩展物理卷(添加新磁盘)
sudo pvcreate /dev/sdd
sudo vgextend vg_data /dev/sdd
2. 扩展逻辑卷
sudo lvextend -L +10G /dev/vg_data/lv_files  # 增加10G
sudo lvextend -l +100%FREE /dev/vg_data/lv_files  # 使用全部可用空间

# 扩展文件系统(根据文件系统类型)
sudo xfs_growfs /mnt/files                   # 对于XFS
sudo resize2fs /dev/vg_data/lv_files         # 对于ext2/3/4

3.2.3 缩减LVM容量

警告:缩减操作有风险,务必先备份数据!

1. 缩减文件系统
# 对于ext2/3/4:
sudo umount /mnt/files
sudo e2fsck -f /dev/vg_data/lv_files
sudo resize2fs /dev/vg_data/lv_files 15G     # 缩减到15G
sudo lvreduce -L 15G /dev/vg_data/lv_files
sudo mount /dev/vg_data/lv_files /mnt/files

# XFS不支持缩减!

3.2.4 删除LVM组件

# 删除逻辑卷
sudo lvremove /dev/vg_data/lv_backup

# 从卷组中移除物理卷(必须先迁移数据)
sudo pvmove /dev/sdb1          # 将数据迁移到VG中其他PV
sudo vgreduce vg_data /dev/sdb1

# 删除物理卷
sudo pvremove /dev/sdb1

# 删除卷组
sudo vgremove vg_data

3.3 LVM高级功能

3.3.1 逻辑卷快照

# 创建快照(至少需要原LV容量的15-20%)
sudo lvcreate -L 5G -s -n lv_files_snap /dev/vg_data/lv_files

# 挂载快照(只读)
sudo mkdir /mnt/snapshot
sudo mount -o ro /dev/vg_data/lv_files_snap /mnt/snapshot

# 合并快照(恢复数据)
sudo umount /mnt/files
sudo lvconvert --merge /dev/vg_data/lv_files_snap

3.3.2 逻辑卷迁移

# 将数据从/dev/sdb1迁移到/dev/sdc
sudo pvmove /dev/sdb1 /dev/sdc

# 查看迁移进度
sudo pvs -o+pv_used

3.3.3 条带化逻辑卷(提高性能)

sudo lvcreate -L 50G -i 2 -I 4 -n lv_striped vg_data /dev/sdb1 /dev/sdc1
  • -i 2:使用2个PV进行条带化
  • -I 4:条带大小4KB

3.3.4 镜像逻辑卷(提高冗余)

sudo lvcreate -L 20G -m 1 -n lv_mirror vg_data /dev/sdb1 /dev/sdc1
  • -m 1:创建1个镜像副本

3.4 LVM维护与监控

3.4.1 信息查看命令

# 查看物理卷
sudo pvs
sudo pvdisplay

# 查看卷组
sudo vgs
sudo vgdisplay

# 查看逻辑卷
sudo lvs
sudo lvdisplay

# 查看所有LVM设备
sudo lvmdiskscan

3.4.2 修改LVM属性

# 重命名卷组
sudo vgrename old_vg new_vg
# 更新/etc/fstab和/etc/grub中的引用

# 重命名逻辑卷
sudo lvrename vg_data old_lv new_lv

# 修改PE大小(必须在创建VG前)
sudo vgcreate -s 8M vg_data /dev/sdb1  # PE大小设为8MB

3.4.3 数据恢复

# 扫描丢失的物理卷
sudo pvscan --cache

# 恢复卷组元数据
sudo vgcfgrestore -f /etc/lvm/backup/vg_data vg_data

3.5 LVM与系统启动

3.5.1 在initramfs中启用LVM

# 更新initramfs(Debian/Ubuntu)
sudo update-initramfs -u

# 更新initramfs(RHEL/CentOS)
sudo dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)

3.5.2 修复无法启动的LVM系统

  1. 从Live CD启动
  2. 激活卷组:
    sudo vgchange -ay
    
  3. 修复文件系统:
    sudo fsck /dev/vg_data/lv_root
    

3.6 最佳实践

  1. 合理规划VG:按用途划分(如系统VG、数据VG)
  2. 保留空间:VG中保留5-10%空间供管理操作
  3. 命名规范
    • VG:vg_用途(如vg_system、vg_data)
    • LV:lv_用途(如lv_home、lv_mysql)
  4. 监控警报:设置监控检查VG剩余空间
  5. 定期备份元数据
    sudo vgcfgbackup -f /backup/vg_data_backup vg_data
    
  6. SSD优化
    • 使用discard挂载选项
    • 考虑将SSD和HDD放在不同VG中

3.7 常见问题解决

3.7.1 "Volume group not found"错误

sudo vgscan                  # 扫描所有VG
sudo vgchange -ay            # 激活所有VG

3.7.2 修复损坏的物理卷

sudo pvcreate -ff /dev/sdb1  # 强制重建PV元数据
sudo vgcfgrestore vg_data    # 恢复VG元数据

3.7.3 处理"out of space"错误

# 检查是否有足够的PE
sudo vgdisplay vg_data | grep Free

# 如果有PE但无法分配:
sudo lvresize -l +100%FREE /dev/vg_data/lv_files

四、磁盘空间分析与清理

4.1 快速定位磁盘使用情况

4.1.1 查看整体磁盘使用

df -h                   # 人类可读格式显示磁盘使用
df -i                   # 查看inode使用情况

示例输出:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   45G  2.3G  96% /
/dev/sdb1       1.8T  1.2T  512G  70% /data

4.1.2 定位大目录

du -sh /*               # 查看根目录下各目录大小
du -h --max-depth=1 /   # 更清晰的树状显示

4.1.3 交互式可视化分析

ncdu /                  # 需要安装ncdu工具

(使用方向键导航,Enter进入目录,d删除文件)

4.2 深入分析空间占用

4.2.1 查找大文件

find / -type f -size +100M -exec ls -lh {} + | sort -k5 -rh
  • 查找大于100MB的文件并按大小排序

4.2.2 查找特定类型的文件

find / -name "*.log" -size +10M -exec ls -lh {} +
  • 查找大于10MB的日志文件

4.2.3 按修改时间查找

find / -type f -mtime +30 -exec ls -lh {} +
  • 查找30天前修改的文件

4.3 针对性清理方案

4.3.1 日志文件清理

# 查看日志文件大小
ls -lh /var/log/

# 清空日志文件(不删除文件)
sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/kern.log

# 配置logrotate自动管理
sudo nano /etc/logrotate.conf

4.3.2 清理APT缓存

sudo apt clean          # 清理所有缓存包
sudo apt autoclean      # 只清理过期的缓存包

4.3.3 清理旧内核

# 查看已安装内核
dpkg --list | grep linux-image

# 删除旧内核(保留当前和上一个版本)
sudo apt purge linux-image-5.4.0-XX-generic

4.3.4 清理Docker资源

docker system prune     # 清理未使用的容器、网络、镜像等
docker volume prune     # 清理未使用的卷

4.3.5 清理Snap软件包

# 查看snap版本
snap list --all

# 清理旧版本
sudo snap set system refresh.retain=2  # 只保留2个版本
sudo snap refresh

4.4 高级清理技巧

4.4.1 查找并删除重复文件

# 安装fdupes工具
sudo apt install fdupes

# 查找重复文件
fdupes -r /home

# 交互式删除
fdupes -rd /home

4.4.2 清理临时文件

# 系统临时文件
sudo rm -rf /tmp/*

# 用户缓存文件
rm -rf ~/.cache/*

4.4.3 清理未使用的语言包

# 检查已安装的语言包
localectl list-locales

# 删除不需要的语言包
sudo apt purge language-pack-zh language-pack-ja

4.5 自动化清理方案

4.5.1 创建清理脚本

#!/bin/bash
# 清理日志
sudo truncate -s 0 /var/log/*.log
# 清理APT
sudo apt clean
sudo apt autoclean
# 清理临时文件
sudo rm -rf /tmp/*
rm -rf ~/.cache/*

4.5.2 设置定期任务

# 编辑crontab
crontab -e

# 每周日凌晨3点清理
0 3 * * 0 /path/to/cleanup_script.sh

4.6 预防空间不足

4.6.1 设置磁盘配额

# 安装配额工具
sudo apt install quota

# 启用配额
sudo mount -o remount,usrquota,grpquota /
sudo quotacheck -cum /
sudo quotaon -v /

4.6.2 监控磁盘空间

# 安装监控工具
sudo apt install smartmontools

# 检查磁盘健康
sudo smartctl -a /dev/sda

# 设置邮件警报
sudo apt install mailutils
echo "Alert: Disk space low on $(hostname)" | mail -s "Disk Alert" admin@example.com

4.7 特殊场景处理

4.7.1 处理已删除但未释放空间的文件

# 查找被删除但仍被进程占用的文件
lsof | grep deleted

# 重启相关进程或系统释放空间
sudo systemctl restart servicename

4.7.2 处理小文件占用大量inode

# 查找包含大量文件的目录
find / -xdev -type d | while read dir; do echo "$(find "$dir" -maxdepth 1 | wc -l) $dir"; done | sort -n | tail

4.7.3 处理LVM空间不足

# 扩展逻辑卷
sudo lvextend -L +10G /dev/vg_data/lv_root
sudo resize2fs /dev/vg_data/lv_root

4.8 图形化工具推荐

  1. Baobab (GNOME磁盘使用分析器)

    sudo apt install baobab
    baobab
    
  2. Filelight (KDE磁盘使用可视化)

    sudo apt install filelight
    filelight
    
  3. QDirStat (Qt版磁盘分析工具)

    sudo apt install qdirstat
    qdirstat
    

总结 🎯

通过本文的学习,我们已经掌握了Linux磁盘管理的完整知识体系:

  1. 核心命令:fdisk/lsblk/df/du等工具的使用技巧 🛠️
  2. 分区挂载:从分区创建到文件系统建立的全流程 🔧
  3. LVM管理:物理卷→卷组→逻辑卷的灵活存储方案 💎
  4. 空间优化:分析、监控和清理磁盘空间的实用方法 🧹

关键要点回顾:

  • LVM是生产环境的黄金标准,支持在线扩容和灵活管理 🌟
  • 定期清理日志和临时文件,预防磁盘爆满的紧急情况 🚨
  • 理解文件系统特性,ext4适合通用场景,xfs适合大文件 📁

掌握这些磁盘管理技能,你就能像专业存储工程师一样高效管理Linux服务器,再也不用为空间问题发愁啦!🐧💽


PS:如果你在学习过程中遇到问题,别慌!欢迎在评论区留言,我会尽力帮你解决!😄

相关文章:

  • Redis 哨兵模式 搭建
  • PDF 转换为 Word、HTML、LaTeX 和 Markdown 格式
  • TDengine 语言连接器(C/C++)
  • 智能手机功耗测试
  • jxls2.10实现模板导出/单元格合并/自定义标签实现单元格隐藏
  • 为什么ASCII的A是65[特殊字符]
  • NET模式下如何配置虚拟机的IP地址为静态的
  • 在Ubuntu 22.04里使用KVM创建虚拟机Ubuntu 22.04
  • 【源码】Mybatis源码
  • 图片文本识别OCR+DeepSeekapi实现提取图片关键信息
  • Linux权限理解
  • [IEEE TIP 2024](cv即插即用模块分享)IdeNet信息增强模块 性能提升必备!
  • 如何用海伦公式快速判断点在直线的哪一侧
  • MCP(模型上下文协议)简单案例
  • XILINX DDR3专题---(1)IP核时钟框架介绍
  • Python及C++中的列表
  • 2025届蓝桥杯JavaB组个人题解(题目全)
  • 【音视频】SDL播放PCM音频
  • 【音视频】SDL渲染YUV格式像素
  • 十六届蓝桥杯嵌入式省赛直播基本外设驱动
  • 网站开发哪家强/百度爱采购官网
  • .net如何做直播网站/关键词挖掘站网
  • 论坛是做网站还是app好/竞价开户公司
  • 做企业网站找哪家/免费seo网站自动推广
  • 天津建设安全协会网站/百度地图导航手机版免费下载
  • 广州印刷网站建设/友情链接交换工具