补充信息
1.blkid命令可以方便查看uuid
2.gpt所有分区都是平等的,没有区分,parted命令需要输入primary是历史遗留问题,mbr有主分区,最多4个,如果使用扩展分区,可以分出多个
3.mb和mib是有区别的,mb进制1000,mib进制1024
4.parted /dev/sda align-check opt 1 #检查分区标号为1的分区,是否满足optimal对齐,(起止扇区是2048的倍数,1mib对齐),如果输出1 aligned 代表 ✅ 通过最优标准
5.分区可以使用%,这样便于parted自动处理对齐,提高读写性能
[root@localhost ~]# parted /dev/sda mkpart primary 0% 10%
信息: 你可能需要 /etc/fstab。
[root@localhost ~]# parted /dev/sda mkpart primary 10% 20%
信息: 你可能需要 /etc/fstab。
[root@localhost ~]# parted /dev/sda mkpart primary 20% 30%
信息: 你可能需要 /etc/fstab。
[root@localhost ~]# parted /dev/sda mkpart primary 30% 40%
信息: 你可能需要 /etc/fstab。
[root@localhost ~]# parted /dev/sda mkpart primary 40% 50%
错误: 无法创建更多分区。
6.Linux 内核中,每个磁盘块设备最多只预留 16 个分区号
7.如果需要当作系统盘启动系统,必须分区;如果仅当作普通磁盘使用,并不需要分区
8.mount注意挂在参数,默认是是rw,如果仅仅想只读挂载
# 只读挂在
mount -o ro /dev/sda1 /mnt/data
# 不用卸载,直接切换为只读
mount -o remount,ro /mnt/data
==总结==:



存储管理
硬盘工作原理









==总结==:
安装操作系统时硬盘确实必须分区。简单来说,新硬盘就像一张白纸,需要划分区域(分区)并建立目录(文件系统),电脑才能识别和使用它。
这个过程主要有两步:一是制作一个能启动电脑的启动盘,二是进入安装环境后对硬盘进行手动分区
-
GPT(GUIDPartition Table):现代电脑的首选。它搭配**UEFI** 启动模式,支持2TB以上大硬盘、分区数量不受限且更稳定。MBR(Master Boot Record):老标准。搭配传统 Legacy BIOS 模式,有诸多限制。
现在绝大多数新电脑都默认UEFI+GPT模式,请优先选择。
- 安装界面中的分区操作
选择好分区表后,就可以在安装界面进行分区了。一个典型的Windows分区方案通常包含:
EFI系统分区 (ESP):必须创建。用于存放电脑启动所必需的文件。在GPT分区方案中,这是系统能够正常启动的前提。通常约 100-500 MB,格式为 FAT32。
系统分区 (C盘):用于安装操作系统和应用程序。建议容量不低于 120 GB,如果硬盘空间充裕,150-200 GB 会更从容。格式为 NTFS。
数据分区 (D盘、E盘等):用于存放个人文件、文档、照片、视频等。在安装系统时,可以只创建C盘,剩余空间留待系统安装完成后,再通过系统自带的“磁盘管理”工具来划分。这样做的好处是,将来重装系统时,只需格式化C盘,其他盘的数据不受影响。*
- 关于“激活分区”
这是一个常见误解。“激活分区”是MBR磁盘时代的操作。在目前主流的GPT+UEFI模式下,系统通过EFI系统分区(ESP) 来引导启动,完全不需要手动去“激活”任何分区。错误地激活分区反而可能导致系统无法启动。
总结
总的来说,安装系统时分区是必须的。核心流程是:
制作一个匹配你电脑启动模式(UEFI)的启动U盘。
进入安装界面后,为硬盘选择GPT分区表。
创建EFI系统分区(ESP)和一个足够大的C盘。
将系统安装到C盘。
系统装好后,再用“磁盘管理”工具把剩下的空间分成D盘、E盘。
- U盘启动安装操作系统








fdisk和parted区别


==先用fdisk就行,忽视第二种==
fdisk实践复现






文件系统


==注意==:你笔记里写 Ext4支持1EB,XFS支持18EB。1 EB = 1024 PB = 100万 TB。实际上你根本碰不到这个天花板,可以忽略不计。


==总结==:


日常干活:闭眼敲mkfs.xfs /dev/sdX,系统自动给你生成最优的superblock/inode/block,VFS在底层无缝衔接。




挂载和永久挂载






卸载挂载


==总结==:
挂载新盘是 Linux 存储管理中实现“数据与操作系统物理隔离”的唯一手段。系统盘仅负责维护 OS 运行环境与基础软件包,而所有可增长的用户数据、业务持久化数据及高频日志,必须通过挂载独立文件系统的方式存放到额外物理磁盘,以此确保系统稳定性、数据安全性及存储资源的弹性扩展。


swap分区操作




磁盘配额




