乐闻世界logo
搜索文章和话题

Linux 磁盘管理和文件系统操作中如何进行分区、格式化、挂载和管理磁盘空间?

2月17日 23:38

Linux 磁盘管理和文件系统是系统管理员的核心技能,涉及磁盘分区、格式化、挂载和维护等操作。

磁盘分区:

  • fdisk:传统的磁盘分区工具
    • 查看分区:fdisk -l
    • 进入交互模式:fdisk /dev/sdb
    • 常用命令:n(新建分区)、p(打印分区表)、d(删除分区)、w(保存并退出)、q(不保存退出)
  • parted:现代磁盘分区工具,支持 GPT 分区表
    • 查看分区:parted -l
    • 进入交互模式:parted /dev/sdb
    • 创建分区:mkpart primary ext4 1MiB 100%
    • 设置分区表:mklabel gpt
  • lsblk:列出块设备信息
  • blkid:查看块设备 UUID 和文件系统类型

文件系统:

  • 常见文件系统类型:ext4、xfs、btrfs、ntfs、vfat
  • mkfs:创建文件系统,如 mkfs.ext4 /dev/sdb1、mkfs.xfs /dev/sdb1
  • mkfs.ext4:创建 ext4 文件系统
  • mkfs.xfs:创建 xfs 文件系统

磁盘挂载:

  • mount:挂载文件系统,如 mount /dev/sdb1 /mnt/data
  • umount:卸载文件系统,如 umount /mnt/data
  • 查看挂载点:mount、df -h
  • /etc/fstab:自动挂载配置文件
    • 格式:设备 挂载点 文件系统类型 挂载选项 dump fsck
    • 示例:/dev/sdb1 /mnt/data ext4 defaults 0 2
    • 使用 UUID:UUID=xxx /mnt/data ext4 defaults 0 2(推荐)
    • 查看设备 UUID:blkid /dev/sdb1

磁盘空间管理:

  • df:查看磁盘空间使用情况,df -h(人类可读格式)
  • du:查看目录或文件大小,du -sh directory(显示目录总大小)
  • du -h --max-depth=1 /:查看根目录下各目录的大小
  • 清理磁盘空间:
    • 清理包缓存:apt clean(Debian/Ubuntu)、yum clean all(CentOS/RHEL)
    • 清理旧日志:logrotate
    • 查找大文件:find / -type f -size +100M

LVM(逻辑卷管理):

  • pvcreate:创建物理卷,如 pvcreate /dev/sdb1
  • vgcreate:创建卷组,如 vgcreate vgname /dev/sdb1
  • lvcreate:创建逻辑卷,如 lvcreate -L 10G -n lvname vgname
  • lvextend:扩展逻辑卷,如 lvextend -L +5G /dev/vgname/lvname
  • lvreduce:缩减逻辑卷,如 lvreduce -L -5G /dev/vgname/lvname
  • resize2fs:调整 ext4 文件系统大小,如 resize2fs /dev/vgname/lvname
  • xfs_growfs:扩展 xfs 文件系统
  • pvdisplay、vgdisplay、lvdisplay:查看物理卷、卷组、逻辑卷信息

RAID(磁盘阵列):

  • mdadm:管理软件 RAID
    • 创建 RAID 0:mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1
    • 创建 RAID 1:mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
    • 创建 RAID 5:mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
    • 查看 RAID 状态:cat /proc/mdstat、mdadm --detail /dev/md0

磁盘性能优化:

  • 使用 SSD:提高 I/O 性能
  • 调整 I/O 调度器:echo deadline > /sys/block/sda/queue/scheduler
  • 增加文件系统块大小:mkfs.ext4 -b 4096 /dev/sdb1
  • 使用 noatime 挂载选项:减少磁盘写入
  • 启用文件系统日志:提高数据安全性

磁盘故障排查:

  • 查看磁盘健康:smartctl -a /dev/sda(需要安装 smartmontools)
  • 查看磁盘 I/O:iostat -x 1
  • 查看磁盘错误:dmesg | grep -i error
  • 修复文件系统:fsck /dev/sdb1(需要先卸载)
标签:Linux