wiki.archlinuxcn.org Open in urlscan Pro
104.245.9.4  Public Scan

URL: https://wiki.archlinuxcn.org/wiki/Partitioning
Submission: On November 19 via api from RU — Scanned from JP

Form analysis 1 forms found in the DOM

/wzh/index.php

<form action="/wzh/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button">
  <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved">
    <div class="cdx-text-input cdx-text-input--has-start-icon">
      <input class="cdx-text-input__input" type="search" name="search" placeholder="搜索 Arch Linux 中文维基内容" aria-label="搜索 Arch Linux 中文维基内容" autocapitalize="sentences" title="搜索 Arch Linux 中文维基内容[alt-shift-f]" accesskey="f" id="searchInput"
        autocomplete="off">
      <span class="cdx-text-input__icon cdx-text-input__start-icon"></span>
    </div>
    <input type="hidden" name="title" value="Special:搜索">
  </div>
  <button class="cdx-button cdx-search-input__end-button">搜索</button>
</form>

Text Content

 * 主页
 * 维基
 * ArchWiki
 * 论坛
 * AUR
 * [archlinuxcn] 仓库
 * 下载

跳转到内容
主菜单
主菜单
移至侧栏 隐藏
导航
 * 首页
 * 目录
 * 安装指南
 * 行为准则

Arch Linux 中文维基
 * 最近更改
 * 随机页面
 * 社群首页
 * 编辑指南
 * MediaWiki帮助

Arch Linux 中文维基
搜索

搜索
 * 创建账号
 * 登录

个人工具
 * 创建账号
 * 登录

未登录编辑者的页面 了解详情
 * 贡献
 * 讨论


目录

移至侧栏 隐藏
 * 序言
 * 1分区表
   开关分区表子章节
   * 1.1主引导记录
     * 1.1.1MBR(引导代码)
     * 1.1.2MBR(分区表)
   * 1.2GUID 分区表
   * 1.3选择 GPT 还是 MBR
   * 1.4无分区磁盘
   * 1.5Btrfs 分区
 * 2分区方案
   开关分区方案子章节
   * 2.1单root分区
   * 2.2多分区
     * 2.2.1根分区
     * 2.2.2/boot
     * 2.2.3/home
     * 2.2.4Swap
     * 2.2.5/data
     * 2.2.6/var
   * 2.3布局示例
     * 2.3.1UEFI/GPT 布局示例
     * 2.3.2MBR/BIOS 示例
     * 2.3.3BIOS/GPT 布局示例
 * 3分区工具
   开关分区工具子章节
   * 3.1fdisk/gdisk
   * 3.2GNU Parted
   * 3.3备份
   * 3.4恢复
 * 4分区对齐
   开关分区对齐子章节
   * 4.1GPT 内核支持
 * 5Troubleshooting
   开关Troubleshooting子章节
   * 5.1Tricking old BIOS into booting from GPT
   * 5.2Drives are not visible when firmware RAID is enabled
 * 6参考资料

开关目录



分区

1种语言
 * English

 * 页面
 * 讨论

不转换
 * 不转换
 * 简体
 * 繁體
 * 大陆简体
 * 香港繁體
 * 澳門繁體
 * 大马简体
 * 新加坡简体
 * 臺灣正體

 * 阅读
 * 编辑
 * 编辑源代码
 * 查看历史

工具
工具
移至侧栏 隐藏
操作
 * 阅读
 * 编辑
 * 编辑源代码
 * 查看历史

常规
 * 链入页面
 * 相关更改
 * 特殊页面
 * 打印版本
 * 固定链接
 * 页面信息


来自 Arch Linux 中文维基
(重定向自Partitioning)

相关文章

 * 文件系统
 * 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,加密,独立的多媒体分区等建立其他的分区。

23–32 GiB is the suggested minimum size for a single root partition. More space
may be needed for user files and when using a swap file.

警告: 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.

A GPT partition should have the type GUID 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709
("Linux root (x86-64)", "Linux x86-64 root (/)"). An MBR partition should have
the default "Linux" type ID 83.


多分区[编辑 | 编辑源代码]

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

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

根分区[编辑 | 编辑源代码]

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

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

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

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

