Linux磁盘命令工具全解析:检查、分区、格式化与挂载核心命令指南

Linux磁盘命令工具全解析:检查、分区、格式化与挂载核心命令指南
Linux 系统管理中,磁盘操作是保障数据安全与系统稳定的核心环节。本文汇总了 Linux 磁盘管理的全套实用命令,涵盖磁盘空间监控(dfdu)、健康状态检测(smartctlbadblocks)、分区管理(fdiskparted)、文件系统操作(mkfsmkswap)、挂载配置(mountfstab)及高级功能(LVM 逻辑卷、RAID、磁盘加密)。从日常空间检查、性能分析到分区创建、永久挂载,再到坏道检测与数据恢复,全面覆盖磁盘管理全流程,帮助系统管理员与开发者高效排查磁盘问题、优化存储配置,确保数据安全与系统高效运行。
在 Linux 系统中,磁盘检查是保障数据完整性、诊断存储问题的重要手段。以下从基础工具到高级命令,详细介绍 15 种常用的磁盘检查方法,涵盖空间查看、健康监测、坏道检测等核心场景:

一、基础磁盘空间与使用情况检查

1. df - 查看文件系统使用情况

df -hT  # 以人类可读格式显示各分区占用情况及文件系统类型
df -i   # 查看inode使用情况(解决"磁盘未满但无法创建文件"问题)

2. du - 统计目录或文件大小

du -sh /var/log  # 快速查看/var/log目录总大小
du -h --max-depth=1 /home  # 分层显示/home下各文件夹大小

3. lsblk - 列出所有块设备

lsblk -f  # 显示文件系统和UUID
lsblk -m  # 显示设备权限和所有者

二、磁盘健康状态检查

4. smartctl - SMART 磁盘健康监测

smartctl -a /dev/sda  # 查看磁盘SMART所有信息
smartctl -H /dev/sda  # 快速检查健康状态(PASSED/FAILED)
  • 关键指标:Reallocated Sectors Count(重分配扇区数)、Current Pending Sector Count(待处理扇区数)

5. hdparm - 磁盘硬件参数查看

hdparm -i /dev/sda  # 查看磁盘型号、序列号等信息
hdparm -tT /dev/sda # 测试磁盘读写性能

三、文件系统检查与修复

6. fsck - 文件系统检查与修复(需卸载分区)

fsck -f /dev/sda1  # 强制检查并修复ext4分区
fsck -y /dev/sda1  # 自动修复所有问题(谨慎使用)

7. e2fsck - ext 文件系统专用检查

e2fsck -f /dev/sda1  # 检查ext4分区并修复错误
e2fsck -C0 /dev/sda1 # 显示详细进度条

8. xfs_repair - XFS 文件系统修复(需卸载分区)

xfs_repair /dev/sda2  # 修复XFS分区
xfs_repair -L /dev/sda2 # 强制日志清零(数据可能丢失)

四、坏道检测与处理

9. badblocks - 扫描物理坏道

badblocks -v /dev/sda  # 非破坏性读测试(不写入数据)
badblocks -wsv /dev/sda # 破坏性写测试(数据会丢失,需谨慎)

10. ddrescue - 坏道数据恢复

ddrescue /dev/sda /dev/sdb mapfile  # 从sda克隆到sdb,跳过坏道

五、性能监控与 I/O 分析

11. iostat - 监控磁盘 I/O 性能

iostat -x 1  # 每秒显示一次详细I/O统计
iostat -d -k 2  # 每2秒显示一次磁盘吞吐量(KB/s)

12. iotop - 实时 I/O 监控

iotop  # 显示当前I/O活动进程
iotop -o  # 只显示正在产生I/O的进程

13. vmstat - 系统内存、I/O 综合监控

vmstat 1  # 每秒显示一次系统状态(包括磁盘I/O)

六、高级工具与可视化

14. smartmontools - 自动 SMART 监控

# 启用自动SMART监控
smartd -s L/../../8  # 每周日8点自动检测

15. gparted - 图形化分区工具(需安装)

sudo apt-get install gparted  # Debian/Ubuntu
sudo yum install gparted  # CentOS/RHEL

七、检查流程建议

  1. 日常监控:定期使用dflsblksmartctl -H检查空间和 SMART 健康状态
  2. 性能问题:使用iostatiotop定位高 I/O 进程
  3. 文件系统错误:使用fsck或对应文件系统工具修复(需卸载分区)
  4. 坏道处理:先用badblocks检测,再用ddrescue恢复数据

八、磁盘分区管理

16. fdisk - 经典分区工具(MBR/GPT)

fdisk /dev/sda  # 进入交互式分区界面
# 常用命令:
# m - 帮助菜单
# n - 创建新分区
# d - 删除分区
# w - 写入并退出
# q - 退出不保存

