分区 - Arch Linux 中文维基

跳转到内容

# 分区

来自 Arch Linux 中文维基

相关文章

- 文件系统
- fdisk
- gdisk
- parted
- fstab
- LVM
- Swap
- Arch 的启动流程
- UEFI

翻译状态：

- 本文（或部分内容）译自 Partitioning，最近一次同步于 2024-07-06，若英文版本有所更改，则您可以帮助同步与翻译更改的内容。
- 您可以在 ArchWiki 的对应页面找到本文翻译的原始修订历史。
- 本文可能与英文原文存在出入。

根据维基百科:

  分区是在外存上创建一个或多个区域的过程，分区的目的是单独管理各个部分。

一个硬盘可以被划分为一个或者多个分区。一些场景需要使用多个分区，例如双重或多重启动、使用 Swap 分区等。此外，分区也可以从逻辑上隔离数据，例如为音频和视频数据创建单独的分区。分区方案存储于#分区表中，例如主引导记录（MBR）或 GUID 分区表（GPT）。

可用分区工具创建和修改分区表。#分区工具中列出了在 Arch Linux 中可用的分区工具。

分区通常直接包含一个文件系统，这是在分区上直接创建的（即格式化）。或者，分区可能包含LVM（逻辑分卷管理器）、加密块设备、RAID（独立磁盘冗余阵列），它们最终提供可存放文件系统的设备文件。

直接包含可挂载文件系统的块设备（硬盘、分区、LUKS 设备、LVM 逻辑卷、RAID 阵列等）称为卷（也有卷标、宗卷等称谓）。

## 分区表

分区信息被存放在分区表中。目前有两种主流的模式：传统的#主引导记录（MBR）和新的#GUID 分区表（GPT）。后者功能更强大，解决了许多 MBR 的限制。第三个不常用的方式是使用无分区磁盘，后面也会介绍。

可使用#分区工具查看块设备的分区表。

提示：可以用 `parted /dev/sda print` 或 `fdisk -l /dev/sda` 查看当前分区信息。

`/dev/sdX` 是块设备，依不同物理设备有不同的格式：

- `/dev/sda` 是 SATA 设备
- `/dev/nvme0n1` 是 NVMe 设备
- `/dev/mmcblk0` 是 eMMC 设备

更多信息请参看块设备名称

### 主引导记录

主引导记录（Master boot record，MBR）是存储设备最开始的 512 字节。其包含操作系统启动加载器和分区表，在 BIOS 系统的启动流程中扮演重要角色。可参阅上述维基页面了解 MBR 的结构。

注意：MBR 并不位于某个分区中。其位于分区前，设备的最开始的扇区（物理偏移 0）。 无分区设备的启动扇区或分区中的启动扇区被称为 Volume boot record。

#### MBR（引导代码）

MBR 的前 440 字节是引导（bootstrap）代码。在 BIOS 系统上，它通常包含引导程序的第一阶段。可以用 dd 备份、恢复、抹除引导代码。

#### MBR（分区表）

MBR 分区表（或称为 DOS 分区表、MS-DOS 分区表）有三种分区类型：

- 主分区（Primary）
- 扩展分区（Extended）
  - 逻辑分区（Logical）

主分区每个磁盘或者 RAID 卷上不能超过 4 个，可设置为可启动状态。如果分区方案要求使用多于 4 个的分区，就需将至少一个分区设置为扩展分区，并在上面建立逻辑分区。

扩展分区可以被看作是容纳逻辑分区的容器。硬盘上最多只能有1个扩展分区。如果磁盘上有 1 个扩展分区，它也被看作是 1 个主分区。因此只能另外再建立 3 个主分区（例如 3 个主分区加 1 个扩展分区）。扩展分区内所包含的逻辑分区数量没有限制。如果在双重启动中有 Windows，Windows 需要占据一个主分区。

通常习惯是创建主分区 sda1 到 sda3，然后建立一个扩展分区 sda4。sda4 中包含的逻辑分区编号为 sda5、sda6 等。

提示：在进行 MBR 分区时，请考虑在硬盘末尾留下至少 33 个 512 字节扇区（总共 16.5 KiB）的不分区空间。这样是为了方便以后 转换到 GPT 方案，会用于备份 GPT 头。

### GUID 分区表

全局唯一标识分区表（GUID Partition Table，GPT）是 UEFI 标准定义的分区规范。使用通用唯一识别码（globally unique identifier，GUID；又称为 universally unique identifier，UUID）定义分区和分区类型。设计上是为了替换#主引导记录。