Linux磁盘配额




==总结==:








==总结==:








注意:


Nas存储


Raid磁盘阵列和逻辑卷
raid存储和逻辑卷
1. nas介绍
2. Set-A 和 Set-B 的含义
在 RAID 10 中,数据是先镜像(RAID 1),再条带(RAID 0)。set-A 和 set-B 代表了 两个不同的镜像组:
Set-A:包含 /dev/nvme0n2 和 /dev/nvme0n4,这两块盘互为镜像,数据完全一致。
Set-B:包含 /dev/nvme0n3 和 /dev/nvme0n5,这两块盘互为镜像,数据完全一致。
工作逻辑:
写入数据时,系统会把数据分成两份(条带化),一份写在 Set-A,另一份写在 Set-B。
在 Set-A 内部,数据会同时写入nvme0n2 和 nvme0n4(镜像)。
在 Set-B 内部,数据会同时写入nvme0n3 和nvme0n5(镜像)。
3. 也可以用proc目录下实时运行数据查看
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid10]
md127 : active (auto-read-only) raid10 nvme0n5[3] nvme0n3[1] nvme0n4[2]
41908224 blocks super 1.2 512Kchunks 2 near-copies [4/3] [_UUU]
bitmap: 1/1 pages [4KB,65536KB chunk
4. raid5说明
假设这一条”数据带(stripe)”是这样分布的:
盘1: 1101 (数据A)
盘2: 1011 (数据B)
盘3: 0110 (校验P = A XOR B)
这里 P = 1101 XOR 1011 = 0110,正好对上。
场景:盘2 挂了
阵列里少了”数据B”这一块,但盘1(数据A)和盘3(校验P)都还在。
恢复公式:
数据B = 数据A XOR 校验P
= 1101 XOR 0110
= 1011 ← 和原来的盘2数据完全一致!
场景:盘3(校验盘那部分)挂了
因为数据A、数据B本身都还在,校验值只是”备份用”的,直接:
新的P = 数据A XOR 数据B = 1101 XOR 1011 = 0110
重新算一遍填回新盘就行,不涉及”恢复”,只是”重建校验”。
实际重建流程:
把坏盘换成新盘(热备盘或者手动换盘)
RAID 控制器/软件(比如 mdadm)会逐条(stripe)地对剩余盘做 XOR 运算
把算出来的结果写入新盘对应位置,这个过程叫 rebuild,好几 TB 的盘全部重建往往要花几个到十几个小时,而且期间会持续大量读取剩余盘,这也是为什么”重建期间再坏一块盘”是 RAID 5 最大的风险点,你的盘越大,这个风险窗口就越长。
逻辑卷
1. 物理卷pv处于 LVM中的最底层,可以将其理解为物理磁盘、磁盘分区或者 RAID 磁盘阵列。
2. vgcreate中的路径是pv的名字,而pv的名字必须是物理磁盘设备路径,分区路径,raid路径
3. vmvare的rockylinux默认系统盘就是基于pv的,默认分区是MBR分区
逻辑卷设备路径,两种路径都可以用来挂载,大家根据喜好来
/dev/mapper/路径(内核设备映射器路径)
这是 Linux 内核设备映射器(Device Mapper) 创建的真实设备节点
格式:/dev/mapper/VGname-LVname
特殊字符(如 -)会被转义为 –(双横线)
例如:VG=pjw-storage,LV=lt-pjw → /dev/mapper/pjw--storage-lt--pjw
/dev/VGname/LVname路径(LVM软链接)
这是 LVM工具包(lvm2) 创建的符号链接(软链接)
格式:/dev/VGname/LVname
更加直观易读,没有字符转义
例如:/dev/pjw-storage/lt-pjw
3. 可以使用如下命令查找dmpath
[root@192 mnt]# lvs -o lv_name,vg_name,lv_path,lv_dm_path
LV VG Path DMPath
extra-pjw pjw-storage /dev/pjw-storage/extra-pjw /dev/mapper/pjw--storage-extra--pjw
lt-pjw pjw-storage /dev/pjw-storage/lt-pjw /dev/mapper/pjw--storage-lt--pjw
home rlm /dev/rlm/home /dev/mapper/rlm-home
root rlm /dev/rlm/root /dev/mapper/rlm-root
swap rlm /dev/rlm/swap /dev/mapper/rlm-swap
==总结==:
能直接使用的硬件(硬盘、分区、RAID 阵列)都能作为 LVM 的物理卷 PV,然后 PV合并成卷组 VG,再从 VG 里切出逻辑卷 LV 来用。
path 和 dmpath 的本质关系
text
/dev/rlm/root ← path(LVM 提供的软链接)
↓ 指向
/dev/mapper/rlm-root ← dmpath(内核 device-mapper 真实设备节点)
↓ 对应
Block device 253:0 ← 内核块设备号(你截图里有)
↓ 挂载到
/ ← 挂载点(目录名)
结论:path 和 dmpath 指向同一个东西,只是表现形式不同。你用 ls -l /dev/rlm/root 就能看到它是一个软链接,指向 /dev/dm-0(或 /dev/mapper/rlm-root)。
✅ 你现在应该怎么理解
- 挂载时用哪个都行:
mount /dev/rlm/root /mnt和mount /dev/mapper/rlm-root /mnt效果完全一样。 - 挂载路径就是目录名:你说得对,挂载点就是一个目录(如
/、/home),用来“接入”存储设备。
扩缩容
先扩逻辑卷,再扩文件系统
先缩文件系统,再缩逻辑卷
快照逻辑卷
应用场景,我需要备份某个应用数据,应用数据所在盘是基于逻辑卷管理的,便可以使用快照来操作
1. 创建一个与需要备份的逻辑卷相同大小的快照逻辑卷
a. 创建过程很快,因为是CoW技术,本质这个逻辑卷记录的是从创建快照结点之后与目标盘的变化
b. 如果目标盘损坏,快照就没了,因此此操作不是备份
2. 只读挂载逻辑卷,可以将其数据copy至其他盘
lsof /mnt/lvol0
fuser -mv /mnt/lvol0
实践




命令大全
# 部署lv
pvcreate /dev/nvme0n2 /dev/nvme0n3 # 设备号
vgcreate storage /dev/nvme0n2 /dev/nvme0n3 # storage 是vg名称,自定义;/dev/nvme0n2是pv name
lvcreate -n vo -L 120mb storage # -n指定lv名称, -L指定单位大小, storage,从vg名为storage的vg中划分
lvdisplay #查看lv挂载path: /dev/storage/vo
mkfs.ext4 /dev/storage/vo # 格式化位ext4
mkdir /mnt/vo #创建挂载点
mount /dev/storage/vo /mnt/vo # 挂载
df -Th #查看信息
# 扩容(先扩lv,再扩文件系统)
umount /mnt/vo
lvextend -L 290M /dev/storage/vo #也可以使用+290m代表增加290m,如果是290m代表扩容至290m
e2fsck -f /dev/storage/vo #检查文件系统,此工具用于检查ext3/4文件系统,-f参数强制检查
resize2fs /dev/storage/vo #用于扩容ext3/4文件系统
mount /dev/storage/vo /mnt/vo # 挂载
df -Th #查看
# 缩容(先缩文件系统,再缩lv)
umount /mnt/vo
e2fsck -f /dev/storage/vo
resize2fs /dev/storage/vo 120M #文件系统缩至120m
lvreduce -L 120M /dev/storage/vo #lv缩至120m
mount /dev/storage/vo /mnt/vo # 挂载
df -Th #查看
#快照
echo "hello world" > /mnt/vo/hello.txt # 写入点文件在逻辑卷中
lvcreate -L 120M -s -n snap /dev/storage/vo # 创建/dev/storage/vo的快照卷,-s代表创建扩招卷,-n快照卷名称
dd if=/dev/zero of=/mnt/vo/files count=1 bs=50M # 往/mnt/vo/files写入50m文件,观察snap逻辑卷中的Allocated to snapshot行
mkdir /mnt/snap
mount -o ro /dev/storage/snap /mnt/snap
ls -l /mnt/snap
cat /mnt/snap/hello.txt
# 使用快照还原
ls -l /mnt/storage/vo
umount /mnt/snap
umount /mnt/vo
lvconvert --merge /dev/storage/snap
mount /dev/storage/vo /mnt/vo # 此时近剩hello.txt文件
lvdisplay # /dev/storage/snap也没了
# 删除逻辑卷
1.先umount所有设备
2.先删除lv
3.在删除vg
4.最后删除pv
# 给虚拟机/目录(根目录)扩容
pvcreate /dev/nvme0n6
vgdispaly
vgextend rlm /dev/nvme0n6 # 给vg扩容
df -Th #找出/目录(根目录)对应的挂载设备
lvdisplay /dev/mapper/rlm-root
lvextend -L +20G /dev/rlm/root # lvextend -l +100%FREE /dev/rlm/root #给vg中所有空间
xfs_growfs /
df -Th
==实践==:








==区别==:




xfs系统新特性
xfs_repair -n block-device # 检查xfs文件系统,无副作用,但是要求umount block-device
# 10.1版本后,提供了xfs_scrub,可支持在线检查,但注意检查都会占用机器性能
Rocky Linux 10.1 Available Now – Rocky Linux
You can now scrub mounted XFS filesystems with xfs_scrub and shrink XFS filesystems with xfs_growfs in some scenarios.
9.7中xfs_scrub在xfsprogs-xfs_scrub包中提供了,但是是实验特性,可以体验一下
==总结==:



