Linux 磁盘管理 + 文件系统 + LVM 笔记整理(含纠错 + 案例)
一、磁盘分区管理(fdisk /parted)
1. 分区模式对比(纠正你笔记的表述)
表格
| 模式 | 最大支持容量 | 分区规则 | 适用场景 |
|---|---|---|---|
| MBR | ≤ 2TB | 最多 4 个主分区,需扩展分区 + 逻辑分区突破限制 | 老旧系统、小容量硬盘 |
| GPT | 无上限(理论支持 9.4ZB) | 直接支持 128 个主分区,无扩展 / 逻辑分区限制 | 2TB 以上大容量硬盘、现代系统 |
2. MBR 扇区结构(纠正顺序错误)
MBR 位于磁盘第一个扇区(512 字节),结构为:
- 446 字节:主引导程序(Bootloader)
- 64 字节:分区表(每个主分区占 16 字节,最多 4 个)
- 2 字节:结束标志(校验码
0x55AA)
3. 分区工具命令
(1)fdisk:MBR 分区工具(≤2TB)
bash
运行
# 1. 查看所有磁盘及分区信息
fdisk -l
# 2. 对 /dev/sdb 进行分区(交互式操作)
fdisk /dev/sdb
# 常用交互指令:
# n → 新建分区
# p → 打印分区表
# w → 保存分区表并退出
# q → 不保存退出
(2)parted:GPT/MBR 通用分区工具(支持 > 2TB)
bash
运行
# 1. 对 /dev/sdc 创建GPT分区表
parted /dev/sdc mklabel gpt
# 2. 创建一个10G主分区
parted /dev/sdc mkpart primary 0% 10G
# 3. 查看分区信息
parted /dev/sdc print
二、文件系统(格式化)与 inode/block
1. 核心概念
- 扇区 :磁盘最小物理存储单位,默认
512B - block(块) :文件系统读写基本单位,默认
4KB(8 个扇区) - inode:记录文件元数据(权限、大小、块指针),不含文件名和内容
- 磁盘空间不足的两种情况:
- 存储空间不足(block 耗尽)
- inode 号不足(小文件过多,inode 被占满)
2. mkfs 格式化命令(纠正你笔记的参数错误)
bash
运行
# 基础语法:mkfs -t 文件系统类型 分区设备
# 1. 格式化为 ext4 文件系统
mkfs -t ext4 /dev/sdb1
# 简写:mkfs.ext4 /dev/sdb1
# 2. 格式化为 xfs 文件系统(CentOS7+默认)
mkfs -t xfs /dev/sdc1
# 简写:mkfs.xfs /dev/sdc1
# 3. 指定 inode 数量(ext4 专用,解决inode不足问题)
mkfs.ext4 -N 1000000 /dev/sdb1 # 指定inode总数为100万
# 4. 指定block大小(ext4专用,如1KB/2KB/4KB)
mkfs.ext4 -b 2048 /dev/sdb1 # block大小设为2KB
三、Swap 交换分区管理
1. 核心概念
交换分区(Swap)是硬盘上的一块空间,当物理内存不足时,临时充当 "虚拟内存" 使用,避免系统因内存耗尽崩溃。
- 建议大小:物理内存≤4G,Swap=2× 内存;内存 > 4G,Swap=8G-16G
2. 命令案例
bash
运行
# 1. 创建Swap分区(先划分分区,再格式化)
mkswap /dev/sdb2
# 2. 启用Swap分区
swapon /dev/sdb2
# 3. 关闭Swap分区
swapoff /dev/sdb2
# 4. 查看内存和Swap使用情况
free -h # 以人类可读格式显示
free -m # 以MB为单位显示
swapon --show # 查看所有Swap设备信息
四、挂载与自动挂载
1. 基础挂载命令
bash
运行
# 1. 挂载分区到指定目录
mount /dev/sdb1 /data
# 2. 挂载ISO镜像文件(需加loop参数)
mount -o loop /root/CentOS-7.iso /media/cdrom
# 3. 临时卸载设备
umount /data
2. 开机自动挂载(/etc/fstab)
(1)字段含义
设备路径/UUID 挂载点 文件系统类型 挂载选项 是否备份(dump) 是否检测(fsck)
(2)案例配置
ini
# 1. 普通分区自动挂载(ext4)
/dev/sdb1 /data ext4 defaults 0 0
# 2. 使用UUID挂载(推荐,设备路径可能变化)
UUID=xxxx-xxxx-xxxx /data xfs defaults 0 0
# 3. Swap分区自动挂载
/dev/sdb2 swap swap defaults 0 0
# 4. ISO镜像自动挂载
/root/CentOS-7.iso /media/cdrom iso9660 defaults,loop 0 0
(3)配置生效
bash
运行
# 重载/etc/fstab配置,测试是否配置正确
mount -a
3. 补充:/etc/rc.d/rc.local 挂载
bash
运行
# 1. 给rc.local添加执行权限(默认无执行权)
chmod +x /etc/rc.d/rc.local
# 2. 编辑文件,添加挂载命令
vi /etc/rc.d/rc.local
# 写入:mount /dev/sdb1 /data
五、LVM 逻辑卷管理(核心纠正 + 案例)
LVM 核心优势:支持动态扩容 / 缩容,灵活管理存储空间。
1. LVM 层级关系
物理卷(PV) → 卷组(VG) → 逻辑卷(LV)
2. 物理卷(PV)管理
bash
运行
# 1. 创建物理卷(支持多块设备)
pvcreate /dev/sdb /dev/sdc
# 2. 查看物理卷信息
pvscan
pvdisplay /dev/sdb
3. 卷组(VG)管理
bash
运行
# 1. 创建卷组(名称vg1,使用/dev/sdb、/dev/sdc两个PV)
vgcreate vg1 /dev/sdb /dev/sdc
# 2. 查看卷组信息
vgscan
vgdisplay vg1
# 3. 卷组扩容(添加新的物理卷/dev/sdd)
vgextend vg1 /dev/sdd
4. 逻辑卷(LV)管理
(1)创建逻辑卷
bash
运行
# 语法:lvcreate -L 大小 -n 逻辑卷名 卷组名
lvcreate -L 20G -n lv1 vg1 # 从vg1创建20G的lv1逻辑卷
(2)查看逻辑卷信息
bash
运行
lvscan
lvdisplay /dev/vg1/lv1
(3)逻辑卷扩容(关键步骤)
注意:扩容分为两步:① 扩容逻辑卷 → ② 扩容文件系统
案例 1:给逻辑卷扩容 5G(ext4/xfs 通用)
bash
运行
# 第一步:扩容逻辑卷(增加5G空间)
lvextend -L +5G /dev/vg1/lv1
案例 2:耗尽卷组所有剩余空间扩容
bash
运行
lvextend -l +100%FREE /dev/vg1/lv1
第二步:扩容文件系统(必须根据文件系统类型执行)
bash
运行
# ① ext4 文件系统(支持在线/离线扩容)
resize2fs /dev/vg1/lv1
# ② xfs 文件系统(必须挂载状态下执行)
xfs_growfs /data # /data是挂载点,不是设备路径
六、SUID 权限补充(纠正概念)
SUID 权限作用:当用户执行带有 SUID 权限的文件时,临时拥有该文件属主的权限,而非用户自身权限。
bash
运行
# 给文件设置SUID权限(属主权限位显示s)
chmod u+s /usr/bin/ping
# 查看文件SUID权限
ls -l /usr/bin/ping
# 输出示例:-rwsr-xr-x 1 root root ...