Linux Partition scheme 分区方案(一)

Linux系统下必需的分区为: 根分区("/")  +  交换分区(swap)

swap分区相当于Windows中虚拟内存的概念,也就是内存数据与硬盘的交换。

根分区包含Linux系统所有的目录。如果在安装系统时只分配了/分区,那么上面的/boot、/usr和/var将都包含在根分区中,也就是这些分区将占用根分区的空间。

                                                    如果将/boot、/usr等单独划分,那么这些分区将不再占用根分区空间

虽然Linux默认只需划分根分区和交换分区即可完成系统安装,但是不建议这么做,因为如果只划分了/分区,那么当/遭到破坏以后,系统可能无法启动,存储在/分区的资料也可能丢失,这样很不安全。

因此,我们建议给独立的应用分配独立的分区,这样即使某个分区被破坏,也不影响其他分区的数据,能最大程度减少系统崩溃造成的损失。

以下分区建议在安装系统时独立分配。

/boot:存储系统的引导信息和内核等信息。  Boot Loader Files

/usr:存储系统应用软件安装信息。  User Programs

/var:存储系统日志信息。 Variable Files

所有的东西必须在/目录下,分开后是系统把他挂载在根目录下,物理上还是映射在你所在物理分区

分区方案

虽然有一些关于分区方案的通用建议,但没有严格的准则。有许多影响分区方案的因素,例如对灵活性的期望,访问速度,安全性以及可用磁盘空间的硬性限制。实际上就是个人取舍的问题。如果你想双启动 Arch Linux 和 Windows,请参考 Windows and Arch Dual Boot

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

单root分区

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

UEFI系统需要 ESP 分区,在 BIOS 系统上使用 GPT 进行分区后,安装 GRUB 时会需要一个额外的 BIOS 启动分区。

多分区

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

挂载点

下面这些路径可以作为独立分区的挂载点,你也可以根据实际需要做出其他决定。

根分区  /

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

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

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

/boot                      Boot Loader Files

/boot 分区包含内核、ramdisk 镜像以及 bootloader 配置文件和 bootloader stage。它也可以存放内核在执行用户态程序之前所使用的其他数据。/boot 在日常系统运行中并不需要,只在启动和内核升级(包括重建initial ramdisk)的时候用到。

如果使用软RAID0(条带化)系统的话,必须有一个独立的 /boot 分区。

Note: 如果使用 UEFI 启动管理器,支持读取 ESP 文件系统,建议将 ESP 挂载到 /boot.

/home                      Home Directories  

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

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

不能与使用其他发行版的用户共享同一个home目录,因为不同的发行版可能使用不兼容的软件版本和补丁。可以共享媒体目录,或至少使用 /home 分区下的不同home目录。

/var                            Variable     Files

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

可以将 /usr 设置为只读挂载。所有在操作系统运行过程中(例如安装或软件维护)写入 /usr 的东西放到 /var 下。

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

/tmp                           Temporary Files

默认情况下这个目录已经是一个独立分区,systemd 将其挂载问tmpfs

Swap

swap 分区提供能够被作为虚拟内存的内存空间。swap file 也可以实现同样的功能,并且它们之间没有明显的性能区别,但是后者更易于根据需要调整大小。如果没有使用休眠特性的话,swap 分区可以被多个系统共享。查看 Suspend and hibernate 了解如何通过 swap 分区或文件休眠。

分区应该设置多大?

注意:

  • 以下只是简单的建议,分区大小没有严格的准则
  • 如果可能的话,为每个文件系统保留 25% 的额外空间以应对今后的变化,还可以避免文件系统碎片

分区的大小主要取决于个人的选择,以下内容可能会有一定帮助:

/boot - 200 MB 

实际需求大约 100 MB,如果有多个内核/启动镜像同时存在,建议分配 200 或者 300 MB。

/ - 15-20 GB 

传统上包括 /usr 目录,根据安装的软件数量,会产生非常明显的增长。15-20 GB 对于大多数用户来说是一个比较合适的取值。如果你打算在这里放一个交换文件(swap file)的话,需要适当调大取值。

/var - 8-12 GB 

除了其他数据以外,还包括ABS 树和 pacman 缓存。保留缓存的包提供了包降级的能力,因此非常有用。也正因为这样,/var 的大小会随着时间推移而增长。尤其是 pacman 缓存将会随着新软件的安装、系统的升级而增长。在磁盘空间不足的时候,可以安全的清理这个目录。/var 分配 8-12 GB 对于桌面系统来说是比较合适的取值,具体取值取决于安装的软件数量。

/home - [不定] 

通常用于存放用户数据,下载的文件和媒体文件。在桌面系统中,/home 通常是最大的文件系统。

swap - [不定] 

在拥有不足 512 MB 内存的机器上,通常为 swap 分区分配2倍内存大小的空间。如果有更大的内存(大于 1024 MB),可以分配较少的空间甚至不需要swap 分区。