17. parted - 支持大于 2TB 磁盘的分区工具

parted /dev/sda  # 进入交互式界面
(parted) mklabel gpt  # 创建GPT分区表
(parted) mkpart primary ext4 1GB 100GB  # 创建主分区
(parted) print  # 显示分区信息
(parted) quit  # 退出

18. gdisk - 专用于 GPT 分区的工具

gdisk /dev/sda  # 进入交互式GPT分区界面

九、文件系统操作

19. mkfs - 创建文件系统(格式化)

mkfs.ext4 /dev/sda1  # 创建ext4文件系统
mkfs.xfs /dev/sda2    # 创建XFS文件系统
mkfs.vfat /dev/sda3   # 创建FAT32文件系统

20. mkswap - 创建交换空间

mkswap /dev/sda4  # 创建交换分区
swapon /dev/sda4  # 启用交换分区

十、磁盘挂载与卸载

21. mount - 临时挂载文件系统

mount /dev/sda1 /mnt/data  # 挂载sda1到/mnt/data
mount -t ext4 /dev/sdb1 /mnt/usb  # 指定文件系统类型挂载
mount -o ro /dev/sdc1 /mnt/backup  # 只读挂载

22. umount - 卸载文件系统

umount /mnt/data  # 通过挂载点卸载
umount /dev/sda1  # 通过设备名卸载

23. fstab - 永久挂载配置

# 编辑/etc/fstab文件添加永久挂载项
/dev/sda1  /mnt/data  ext4  defaults  0 0
# 格式说明:设备 挂载点 文件系统 选项 转储频率 自检顺序

十一、磁盘加密

24. cryptsetup - LUKS 加密

# 创建加密分区
cryptsetup luksFormat /dev/sda3
cryptsetup open /dev/sda3 cryptdata  # 打开加密分区
mkfs.ext4 /dev/mapper/cryptdata  # 在加密分区上创建文件系统

十二、RAID 管理

25. mdadm - 软件 RAID 管理

# 创建RAID1
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb
# 查看RAID状态
mdadm --detail /dev/md0

十三、LVM 逻辑卷管理

26. pvcreate/pvdisplay - 物理卷操作

pvcreate /dev/sda5 /dev/sdb5  # 创建物理卷
pvdisplay  # 显示物理卷信息

27. vgcreate/vgdisplay - 卷组操作

vgcreate vg_data /dev/sda5 /dev/sdb5  # 创建卷组
vgdisplay  # 显示卷组信息

28. lvcreate/lvdisplay - 逻辑卷操作

lvcreate -L 100G -n lv_data vg_data  # 创建100G逻辑卷
mkfs.ext4 /dev/vg_data/lv_data  # 格式化逻辑卷

十四、磁盘命令组合应用示例

示例 1:新建分区并永久挂载

# 1. 创建新分区
fdisk /dev/sda  # n -> p -> 1 -> Enter -> Enter -> w

# 2. 格式化分区
mkfs.ext4 /dev/sda1

# 3. 临时挂载测试
mount /dev/sda1 /mnt/newdisk

# 4. 添加到fstab永久挂载
echo '/dev/sda1 /mnt/newdisk ext4 defaults 0 0' >> /etc/fstab

示例 2:扩展 LVM 逻辑卷

# 1. 添加新硬盘/dev/sdc并创建物理卷
pvcreate /dev/sdc

# 2. 扩展卷组
vgextend vg_data /dev/sdc

# 3. 扩展逻辑卷
lvextend -L +50G /dev/vg_data/lv_data

# 4. 刷新文件系统
resize2fs /dev/vg_data/lv_data  # ext4文件系统
xfs_growfs /dev/vg_data/lv_data  # XFS文件系统

磁盘管理命令速查表

功能 命令示例 备注
查看分区表 fdisk -l / gdisk -l 区分 MBR/GPT
创建 GPT 分区 parted /dev/sda mklabel gpt 支持大于 2TB 磁盘
格式化 mkfs.ext4 /dev/sda1 可选 xfs、btrfs 等
挂载 mount /dev/sda1 /mnt 临时挂载
自动挂载 编辑/etc/fstab UUID 挂载更可靠
查看挂载点 mount / df -h 显示当前挂载情况
加密分区 cryptsetup luksFormat 需要安装 cryptsetup
创建 RAID1 mdadm --create --level=1 软件 RAID
扩展 LVM vgextend + lvextend 动态扩容逻辑卷
掌握这些命令,可实现 Linux 系统中从磁盘底层操作到上层应用的全流程管理,满足 99% 的生产环境需求。建议在进行分区、格式化等危险操作前,务必确认数据已备份,并使用man命令查看具体参数文档。
阅读剩余