A GPT partition should have the type GUID 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709
("Linux root (x86-64)", "Linux x86-64 root (/)"). An MBR partition should have
the default "Linux" type ID 83.

/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 目录。分区大小跟着存储的内容而定。

A GPT partition should have the type GUID 933AC7E1-2EB4-4F13-B844-0E14E2AEF915
("Linux home", "Linux /home"). An MBR partition should have the default "Linux"
type ID 83.

SWAP[编辑 | 编辑源代码]

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

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

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

A GPT partition should have the type GUID 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
("Linux swap"). An MBR partition should have the type ID 82 ("Linux swap").

/DATA[编辑 | 编辑源代码]

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

A GPT partition should have the default "Linux filesystem" type GUID
0FC63DAF-8483-4772-8E79-3D69D8477DE4. An MBR partition should have the default
"Linux" type ID 83.

/VAR[编辑 | 编辑源代码]

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

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

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

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

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

A GPT partition should have the type GUID 4D21B016-B534-45C2-A9FB-5C16E091FD2D
("Linux variable data", "Linux /var"). An MBR partition should have the default
"Linux" type ID 83.


布局示例[编辑 | 编辑源代码]

The following examples use /dev/sda as the example disk with /dev/sda1 as the
first partition. 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/sda2 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包 |
data-sort-value=5 style="background: #afa; color: inherit; vertical-align:
middle; text-align: center; "|是 | data-sort-value=5 style="background: #afa;
color: inherit; vertical-align: middle; text-align: center; "|是 | fdisk(8) |
cfdisk(8) | sfdisk(8) |- | GPT fdisk | gptfdisk包 | data-sort-value=1
style="background: #faa; color: inherit; vertical-align: middle; text-align:
center; "|否 | data-sort-value=5 style="background: #afa; color: inherit;
vertical-align: middle; text-align: center; "|是 | gdisk(8) | cgdisk(8) |
sgdisk(8) |- | Parted | parted包 | data-sort-value=5 style="background: #afa;
color: inherit; vertical-align: middle; text-align: center; "|是 |
data-sort-value=5 style="background: #afa; color: inherit; vertical-align:
middle; text-align: center; "|是 | parted(8) | data-sort-value=1
style="background: #faa; color: inherit; vertical-align: middle; text-align:
center; "|否 | 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 启用此选项。


TROUBLESHOOTING[编辑 | 编辑源代码]


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


The end result will look like this:

# 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.


DRIVES ARE NOT VISIBLE WHEN FIRMWARE RAID IS ENABLED[编辑 | 编辑源代码]

If a SATA or NVMe drive is visible in firmware setup, but not to Linux (e.g.
fdisk -l does not list it), it is possible that the controller is in firmware
RAID mode.

For NVMe, the journal should show something like:

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.


The solution is to enter firmware setup and disable NVMe RAID mode and change
the SATA controller operation mode from RAID to AHCI. Mind that the setting may
have a different name (e.g. "Intel Rapid Storage Technology", "Intel RST",
"Intel VMD controller" or "VMD") and it could also be per-controller or
per-port.

警告: When dual booting with Windows, preparations need to be made before changing
the controller mode. See How to Enable AHCI in Windows 8 and Windows 10 after
Installation.
注意: Some firmware do not have a dedicated NVMe RAID mode setting and, despite
the terms not making any sense, use the SATA controller operation mode setting
for the NVMe controller too. These firmware simply interpret "SATA operation
mode" being set to "AHCI" on NVMe controllers to mean "use native operating mode
without firmware 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)

检索自“https://wiki.archlinuxcn.org/wzh/index.php?title=分区&oldid=27721”
分类:
 * 文件系统
 * 启动过程
 * 系统恢复

隐藏分类:
 * 包含损坏章节链接的页面

 * 此页面最后编辑于2024年8月7日 (星期三) 12:09。
 * 除非另有声明,本网站内容采用GNU自由文档许可证1.3或以后授权。

 * 隐私政策
 * 关于 Arch Linux 中文维基
 * 免责声明
 * 手机版视图
 * 编辑预览设置

 * 
 * 

 * 开关有限宽度模式