Linux 系统安装:磁盘分区、格式化与挂载全流程详解
在 Linux 系统安装过程中,磁盘分区、格式化和挂载是核心步骤,直接影响系统的稳定性和存储效率。本文将详细解析 MBR 与 GPT 分区表的区别、格式化原理、挂载点设置及自动挂载配置,帮助你掌握系统安装的存储配置环节。
磁盘分区:MBR 与 GPT 分区表
磁盘分区是将物理硬盘划分为多个逻辑区域的过程,不同的分区表类型支持的硬盘大小和分区数量不同。
MBR 分区表(Master Boot Record)
特点
- 最大支持硬盘容量:2.1TB(超过此容量的硬盘无法完全识别)。
- 最大分区数量:最多 4 个主分区,或 3 个主分区 + 1 个扩展分区(扩展分区内可创建多个逻辑分区)。
- 兼容性:支持所有操作系统(包括老旧系统),是传统的分区表格式。
分区类型
- 主分区:直接可以被格式化并挂载使用,最多 4 个。
- 扩展分区:不能直接存储数据,仅用于容纳逻辑分区,一块硬盘最多 1 个。
- 逻辑分区:在扩展分区内创建,数量不受限(取决于操作系统,Linux 通常支持数十个)。
分区操作命令
1 | # 对 /dev/sdb 硬盘进行分区(MBR 分区表默认使用 fdisk) |
GPT 分区表(GUID Partition Table)
特点
- 最大支持硬盘容量:9.4ZB(zettabyte,远超当前硬件水平),适合大容量硬盘。
- 最大分区数量:理论无限制,Windows 支持 128 个,Linux 支持更多。
- 兼容性:需主板支持 UEFI 启动(传统 BIOS 可能不兼容),是新一代分区表格式。
优势
- 支持 UEFI 启动模式,启动速度更快,安全性更高(支持 Secure Boot)。
- 分区表自带备份,抗损坏能力强。
- 无需区分主分区、扩展分区和逻辑分区,所有分区均为 “主分区”。
分区操作命令
1 | # 对 /dev/sdb 硬盘进行 GPT 分区(使用 parted 工具) |
分区表选择建议
- 硬盘容量 ≤ 2TB:可选择 MBR(兼容性好)或 GPT(推荐,为未来升级留余地)。
- 硬盘容量 > 2TB:必须选择 GPT(MBR 无法识别全部容量)。
- 系统启动方式为 UEFI:优先选择 GPT(MBR 可能无法正常启动)。
- 老旧硬件或系统:选择 MBR。
格式化:写入文件系统
格式化(mkfs)是为分区创建文件系统的过程,用于规定数据的存储结构(如索引、块管理等)。
格式化原理
格式化会在分区中划分两个关键区域:
- inode(索引节点):存储文件元数据(权限、所有者、修改时间、数据块位置等),每个 inode 大小通常为 128B 或 256B。
- block(数据块):存储文件实际内容,默认大小为 4KB(可自定义,如 1KB、8KB),是读写数据的最小单位。
注意:inode 和 block 的总数在格式化时确定,后期无法修改(除非重新格式化)。
常用文件系统
Linux 支持多种文件系统,选择需根据场景:
- ext4:最常用的文件系统,稳定性好,支持最大 1EB 分区和 16TB 文件。
- xfs:高性能文件系统,适合大文件和高吞吐量场景(如数据库、日志服务器)。
- btrfs:支持快照、动态扩容等高级功能,适合需要灵活管理的场景。
- swap:交换分区专用文件系统,用于内存不足时临时存储数据。
格式化命令
1 | # 格式化为 ext4 文件系统(-t 指定类型) |
挂载:将分区关联到目录
Linux 没有 “盘符” 概念,通过 “挂载” 将分区与目录关联,用户通过目录访问分区数据。
挂载点的核心概念
- 挂载点:必须是已存在的空目录(挂载后目录原内容会被隐藏,直到卸载)。
- 分区与目录的关系:一个分区可挂载到一个目录,一个目录同一时间只能挂载一个分区。
必须与推荐的挂载点
(1)必须分区
/
(根分区):所有文件的根目录,包含系统核心文件(如/bin
、/etc
),必须存在。swap
(交换分区):当物理内存不足时,系统会将部分数据暂存到 swap 分区,建议大小为内存的 1-2 倍(内存 ≥ 8GB 时可设为 8GB)。
(2)推荐分区
/boot
(启动分区):存储系统启动文件(内核、GRUB 配置等),建议大小 1-2GB,独立分区可避免根分区满导致无法启动。
(3)常用分区(根据需求)
/home
:用户主目录,独立分区可避免重装系统时丢失用户数据。/var
:存放日志、缓存等可变数据,独立分区可防止日志占满根分区。/www
:Web 服务器数据目录,独立分区便于管理网站文件。
临时挂载命令
1 | # 将 /dev/sdb1 分区挂载到 /www 目录 |
永久挂载:配置 /etc/fstab
临时挂载在系统重启后会失效,需通过 /etc/fstab
文件配置自动挂载。
/etc/fstab
格式说明
1 | # 设备路径 挂载点 文件系统 挂载选项 备份标记 自检顺序 |
- 设备路径:分区的设备名(如
/dev/sdb1
)或 UUID(推荐,UUID 不受设备名变化影响)。 - 挂载选项:
defaults
表示默认选项(rw, suid, dev, exec, auto, nouser, async)。 - 备份标记:
0
表示不备份,1
表示使用dump
备份。 - 自检顺序:
0
表示不自检,1
表示优先自检(通常根分区设为1
,其他为2
)。
配置步骤
查看分区 UUID(推荐使用 UUID 避免设备名变动问题):
1
blkid /dev/sdb1 # 输出:/dev/sdb1: UUID="xxxx-xxxx" TYPE="ext4"
编辑
/etc/fstab
:1
2
3vim /etc/fstab
# 添加一行(使用 UUID)
UUID=xxxx-xxxx /www ext4 defaults 0 0生效配置(无需重启):
1
mount -a # 加载 /etc/fstab 中所有未挂载的分区
实战案例:硬盘分区与挂载全流程
假设新增一块硬盘 /dev/sdb
,需创建分区并挂载到 /data
目录:
创建 GPT 分区:
1
2
3
4
5parted /dev/sdb
(parted) mklabel gpt # 设置为 GPT 分区表
(parted) mkpart data ext4 0% 100% # 创建一个占用全盘的分区
(parted) print # 确认分区
(parted) quit格式化分区:
1
mkfs.ext4 /dev/sdb1
创建挂载点并挂载:
1
2mkdir /data
mount /dev/sdb1 /data配置永久挂载:
1
2
3blkid /dev/sdb1 # 获取 UUID
echo "UUID=xxxx-xxxx /data ext4 defaults 0 0" >> /etc/fstab
mount -a # 生效
v1.3.10