linux磁盘使用流程
文章目录
- 磁盘使用流程
- 分区
- fdisk(管理磁盘分区)
- 交互模式(核心)
- 示例
- 格式化
- mkfs(格式化)
- 挂载
- mount (挂载)
- 示例挂载
- 卸载文件系统(umount)
- 永久挂载
- /etc/fstab
- mbr vs gpt(分区表)
- 核心区别对比
- 适用场景
- 使用parted分区(3TB)
- lsblk(查看块设备)
- blkid命令
- df -h(查看磁盘空间)
- 总结
磁盘使用流程
前提:已经安装好的系统
| 磁盘常用的使用流程 | 说明 | 对比 |
|---|---|---|
| 磁盘分区 | 给硬盘创建多个分区 | 1套房子,划分屋子房间 |
| 磁盘格式化 | 给硬盘分区创建文件系统 | 给房间进行装修 |
| 挂载 | 给硬盘分区设置入口 | 给房间安装门窗 |
分区
硬盘基本规则硬盘命名规则,块文件 b(block)sas,sata,scsi 接口 >> /dev/sd开头虚拟化(kvm,openstack),云服务器 /dev/vdx固态硬盘(物理服务器) /dev/nvmexxx第一块硬盘 sda第二块硬盘 sdb分区命名 mbr分区表格式分区号1-4 主分区或扩展分区逻辑分区从5开始第1个分区 /dev/sda1第2个分区 /dev/sda2第3个分区 /dev/sda3
fdisk(管理磁盘分区)
fdisk 是 Linux 系统中用于管理磁盘分区表的经典命令行工具,主要用于创建、删除、查看和修改磁盘分区,尤其适用于传统的 MBR(Master Boot Record)分区表。虽然对 GPT 分区表支持有限,但仍是处理 MBR 分区的核心工具。
核心功能
- 查看磁盘分区布局(分区大小、类型、编号等)
- 创建新分区(主分区、扩展分区及逻辑分区)
- 删除现有分区
- 修改分区类型(如标记为 Linux 分区、swap 分区等)
- 保存或放弃分区表修改
基本语法
fdisk [选项] 设备路径
其中,设备路径 是磁盘设备文件(如 /dev/sda、/dev/nvme0n1,注意是整个磁盘而非分区)。
| 选项 | 功能描述 |
|---|---|
-l | 列出系统中所有磁盘及分区的详细信息(无需指定设备路径) 包括磁盘大小、分区表类型、各分区参数等。 |
-u | 以扇区(sector)为单位显示分区大小(默认以柱面 cylinder 为单位,扇区更直观)。 |
交互模式(核心)
执行 sudo fdisk /dev/sda(以 /dev/sda 为例)会进入交互模式,提示符为 Command (m for help):,输入以下指令进行操作:
| 指令 | 功能说明 |
|---|---|
p | 打印分区表:显示当前磁盘的所有分区信息(编号、起始 / 结束扇区、大小、类型等),最常用的指令之一。 |
n | 新建分区:创建新分区,需选择类型(主分区 primary 或扩展分区 extended)、分区编号、起始扇区和大小(可直接输入容量,如 +10G 表示 10GB)。 |
d | 删除分区:输入要删除的分区编号(如 1 表示删除第 1 个分区),删除前建议用 p 确认分区编号,避免误删。 |
t | 修改分区类型:指定分区编号后,输入分区类型的十六进制代码(如 83 表示 Linux 分区,82 表示 swap 分区),可通过 L 查看所有类型代码。 |
w | 保存修改并退出:所有分区操作需执行此指令才会生效(谨慎使用!修改会直接写入磁盘,可能导致数据丢失)。 |
q | 放弃修改并退出:不保存任何操作,直接退出交互模式,适合操作失误时使用。 |
m | 显示帮助:列出所有可用指令及说明。 |
o | 创建新的空白 MBR 分区表:会清除磁盘上所有现有分区(谨慎使用!)。 |
g | 创建新的空白 GPT 分区表:将磁盘分区表转换为 GPT 格式(但 fdisk 对 GPT 支持有限,建议用 gdisk 专门处理)。 |
示例
查看系统所有磁盘信息
fdisk -l
输出会显示类似 /dev/sda(磁盘)、/dev/sda1(分区)的信息,包括容量、分区表类型等。
管理/dev/sdb磁盘的分区
fdisk /dev/sdb #进入交互模式
Command (m for help): p # 查看现有分区
Command (m for help): n # 新建分区(按提示选择主分区、编号、大小)
Command (m for help): w # 保存并退出(若确认操作正确)
Command (m for help): q #不保存退出
Command (m for help): m #显示帮助
示例
先加一块硬盘做实验,虚拟机环境,最好在关机状态下,开机状态需要重启


