Linux 磁盘管理是系统运维的核心技能之一,涉及磁盘识别、分区、格式化、挂载、动态调整及监控等环节。以下从核心概念到具体操作,大致梳理 Linux 磁盘管理的关键知识:
一、磁盘基础概念
在 Linux 中,磁盘管理的核心对象包括:
- 物理磁盘:如机械硬盘(HDD)、固态硬盘(SSD),设备文件通常为
/dev/sd[a-z](SCSI/SATA 接口)或/dev/nvme0n1(NVMe 接口)。 - 分区:物理磁盘上的逻辑划分,设备文件为
/dev/sda1(第 1 个分区)、/dev/nvme0n1p2(NVMe 磁盘第 2 个分区)等。 - 文件系统:分区需格式化为特定文件系统(如 ext4、xfs)才能存储数据,负责管理文件的组织结构。
- 挂载点:文件系统与 Linux 目录树的连接点(如
/mnt/data),需通过mount命令关联。
二、磁盘与分区查看
1. 查看系统识别的磁盘
-
lsblk:列出所有块设备(磁盘、分区、光驱等),显示设备名、大小、挂载点等信息:lsblk # 简化输出 lsblk -f # 额外显示文件系统类型和UUID -
fdisk -l:查看磁盘分区表(需 root 权限):fdisk -l /dev/sda # 查看指定磁盘的分区信息 -
blkid:查看设备的 UUID(唯一标识符,常用于挂载配置):blkid /dev/sda1 # 输出类似:/dev/sda1: UUID="xxx" TYPE="ext4"
三、分区管理
分区是将物理磁盘划分为多个逻辑区域,需先确定分区表类型(MBR 或 GPT):
- MBR:支持最大 2TB 磁盘,最多 4 个主分区(或 3 主 + 1 扩展分区,扩展分区内可分多个逻辑分区)。
- GPT:支持超过 2TB 磁盘,最多 128 个分区,更适合现代大磁盘。
1. 创建分区(以fdisk和parted为例)
-
fdisk(适用于 MBR,也支持 GPT 但功能有限):fdisk /dev/sda # 进入磁盘分区交互模式 # 交互命令: # n → 新建分区(选择主分区/扩展分区,指定编号、起始扇区、大小) # p → 查看当前分区表 # t → 修改分区类型(如swap分区需设为82) # w → 保存并退出(q为放弃) -
parted(适用于 GPT 和大磁盘,支持交互 / 非交互模式):parted /dev/sda # 进入交互模式 (parted) mklabel gpt # 设置分区表为GPT(首次使用需执行) (parted) mkpart primary ext4 0% 50% # 创建主分区,文件系统ext4,占50%空间 (parted) print # 查看分区表 (parted) quit # 退出
2. 分区生效
分区后需让系统重新识别分区表(避免重启):
partprobe /dev/sda # 通知内核刷新分区表
四、文件系统格式化
分区创建后需格式化(创建文件系统)才能使用,常见文件系统及工具:
- ext4:Linux 最常用,支持日志功能,稳定性好(
mkfs.ext4)。 - xfs:高性能,适合大文件和高 I/O 场景(
mkfs.xfs)。 - btrfs:支持快照、动态扩容,适合存储服务器(
mkfs.btrfs)。 - swap:交换分区专用(
mkswap)。
格式化命令示例:
mkfs.ext4 /dev/sda1 # 格式化为ext4(-L 可指定卷标:-L data)
mkfs.xfs /dev/sda2 # 格式化为xfs
mkswap /dev/sda3 # 格式化为swap分区
五、挂载与卸载
文件系统需挂载到目录树(挂载点)才能访问,分为临时挂载和永久挂载。
1. 临时挂载(重启失效)
mount /dev/sda1 /mnt/data # 将sda1挂载到/mnt/data(需先创建目录)
mount -o ro /dev/sda1 /mnt/data # 只读挂载
2. 永久挂载(通过/etc/fstab)
/etc/fstab记录开机自动挂载的配置,格式为:
UUID=xxx(或者磁盘设备路径,如:/dev/sda1) 挂载点 文件系统类型 挂载选项 备份标记 自检顺序
步骤:
- 获取分区 UUID:
blkid /dev/sda1→ 如UUID="abc123"。 - 编辑
/etc/fstab,添加一行:UUID=abc123 /mnt/data ext4 defaults 0 2 也可以是: /dev/sdb1 /mnt/data ext4 defaults 0 2- 挂载选项
defaults:包含rw, suid, dev, exec, auto, nouser, async。 - 备份标记(0:不备份;1:备份);自检顺序(0:不自检;1:优先自检,通常
/设为 1)。
- 挂载选项
- 验证配置(避免错误导致无法开机):
mount -a # 加载fstab中所有未挂载的设备,无报错则正常
3. 卸载文件系统
umount /mnt/data # 通过挂载点卸载
umount /dev/sda1 # 通过设备名卸载
若提示 “忙”,可通过lsof /mnt/data查看占用进程,结束后再卸载。
六、交换分区(swap)管理
swap 分区用于当物理内存不足时,临时存储内存数据(类似 Windows 虚拟内存)。
1. 创建与启用 swap
# 1. 格式化分区为swap
mkswap /dev/sda3
# 2. 启用swap(临时)
swapon /dev/sda3
# 3. 永久启用(添加到/etc/fstab)
echo "UUID=xxx none swap defaults 0 0" >> /etc/fstab
2. 查看 swap 使用情况
free -h # 查看内存和swap使用
swapon -s # 查看已启用的swap设备
七、逻辑卷管理(LVM)
LVM(Logical Volume Manager)允许动态调整分区大小,适合需要灵活扩展的场景(如服务器存储)。核心组件:
- 物理卷(PV):被 LVM 管理的物理分区(如
/dev/sda1)。 - 卷组(VG):多个 PV 的集合(类似 “存储池”)。
- 逻辑卷(LV):从 VG 中划分的逻辑分区(类似传统分区,可直接格式化挂载)。
LVM 操作流程示例:
-
创建 PV:
pvcreate /dev/sda1 /dev/sdb1 # 将两个分区初始化为PV pvs # 查看PV状态 -
创建 VG:
vgcreate vg_data /dev/sda1 /dev/sdb1 # 将PV加入卷组vg_data vgs # 查看VG状态 -
创建 LV:
lvcreate -L 100G -n lv_data vg_data # 从vg_data中划分100G的LV,命名为lv_data lvs # 查看LV状态 -
格式化与挂载 LV:
mkfs.ext4 /dev/vg_data/lv_data # 格式化LV mount /dev/vg_data/lv_data /mnt/lvm_data # 挂载 -
动态扩容 LV(需 VG 有剩余空间):
lvextend -L +50G /dev/vg_data/lv_data # 增加50G # 若文件系统为ext4,需刷新大小: resize2fs /dev/vg_data/lv_data # 若为xfs,需先挂载,再刷新: xfs_growfs /mnt/lvm_data
八、磁盘配额(Quota)
限制用户 / 组的磁盘使用量(如限制user1最多使用 10GB),需文件系统支持(ext4、xfs 等)。
配置步骤(以 ext4 为例):
-
挂载时启用配额(修改
/etc/fstab):UUID=xxx /home ext4 defaults,usrquota,grpquota 0 2 mount -a # 重新挂载使配置生效 -
初始化配额数据库:
quotacheck -cug /home # -c创建数据库,-u用户,-g组 -
设置用户配额(限制
user1软限制 8GB,硬限制 10GB):edquota -u user1 # 编辑用户配额,输入: # Filesystem blocks soft hard inodes soft hard # /dev/sda2 0 8388608 10485760 0 0 0 # (blocks单位为KB,1GB=1048576KB) -
启用配额:
quotaon /home # 启用/home目录的配额 -
查看配额:
quota -u user1 # 查看用户配额使用情况
九、磁盘监控与维护
1. 查看磁盘使用情况
df -h:查看已挂载文件系统的使用率(-h:人类可读单位)。du -sh /path:查看目录占用空间(-s:汇总,-h:单位)。
2. 磁盘 I/O 性能监控
-
iostat(需安装sysstat):查看磁盘读写速率、I/O 等待等:iostat -x 1 # 每1秒输出一次详细I/O统计 -
iotop:实时查看进程的 I/O 占用(类似top)。
3. 文件系统修复
- ext4:
e2fsck -f /dev/sda1(-f:强制检查,需卸载后执行)。 - xfs:
xfs_repair /dev/sda1(需卸载,若挂载则用-n模拟检查)。
4. 磁盘健康检查
smartctl(需安装smartmontools):通过 SMART 技术检查磁盘健康:smartctl -H /dev/sda # 查看磁盘健康状态(PASSED为正常)
总结
Linux 磁盘管理围绕 “识别→分区→格式化→挂载→维护” 流程,核心工具包括fdisk/parted(分区)、mkfs(格式化)、mount/fstab(挂载)、LVM(动态调整)等。实际应用中需根据场景选择分区表(MBR/GPT)、文件系统(ext4/xfs)及管理方式(传统分区 / LVM),并通过监控工具及时排查磁盘问题。
1112

被折叠的 条评论
为什么被折叠?



