当前位置: 首页 > news >正文

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  #显示帮助

示例

先加一块硬盘做实验,虚拟机环境,最好在关机状态下,开机状态需要重启

image-20250915152018863

image-20250915152113636

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

image-20250915152155354

#查看新添加的硬盘
[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  826 14:03 /dev/sda
brw-rw---- 1 root disk 8,  1  826 14:03 /dev/sda1
brw-rw---- 1 root disk 8,  2  826 14:03 /dev/sda2
brw-rw---- 1 root disk 8, 16  826 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.ext2ext2早期 Linux 文件系统,无日志功能,速度快但容错性差,适合临时存储(如 /tmp)。
mkfs.ext3ext3在 ext2 基础上增加日志功能,提高数据一致性,适合一般场景,但性能略低于 ext4。
mkfs.ext4(常用)ext4目前最常用的 Linux 文件系统,支持更大容量、更快速度和更多功能(如延迟分配),兼容性好。
mkfs.xfs(常用)XFS高性能日志文件系统,支持大文件和大分区,适合高吞吐量场景(如服务器、数据库),RedHat/CentOS 常用。
mkfs.vfatVFAT兼容 Windows 和 Linux 的文件系统,支持 FAT32 格式,适合 U 盘、移动硬盘等需要跨系统交换数据的设备。
mkfs.fatFATmkfs.vfat 类似,支持 FAT16/FAT32,通常用于小容量存储设备。
mkfs.btrfsBtrfs新一代文件系统,支持快照、 RAID、动态扩容等高级功能,适合需要复杂管理的场景。

mkfs(格式化)

mkfs(make filesystem)是 Linux 系统中用于创建文件系统(格式化分区) 的命令集,其核心功能是在存储设备(如磁盘分区、U 盘等)上初始化文件系统结构,使其能够被操作系统识别并用于存储数据。

基本原理

mkfs 本身是一个前端工具,实际执行格式化时会调用对应文件系统的专用工具(如 mkfs.ext4 对应 ext4 文件系统,mkfs.xfs 对应 XFS 文件系统)。使用时需指定目标分区(而非整个磁盘)和文件系统类型,且需要 root 权限。

基本语法

 mkfs.文件系统类型 [选项] 分区设备
  • 文件系统类型:如 ext4xfsvfat 等(需与工具后缀一致)。
  • 分区设备:要格式化的分区路径(如 /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 类型指定文件系统类型(如 ext4xfsvfat),通常可省略(系统会自动识别)。
-o 选项设置挂载参数(多个参数用逗号分隔),如: - rw:可读写挂载(默认); - ro:只读挂载; - noauto:不自动挂载(仅手动触发); - remount:重新挂载已挂载的设备(用于修改挂载参数)。
-a挂载 /etc/fstab 中所有未挂载的设备(通常用于系统启动或修改 fstab 后生效配置)。
-l列出已挂载的文件系统,并显示卷标(label)。
--bind绑定挂载:将一个目录挂载到另一个目录(如 mount --bind /home /mnt/home,使两个目录内容同步)。

注意事项

  1. 挂载点要求:必须是已存在的空目录,若目录非空,挂载后原内容会被临时隐藏(卸载后恢复)。
  2. 权限:挂载通常需要 root 权限(普通用户可通过 sudo 执行)。
  3. 自动挂载:若需开机自动挂载,需配置 /etc/fstab 文件(参考之前的 fstab 解析),而非每次手动 mount
  4. 设备识别:挂载前可用 lsblkblkid 确认设备是否被系统识别及正确的设备标识。

示例挂载

挂载/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/20:不检查(如 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 设计的新一代分区表格式,支持更大容量和更多分区,结构更可靠。

核心区别对比

特性MBRGPT
最大支持磁盘容量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 的分区表备份和校验功能)。

image-20250915161722071

使用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创建新分区,需指定分区名称(可选)、文件系统类型、起始位置和结束位置(如 0GB100GB)。
rm 分区编号删除指定编号的分区(如 rm 1 删除第 1 个分区)。
resizepart 分区编号调整分区大小(需指定新的结束位置,前提是文件系统支持扩容 / 缩容)。
align-check 类型 分区编号检查分区是否按指定类型对齐(如 align-check optimal 1 检查分区 1 是否最优对齐,优化性能)。
unit 单位设置显示单位(如 unit GB 以 GB 为单位显示大小,可选 MBTBs(扇区)等)。
quit退出交互式模式。

实用示例

查看磁盘分区信息

# 交互式模式
sudo parted /dev/sda
(parted) unit GB  # 以GB为单位显示
(parted) print    # 查看分区表
(parted) quit     # 退出# 非交互式模式(直接输出)
sudo parted /dev/sda unit GB print
  1. 创建 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
  1. 调整分区大小(扩展分区)

假设 /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文件系统
  1. 删除分区
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设备容量大小(如 100G2T)。
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)
  • 文件系统类型(如 xfsext4vfat
  • 卷标(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"),是用户可自定义的名称(通过 e2labelxfs_admin 等工具设置),可替代设备名或 UUID 用于挂载。
PARTUUID分区在分区表中的唯一标识(如 PARTUUID="087c41b0-01"),多用于低级别磁盘管理或启动配置。

df -h(查看磁盘空间)

df -h 是 Linux 系统中用于查看磁盘空间使用情况的常用命令,其中:

  • dfdisk free 的缩写,核心功能是显示文件系统的磁盘空间使用情况;
  • -hhuman-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显示文件系统类型(如 xfsext4vfat 等),例如 df -hT
-i显示 inode 使用情况(而非磁盘空间),用于排查 “磁盘未满但无法创建文件” 的问题(因 inode 耗尽),例如 df -hi
-P以 POSIX 标准格式输出(字段对齐更规范,适合脚本处理)。
--total在输出末尾增加一行 “总计”,汇总所有文件系统的空间使用情况,例如 df -h --total

总结

  • 磁盘使用流程
  • 分区,格式化,挂载,永久挂载
  • mbr vs gpt (分区表)
  • lsblk blkid df -h
http://www.dtcms.com/a/536000.html

相关文章:

  • KVM虚拟化部署全流程指南
  • 【用homebrew配置nginx+配置前端项目与后端联调】Macbook M1(附一些homebrew操作)
  • 建立个人博客网站wordpress免费发布信息大全
  • 做设计转钱网站公司网站开发模板
  • 网站建设目标是什么意思win7用本地文件做网站模板
  • VR党建骑行|VR红色骑行漫游|虚拟骑行设备
  • 人脸识别1-Windows下基于MSVC编译opencv-4.5.5
  • 上海网站建设的公司站长之家查询
  • 游戏盾和高防IP的差异与选择
  • 内管理模式和外管理模式的网络比较
  • 【android bluetooth 协议分析 11】【AVDTP详解 4】【A2dp Sink 状态机通俗讲解】
  • Python、Java与Go:AI大模型时代的语言抉择
  • 【Go】P14 Go语言核心利器:全面解析结构体 (Struct)
  • 华为OD机试双机位A卷 - 最佳植树距离 (C++ Python JAVA JS GO)
  • Go学习资料整理
  • 旅游网站规划建设郑州网站建设网络公司
  • k8s滚动升级
  • 舆情网站入口wordpress文章添加seo标题代码
  • Android分区刷机原理深度解析:从Bootloader到Framework的完整启动流程
  • 高防 IP 如何保护企业网站?
  • 原创 网站 源码Discuz网站制作教程
  • windows 2003建设网站网站制作案例市场
  • mysql的安装和卸载过程
  • 软件设计师知识点总结:算法设计与分析
  • 互联网设计公司网站wordpress 404页面模板
  • python+ai智能根据doc教案文档生成ppt
  • PPT WPS ERROR +mn-ea
  • 技术解析 | QtScrcpy:一款基于Qt的跨平台Android投屏工具的实现原理与代码架构
  • F037 vue+neo4j 编程语言知识图谱可视化分析系统vue+flask+neo4j
  • qt设置运行框左上角图标