注意: 如果你要使用休眠到磁盘功能,你需要参考Suspend and hibernate#About swap partition/file size。使用虚拟机时建议使用 Swap.

/data - [不定] 

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

分区工具

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

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

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

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

  • sfdisk — 支持脚本的 fdisk.

|| util-linux

http://www.rodsbooks.com/gdisk/ || gptfdisk

  • cgdisk — GPT 版的 cfdisk。

http://www.rodsbooks.com/gdisk/ || gptfdisk

  • sgdisk — Scriptable version of gdisk.

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

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

http://www.gnu.org/software/parted/parted.html || parted

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

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

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

http://sourceforge.net/projects/partitionman/ || partitionmanager

下面表格可以帮助选择

用户交互

MBR

GPT

对话框

fdisk  parted

fdisk  gdisk  parted

模拟图形界面

cfdisk

cfdisk  cgdisk

非交互

sfdisk  parted

sfdisk  sgdisk  parted

图形界面

gparted  partitionmanager

gparted  partitionmanager

分区对齐

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

机械硬盘

传统上,机械硬盘是按照柱面磁头扇区来寻址需要读写的数据位置(也被称作 CHS addressing)。这代表了相关数据的径向的位置、驱动器磁头(包括盘片和盘面)和轴向的位置。对于 LBA (逻辑块寻址),这就不再是这样了。而是整个磁盘被按照连续的数据流寻址,以扇区作为最小寻址单位。

标准的扇区大小是512B,但是现代的高容量机械硬盘使用更大的值,通常是 4KiB。使用高于512B的值被称作高级格式化

固态硬盘

固态硬盘基于闪存芯片,与机械硬盘有显著的不同。只读访问能够以随机方式进行,而擦除(覆写或随机写入)只能以整块进行。此外,擦除块大小(Erase Block Size,EBS)比块大小明显大很多,例如 128KiB vs 4KiB,所以需要以 EBS 的整数倍进行对齐。有些 NVMe 需要 4KiB 对齐,要确定 SSD 大小,请查看 Advanced Format#How to determine if HDD employ a 4k sector.

分区工具

以前,在分区的时候需要手工计算和介入以确保正确对齐。现在有许多常用的分区工具已经可以自动处理分区对齐问题:

  • fdisk
  • gdisk
  • gparted
  • parted

要验证一个分区是否对齐,使用parted 工具进行检查:

# parted /dev/sda
(parted) align-check optimal 1
1 aligned

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏雨过天晴

转 树莓派无显示器安装系统

1752
来自专栏为数不多的Android技巧

让Alfred支持拼音搜索

Alfred是个好东西,不过检索程序的时候不支持拼音搜索;我在论坛看到有人给作者反馈过,无奈作者说支持中文,他不知道拼音是什么,于是就不了了之了。举个例子:我想...

3311
来自专栏python学习之旅

Python+Selenium笔记(二):配置谷歌+IE环境

#有的时候可能要访问外国的网站下载资料或工具,这时可能出现各种问题,例如谷歌人机验证显示不了、网站打不开等,建议使用一个FQ软件 下载免费版的就行了,土豪请随...

46211
来自专栏搜云库

HBase 深入浅出

HBase 深入浅出 HBase 在大数据生态圈中的位置 提到大数据的存储,大多数人首先联想到的是 Hadoop 和 Hadoop 中的 HDFS 模块。大家熟...

43410
来自专栏FreeBuf

利用Pentestbox打造MS17-010移动杀器

1、前言 前段时间Shadow Broker披露了 Windows大量漏洞,甚至爆出黑客组织 Equation Group 对于Windows 远程漏洞 MS1...

3607
来自专栏MYSQL轻松学

Mysql Group Replication介绍

一、Mysql Group Replication简介 Mysql Group Replication(MGR)是一个全新的高可用和高扩展的MySQL集群服务...

6874
来自专栏小狼的世界

Mac OS X下GnuPlot的安装

Gnuplot是一个科学界广泛使用的作图软件,从Unix软件发展而来,是一款免费软件。因为其强大的作图功能,逐渐也有其他行业的人来维护支持这个软件,使其变的越来...

2191
来自专栏木可大大

漫谈文件系统

翻译成中文大致意思:文件系统主要是管理数据存储以及数据如何检索的,而数据存储在磁盘或内存中。上期我们聊过了漫谈虚拟内存,本期我们就重点介绍磁盘中的机械磁盘的组成...

52512
来自专栏蓝天

autoconf手册(一)

Autoconf   Creating Automatic Configuration Scripts   Edition 2.13, for Autoco...

951
来自专栏walterlv - 吕毅的博客

Windows 10 四月更新,文件夹名称也能区分大小写了

发布于 2018-06-14 00:02 更新于 2018-09...

3283

扫码关注云+社区

领取腾讯云代金券