GUID 分区表的磁盘开始位置有一个保护 MBR（protective Master Boot Record，PMBR），用以处理不支持 GPT 软件的访问。这段 MBR 和真正的 MBR 一样，具备一段#引导代码，后者可以用在支持的启动管理器中进行 BIOS/GPT 启动。

### 选择 GPT 还是 MBR

#GUID 分区表（GPT）是一种更灵活的分区方式。它正在逐步取代#主引导记录（MBR）系统。GPT 相对于诞生于 MS-DOS 时代的 MBR 而言，有许多优点。新版的分区工具可以让 GPT 和 MBR 都获得不错的可靠性和性能。

在做出选择前，需要考虑如下内容：

- 如果使用 GRUB legacy 作为引导程序，必须使用 MBR。
- 如果使用传统的 BIOS，并且双启动中包含 Windows （无论是 32位版还是 64 位版），必须使用 MBR。
- 如果使用 UEFI 而不是 BIOS，并且双启动中包含 Windows 64 位版，必须使用 GPT。
- 非常老的机器需要使用 MBR，因为 BIOS 可能不支持 GPT。
- 如果不属于上述任何一种情况，可以随意选择使用 GPT 还是 MBR。由于 GPT 更先进，建议选择 GPT。
- 建议在使用 UEFI 的情况下选择 GPT，因为有些 UEFI 固件不支持从 MBR 启动。

注意：为了使 GRUB 从一台有 GPT 分区的基于 BIOS 的系统上启动，需要创建一个 BIOS 启动分区，这个分区和 /boot 没关系，仅仅是 GRUB 使用，不要建立文件系统和挂载。

GPT 相对于 MBR 的一些优势：

- 为每个磁盘和每个分区提供相应的磁盘 UUID 和分区 UUID（partuuid），这样对分区和磁盘的命名就与其文件系统无关。UUID 同时是 systemd 的可发现分区规范的前提，可以用于启用了 systemd 的 initramfs。
- 提供与文件系统无关的分区名（partlabel）。
- 任意多个分区（取决于为分区表本身分配的空间）使扩展分区和逻辑分区不再必要。GPT 表的默认空间可供 128 个分区使用，但若需要更多分区，也可为分区表分配更多空间。目前仅 gdisk 支持该功能。
- 使用 64 位逻辑块地址（logical block address），可寻址的最大硬盘空间是 2 ZiB。MBR 只支持 2 TiB 的最大硬盘。
- 在磁盘末尾储存头部和分区表，有助于恢复分区表。
- CRC32 校验码可用于侦测头部或分区表的错误。

#分区工具一节列出了用于创建和修改 GPT 或 MBR 表的工具。

提示：GPT 和 MBR 之间可以互相转换。请参阅在 MBR 和 GPT 之间互相转换[损坏的链接：无效的章节]。

### 无分区磁盘

无分区磁盘，即superfloppy 是指无分区表的存储设备，一个文件系统占据整个存储空间。无分区设备上的启动扇区被称做 volume boot record (VBR)。

### Btrfs 分区

Btrfs可以独占整个存储设备并替代 #MBR 和 #GPT 分区方案。请参考创建 Btrfs 文件系统以获取更多信息。

## 分区方案

虽然有一些关于分区方案的通用建议，但没有严格的准则。有许多影响分区方案的因素，例如对灵活性的期望、访问速度、安全性以及可用磁盘空间的硬性限制。实际上就是个人取舍的问题。

如果你想双启动 Arch Linux 和 Windows，请参考 Dual boot with Windows。

警告：请别忘记为引导程序预留空间。这对于 MBR 和 GRUB-Legacy 来说不是问题，但是许多新方案可能要求占用一个特殊的小分区。

- UEFI 系统通常需要有 EFI 系统分区。
- 在 BIOS 系统上使用 #GPT 进行分区后，安装 GRUB 时会需要一个额外的 BIOS 启动分区。
- 如果使用的是 Btrfs，可以用子卷模拟分区，请参考 Btrfs 子卷。

### 单root分区

这种是最简单，同时也能满足大部分应用场景的方案。如果需要的话，可以建立一个交换文件。通常刚开始的时候建议一个单独的 `/` 分区，然后根据应用场景的需要，例如 RAID，加密，独立的多媒体分区等建立其他的分区。

单root分区的大小最小不建议低于23–32 GiB。用户文件或swap文件可能需要更多的空间。

警告：A separate physical (in the main partition table of the disk, not under LVM, software RAID or in a file system subvolume etc.) /boot partition is needed unless your boot loader is capable of accessing the `/boot` directory that resides in `/`. That means the boot loader must have support for everything starting from the block devices, stacked block devices (LVM, RAID, dm-crypt, LUKS, etc.) and ending with the file system on which the kernel(s) and initramfs image(s) reside.

使用 GPT 分区的话其类型 GUID 应当是 `4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709` （“Linux root (x86-64)”，“Linux x86-64 root (/)”）。 使用MBR分区表的话则其类型ID应当是 `83`（“Linux”）。

### 多分区

将某个路径挂载为独立分区可以使其拥有不同的文件系统和挂载参数。某些情况下（例如多媒体文件分区），可以被多个操作系统共享。

下面这些路径可以作为独立分区的挂载点，你也可以根据实际需要做出其他决定。file-hierarchy(7) 介绍了各个目录的作用。

#### 根分区

根目录是目录树的顶层，这里是主文件系统挂载和其他文件系统挂靠的地方。所有文件和目录都在根目录 `/` 显示，即使它们实际上存储在其他的物理设备上。根文件系统中的内容必须足以启动、恢复、修复系统。因此 `/` 目录下的特定目录是不能作为独立分区的。

`/` 分区或叫根分区是最重要而且必需的，需要最先挂载，其他其他分区可以被它取代。

警告：与系统启动相关的特定目录（除了 `/boot`） 必须 与 `/` 在同一个分区，或在系统刚进入用户态的时候通过 initramfs 挂载。这些特定的目录包括：`/etc` 和 `/usr` [1] 。

因为它通常包括 `/usr` 目录，根据安装的软件数量，会产生非常明显的增长。15-20 GiB 对于大多数用户来说是一个比较合适的取值。如果你打算在这里放一个交换文件或者不建立单独的 /var，需要适当调大取值(增加休眠空间和额外的 8–12 GiB 给 `/var`)。

使用 GPT 分区的话其类型 GUID 应当是 `4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709` （“Linux root (x86-64)”，“Linux x86-64 root (/)”）。使用MBR分区表的话则其类型ID应当是 `83`（“Linux”）。

#### /boot

`/boot` 分区包含vmlinuz、 initramfs 以及引导加载程序配置文件和引导加载程序阶段。它也可以存放内核在执行用户态程序之前所使用的其他数据。`/boot` 在日常系统运行中并不需要，只在启动和内核升级（重建 initial ramdisk 时）的时候用到。

警告：

- 引导加载程序需要能够访问到 `/boot` 目录。所以引导加载程序需要视情况，支持块设备、堆叠块设备（如软 RAID、加密卷或 LVM 卷）以及存放内核、initramfs 的文件系统。
- 有些文件系统能包含引导加载程序尚不支持的新特性，除非将不兼容特性禁用，否则不适于 `/boot` 分区。通常可以使用 FAT32 以避免此问题，因为 FAT32 包含所有需要的功能，而且不会再增加新的功能。

有关启动加载器的需求和能力的更多信息，请参考 Arch boot process#启动加载器。

注意：在 UEFI 系统中，可以将 EFI 系统分区挂载到`/boot`，这样就可以省去一个单独的 boot 分区。

In other cases, it is recommended to set the partition type to Extended Boot Loader (XBOOTLDR) Partition which is GPT partition type GUID `BC13C2FF-59E6-4262-A352-B275FD6F7172` (`ea00` type for gdisk) or MBR partition type ID `ea`.

在两种情况下，推荐的分区大小都是 1 GiB，这样就可以有足够的空间存放多个内核。如果怕不够，可以分配 4 GiB 空间。

#### /home

`/home`目录包含用户定义的配置文件、缓存、应用程序数据和媒体文件。

将`/home`目录独立使得`/`分区可以单独重新划分。但是请注意，在 `/home` 没有独立分区的情况下，仍然可以在不修改 `/home` 目录内容的情况下重装 Arch——删除其他顶级目录，然后执行 pacstrap。

不能与使用其他发行版的用户共享同一个 home 目录，因为不同的发行版可能使用不兼容的软件版本和补丁。可以共享媒体目录，或至少使用 `/home` 分区下的不同 home 目录。分区大小跟着存储的内容而定。

使用 GPT 分区的话其类型 GUID 应当是 `933AC7E1-2EB4-4F13-B844-0E14E2AEF915` （“Linux home”，“Linux /home”）。使用MBR分区表的话则其类型ID应当是 `83`（“Linux”）。

#### Swap

交换文件或分区提供的硬盘空间作为交换空间使用。它们有同样的功能，没有明显的性能区别，但是前者更易于根据需要调整大小。如果没有使用休眠功能的话，交换分区可以被多个系统分时使用。

以前，在拥有不足512 MiB内存的机器上，通常为交换分区分配两倍内存大小的空间。如果有更大的内存（大于1024 MiB），可以分配较少的空间，甚至不需要交换空间。推荐的默认大小是4 GiB.

要使用休眠（挂起到硬盘）功能，最好分配与内存同样大的交换分区。虽然内核会尝试压缩休眠文件到交换分区的大小，但如果交换空间过于小则不一定成功。请参见休眠。

使用GPT分区的话其类型 GUID应当是 `0657FD6D-A4AB-43C4-84E5-0933C84B4F4F` （“Linux swap”）。使用MBR分区表的话则其类型 ID 应当是 `82` （“Linux swap”）。

#### /data

可以为需要多用户共享的文件建立一个“data”分区。也可以使用 `/home` 分区用于这一目的。

使用 GPT 分区的话其类型 GUID 应当是 `0FC63DAF-8483-4772-8E79-3D69D8477DE4` （“Linux filesystem”）。 使用MBR分区表的话则其类型ID应当是 `83`（“Linux”）。

#### /var

`/var` 目录存储变量数据例如 spool 目录和文件，管理和登录数据，pacman 的缓存，ABS 树等等。它通常被用作缓存或者日志记录，因此读写频繁。将它独立出来可以避免由于大量日志写入造成的磁盘空间耗尽等问题。

它的存在是方便将 `/usr` 设置为只读挂载。所有在操作系统运行过程（而非安装或软件维护）中，从前要写入 `/usr` 的东西，放到 `/var` 下。

注意：`/var` 包含许多小文件。如果将其作为独立分区，在文件系统的选择上需要考虑这一点。

值得一提的是，`/var` 包含 pacman 缓存。保留缓存的包提供了软件包降级的能力，因此非常有用。也正因为这样，`/var` 的大小会随着时间推移而增长。尤其是 pacman 缓存将会随着新软件的安装、系统的升级而增长。在磁盘空间不足的时候，可以安全地清理这个目录。

`/var` 分配 8~12 GiB 对于桌面系统来说是比较合适的取值，具体取值取决于安装的软件数量。

使用 GPT 分区的话其类型 GUID 应当是 `4D21B016-B534-45C2-A9FB-5C16E091FD2D` （“Linux variable data”，“Linux /var”）。 使用MBR分区表的话则其类型ID应当是 `83`（“Linux”）。

### 布局示例

下面的例子使用 `/dev/sda` 作为示例磁盘，其中 `/dev/sda1` 是第一块分区。 The block device naming scheme will differ if you are partitioning a NVMe disk (e.g. `/dev/nvme0n1` with partitions starting from `/dev/nvme0n1p1`) or an SD card or eMMC disk (e.g. `/dev/mmcblk0` with partitions starting from `/dev/mmcblk0p1`). See Device file#Block device names for more information.

注意：

- UEFI/GPT 并没有真正的“boot”标志。启动仅依赖于设备上的相应记录。某些 GPT 分区工具标记的“boot”仅意味着它是一个 EFI 系统分区。
- 不要求所有的分区都在同一个硬盘上。
- 不要求所有的硬盘使用相同的分区表类型。

#### UEFI/GPT 布局示例

挂载点 | 分区 | 分区类型 GUID | 推荐大小
--- | --- | --- | ---
`/boot` or `/efi` 1 | `/dev/sda1` | `C12A7328-F81F-11D2-BA4B-00A0C93EC93B`: EFI system partition | 1 GiB
`[SWAP]` | `/dev/sda2` | `0657FD6D-A4AB-43C4-84E5-0933C84B4F4F`: Linux swap | 至少 4 GiB，使用 休眠 时等于内存大小
`/` | `/dev/sda3` | `4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709`: Linux x86-64 root (/) | 剩余空间，至少 23 - 32 GiB

#### MBR/BIOS 示例

挂载点 | 分区类型 | 分区类型 ID | Boot flag | Suggested size
--- | --- | --- | --- | ---
`[SWAP]` | `/dev/sda1` | `82`: Linux swap | 否 | 至少 4 GiB，使用 休眠 时等于内存大小
`/` | `/dev/sda2` | `83`: Linux | 是 | 剩余空间，至少 23 - 32 GiB
N/A | Unallocated space2 | N/A | N/A | At least 16.5 KiB at the end of the disk

#### BIOS/GPT 布局示例

挂载点 | 分区 | 分区类型 GUID | 推荐大小
--- | --- | --- | ---
None | `/dev/sda1` | `21686148-6449-6E6F-744E-656564454649`: BIOS boot partition 3 | 1 MiB
`[SWAP]` | `/dev/sda2` | `0657FD6D-A4AB-43C4-84E5-0933C84B4F4F`: Linux swap | 至少 4 GiB，使用 休眠 时等于内存大小
`/` | `/dev/sda3` | `4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709`: Linux x86-64 root (/) | `2`: Legacy BIOS bootable | 23 - 32 GiB

1. The ESP can be mounted to `/efi` if the used boot loader is capable of accessing the file system (and everything above it) on which the kernel and initramfs images are located. See EFI system partition#Typical mount points and the warning in Arch boot process#Boot loader for details.

1. An unpartitioned space of at least 33 512-byte sectors (16.5 KiB) at the end of the disk to allow converting to GPT in the future. The space will be required for the backup GPT header. The recommendation to preserve an unpartitioned space applies to all MBR partitioned disks.

1. A BIOS boot partition is only required when using GRUB for BIOS booting from a GPT disk, it is not needed when using other boot loaders. The partition has nothing to do with `/boot`, and it must not be formatted with a file system or mounted.

## 分区工具

下面表格可以帮助选择。

警告：请选择与分区表类型相兼容的工具。不兼容的工具可能损坏分区表，以至于损坏数据。

GPT | CLI | TUI | Scripting utility
--- | --- | --- | ---
fdisk | util-linux包 | 是 | 是 | fdisk(8) | cfdisk(8) | sfdisk(8)
GPT fdisk | gptfdisk包 | 否 | 是 | gdisk(8) | cgdisk(8) | sgdisk(8)
Parted | parted包 | 是 | 是 | parted(8) | 否 | parted(8)

### fdisk/gdisk

请参考 fdisk。

- fdisk — Linux 自带的命令行分区工具。

  https://www.kernel.org/ || util-linux包

- cfdisk — 使用 ncurses 库编写的具有伪图形界面的命令行分区工具。

  https://www.kernel.org/ || util-linux包

- sfdisk — 支持脚本的 fdisk.

  https://www.kernel.org/pub/linux/utils/util-linux/ || util-linux包

- gdisk — GPT 版的 fdisk。

  https://www.rodsbooks.com/gdisk/ || gptfdisk包

- cgdisk — GPT 版的 cfdisk。

  https://www.rodsbooks.com/gdisk/ || gptfdisk包

- sgdisk — Scriptable version of gdisk.

  https://www.rodsbooks.com/gdisk/sgdisk-walkthrough.html || gptfdisk包

### GNU Parted

下面工具在 GNU Parted 中有介绍。

- GNU Parted — 命令行分区工具。

  https://www.gnu.org/software/parted/parted.html || parted包

- GParted — GTK 图形界面的分区工具。

  http://gparted.sourceforge.net/ || gparted包

- GNOME Disks — GTK 写的图形分区工具.

  https://wiki.gnome.org/Apps/Disks || gnome-disk-utility包

- Partitionmanager — QT 图形界面的分区工具。

  https://sourceforge.net/projects/partitionman/ || partitionmanager包

### 备份

请参阅 fdisk#Backup and restore partition table 或 gdisk#Backup and restore partition table.

### 恢复

- gpart — 可猜测被破坏的 MBR 分区表内容。用法在gpart(8)。

  https://github.com/baruch/gpart || gpart包

- GPT fdisk[损坏的链接：无效的章节] — 该工具可从副 GPT 分区表（存储于磁盘末尾）恢复主 GPT 分区表（存储于磁盘开头），或是反过来。

  https://www.rodsbooks.com/gdisk/ || gptfdisk包

- TestDisk — 该工具可恢复 MBR 或 GPT 丢失分区。

  https://www.cgsecurity.org/index.html?testdisk.html || testdisk包

## 分区对齐

恰当的分区对齐有助于提升性能和使用寿命。这是由硬件层面和文件系统层面的每次块 I/O 操作特性决定的。对齐的关键是分区大小（至少）是块大小的倍数，块大小取决于选用的硬件设备。如果分区没有以块大小的整数倍对齐，对齐文件系统就失去意义了，因为从分区的起始偏移开始就是有偏差的。

