系统从开机开始的引导步骤
1.通电
2.bios初始化
这里如果选择启动客户机则为从硬盘启动,选择打开电源时进入固件则会在开机后进入bios界面:

bios界面:

在此界面中用上下左右键可以移动到要选择的选项:
这里移动到boot(启动选项),然后有下面4个选择:
bios界面的启动选项:
- 从可移动设备启动
- 从硬盘启动
- 从光驱启动
- 从网卡启动

若想从其中一个设备启动,只需要移动到它然后按shift和加号把它的位置移动到第一行就可以了。这里选择从光驱启动,然后按f10可以保存更改的设置:

选择yes按回车键就可以保存更改了,然后立马就会从光驱启动:


不过若想成功从光驱启动,则需要先在虚拟机设置中选择光盘镜像并保存:

并且在右下角选项中连接光盘:

也可以在从硬盘启动客户机后迅速按esc则可以进入bios界面的启动选项,不过要拼手速,不推荐:

3.磁盘引导
问题模拟:清空/dev/sda上的mbr数据
带*星号的分区 /dev/sda1 分区为boot分区,若执行下图红框内的命令则会使该分区上的mbr数据损坏,而mbr数据丢失系统会因为找不到启动分区而停止启动,重启主机后就无法进入系统:
注意:mbr为0磁道1扇区446,所以这里bs=446,刚好覆盖完mbr的数据


如何修复:
关闭虚拟机后打开虚拟机设置:
选择使用ISO镜像然后选择镜像路径,再选上启动时连接,最后确定:

开启虚拟机后会进入下图界面,然后选中下图红框中内容按回车键:

选择下图红框中选项,拯救系统,然后按回车键:

然后当前进入的系统是光盘里的正常系统,而不是硬盘里已经损坏的系统。这里是用光盘里的正常系统挽救硬盘里已经损坏的系统
这里把损坏的系统挂载到了这个光驱提供的挽救系统环境的这个目录中

然后选择1选项来继续挽救步骤,会告诉系统已经被挂载红框中的目录了,接着按回车键打开shell:
这里提示如果想进入硬盘里的真实系统则需要执行chroot /mnt/sysimage这个命令

进入硬盘里的真实系统后输入下图中的命令来在boot分区所在的磁盘sda中重新安装上mbr(主引导记录数据),然后输入两次exit来退出挽救程序:

然后重新启动后系统修复成功:

4.grub2文件引导


这里直接删掉这个/boot/loader/entries/xxxxxxxxx.conf所在的entries目录
使用这个命令来生成这个文件
add后接内核版本,然后接内核镜像文件路径 ,$表示先执行括号内的命令
uname -r ##显示内核版本


若不修复这个xxx.conf文件,则开机后无法自动启动系统,需要手动引导:
到下面界面后输入下图红框中三条命令:
第一条:激活 boot 分区(指定boot分区的位置,hd0表示第一块硬盘,msdos1表示第一个分区。这台主机的boot分区为第一块硬盘sda的第一个分区sda1,实际情况需根据boot分区的所在位置输入)(不能输错,输错后可能导致boot后卡住)
第二条:加载内核并只读挂载根分区(/vmlinux-4.18.0-193.el8.x86_64为内核,ro为只读挂载,/dev/sda3为根分区的位置)
第三条:指定系统初始化镜像程序(是el8不是e18)
三条命令输入完毕后输入boot使系统运行


5.内核加载
图中的uname -r命令意为查看版本号,$表示优先执行括号内的命令

若不修复,重启后会出现下图情况:

选择打开电源时进入固件:

选择以光驱方式打开:

选择troubleshooting按回车键:

选择到拯救系统后按回车键:

输入1以继续运行拯救系统然后回车键打开shell:

先执行chroot /mnt/sysimage/命令进入磁盘中的系统,然后执行刚才在刚才在主机未关闭时在shell内的修复操作——复制模板文件到 /boot 下再输入两次exit即可修复:

然后在做完后记得关机后在开机时打开固件换回从硬盘启动系统
6.系统初始化镜像
需要先关闭selinux(否则加载会比较缓慢):

若删掉文件,再用mkinitrd命令重新制造一个系统镜像文件即可:

引导方式:
不修复,重启系统会报错:

关闭系统,选择开机进入固件,然后进入以光驱打开,跟上一个修复操作相同,然后直到来到这个界面回车键打开shell后:

输入下图命令,第二条命令即为刚才在系统未关闭时在shell内的修复命令:

然后在做完后记得开机时打开固件换回从硬盘启动系统
7.系统启动级别
查看系统启动级别:

在这个system目录中,有个软链接——default.target,它链接到的文件就为当前系统启动级别文件,可以看到当前是graphical,即启动级别为5,有图形的网络模式:

在这个system目录中,在这个multi-user.target.wants目录中,若存在某个服务的软链接则这个服务才会开机自启动:
设定服务开机自启动时其实就是往multi-user.target.wants这个目录中生成了个服务文件的软链接

问题模拟:
某些软件安装之后会设定系统启动级别为6,此时系统会一直重启,无法正常使用
设置启动级别为6(重启),则系统会一直重启,无法正常使用:

在这个界面按e修改启动选项:

在这里输入5(系统启动级别为5:有图形网络模式),然后按ctrl+x键即可正常开机:
这里需输入想设置的启动级别,来正确使用系统

注意:开机后如果不更改系统的启动级别,则下次重启后依然无法正常使用
这里修改系统的启动级别为有图形的网络模式:
这里更改后,会移除原来的default.target文件到reboot.target的链接,会创建default.target文件到graphical.target的链接,这就表示修改系统的启动级别从重启模式到有图形的网络模式:

8.超级用户密码忘记
问题模拟:
超级用户密码忘记。
比如在安装系统时设定了root用户密码,安装完系统后忘记root用户的密码
修复:
在这个界面选择电源键:

选择restart:

在这个界面按e进入启动选项:

把内核启动选项这行删到红框位置:

从刚才的红框内的r开始写成下图红框内的内容,然后按ctrl+x即可:
把原先的ro参数更改为rw参数,并加入rd.break参数使内核启动完成后不进行后续的初始化程序,这样系统会进入单用户模式

下来进入到这个界面后按回车键打开shell:

在shell中依次输入下图命令:
chroot /sysroot/ 执行后会切换到真实的根目录
第二条命令表示修改密码为westos,修改密码后才能登录(因为忘了密码)
第三条命令:此时如果selinux处于开启状态,用单用户模式修改过密码后selinux会阻止新密码生效。所以第三条命令表示建立此文件让selinux重启,在重启selinux后新密码才能生效
注:如果当前selinux的状态为关闭状态(disabled),则无需执行这第三条命令
然后输入两次exit后会进入用户登录界面,输入刚修改的密码即可登录


本文详细解析Linux系统从开机到正常运行的引导过程,包括BIOS初始化、磁盘引导、GRUB2配置、内核加载等关键步骤,并针对常见引导问题提供修复方案。
962

被折叠的 条评论
为什么被折叠?



