Linux 磁盘管理 + 文件系统 + LVM 笔记整理

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:记录文件元数据(权限、大小、块指针),不含文件名和内容
  • 磁盘空间不足的两种情况:
    1. 存储空间不足(block 耗尽)
    2. 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 ...
相关推荐
@兽血沸腾9 分钟前
Windows系统安装Jenkins部署应用至远程Windows服务器操作指南
运维·服务器·jenkins
且从容.3 小时前
Ubuntu安装flume
linux·ubuntu·flume
承渊政道3 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
讯捷蓝达5 小时前
戴尔R720xd服务器卡死在 “Configuring Memory...Done“,换了内存还是卡?问题根本不在内存
运维·服务器
且从容.6 小时前
ubuntu安装flink
linux·ubuntu·flink
爱和冰阔落8 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
程序员沉梦听雨8 小时前
WSL2的安装与使用
linux·wsl
微小的鱼8 小时前
Linux的渲染与显示系统链路
android·java·linux
lisanmengmeng9 小时前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器
Android系统攻城狮9 小时前
Linux FFmpeg深度解析之av_write_frame调用流程与实战(三十三)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频