1 .磁盘连接方式与设备文件名的关系
-
正常的实体机器的磁盘的文件名大多都是/dev/sd[a-p],但是在虚拟机环境下为了加速可能会使用/dev/vd[a-p]。
-
如果 PC 上有两个 SATA 磁盘以及一个 USB 磁盘,而主板上有六个 SATA 的插槽,这两个 SATA 分别安插在 1 和 5 两个插槽上,那么 SATA1 的文件名为/dev/sda,SATA5 的文件名为/dev/sdb,USB 磁盘的文件名为/dev/sdc。这是因为使用的是侦测到的顺序来决定设备文件名,并非与实际插槽代号有关。
2. 开机流程中的 BIOS
BIOS 搭配 MBR/GPT 的开机流程
开机流程
- BIOS:开机主动执行的固件,会依据使用者的设置去找能够开机的硬盘;
- MBR:第一个可开机设备的第一个扇区内的主要开机记录区块,内含开机管理程序;
- 开机管理程序(boot loader):一支可读取核心文件来执行的软件;
- 核心文件:开始操作系统的功能。
Boot loader 的作用
BIOS 和 Boot loader 都是硬件本身会支持的功能,而 Boot loader 则是操作系统安装在 MBR 上面的一套软件。由于 MBR 仅有 446Bytes,因此这个开机管理程序是非常小而美的。Boot loader 的主要任务有:
- 提供菜单:使用者可以选择不同的开机项目,这也是多重开机的主要功能;
- 载入核心文件:直接指向可开机的程序区段来开始操作系统;
- 转交其他 loader:将开机管理功能转交给其他 loader 负责。
多重开机
开机管理程序 (boot loader)除了可以安装在 MBR 之外,还可以安装在每个分区的开机扇区(boot sector),所以造就了"多重开机"的功能。
上图可以发现,MBR 的开机管理程序提供两个菜单:菜单 1(M1)可以直接载入 Windows 的核心文件来开机;菜单 2(M2)则是将开机管理工作交给第二个分区的开机扇区(boot sector)。
总结
- 每个分区都有自己的开机扇区(boot sector);
- 图中的系统盘分为第一和第二区;
- 实际的可开机的核心文件是放置在各分区内的;
- loader 只会认识自己的系统盘内的可开机核心文件,以及其他 loader 而已;
- loader 可直接指向或是间接将管理权转交给另一个管理程序。
UEFI BIOS 搭配 GPT 开机的流程
由于 GPT 分区可以提供 64bit 的寻址,也能够使用较大的区块来处理开机管理程序。但是 BIOS 不懂 GPT,并且 BIOS 仅为 16 位的程序太弱了。为了解决这个问题就有了 UEFI 这个统一可延伸固件界面的产生。
传统的 BIOS 和 UEFI 的差异主要是以下:
比较项目 | 传统 BIOS | UEFI |
---|---|---|
使用程序语言 | 组合语言 | C 语言 |
硬件资源控制 | 使用中断(IRQ)管理 不可变的内存存取 不可变得输入/输出存取 | 使用驱动程序与协定 |
处理器运行环境 | 16 位 | CPU 保护模式 |
扩充方式 | 通过 IRQ 链接 | 直接载入驱动程序 |
第三方厂商支持 | 较差 | 较佳且可支持多平台 |
图形化能力 | 较差 | 较佳 |
内置简化操作系统前环境 | 不支持 | 支持 |
3. 设备在Linux内的文件名
设备 | 设备在 Linux 内的文件名 |
---|---|
SCSI/SATA/USB 硬盘机 | /dev/sd[a-p] |
USB 闪存盘 | /dev/sd[a-p](与 SATA 相同) |
Virtl/O 界面 | /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(当前鼠标) |
CDROM/DVDROM | /dev/scd[0-1](通用) /dev/sr[0-1](通用, CentOS 较常用) /dev/cdrom(当前 CDROM) |
磁带机 | /dev/hto(IDE 界面) /dev/st0(SATA/SCSI 界面) /dev/tape(当前磁带) |
IDE 硬盘机 | /dev/hd[a-d](旧系统才有) |