fdisk/gdisk 和 parted 会自动处理分区对齐。GNU Parted#Check alignment 介绍了如何验证分区是否对齐。

有些硬盘使用高级格式会提供更好的读写效率。

### GPT 内核支持

Linux 内核中 `CONFIG_EFI_PARTITION` 选项配置是否启用内核 GPT 支持（即使名称为 EFI PARTITION）。此选项必须内置于内核，不能作为可加载模块。即使 GPT 磁盘只用作数据存储而不作为启动盘，此选项也是必须的。在 Arch [core] 仓库中的 linux包 和 linux-lts包 内核默认启用此选项。如果自定内核，设置 `CONFIG_EFI_PARTITION=y` 启用此选项。

## 疑难解答

### Tricking old BIOS into booting from GPT

Some old BIOSes (from before year 2010) attempt to parse the boot sector and refuse to boot it if it does not contain a bootable MBR partition. This is a problem if one wants to use GPT on this disk, because, from the BIOS viewpoint, it contains only one, non-bootable, MBR partition of type `ee` (i.e., the protective MBR partition). One can mark the protective MBR entry as bootable using `fdisk -t mbr /dev/sda`, and it will work on some BIOSes. However, the UEFI specification prohibits the protective MBR partition entry from being bootable, and UEFI-based boards do care about this, even in the legacy boot mode. So, this matters if one wants to create a GPT-based USB flash drive that is supposed to boot both on modern UEFI-based boards and also on old BIOSes that insist on finding a bootable MBR partition. It is not possible to solve this problem using traditional tools such as fdisk or gdisk, but it is possible to create a fake MBR partition entry suitable for both kinds of BIOSes manually as a sequence of bytes.

The command below will overwrite the second MBR partition slot and add a bootable partition there of type 0 (i.e. unused), covering only the first sector of the device. It will not interfere with the GPT or with the first MBR partition entry which normally contains a protective MBR partition.

    # printf '\200\0\0\0\0\0\0\0\0\0\0\0\001\0\0\0' | dd of=/dev/sda bs=1 seek=462

最终结果看起来是这样的:

    # fdisk -t mbr -l /dev/sda

    Disk /dev/sda: 232.9 GiB, 250059350016 bytes, 488397168 sectors
    Disk model: ST3250820AS
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x00000000

    Device     Boot Start       End   Sectors   Size Id Type
    /dev/sda1           1 488397167 488397167 232.9G ee GPT
    /dev/sda2  *        0         0         1   512B  0 Empty

    Partition table entries are not in disk order.

### 启用固件 RAID 时无法找到硬盘

如果在固件配置界面可以看到 SATA 或 NVMe 硬盘，但在 Linux 中找不到（例如 `fdisk -l` 中没有），有可能控制器正处于固件 RAID 模式。

对于 NVMe，journal 会显示如下信息：

    kernel: ahci 0000:00:17.0: Found 1 remapped NVMe devices.
    kernel: ahci 0000:00:17.0: Switch your BIOS from RAID to AHCI mode to use them.

解决方案是进入固件配置界面，禁用 NVMe RAID 模式并将 SATA 控制器运行模式从 RAID 修改为 AHCI。注意，该设置的名称可能会有所不同（例如“Intel Rapid Storage Technology”，“Intel RST”，“Intel VMD controller”或“VMD”），且可能会是控制器或端口独立的。

警告：在使用 Arch + Windows 双系统的情况下，在更改控制器模式前需要进行些准备，具体请参考完成安装后如何在 Windows 8 和 Windows 10 中启用 AHCI。
注意：有些固件没有单独的 NVMe RAID 模式配置项，并会将 SATA 控制器运行模式应用到 NVMe 控制器上。在这些固件上，将“SATA 运行模式”设为“AHCI”会将 NVMe 控制器设为“不使用固件 RAID，使用原生运行模式”。[2][3][4]

## 参考资料

- Wikipedia:Disk partitioning
- Wikipedia:Binary prefix
- Understanding Disk Drive Terminology
- What is a Master Boot Record (MBR)?
- Rod Smith's page on What's a GPT? and Booting OSes from GPT
- Make the most of large drives with GPT and Linux - IBM Developer Works
- Microsoft's Windows and GPT FAQ
- Partition Alignment (with examples)

分类：​

- 文件系统
- 启动过程
- 系统恢复

隐藏分类：​

- 包含损坏章节链接的页面

分区
添加话题