NVMe 分区与磁盘工具 | AI生成和翻译

首页 2026.06

问题:lsblk 是什么?在安装 Fedora 时如何分区?有哪些磁盘工具?为什么 NVMe 驱动器(例如 nvme0n1)看起来被分割成了多个设备?

答案:

你很可能指的是 lsblk(”list block devices” 的缩写),而不是 lbdisk。它显示块设备的树状结构以及它们是如何被分区的。

lsblk
# NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
# nvme0n1     259:0    0 931.5G  0 disk
# ├─nvme0n1p1 259:1    0   600M  0 part /boot/efi
# ├─nvme0n1p2 259:2    0     1G  0 part /boot
# └─nvme0n1p3 259:3    0 929.9G  0 part /

NVMe 命名 —— 为什么看起来“被分割”

命名规则编码了 NVMe 的拓扑结构,而不是多个磁盘:

nvme0  n1   p3
 │     │    └─ 分区 3
 │     └────── 命名空间 1
 └──────────── 控制器 0(物理 SSD)

因此,nvme0n1p1 … p3一个 SSD、一个命名空间、三个分区。与 SATA 相比,SATA 会是 sdasda1, sda2, sda3。“额外”的字母(n1)是唯一的区别。你看到的是分区,而不是多个磁盘。

分区实际是什么

分区只是在分区表(现代 UEFI 系统上为 GPT)中记录的连续字节范围。内核读取磁盘开头的 GPT 标头并创建 pN 设备节点。没有任何物理分割 —— 它只是指向偏移量的元数据。

典型的 Fedora UEFI 布局:

分区 大小 文件系统 挂载点 用途
p1 ~600M FAT32 /boot/efi EFI 系统分区(引导加载程序)
p2 ~1G ext4 /boot 内核 + initramfs
p3 剩余空间 btrfs / 根目录(Fedora 默认使用 btrfs)

Fedora 的默认设置还会将 /home/ 等作为 p3 内部的 btrfs 子卷,而不是单独的分区 —— 灵活,无需固定大小分割。

Fedora 安装过程中分区(Anaconda)

在安装程序中:安装目标 → 存储配置

命令行分区

如果你想手动(或通过脚本)操作,现代工具:

# 检查
lsblk -f                      # 设备 + 文件系统 + UUID
sudo fdisk -l /dev/nvme0n1    # 分区表转储

# GPT 分区,可脚本化
sudo sgdisk -n 1:0:+600M -t 1:ef00 /dev/nvme0n1   # ESP
sudo sgdisk -n 2:0:+1G   -t 2:8300 /dev/nvme0n1   # /boot
sudo sgdisk -n 3:0:0     -t 3:8300 /dev/nvme0n1   # 根目录,使用剩余磁盘空间

# 交互式替代方案
sudo gdisk /dev/nvme0n1       # GPT 感知的 fdisk
sudo cfdisk /dev/nvme0n1      # curses TUI,最简单的交互方式
sudo parted /dev/nvme0n1      # 支持调整大小和脚本化操作

# 格式化
sudo mkfs.fat -F32 /dev/nvme0n1p1
sudo mkfs.ext4 /dev/nvme0n1p2
sudo mkfs.btrfs /dev/nvme0n1p3

sgdisk 分区类型代码值得了解:ef00 = EFI 系统,8300 = Linux 文件系统,8200 = 交换分区,8e00 = LVM。

对你理解模型的关键点:单个 NVMe 下出现的“多个磁盘”外观只是 控制器 → 命名空间 → 分区。一个 SSD,通过 GPT 表分割。如果你看到 nvme0n2,那才是一个真正独立的命名空间,只有企业/数据中心驱动器才会暴露。

参考:


AI生成和翻译,但整理分享仍需精力。如果觉得有帮助,欢迎 捐助支持。 微信:@lzwjavaWeChat QR · X: @lzwjava · 打个招呼 👋

返回 捐助