Arch Boot Process (简体中文)

From ArchWiki
Jump to: navigation, search
摘要
一个按照时间顺序对 Arch 启动过程的概览。
概览
为了启动 Arch Linux,一个与 Linux 兼容的启动引导程序,如 GRUB, GRUB2, LILO, 或者 Syslinux 必须被安装到主引导记录(MBR), 或者GUID 分区表(GPT)。启动引导程序的任务是初始化 Arch 启动过程,然后加载内核以及初始化内存盘
相关页面
fstab (简体中文)
Systemd (简体中文)
Autostarting
翻译状态: 本文是英文页面 Arch_Boot_Process翻译,最后翻译时间:2012-11-04,点击这里可以查看翻译后英文页面的改动。

Contents

启动加载器

系统开机并且执行完加电自检后,BIOS会根据自身设置选择最佳的启动媒介,把控制权传递给该媒介的主引导记录(Master Boot Record)部分。在GNU/Linux系统中,MBR里通常是像GRUBLILO这样的引导器(bootloader)。引导器通常会给用户一个菜单或者命令行之类的机制,供用户选择和设置。例如双系统的设置。一旦你选择启动Arch时,引导器就会载入/boot 目录下的内核镜像(比如initramfs-linux.img),并解压缩。

内核

内核是一个操作系统的核心。他作用于非常底层的硬件和控制硬件的程序之间的部分(又称之为内核空间)。由于CPU在某个时刻只能执行一个任务,为了更为高效的使用CPU,内核使用调度器,通过一定的优先级算法将 CPU 按照时间动态的分配给各个程序。给我们的感觉就像所有程序都在使用CPU一样。

initramfs

内核在载入后会解压initramfs(初始化RAM文件系统),生成初始根文件系统。然后内核会执行 /init,init 成为第一个进程,早期用户空间就启动了。

initramfs 的作用是将系统启动到可以访问 根文件系统的阶段,所以需要包含没有内置进内核的 IDE、SCSI、SATA(如果从USB设备中启动的话,肯定还有USB/FW模块)等驱动。在initramfs载入了必要的模块后(通过程序和脚本显式加入或通过 udev 自动装入),引导过程继续。因此,initrd无须包含所有模块,大部分模块将在随后的引导中通过udev载入。

Init 进程

在早期用户空间的最后,会挂载真正的根分区,并替代初始根文件系统。执行 /sbin/init 以接替 /init 进程。

Arch 现在使用Systemd作为默认的初始化进制。Arch 过去使用 Initscripts,建议使用它的用户切换到Systemd.

扩展资源