满意答案
一般来说 linux 最先启动的是被 BIOS 启动个 MBR 里面的 grub 的 stage1 ,之后 stage1 根据需要启动 MBR 扇区后面的几个扇区里面的GRUB程序。这个程序会去寻找 stage1.5 或者 stage2 部分程序。之后 grub 就有了读取分区数据的能力,就可以读取自己的 root 分区(是 grub 的 / 不是 linux 的 / )。读取里面的 grub.conf ,在根据 grub.conf 读取背景图什么的之后显示一个选择菜单,或者根据设置直接读取 linux 内核和 initrd ,内核和 initrd 和 内核被读取进内存后,grub 会传递给 linux 内核启动参数命令行并且移交系统控制权,linux 内核初始化自己并且正式的启动 linux 系统,进行初始化和驱动的加载后启动 / 的 init 进程(可以是 initrd 里,也可以是 root= 制定的分区,init 进程可以放在 /init ,也可以是 /sbin/init ),并且 init 进程会被分配 pid 为 1 。之后就是 init 的事情了。
注意这只是一般情况下。
00分享举报