7
7
8
8
## 另一个方案
9
9
10
+ 通过openEuler20的低版本的kernel系统来引导安装OpenEulre22的OS
11
+
10
12
## 总结
11
13
12
14
POST加电自检-->BIOS(Boot Sequence)-->加载对应引导上的MBR(bootloader)-->主引导设置加载其BootLoader-->Kernel初始化-->initrd—>/etc/init进程加载/etc/inittab
13
15
16
+ 1 . 加载 BIOS 的硬件信息与硬件自检,并依据设置取得第一个可启动的设备;
17
+ 2 . 读取并执行第一个启动设备内的MBR的 boot loader;
18
+ 3 . 依据 boot loader 的设置加载内核,内核会开始检测硬件与加载驱动程序;
19
+ 4 . 在内核 Kernel 加载完毕后,Kernel 会主动调用 init 进程,而 init 会取得 run-level 信息;
20
+ 5 . init 执行 rc.sysinit 初始化系统的操作环境(网络、时区等);
21
+ 6 . init 启动 run-level 的各个服务;
22
+ 7 . 用户登录
14
23
15
- 硬件的初始化,图像界面启动的初始化(如果设置了默认启动基本)
16
-
17
- 主机RAID的设置初始化,device mapper 及相关的初始化,
18
-
19
- 检测根文件系统,以只读方式挂载
20
-
21
- 激活udev和selinux
22
-
23
- 设置内核参数 /etc/sysctl.conf
24
-
25
- 设置系统时钟
26
-
27
- 启用交换分区,设置主机名
28
-
29
- 加载键盘映射
30
-
31
- 激活RAID和LVM逻辑卷
32
-
33
- 挂载额外的文件系统 /etc/fstab
34
-
35
- 最后根据mingetty程序调用login让用户登录->用户登录(完成系统启动)
36
-
37
- ### 第一阶段:硬件引导启动阶段
38
-
39
- ``` sh
40
- 1.1 POST(Power On Self Test) 加电自检
41
- 1.2 BIOS
42
- 1.2.1 初始化硬件
43
- 1.2.2 查找启动介质
44
- HDD: 查找启动硬盘的第一个扇区(MBR/BootSector)
45
- 1.3 MBR
46
- 1.3.1 Bootloader(启动装载程序)
47
- GRUB
48
- 分区表
49
-
50
- ```
51
-
52
- ### 第二阶段:BootLoader 启动引导阶段
53
-
54
- ``` sh
55
- 2.1 Stage1
56
- 执行 BootLoader 主程序(位于 MBR 前 446个字节),它的作用是启动 Stage1.5 或 Stage2
57
- 2.2 Stage1.5
58
- Stage1.5 是桥梁,由于 Stage2 较大,存放在文件系统中,需要 Stage1.5 引导位于文件系统中的 Stage2
59
- 2.3 Stage2
60
- Stage2 是 GRUB 的核心映像
61
- 2.4 grub.conf
62
- Stage2 解析 grub.conf 配置文件,加载内核到内存中
63
- ```
24
+ > 要注意init 虽然只用了一个模块展现出来,但其实在启动过程中 __ init__ 占了很大的比重。
25
+ > 下面重点阐述下内核引导及init启动的阶段
64
26
65
- ### 第三阶段: 内核引导阶段
27
+ ### 内核引导阶段
66
28
67
29
``` sh
68
30
3.1 /boot/kernel and Kernel parameter
@@ -74,7 +36,7 @@ POST加电自检-->BIOS(Boot Sequence)-->加载对应引导上的MBR(bootloader)
74
36
3.2.2 阶段二:执行真正的根文件系统中的 /sbin/init 进程
75
37
```
76
38
77
- ### 第四阶段: Sys V init 初始化阶段
39
+ ### Sys V init 初始化阶段
78
40
79
41
``` sh
80
42
4.1 /sbin/init
@@ -102,7 +64,10 @@ POST加电自检-->BIOS(Boot Sequence)-->加载对应引导上的MBR(bootloader)
102
64
103
65
1 . < https://www.ruanyifeng.com/blog/2013/02/booting.html >
104
66
2 . < https://blog.51cto.com/chrinux/1192004 >
67
+ 3 . [ Linux 的启动流程] ( https://www.ruanyifeng.com/blog/2013/08/linux_boot_process.html )
68
+ 4 . [ Linux基础:启动流程] ( https://wuchong.me/blog/2014/07/14/linux-boot-process/ )
105
69
106
70
## 待办
107
71
108
- 1 . systemd/ rootfs
72
+ 1 . 当前对于这块很是有很多的盲区,对于systemd / rootfs 是如果通过引导系统` systemd ` 调整根分区系统` initrd.img ` 实现os的安装的, 以及安装后与grub2.cfg配置的关系等?
73
+ 2 . Custom Linux ISO
0 commit comments