# 查看所有磁盘和分区信息
fdisk -l
# 以易读方式显示磁盘空间使用情况
df -h
# 显示目录或文件大小
du -sh /path/to/directory
# 查看磁盘分区表
lsblk
# 查看块设备详细信息
blkid
# 进入交互式分区工具 (如对/dev/sdb操作)
fdisk /dev/sdb
# 常用fdisk命令(在交互模式中):
# n - 新建分区
# d - 删除分区
# p - 打印分区表
# w - 写入并退出
# q - 不保存退出
# 使用parted进行GPT分区(适合大容量磁盘)
parted /dev/sdb
# 创建ext4文件系统
mkfs.ext4 /dev/sdb1
# 创建XFS文件系统
mkfs.xfs /dev/sdb1
# 临时挂载
mount /dev/sdb1 /mnt/data
# 永久挂载(编辑/etc/fstab)
echo "/dev/sdb1 /mnt/data ext4 defaults 0 0" >> /etc/fstab
# 重新挂载所有在fstab中定义的文件系统
mount -a
# 创建物理卷
pvcreate /dev/sdb1
# 创建卷组
vgcreate vg_data /dev/sdb1
# 创建逻辑卷
lvcreate -L 100G -n lv_data vg_data
# 扩展逻辑卷
lvextend -L +50G /dev/vg_data/lv_data
# 扩展文件系统(对于ext4)
resize2fs /dev/vg_data/lv_data
# 扩展文件系统(对于XFS)
xfs_growfs /dev/vg_data/lv_data
# 查看LVM信息
pvdisplay
vgdisplay
lvdisplay
# 测试磁盘读写速度
hdparm -Tt /dev/sda
# 使用dd命令测试写入速度
dd if=/dev/zero of=/tmp/test bs=1M count=1024 conv=fdatasync
# 使用fio进行更专业的测试
fio --name=randwrite --ioengine=libaio --iodepth=32 --rw=randwrite --bs=4k --direct=1 --size=1G --numjobs=4 --runtime=60 --group_reporting
# 查看S.M.A.R.T.信息(需要安装smartmontools)
smartctl -a /dev/sda
# 短期自检
smartctl -t short /dev/sda
# 长期自检
smartctl -t long /dev/sda
# 查看磁盘IO状态
iostat -x 1
# 检查ext3/ext4文件系统
fsck /dev/sdb1
# 检查XFS文件系统
xfs_repair /dev/sdb1
# 强制检查(当文件系统标记为dirty时)
fsck -y /dev/sdb1
# 查找大文件
find / -type f -size +100M -exec ls -lh {} \;
# 清理旧的内核包(适用于基于Debian的系统)
apt autoremove --purge
# 清理yum缓存(适用于基于RHEL的系统)
yum clean all
# 查看目录大小并排序
du -h / | sort -h
# 使用LUKS加密磁盘
cryptsetup luksFormat /dev/sdb1
cryptsetup luksOpen /dev/sdb1 encrypted_disk
mkfs.ext4 /dev/mapper/encrypted_disk
mount /dev/mapper/encrypted_disk /mnt/secure
#!/bin/bash
THRESHOLD=90
CURRENT=$(df / | grep / | awk '{ print $5}' | sed 's/%//g')
if [ "$CURRENT" -gt "$THRESHOLD" ]; then
echo "警告: 根分区使用率超过 ${THRESHOLD}%,当前为 ${CURRENT}%" | mail -s "磁盘空间警报" admin@example.com
fi
#!/bin/bash
VG_NAME="vg_data"
LV_NAME="lv_data"
MOUNT_POINT="/mnt/data"
THRESHOLD=80
USAGE=$(df -h $MOUNT_POINT | awk '{print $5}' | tail -1 | cut -d'%' -f1)
if [ $USAGE -gt $THRESHOLD ]; then
# 扩展逻辑卷10G
lvextend -L +10G /dev/$VG_NAME/$LV_NAME
# 根据文件系统类型扩展
FS_TYPE=$(df -T $MOUNT_POINT | awk '{print $2}' | tail -1)
if [ "$FS_TYPE" == "ext4" ]; then
resize2fs /dev/$VG_NAME/$LV_NAME
elif [ "$FS_TYPE" == "xfs" ]; then
xfs_growfs $MOUNT_POINT
fi
echo "已自动扩展 $MOUNT_POINT 10G空间" | mail -s "LVM自动扩展" admin@example.com
fi
掌握这些Linux磁盘管理技巧可以帮助您更高效地管理系统存储资源,预防潜在问题,并在出现问题时快速诊断和解决。