一直默认下一步,可以设置硬盘大小

#查看新添加的硬盘
[root@kylin-v10-shf ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 49G 0 part ├─klas-root 253:0 0 47G 0 lvm /└─klas-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 1G 0 disk #sdb就是新硬盘
sr0 11:0 1 4.3G 0 rom
#硬盘的文件路径
[root@kylin-v10-shf ~]#ll /dev/sd*
brw-rw---- 1 root disk 8, 0 8月 26 14:03 /dev/sda
brw-rw---- 1 root disk 8, 1 8月 26 14:03 /dev/sda1
brw-rw---- 1 root disk 8, 2 8月 26 14:03 /dev/sda2
brw-rw---- 1 root disk 8, 16 8月 26 14:03 /dev/sdb
#下面进行分区
[root@kylin-v10-shf ~]#fdisk /dev/sdb欢迎使用 fdisk (util-linux 2.35.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x087c41b0 的新 DOS 磁盘标签。
#输入m,查看帮助
命令(输入 m 获取帮助):n #n进行分区
分区类型p 主分区 (0 primary, 0 extended, 4 free)e 扩展分区 (逻辑分区容器)
选择 (默认 p): 回车将使用默认回应 p。
分区号 (1-4, 默认 1): 回车
第一个扇区 (2048-2097151, 默认 2048): 回车
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-2097151, 默认 2097151): +100M #分100MB,然后回车
创建了一个新分区 1,类型为“Linux”,大小为 100 MiB。
#p 查看分区表
命令(输入 m 获取帮助):p
Disk /dev/sdb:1 GiB,1073741824 字节,2097152 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x087c41b0设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdb1 2048 206847 204800 100M 83 Linux
#w 保存
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
#查看分区
[root@kylin-v10-shf ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 49G 0 part ├─klas-root 253:0 0 47G 0 lvm /└─klas-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 1G 0 disk
└─sdb1 8:17 0 100M 0 part #新分区
sr0 11:0 1 4.3G 0 rom
流程就是n 回车 回车 回车 + x (MB,GB)回车 w保存
注意事项:正式环境中添加硬盘,一般不需要添加多个分区,一个硬盘创建1个分区即可,这个分区使用所有容量
格式化
- Linux格式化叫做创建文件系统
不同的文件系统
| 工具 | 对应文件系统 | 特点及适用场景 |
|---|---|---|
mkfs.ext2 | ext2 | 早期 Linux 文件系统,无日志功能,速度快但容错性差,适合临时存储(如 /tmp)。 |
mkfs.ext3 | ext3 | 在 ext2 基础上增加日志功能,提高数据一致性,适合一般场景,但性能略低于 ext4。 |
mkfs.ext4(常用) | ext4 | 目前最常用的 Linux 文件系统,支持更大容量、更快速度和更多功能(如延迟分配),兼容性好。 |
mkfs.xfs(常用) | XFS | 高性能日志文件系统,支持大文件和大分区,适合高吞吐量场景(如服务器、数据库),RedHat/CentOS 常用。 |
mkfs.vfat | VFAT | 兼容 Windows 和 Linux 的文件系统,支持 FAT32 格式,适合 U 盘、移动硬盘等需要跨系统交换数据的设备。 |
mkfs.fat | FAT | 与 mkfs.vfat 类似,支持 FAT16/FAT32,通常用于小容量存储设备。 |
mkfs.btrfs | Btrfs | 新一代文件系统,支持快照、 RAID、动态扩容等高级功能,适合需要复杂管理的场景。 |
mkfs(格式化)
mkfs(make filesystem)是 Linux 系统中用于创建文件系统(格式化分区) 的命令集,其核心功能是在存储设备(如磁盘分区、U 盘等)上初始化文件系统结构,使其能够被操作系统识别并用于存储数据。
基本原理
mkfs 本身是一个前端工具,实际执行格式化时会调用对应文件系统的专用工具(如 mkfs.ext4 对应 ext4 文件系统,mkfs.xfs 对应 XFS 文件系统)。使用时需指定目标分区(而非整个磁盘)和文件系统类型,且需要 root 权限。
基本语法
mkfs.文件系统类型 [选项] 分区设备
- 文件系统类型:如
ext4、xfs、vfat等(需与工具后缀一致)。 - 分区设备:要格式化的分区路径(如
/dev/sda1、/dev/sdb1,务必确认是分区而非整个磁盘)。
示例
#可以在格式化之前查看一下
[root@kylin-v10-shf ~]#blkid | grep /dev/sdb1/dev/sdb1: PARTUUID="087c41b0-01"#创建文件系统(格式化)格式化xfs
[root@kylin-v10-shf ~]#mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=6400 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=1, sparse=1, rmapbt=0= reflink=1
data = bsize=4096 blocks=25600, imaxpct=25= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=1368, version=2= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
#使用命令查看已经格式化的分区/文件系统
[root@kylin-v10-shf ~]#blkid | grep /dev/sdb1
/dev/sdb1: UUID="4ad996d6-d6b5-41c0-a959-88ba5138966e" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="087c41b0-01"
#新添加了UUID,BLOCK_SIZE,TYPE
------------------------------------------
UUID:该分区的文件系统 UUID(通用唯一识别码)。
BLOCK_SIZE="512" 该分区的块大小为 512 字节。
TYPE="xfs" 该分区使用的文件系统类型是 XFS
PARTUUID 该分区的分区表 UUID(分区本身的标识)
---------------------------------------------
挂载
- 不挂载的硬盘分区,无法直接使用
- 挂载操作相当于给硬盘设置了入口
- 挂载点(入口)是1个目录(已经存在的空目录)
mount (挂载)
mount 是 Linux 系统中用于挂载文件系统的命令,其作用是将存储设备(如硬盘分区、U 盘、ISO 镜像、网络共享等)与系统目录树中的某个目录(称为 “挂载点”)关联起来,使设备中的数据可以通过该目录被访问。
基本功能
- 将物理 / 逻辑存储设备(如
/dev/sda1、LVM 逻辑卷)接入系统目录树 - 挂载光盘、ISO 镜像文件等虚拟设备
- 临时挂载网络共享(如 NFS、CIFS)
- 查看已挂载的文件系统信息
基本语法
mount [选项] 设备标识 挂载点
- 设备标识:要挂载的设备,可为设备路径(如
/dev/sdb1)、UUID(如UUID=4ad996d6-...)等(参考/etc/fstab中的设备标识规则)。 - 挂载点:预先创建的空目录(如
/mnt/usb),挂载后设备内容会显示在该目录下。
常用选项
| 选项 | 功能描述 |
|---|---|
-t 类型 | 指定文件系统类型(如 ext4、xfs、vfat),通常可省略(系统会自动识别)。 |
-o 选项 | 设置挂载参数(多个参数用逗号分隔),如: - rw:可读写挂载(默认); - ro:只读挂载; - noauto:不自动挂载(仅手动触发); - remount:重新挂载已挂载的设备(用于修改挂载参数)。 |
-a | 挂载 /etc/fstab 中所有未挂载的设备(通常用于系统启动或修改 fstab 后生效配置)。 |
-l | 列出已挂载的文件系统,并显示卷标(label)。 |
--bind | 绑定挂载:将一个目录挂载到另一个目录(如 mount --bind /home /mnt/home,使两个目录内容同步)。 |
注意事项
- 挂载点要求:必须是已存在的空目录,若目录非空,挂载后原内容会被临时隐藏(卸载后恢复)。
- 权限:挂载通常需要 root 权限(普通用户可通过
sudo执行)。 - 自动挂载:若需开机自动挂载,需配置
/etc/fstab文件(参考之前的fstab解析),而非每次手动mount。 - 设备识别:挂载前可用
lsblk或blkid确认设备是否被系统识别及正确的设备标识。
示例挂载
挂载/dev/sdb2到/mnt/usb
#先创建挂载点(若不存在)
mkdir -p /mnt/usb
#查看空闲块设备
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 49G 0 part ├─klas-root 253:0 0 47G 0 lvm /└─klas-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 1G 0 disk
├─sdb1 8:17 0 100M 0 part /data
└─sdb2 8:18 0 200M 0 part
sdc 8:32 0 2.9T 0 disk
sr0 11:0 1 4.3G 0 rom
故障案例
mount /dev/sdb2 /mnt/usb/
mount: /mnt/usb: 文件系统类型错误、选项错误、/dev/sdb2 上有坏超级块、缺少代码页或帮助程序或其他错误.
错误提示:没有进行磁盘格式化
解决方案:进行磁盘格式化
mkfs.xfs /dev/sdb2
meta-data=/dev/sdb2 isize=512 agcount=4, agsize=12800 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=1, sparse=1, rmapbt=0= reflink=1
data = bsize=4096 blocks=51200, imaxpct=25= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=1368, version=2= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
在进行挂载
mount /dev/sdb2 /mnt/usb/ #没有任何提示就是成功
通过 UUID 挂载分区(更稳定,避免设备名变动):
mount UUID=4ad996d6-d6b5-41c0-a959-88ba5138966e /mnt/mydisk
挂载NFS网络共享
mount -t nfs 192.168.1.100:/share /mnt/nfs
挂载ISO镜像文件(将镜像作为虚拟光盘)
mount -o loop /path/to/image.iso /mnt/iso
#-0 loop:将文件视为块设备挂载
卸载文件系统(umount)
# 通过挂载点卸载
sudo umount /mnt/usb# 或通过设备标识卸载
sudo umount /dev/sdb1#强制卸载
umount -lf
-l #立即断开文件系统与挂载点的连接,后台继续清理(直到无进程访问)
-f #强制卸载文件系统
- 注意:卸载时需确保没有程序正在访问该挂载点(如当前目录在挂载点内),否则会提示 “设备忙”,需先退出相关目录或关闭程序。
- 强制卸载(谨慎使用):
sudo umount -l /mnt/usb(-l表示延迟卸载,适合设备忙的场景)
[root@kylin-v10-shf ~]#df -h /mnt/
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/klas-root 47G 6.8G 41G 15% /
#将/dev/sdb1挂载到/mnt/下,mount是临时挂载
[root@kylin-v10-shf ~]#mount /dev/sdb1 /mnt/
[root@kylin-v10-shf ~]#df -h /mnt/
文件系统 容量 已用 可用 已用% 挂载点
/dev/sdb1 95M 6.0M 89M 7% /mnt#卸载
umount /mnt/
永久挂载
- mount 挂载是临时的,Linux重启后就失效
- 需要配置永久挂载,需要创建一个空目录
2个方案
1. 专业 /etc/fstab 开机自动挂载的配置目录2. 使用/etc/rc.local 开机自动运行指定的命令(脚本)
添加 mount /dev/sdb1 /data/
/etc/fstab
该文件用于定义系统启动时自动挂载的文件系统(包括分区、逻辑卷、交换分区等)
通用格式说明
/etc/fstab每行的格式为:
| 字段名称 | 说明 | 常见值 / 示例 |
|---|---|---|
| 设备标识 | 用于定位要挂载的存储设备 / 文件系统,需唯一且稳定 | ・设备文件路径:/dev/sda1、/dev/mapper/klas-root • UUID:UUID=755529bb-... • PARTUUID:PARTUUID=087c41b0-01 |
| 挂载点 | 文件系统在 Linux 目录树中的 “接入位置”,需预先创建的空目录 | ・根分区固定为 /(所有目录起点) ・启动分区通常为 /boot ・交换分区(swap)固定为 none |
| 文件系统类型 | 指定设备使用的文件系统格式,需与实际格式匹配 | • xfs/ext4:Linux 主流格式(xfs 侧重性能,ext4 兼容性好) • vfat:跨 Linux/Windows 兼容(多用于 U 盘) • swap:交换分区专用 |
| 挂载选项 | 控制文件系统的挂载行为,可组合多个选项 | • defaults:默认组合(rw、auto、exec 等) • ro:只读挂载 • noauto:禁止开机自动挂载 • nodev:禁止识别设备文件(提高安全性) |
| dump 选项 | 控制 dump 备份工具是否备份该文件系统,仅 0/1 两个值 | • 0:不备份(绝大多数场景,如根分区、/boot、swap) • 1:定期备份(仅高频备份的重要数据分区可能用) |
| fsck 选项 | 控制 fsck 文件系统检查工具的开机检查顺序,值为 0/1/2 | • 0:不检查(如 swap、/boot、非本地分区) • 1:优先检查(仅根分区可用,确保启动前修复错误) • 2:延迟检查(除根分区外的其他本地分区) |
vim /etc/fstab
#在最下面添加
/dev/sdb1 /data/ xfs defaults 0 0
#查看一下
tail -1 /etc/fstab
/dev/sdb1 /data/ xfs defaults 0 0
#现在生效
mount -a
mbr vs gpt(分区表)
MBR(Master Boot Record,主引导记录)和 GPT(GUID Partition Table,全局唯一标识分区表)是两种磁盘分区表格式,用于记录磁盘上分区的布局、大小、类型等信息,是操作系统识别磁盘分区的基础。
基本定义与起源
- MBR:
诞生于 1983 年,是最早的分区表标准,位于磁盘的第一个扇区(512 字节,包含三部分:- 引导程序(446 字节):用于启动操作系统;
- 分区表(64 字节):记录分区信息;
- 结束标志(2 字节):标识 MBR 结束。
- GPT:
随 UEFI(统一可扩展固件接口)标准推出,是为替代 MBR 设计的新一代分区表格式,支持更大容量和更多分区,结构更可靠。
核心区别对比
| 特性 | MBR | GPT |
|---|---|---|
| 最大支持磁盘容量 | 2TB(受限于 32 位扇区地址,2^32 × 512 字节) | 理论无上限(64 位扇区地址),实际受操作系统限制(通常支持到 EB 级) |
| 最大分区数量 | 最多 4 个主分区;或 3 个主分区 + 1 个扩展分区(扩展分区内可分多个逻辑分区) | 最多 128 个主分区(由 UEFI 标准定义) |
| 分区标识 | 用 “分区类型 ID”(如 0x83 表示 Linux 分区) | 用 “GUID”(全局唯一标识符)标识分区类型,更精确唯一 |
| 兼容性 | 支持所有操作系统(包括老旧系统)和 BIOS 固件 | 需较新系统(Windows Vista 及以上、Linux 2.6.19+、macOS 10.4+)和 UEFI 固件支持;部分老旧系统无法识别 |
| 启动支持 | 仅支持传统 BIOS 启动 | 支持 UEFI 启动(需主板支持),部分系统可通过兼容模式在 BIOS 下识别 GPT 磁盘(但无法启动系统) |
适用场景
- 选择 MBR 的情况:
- 磁盘容量 ≤ 2TB;
- 需要兼容老旧操作系统(如 Windows XP)或仅支持 BIOS 的旧主板;
- 对分区数量要求不高(≤4 个主分区)。
- 选择 GPT 的情况:
- 磁盘容量 > 2TB(必须用 GPT,否则无法识别全部空间);
- 需要创建超过 4 个主分区;
- 使用 UEFI 固件的新电脑(推荐 GPT+UEFI 组合,启动速度更快、安全性更高);
- 对数据安全性要求高(依赖 GPT 的分区表备份和校验功能)。

使用parted分区(3TB)
parted 是 Linux 系统中一款功能强大的磁盘分区管理工具,支持 MBR(Master Boot Record)和 GPT(GUID Partition Table)两种分区表格式,尤其擅长处理大容量磁盘(>2TB)和动态调整分区大小,功能比 fdisk 更全面,是管理现代存储设备的重要工具。
核心优势
- 支持 MBR 和 GPT 分区表,对大容量磁盘(>2TB)兼容性更好;
- 可在线调整分区大小(部分文件系统支持,如 ext4、XFS);
- 支持脚本化操作(非交互式模式),适合自动化管理;
- 能直接识别和管理 LVM、RAID 等逻辑设备。
基本用法
parted 可通过两种模式操作:交互式模式(适合手动操作)和非交互式模式(适合脚本)。
交互式模式(常用)
parted 设备路径
#例如,管理 /dev/sda 磁盘:
parted /dev/sdb
非交互式模式(脚本化)
直接在命令行指定操作,无需进入交互界面,语法:
parted 设备路径 指令 [参数]
#例如,查看 /dev/sda 分区信息:
parted /dev/sda print
型号:VMware, VMware Virtual S (scsi)
磁盘 /dev/sdb:1074MB
扇区大小 (逻辑/物理):512B/512B
分区表:msdos
磁盘标志:编号 起始点 结束点 大小 类型 文件系统 标志1 1049kB 106MB 105MB primary xfs2 106MB 316MB 210MB primary xfs
交互式模式常用指令
| 指令 | 功能描述 |
|---|---|
print | 显示当前磁盘的分区表信息(分区编号、大小、类型、文件系统等)。 |
mklabel 类型 | 创建新分区表(会清除现有分区!),类型 可选 msdos(MBR)或 gpt(GPT)。 |
mkpart | 创建新分区,需指定分区名称(可选)、文件系统类型、起始位置和结束位置(如 0GB、100GB)。 |
rm 分区编号 | 删除指定编号的分区(如 rm 1 删除第 1 个分区)。 |
resizepart 分区编号 | 调整分区大小(需指定新的结束位置,前提是文件系统支持扩容 / 缩容)。 |
align-check 类型 分区编号 | 检查分区是否按指定类型对齐(如 align-check optimal 1 检查分区 1 是否最优对齐,优化性能)。 |
unit 单位 | 设置显示单位(如 unit GB 以 GB 为单位显示大小,可选 MB、TB、s(扇区)等)。 |
quit | 退出交互式模式。 |
实用示例
查看磁盘分区信息
# 交互式模式
sudo parted /dev/sda
(parted) unit GB # 以GB为单位显示
(parted) print # 查看分区表
(parted) quit # 退出# 非交互式模式(直接输出)
sudo parted /dev/sda unit GB print
- 创建 GPT 分区表并新建分区
sudo parted /dev/sdb # 操作/dev/sdb磁盘
(parted) mklabel gpt # 创建GPT分区表(会清除所有数据,确认输入yes)
(parted) mkpart primary xfs 0GB 100GB # 创建主分区,文件系统xfs,大小100GB
(parted) mkpart primary ext4 100GB 200GB # 再创建一个200GB的ext4分区
(parted) print # 确认分区创建成功
(parted) quit
- 调整分区大小(扩展分区)
假设 /dev/sda1 是 ext4 分区,需扩展到 200GB:
sudo parted /dev/sda
(parted) resizepart 1 # 调整第1个分区
(parted) 200GB # 输入新的结束位置(需确保磁盘有足够空间)
(parted) quit
# 扩展后需同步文件系统(ext4用resize2fs,XFS用xfs_growfs)
sudo resize2fs /dev/sda1 # 针对ext4文件系统
- 删除分区
sudo parted /dev/sdb
(parted) print # 先确认要删除的分区编号(如编号2)
(parted) rm 2 # 删除第2个分区
(parted) quit
先添加一个3tb的硬盘,添加硬盘详情在上,也可以ctrl+点击链接
#先查看新添加的硬盘名字是什么
[root@kylin-v10-shf ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 49G 0 part ├─klas-root 253:0 0 47G 0 lvm /└─klas-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 1G 0 disk
└─sdb1 8:17 0 100M 0 part /data
sdc 8:32 0 2.9T 0 disk
sr0 11:0 1 4.3G 0 rom
[root@kylin-v10-shf ~]#parted /dev/sdc
GNU Parted 3.3
使用 /dev/sdc
欢迎使用 GNU Parted!输入 'help' 来查看命令列表。
(parted) mktable gpt #创建分区表,或mklable
(parted) mkpart song 0 100g #创建分区,song名称,0开始 100g结束
警告: The resulting partition is not properly aligned for best performance: 34s % 2048s !=
0s
忽略/Ignore/放弃/Cancel? I
#这个警告本质是 “分区起始位置与硬盘物理扇区未对齐”,会影响读写性能。解决方法很简单:创建分区时,将起始位置明确设置为 1MiB(或 2048s),即可满足现代硬盘的对齐要求,避免性能损失(parted) p #查看分区信息
型号:VMware, VMware Virtual S (scsi)
磁盘 /dev/sdc:3221GB
扇区大小 (逻辑/物理):512B/512B
分区表:gpt
磁盘标志:编号 起始点 结束点 大小 文件系统 名称 标志1 17.4kB 100GB 100GB song(parted) rm 1 #删除,rm 编号
(parted) p
型号:VMware, VMware Virtual S (scsi)
磁盘 /dev/sdc:3221GB
扇区大小 (逻辑/物理):512B/512B
分区表:gpt
磁盘标志:编号 起始点 结束点 大小 文件系统 名称 标志
(parted) q #退出
信息: 你可能需要 /etc/fstab。
lsblk(查看块设备)
lsblk(list block devices)是 Linux 系统中用于列出所有块设备信息的命令行工具,块设备通常指存储设备(如硬盘、SSD、U 盘、分区、逻辑卷等)
lsblk
默认输出以树状结构展示,父设备(如整个磁盘 /dev/sda)在下,子设备(如分区 /dev/sda1)在上,清晰呈现存储设备的层级关系。
| 选项 | 功能描述 |
|---|---|
-l | 以列表模式显示(非树状),适合查看简洁信息。 |
-f | 显示文件系统信息,包括文件系统类型(TYPE)、UUID、挂载点(MOUNTPOINT)。 |
-d | 只显示 “非分区的设备本身”(不显示设备内部的分区) |
-o <字段> | 自定义输出字段(多个字段用逗号分隔),例如 lsblk -o NAME,SIZE,TYPE,MOUNTPOINT。 |
-a | 显示所有块设备,包括空设备(默认不显示大小为 0 的设备)。 |
-e <设备> | 排除指定设备(如排除 loop 设备:lsblk -e 7,7 是 loop 设备的主设备号)。 |
输出字段说明
| 字段 | 含义说明 |
|---|---|
NAME | 设备名称(如 /dev/sda 是磁盘,/dev/sda1 是其第一个分区)。 |
MAJ:MIN | 主次设备号(内核用于识别设备的编号,主号区分设备类型,次号区分同类型设备)。 |
RM | 是否为可移动设备(1 表示可移动,如 U 盘;0 表示固定设备,如内置硬盘)。 |
SIZE | 设备容量大小(如 100G、2T)。 |
RO | 是否为只读设备(1 表示只读,0 表示可读写)。 |
TYPE | 设备类型(disk 表示磁盘,part 表示分区,lvm 表示逻辑卷等)。 |
MOUNTPOINT | 设备的挂载点(如 / 表示根分区,[SWAP] 表示交换分区,空表示未挂载)。 |
示例
[root@kylin-v10-shf ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 49G 0 part ├─klas-root 253:0 0 47G 0 lvm /└─klas-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 1G 0 disk
└─sdb1 8:17 0 100M 0 part /data
sdc 8:32 0 2.9T 0 disk
sr0 11:0 1 4.3G 0 rom
blkid命令
blkid 是 Linux 系统中用于查询块设备(如磁盘分区、U 盘、逻辑卷等)属性信息的命令行工具,主要用于获取设备的 UUID、文件系统类型、卷标(label)等关键标识,这些信息在配置自动挂载(如 /etc/fstab)或管理存储设备时非常实用。
基本功能
blkid 能够读取块设备的元数据,直接输出以下核心信息:
- 设备的唯一标识符(UUID)
- 文件系统类型(如
xfs、ext4、vfat) - 卷标(LABEL,用户可自定义的设备名称)
- 分区表 UUID(PARTUUID,针对分区的标识)
基本用法
blkid
/dev/mapper/klas-swap: UUID="3cffb8ce-9396-40d4-ac27-a42ca73ae52f" TYPE="swap"
/dev/sdb2: UUID="95e8531a-dab7-4960-8840-b04628acacde" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="087c41b0-02"
/dev/sdb1: UUID="4ad996d6-d6b5-41c0-a959-88ba5138966e" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="087c41b0-01"
/dev/sr0: BLOCK_SIZE="2048" UUID="2023-03-31-21-06-57-00" LABEL="Kylin-Server-10" TYPE="iso9660"
/dev/mapper/klas-root: UUID="1ddef6bd-0a92-4939-bc31-2a045d542cf1" BLOCK_SIZE="512" TYPE="xfs"
/dev/sdc: PTUUID="68fbc9cb-e8df-4a11-8aaf-fc90405863a7" PTTYPE="gpt"
/dev/sda2: UUID="IKwtoL-GbNT-ZEq7-0TeF-GvvX-uRGb-2cj1Hy" TYPE="LVM2_member" PARTUUID="96b8384d-02"
/dev/sda1: UUID="755529bb-a75b-4686-b1b9-c2aae86c642e" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="96b8384d-01"
只查看特点设备的信息
blkid /dev/sdb1
/dev/sdb1: UUID="4ad996d6-d6b5-41c0-a959-88ba5138966e" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="087c41b0-01"
输出字段说明
blkid` 的输出格式通常为:
`设备路径: 属性1="值1" 属性2="值2" ...
| 字段 | 说明 |
|---|---|
DEVICE | 块设备的路径(如 /dev/sda1、/dev/nvme0n1p2),是输出的开头部分。 |
UUID | 文件系统的唯一标识符(如 UUID="4ad996d6-d6b5-41c0-a959-88ba5138966e"),用于稳定标识设备(不受设备名变动影响)。 |
TYPE | 文件系统类型(如 TYPE="xfs"、TYPE="vfat"),需与挂载时指定的类型匹配。 |
LABEL | 设备的卷标(如 LABEL="MYUSB"),是用户可自定义的名称(通过 e2label、xfs_admin 等工具设置),可替代设备名或 UUID 用于挂载。 |
PARTUUID | 分区在分区表中的唯一标识(如 PARTUUID="087c41b0-01"),多用于低级别磁盘管理或启动配置。 |
df -h(查看磁盘空间)
df -h 是 Linux 系统中用于查看磁盘空间使用情况的常用命令,其中:
df是disk free的缩写,核心功能是显示文件系统的磁盘空间使用情况;-h是human-readable的缩写,作用是将容量单位转换为人类易读的格式(如 GB、MB,而非默认的块或字节)
基本功能
df -h 会列出系统中所有已挂载的文件系统(包括本地磁盘分区、逻辑卷、U 盘、网络共享等)的关键信息,如总容量、已用空间、可用空间、使用率及挂载点,帮助用户快速判断磁盘是否已满或空间紧张。
执行 df -h 后
[root@kylin-v10-shf ~]#df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 963M 0 963M 0% /dev
tmpfs 979M 0 979M 0% /dev/shm
tmpfs 979M 8.9M 970M 1% /run
tmpfs 979M 0 979M 0% /sys/fs/cgroup
/dev/mapper/klas-root 47G 6.8G 41G 15% /
tmpfs 979M 0 979M 0% /tmp
/dev/sda1 1014M 169M 846M 17% /boot
tmpfs 196M 0 196M 0% /run/user/0
输出字段说明
| 字段名 | 说明 |
|---|---|
Filesystem | 文件系统的设备标识(如 /dev/sda1 分区、tmpfs 虚拟文件系统)。 |
Size | 文件系统的总容量(-h 选项下显示为 GB/MB 等易读单位)。 |
Used | 已使用的磁盘空间。 |
Avail | 可用的磁盘空间(注意:部分文件系统会预留少量空间给 root 用户,普通用户看到的 Avail 可能略小于实际剩余)。 |
Use% | 磁盘使用率(若超过 90% 需警惕,可能影响系统正常运行)。 |
Mounted on | 文件系统的挂载点(即该文件系统在目录树中的接入位置)。 |
常用扩展
| 选项 | 功能描述 |
|---|---|
-T | 显示文件系统类型(如 xfs、ext4、vfat 等),例如 df -hT。 |
-i | 显示 inode 使用情况(而非磁盘空间),用于排查 “磁盘未满但无法创建文件” 的问题(因 inode 耗尽),例如 df -hi。 |
-P | 以 POSIX 标准格式输出(字段对齐更规范,适合脚本处理)。 |
--total | 在输出末尾增加一行 “总计”,汇总所有文件系统的空间使用情况,例如 df -h --total。 |
总结
- 磁盘使用流程
- 分区,格式化,挂载,永久挂载
- mbr vs gpt (分区表)
lsblkblkiddf -h
