【Linux 】磁盘管理详解

部署运行你感兴趣的模型镜像

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. 创建分区(以fdiskparted为例)
  • 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) 挂载点 文件系统类型 挂载选项 备份标记 自检顺序

步骤:

  1. 获取分区 UUID:blkid /dev/sda1 → 如UUID="abc123"
  2. 编辑/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)。
  3. 验证配置(避免错误导致无法开机):
    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 操作流程示例:
  1. 创建 PV

    pvcreate /dev/sda1 /dev/sdb1  # 将两个分区初始化为PV
    pvs  # 查看PV状态
    
  2. 创建 VG

    vgcreate vg_data /dev/sda1 /dev/sdb1  # 将PV加入卷组vg_data
    vgs  # 查看VG状态
    
  3. 创建 LV

    lvcreate -L 100G -n lv_data vg_data  # 从vg_data中划分100G的LV,命名为lv_data
    lvs  # 查看LV状态
    
  4. 格式化与挂载 LV

    mkfs.ext4 /dev/vg_data/lv_data  # 格式化LV
    mount /dev/vg_data/lv_data /mnt/lvm_data  # 挂载
    
  5. 动态扩容 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 为例):
  1. 挂载时启用配额(修改/etc/fstab):

    UUID=xxx  /home  ext4  defaults,usrquota,grpquota  0  2
    mount -a  # 重新挂载使配置生效
    
  2. 初始化配额数据库:

    quotacheck -cug /home  # -c创建数据库,-u用户,-g组
    
  3. 设置用户配额(限制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)
    
  4. 启用配额:

    quotaon /home  # 启用/home目录的配额
    
  5. 查看配额:

    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. 文件系统修复
  • ext4e2fsck -f /dev/sda1(-f:强制检查,需卸载后执行)。
  • xfsxfs_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),并通过监控工具及时排查磁盘问题。

您可能感兴趣的与本文相关的镜像

GPT-oss:20b

GPT-oss:20b

图文对话
Gpt-oss

GPT OSS 是OpenAI 推出的重量级开放模型,面向强推理、智能体任务以及多样化开发场景

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小王不想wan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值