Linux系统的启动过程

时间:2021-07-14 10:43:56

Linux 系统启动过程

Linux系统的启动过程可以分为5个阶段:

  • BIOS自检
  • 内核的引导。
  • 运行init。
  • 系统初始化。
  • 用户登录系统。

BIOS自检:

BIOS是英文"Basic Input Output System"的缩写,中文名称就是"基本输入输出系统"。 BIOS是电脑启动时加载的第一个程序,它是计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。主机接通电源后,系统将有一个对内部各个设备进行检查的过程,这是由一个通常称之为POST(Power On Self Test,上电自检)的程序来完成的。这也是BIOS的一个功能。完整的POST自检将包括CPU、640K基本内存、1M以上的扩展内存、ROM、主板、 CMOS存贮器、串并口、显示卡、软硬盘子系统及键盘测试等。自检中若发现问题,系统将给出提示信息或鸣笛警告。如果自检没有问题,会根据BIOS中的引导选项中查找引导设备,然后读取设备的第一扇区,设备的第一个扇区(MBR)主要记录了系统的分区信息。
内核引导:
此时BIOS将权限交给GRUB(GRand Unified Bootloade),GRUB到/boot目录下去读取内核文件。读取成功后,将控制权交给内核。
INIT:
内核启动系统的第一个进程INIT,因此INIT的进程号总是1,init进程是所有进程的发起者和控制者,所有如果init出现问题,系统随之垮掉。init读取配置文件/etc/inittab,决定启动的运行级别(runlevel)。

Linux系统有7个运行级别(runlevel):

  • 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
  • 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
  • 运行级别2:多用户状态(没有NFS)
  • 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
  • 运行级别4:系统未使用,保留
  • 运行级别5:X11控制台,登陆后进入图形GUI模式
  • 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

系统初始化:

centos7以前版本在/etc/inittab文件中系统默认运行级别。然后根据运行级别/etc/rc*.d执行相应的环境初始化,建立终端。

用户登陆:

输入用户名密码登陆系统。

初次安装系统后,系统的时区可能不是我们想要的。

1、查看系统时间:

 [root@localhost ~]# timedatectl 
      Local time: Mon 2019-04-29 01:24:46 CST
  Universal time: Sun 2019-04-28 17:24:46 UTC
        RTC time: Sun 2019-04-28 19:19:12
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

发现系统时间和Universal time时间相差8个小时;

2、将当前系统所处的分区重新命名:

[root@localhost ~]# mv /etc/localtime  /etc/localtime.bak

3、将/usr/share/zoneinfo/中创建软连接以替换当前的时区信息:

[root@localhost ~]# ln -s /usr/share/zoneinfo/Universal  /etc/localtime

4、再次查看系统时间

[root@localhost ~]# timedatectl
Local time: Sun 2019-04-28 19:26:03 UTC
Universal time: Sun 2019-04-28 19:26:03 UTC
RTC time: Sun 2019-04-28 19:26:03
Time zone: n/a (UTC, +0000)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a