1、分区概念入门:什么是分区?为什么需要分区?MBR与GPT分区表格式的区别
1.1 分区到底是个什么东西?
说白了,分区就是把一块物理硬盘,逻辑上切成几块独立的区域。每块区域,操作系统会把它当成一个独立的“盘子”来用。
我刚开始接触Linux时,总觉得分区这事儿挺玄乎。后来自己动手装了几次系统,才明白——分区其实就是给硬盘画格子。你画多大,系统就用多大。每个格子有自己的文件系统,互不干扰。
举个例子:你有一块500GB的硬盘。你可以把它分成:
- 系统分区(比如100GB)——装操作系统
- 数据分区(比如300GB)——放文件、代码、项目
- 交换分区(比如8GB)——当内存不够时,当虚拟内存用
每个分区独立格式化,独立挂载。Windows下是C盘、D盘;Linux下是/、/home、/var。道理一样。
核心概念:分区是物理硬盘上的逻辑划分。分区表就是这张“地图”,告诉操作系统:硬盘上哪些扇区属于哪个分区。
1.2 为什么非要分区?不分行不行?
行,当然行。一块硬盘不分区,整块当一个大区用,技术上完全没问题。但实际生产中,我强烈建议你分区。原因有三:
- 隔离风险——系统崩了,数据还在。我遇到过一台服务器,根分区写满日志直接宕机。幸好
/home是独立分区,用户数据毫发无损。如果整块盘一个区,那后果……你懂的。 - 性能优化——不同分区可以用不同的文件系统参数。比如
/var分区用noatime挂载,减少写盘次数;/tmp分区甚至可以用tmpfs放内存里。 - 多系统共存——Windows + Linux双系统,必须分区。每个系统占一个区,互不打扰。
我的习惯:个人开发机至少分三个区——/(根)、/home(家目录)、swap(交换分区)。生产服务器会更细,/boot、/var、/opt都会独立出来。
1.3 MBR与GPT:两种分区表的恩怨情仇
分区表,就是硬盘的“目录索引”。目前主流就两种:MBR(传统)和GPT(现代)。
我最早接触的是MBR。那时候硬盘才80GB,MBR完全够用。后来硬盘越来越大,MBR的局限就暴露了。嗯,咱们来对比一下:
| 对比项 | MBR | GPT |
|---|---|---|
| 全称 | Master Boot Record | GUID Partition Table |
| 最大磁盘容量 | 2TB | 9.4ZB(理论值) |
| 分区数量 | 最多4个主分区(或3主+1扩展) | 最多128个分区(Windows限制) |
| 备份 | 无备份,分区表在磁盘头部 | 头部和尾部各存一份,可恢复 |
| 引导方式 | BIOS + MBR | UEFI + GPT |
| 校验 | 无CRC校验 | 有CRC32校验,防数据损坏 |
| 兼容性 | 所有操作系统都支持 | 现代系统支持,旧系统可能不认 |
避坑指南:我曾经帮一个同事恢复数据,他的3TB硬盘用了MBR。结果只认出来2TB,剩下746GB直接“消失”。后来用GPT重新分区,数据才全部找回。记住:超过2TB的硬盘,必须用GPT。
1.4 MBR的“四分区魔咒”
MBR的分区表只有64字节。每个分区占16字节,所以最多只能记录4个分区。这就是著名的“四分区魔咒”。
为了解决这个问题,MBR引入了扩展分区的概念:
- 主分区:最多4个,可以直接用
- 扩展分区:占用一个主分区名额,里面可以再切逻辑分区
- 逻辑分区:在扩展分区里无限嵌套(理论上)
举个例子:你可以在MBR磁盘上这样分——
/dev/sda1 — 主分区(/boot)
/dev/sda2 — 扩展分区(容器)
/dev/sda5 — 逻辑分区(/)
/dev/sda6 — 逻辑分区(/home)
/dev/sda7 — 逻辑分区(swap)
注意编号:逻辑分区从5开始,因为1-4被主分区和扩展分区占用了。
1.5 GPT的“降维打击”
GPT用了一种完全不同的思路。它不再用那可怜的64字节,而是直接用了整个磁盘头部的34个扇区(每个扇区512字节)来存分区表。空间大了,能记录的分区自然就多了。
GPT的核心优势:
- 容量大——支持2TB以上磁盘,理论上限9.4ZB
- 分区多——Windows下最多128个,Linux下无硬限制
- 有备份——分区表在磁盘头部和尾部各存一份,坏了一个还能恢复
- 有校验——CRC32校验,数据损坏能及时发现
- UUID标识——每个分区有全球唯一的GUID,不会搞混
我的建议:只要是2010年以后的电脑,直接用GPT。UEFI + GPT是标配。除非你要装Windows XP这种老古董,否则别碰MBR。
1.6 一张图看懂分区表结构
下面这张图,帮你理清MBR和GPT在磁盘上的布局差异:
1.7 实战中怎么选?
给你一个快速判断表:
| 场景 | 推荐分区表 | 原因 |
|---|---|---|
| 新装电脑(UEFI启动) | GPT | UEFI原生支持GPT,启动更快 |
| 旧电脑(BIOS启动) | MBR | BIOS不识别GPT,除非用UEFI-CSM |
| 硬盘大于2TB | GPT | MBR只能认2TB,超出的空间浪费 |
| 多系统(Windows + Linux) | GPT | 分区数量灵活,UUID不会冲突 |
| 嵌入式/老旧设备 | MBR | 兼容性好,工具链成熟 |
一句话总结:新机器、大硬盘、多系统,无脑选GPT。老机器、小硬盘、特殊兼容需求,才考虑MBR。
1.8 查看分区表的命令
Linux下,用这几个命令就能看到分区表类型:
# 查看磁盘分区表类型(GPT 或 MBR)
sudo fdisk -l /dev/sda
# 或者用 parted
sudo parted /dev/sda print
# 查看分区UUID(GPT特有)
sudo blkid /dev/sda1
输出里会明确告诉你:Disklabel type: gpt 或 Disklabel type: dos(dos就是MBR)。
嗯,分区概念入门就聊到这儿。记住一句话:分区是硬盘的逻辑切分,分区表是切分的索引。MBR是老规矩,GPT是新标准。 后面讲启动参数时,你会看到分区表类型直接影响内核怎么找到根文件系统。到时候再细聊。