各硬件设备的文件名
在 Linux 系统中,每个设备都被当作是一个文件来对待。几乎所有硬件设备文件都在 /dev 目录内,常见的如下:
| 设备 | 文件名 |
|---|---|
| SCSI/SATA/USB 磁盘驱动器 | /dev/sd[a-p] |
| U 盘 | /dev/sd[a-p] (与 SATA 相同) |
| Virtio 接口 | /dev/vd[a-p] (用于虚拟机内) |
| 软盘驱动器 | /dev/fd[0-7] |
| 打印机 | /dev/lp[0-2] (25 针打印机) /dev/usb/lp[0-15] (USB 接口) |
| 鼠标 | /dev/input/mouse[0-15] (通用) /dev/psaux (PS/2 接口) /dev/mouse (当前鼠标) |
| CD-ROM、DVD-ROM | /dev/scd[0-1] (通用) /dev/sr[0-1] (通用,CentOS 较常见) /dev/cdrom (当前 CDROM) |
| … | … |
注意:多个硬盘、U 盘的文件名由主板检测到的顺序来决定,与插槽无关。
磁盘分区
什么是 BISO、UEFI、MBR、GPT?
机械磁盘结构

- 盘片:一个盘片有上下两个盘面,盘面上有磁性材料可以保存数据;
- 转动轴:用于带动盘片高速旋转;
- 磁头:在机械臂的运动下,所有磁头共进退,读写盘面上的扇区;
- 磁道:盘面上的一圈圈同心圆;
- 扇区:磁道上的“弧段”,物理大小通常有 512B 和 4KB,是磁盘的最小单位;
- 柱面:不同盘片上相对位置相同的磁道形成的“圆柱”称为柱面,通常是硬盘分区的最小单位。
即,(柱面号, 盘面号, 扇区号) 可以唯一定位一个扇区,操作系统通常以“块”(Windows 下称为“簇”) 为单位读写磁盘,块大小通常为扇区大小的整数倍。
MBR 与 GPT
MBR(Master Boot Record) 和 GPT(GUID Partion Table) 是硬盘分区表的两种格式,分区有利于数据安全与性能。
MBR 是早期硬盘分区采用的格式,它将 主引导记录 和 分区表 放在磁盘的第一个扇区上,当这个扇区损坏,大概率就 gg 了。早期一个扇区通常是 512B,其中主引导记录占 446B,分区表占 64B,分区表中最多能记录 4 组分区的开始与结束的柱面号,分区操作就是修改分区表中的这几组记录。

分区表中记录的分区称为 主要分区 或 扩展分区,区别在于该分区中最前面的扇区是否被用来记录额外的分区信息,如果是,则该分区称为扩展分区,扩展分区中包含 n 多个 逻辑分区,这就解决了最多只能有 4 个分区的问题,通常操作系统会限制只能创建一个扩展分区。
需要注意的是在 Linux 中逻辑分区的设备名称是从 /dev/sda5 开始的,扩展分区无法被格式化,对用户使用来说,主要分区与逻辑分区没有区别。
下面该 GPT 出场了。
由于新的磁盘出现了 4K 扇区,GPT 为了兼容旧磁盘的 512B 扇区,定义了 逻辑区块地址 (LBA, Logical Block Address),将磁盘上所有区块以 LBA 来划分 (默认 512B,即兼容旧磁盘),磁盘上的第一个 LBA 称为 LBA0 并以此类推。

GPT 使用磁盘起始的 34 个 LBA 来记录分区信息,并且使用末尾的 34 个 LBA 进行备份:
- LBA0:MBR 兼容区块,主引导记录中存放启动引导程序,分区表中存放一个特殊标识,表示磁盘以 GPT 格式分区;
- LBA1:GPT 表头记录,存放分区表与备份分区表的位置与 CRC32 校验码;
- LBA2-33:记录分区信息,每个 LBA 可以存放 4 组分区信息,所以 GPT 可以分 128 组;
(在 GPT 中没有主要分区、扩展分区、逻辑分区的概念)
BIOS 与 UEFI
BIOS 是主板上的一个固件,主板上电时就会去执行 BIOS 程序,BIOS 会检测硬件,根据用户的设置找到启动硬盘。
对于 MBR,BIOS 读取并执行启动盘第一个扇区中的 启动引导程序(Boot Loader),至此 BIOS 的工作就完成了。启动引导程序是安装对应操作系统时,写入到主引导记录中的一段程序,作用是加载内核文件,接着就是操作系统启动了。
对于 GPT,由于 LBA0 兼容区块的存在,BIOS 也可以正确找到启动引导程序,至于能否识别 GPT 分区格式并正确加载内核文件,则取决于启动引导程序,即取决于操作系统是否支持 GPT 分区格式。
启动引导程序?
启动引导程序除了安装在 MBR 中,还可以安装到每个分区的 启动扇区,MBR 中的启动引导程序根据用户的选择,可以将启动管理功能转交给不同分区中的引导程序,这就是 多重引导,可用于实现双系统的启动。
对于安装 Windows + Linux 双系统需要先安装 Windows 再安装 Linux,因为 Windows 安装会覆盖 MBR 中的内容,而 Linux 可以选择将引导程序写入 MBR 或指定分区的启动扇区。
安装双系统参考:LinuxMint双系统安装使用记录
UEFI( Unified Extensible Firmware Interface),可以理解为 BIOS 的进阶版,拥有更丰富的功能。注意安装 Linux 时,通常需要关闭 UEFI 的 Secure Boot 功能。
挂载点
将文件系统与 目录树 结合的操作称为挂载,该目录称为挂载点,是访问该文件系统的入口。
Note
在安装系统时需要规划好挂载点与硬盘分区,如果是
固态 + 机械双硬盘,可以将读多写少的 (/、usr、opt) 放固态,swap 也放固态;写操作较多的 (tmp、var) 放机械,剩下的机械全分给 home。