Linux Notes IV
Linux 启动过程:
- 加载 BIOS 的硬件信息, 并获取第一个启动设备代号
- 读取第一个启动设备的 MBR 引导加载程序 (如 lilo, grub)
- 加载核心操作系统的核心信息, 核心开始解压缩, 并且尝试驱动所有硬件设备
- 核心执行 init 程序并获取运行信息
- init 执行 /etc/rc.d/rc.sysinit 文件
- 启动核心的外挂模块 (/etc/modprobe.conf)
- init 执行运行的各个批处理文件 (Scripts)
- init 执行 /etc/rc.d/rc.local 文件
- 执行 /bin/login 程序, 等待用户登录
- 登录之后开始以 Shell 控制主机
引导加载程序 Grub:
- 引导加载程序是载入核心的工具
- 将引导加载程序分为两个阶段 (stage) 来执行
- 第一阶段为引导加载程序的主程序, 这个主程序必须要安装在启动区, 即 MBR 或超级块
- 第二阶段为载入引导加载程序的所有设置文件与相关的环境参数文件, 都在 /root 下面
- 针对启动项目, 引导加载程序可以做到:
- 引导加载程序可以直接指定并取用核心文件, 加载到主存储器中
- 也可以将加载程序的控制权移交给下一个加载程序
- MBR 的 grub 可以做到:
- 直接指定核心 (boot/vmlinux) 来进行启动
- 将控制权交给 /dev/hda2 超级块中的 grub 进行管理
Grub 的设置文件 /boot/grub/menu.1st 与安装类型:
- Grub 启动时可自行编辑与修改启动设置项目, 类似 bash 的命令模式
- 可以动态搜索设置文件, 而不需要在修改设置文件后重新安装 grub, 即只要修改完 /boot/grub/menu.1st 里的设置, 下次启动就生效了
- Grub 与硬盘的关系
- grub 对硬盘的代号: (hd0, 0)
- 硬盘代号以小括号 () 括起来
- 硬盘以 hd 表示, 后面接一组数字
- 第一个搜索到的硬盘为 0 号, 第二个为 1 号,以此类推
- 第一个硬盘的第一个分区代号为 0, 以此类推