一、引导过程
1、开机自检
首次打开计算机时,BIOS 首先对 HDD 或 SSD 执行一些完整性检查。然后,BIOS 搜索、加载并执行引导加载程序,该引导加载程序可以在主引导记录 (MBR) 中找到。MBR 有时位于 USB 记忆棒或 CD-ROM 上,例如实时安装的 Linux。一旦检测到引导加载程序,它就会被加载到内存中,BIOS 会将系统控制权交给它。
2、MBR引导
MBR 代表 Master Boot Record,负责加载和执行 GRUB 引导加载程序。MBR 位于可引导磁盘的第一个扇区,通常为/dev/hda或/dev/sda,具体取决于您的硬件。MBR 还包含有关 GRUB 或非常旧系统中的 LILO 的信息。
3、GRUB菜单
它是 GNU GRand Unified Bootloader 的缩写,是大多数现代 Linux 系统的典型引导加载程序。GRUB 启动画面通常是您在启动计算机时看到的第一件事。它有一个简单的菜单,您可以在其中选择一些选项。如果您安装了多个内核映像,则可以使用键盘选择您希望系统启动的那个,默认情况下,选择最新的内核映像。
4、加载linux内核
内核通常被称为任何操作系统的核心,包括 linux。它可以完全控制您系统中的所有内容。在引导过程的这个阶段,GRUB 选择的内核首先挂载文件中指定的根文件系统grub.conf。然后它执行/sbin/init程序,该程序始终是第一个要执行的程序。您可以通过它的进程 ID (PID) 来确认这一点,它应该始终为 1。然后内核使用初始 RAM 磁盘 (initrd) 建立一个临时根文件系统,直到真正的文件系统被挂载。
5、init进程初始化
此时,您的系统执行运行级程序。有一次它会寻找一个 init 文件,该文件通常/etc/inittab用于决定 Linux 运行级别。现代 Linux 系统使用 systemd 来选择运行级别。
二、修复MBR扇区故障
MBR引导记录位于物理硬盘的第1个扇区,又称主引导扇区,除了包含系统引导程序的部分数据之外,还包含了整个硬盘的分区表记录。主引导扇区发生故障时,将可能无法进入引导菜单,或者无法找到正确的分区位置而无法加载系统,通过该硬盘引导主机时很可能进入黑屏状态。 解决这个问题的思路:提前做好备份文件、以安装光盘引导进入急救模式、从备份文件中恢复。
1、备份MBR扇区数据
由于MBR扇区包含整个硬盘的分区表记录,因此该扇区的备份文件必须存放在其他的存储设备中。首先需要创建一块磁盘(sdb),把原有的数据备份到新建的磁盘上。
2、模拟MBR扇区故障
仍然使用dd命令,人为的将MBR扇区的记录覆盖,以便模拟出MBR扇区被破坏的故障情况。

3、从备份中恢复MBR扇区数据
由于MBR扇区被破坏已经无法再从该硬盘启动系统,所以需要使用其他硬盘中的操作系统进行引导,或者直接使用centos7系统的安装光盘进行引导。目的都是获得一个可以执行命令的shell环境,以便从备份文件中恢复MBR扇区中的数据。破坏MBR扇区的数据之后重启,在虚拟机上会出现安装向导界面,进入“急救模式”。

完成恢复操作之后,执行“exit” 命令退出临时shell环境系统将会自动重启。
三、修复GRUB引导故障
GRUB是大多数Linux系统默认使用的引导程序,可以通过启动菜单的方式选择进入不同的操作系统。当配置文件/boot/grub/grub.conf 丢失,或者关键配置错误时,Linux主机启动后会出现“grub>” 的提示符,无法完成进一步的启动操作了。
在虚拟机上,先删除配置文件,制作模拟故障,使得linux主机无法正常运行。

这时需要重启客户机,在vmware这个图标开始读条的时候快速按下esc键,进去启动界面。

之后进入急救模式
再退出bash环境(exit),重启(reboot)。这时候GRUB故障已经解除了,可以正常开启使用虚拟机了。
四、忘记root用户的密码
当忘记root用户的密码时,将无法登录linux系统执行管理、维护等任务,而只能通过其他用户登录使用一些受限制的功能。因此,需要通过其他途径来重设root账号的密码。
使用安装的光盘进入急救模式的shell环境,直接执行“passwd root” 命令重设root用户的密码。

五、linux系统运行级别
1、linux系统7个运行级别
- 系统关机模式(runlevel 0):系统默认运行级别不能设置为0,否则无法开机。
- 单用户模式(emergency.target:runlevel 1)也叫救援模式,root权限,用于系统维护,精致远程登录,类似Windows下的安全模式登录。
- 多用户模式(rescue.target:runlevel 2):没有NFS网络支持。登录后进入控制台命令行模式。
- 完整的多用户文本模式(multi-user.target:runlevel 3):有NFS,登录后进入控制台命令行模式。
- 系统未使用(runlevel 4):保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。
- 图形化模式(graphical.target:runlevel 5):登录后进入图形GUI模式或GNOME、KDE图形化界面。
- 重启模式(runlevel 6):默认运行级别不能设为6,否则无法正常启动系统。
2、查看系统运行级别
3、切换系统的运行级别
当用户需要将系统转换为其他运行级别时,可以通过init 程序进行,只要使用与级别相对应的数字(0~6)作为参数。
将运行级别由图形模式(5)切换为字符模式(3),可执行“init 3” 命令。再要使用图形界面时,执行““init 5” 切换回去。


现在默认的状态时图形化界面,如果要想直接打开就是字符终端模式,就要做链接性文件。把/lib/systemd/system/multi.user.target 指定到 /etc/systemd/system/default.target。指定完成之后在检验是否指定到字符终端模式。

本文详细介绍了Linux系统的启动过程,包括BIOS自检、MBR引导、GRUB菜单选择、加载Linux内核直至初始化进程,以及如何修复MBR和GRUB引导故障,并提供了忘记root密码时的解决方案。
674

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



