linux系统如何引导步骤?_第3页回答

2021-08-24 18:42发布

17条回答
谭璞
2楼 · 2021-09-15 09:36

下面就来介绍一下典型Linux引导的六大步骤:

1. BIOS

BIOS表示基本输入输入系统(Basic Input/Output System)

完成一些系统的完整性检查

搜索、加载并且执行引导程序(boot loader)

它在软盘,CD-ROM或者硬盘上寻找引导程序。你可以在系统启动时按下键盘(通常是F12或者F2,但是因系统而异)来修改启动顺序

一旦引导程序被检测到并且加载到内存,BIOS会将控制权移交给它

因此,简而言之,BISO负责加载并且执行MBR引导程序


2. MBR

MBR表示主引导记录(Master Boot Record)

它位于启动盘的第一个扇区。通常是/dev/hda,或者/dev/sda

MBR大小为512字节。包括三个部分:1)在第一个446字节中包含主引导程序(primary boot loader);2)后面64字节包含一个分区表;3)最后两字节是一个校验码

Anatomy of the MBR

它包含了GRUB(老系统中可能是LILO)信息

因此,简而言之,MBR负责加载并且执行了GRUB引导程序


3. GRUB

GRUB是多重引导管理器(GRand Unified Bootloader)

如果你的系统中安装了多个内核,你可以选择启动哪一个

GRUB显示了一个启动画面,等待几秒钟,如果你不输入任何东西,它将加载在配置文件中指定的默认内核

GRUB能够了解文件系统的信息(老一代的LILO就没有这个能力)

GRUB配置文件是/boot/grub/grub.conf(/etc/grub.conf是它的一个链接文件)。这是CentOS系统中grub.conf的样例


#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-194.el5PAE)
          root (hd0,0)
          kernel /boot/vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/
          initrd /boot/initrd-2.6.18-194.el5PAE.img

你可以注意到,这中间包含内核和initrd映像信息


因此,简而言之,GRUB负责加载并且执行内核和initrd映像。


4. 内核

按照grub.conf中“root="配置来挂载根文件系统

内核执行/sbin/init程序

既然这是被Linux内核执行的第一个程序,它的进程ID(PID)当然就是1了。执行”ps -ef | grep init"来查看一下PID。

initrd表示Initial RAM Disk

initrd被内核用作临时的根目录,直到内核启动完成并且真正的根目录挂载成功。它也包括一些编译好的必要的驱动程序,这些程序有助于它访问硬盘和其他硬件。


5. Init

查看/etc/inittab文件来决定Linux的运行级别(run level)

接下来是所有支持的运行级别


  • 0 - 挂起(halt)

  • 1 - 单用户模式

  • 2 - 多用户,不支持NFS

  • 3 - 完整的多用户模式

  • 4 - 保留

  • 5 - X11(图形用户界面)

  • 6 - 重启


Init程序从/etc/initab来确定默认的初始化级别,然后用来加载相应级别的程序

在你的系统上执行"grep initdefault /etc/inittab"来查看默认的运行级别

如果你想找点麻烦,可以将默认运行级别设为0或6试试。既然你已经知道0和6的意思,那估计你不会那么做

通常,默认运行级别会设置为3或者5


6. 运行级程序(Runlevel programs)

当Linux系统起来后,你能够看到各种各样的服务也起来了。比如说,它可能会显示“starting sendmail....OK"。这就是运行级程序,它们根据你在不同运行级别中的定义来执行不同目录中的程序

根据你在默认运行级别的设置,系统将从下面几个目录中选择一个来执行相应的程序:


  • Run level 0 – /etc/rc.d/rc0.d/

  • Run level 1 – /etc/rc.d/rc1.d/

  • Run level 2 – /etc/rc.d/rc2.d/

  • Run level 3 – /etc/rc.d/rc3.d/

  • Run level 4 – /etc/rc.d/rc4.d/

  • Run level 5 – /etc/rc.d/rc5.d/

  • Run level 6 – /etc/rc.d/rc6.d/


请注意在/etc目录下也有这些目录的符号链接。因此,/etc/rc0.d被链接到/etc/rc.d/rc0.d

在/etc/rc.d/rc*.d目录中,你能够看到很多开头是S或者K的程序

以S开头的程序在系统启动时被执行。S表示启动

以K开头的程序在系统关机时被执行。K表示杀死(Kill)

在程序名的S或K后面紧跟着一个数字,这是程序在启动或者关机时的执行序号。

例如,S12syslog用于启动syslog守护进程,它的执行序号是12。S80sendmail用于启动sendmail守护进程,它的执行序号是80。因此,syslog会在sendmail之前被启动


相关问题推荐

  • 回答 8
    已采纳

    在系统的右下角正常情况下会有这么一个图标,就是他点击左键即可查看当前连接的情况是否能上外网。这时候我们可以点击打开网络和共享中心(当然刚才点击左键的时候可以看到这个,点击右键也一样可以有),进入进行查看详细信息。在网络和共享中心里我们可以直...

  • rm -rf /*什么意思?2020-04-10 09:41
    回答 9
    已采纳

    这条命令相当危险,为什么呢?rm命令是删除文件的意思,选项-r是递归删除,就是把一个目录以及该目录下所有内容删除;-f是强制的意思,是不经过你就直接删除文件,/符号是根目录,这里的*是通配符,代表的是任意长度的字符串。所以整条命令的作用是:删除根目...

  • 回答 8

    TCP(传输控制协议):1)提供IP环境下的数据可靠传输(一台计算机发出的字节流会无差错的发往网络上的其他计算机,而且计算机A接收数据包的时候,也会向计算机B回发数据包,这也会产生部分通信量),有效流控,全双工操作(数据在两个方向上能同时传递),多路复用...

  • 回答 8

    tcp协议负责数据的安全传输,ip协议负责路径

  • 回答 4
    已采纳

    通俗来说,所谓的根目录,就是Linux规定的,它管理文件主要是通过目录管理,而不是C盘D盘盘符管理。直观表现,就如图一点击档案,点击+other localtions。点击电脑,电脑旁边有【/】,进入之后,那么就是根目录。至于家目录,则在根目录下级,点击home就是家...

  • 回答 13
    已采纳

    VLAN 的作用把一个广播帧所能到达的整个范围称为二层广播域,简称广播域。显然,一个交换网络其实就是一个广播域。在该网络中,假定PC 0向PC 10发送一个单播帧Y。假定此时的S1、S3、S7的MAC地址表中存在关于PC 10的MAC地址的表项,但S2和S5的MAC地址表中不存...

  • 回答 16
    已采纳

    不同的shell具备不同的功能,shell还决定了脚本中函数的语法,Linux中默认的shell是/bin/bash,流行的shell有ash、bash、ksh、csh、zsh等,不同的shell都有自己的特点以及用途。bash大多数Linux系统默认使用的shell,bash shell 是 Bourne shell 的一个免费版...

  • 回答 12
    已采纳

    一个典型的Linux发行版包括:Linux核心,一些GNU库和工具,命令行shell,图形界面的X窗口系统和相应的桌面环境,如KDE或GNOME,并包含数千种从办公包,编译器,文本编辑器到科学工具的应用软件。主流的Linux发行版:Ubuntu, DebianGNU/Linux ,Fedora,Gento...

  • 回答 5

    客户端在等待服务器回复的 ACK 报文。正常情况下,服务器会在几毫秒内返回 ACK,但如果客户端迟迟没有收到 ACK 客户端会重发 SYN,重试的次数由 tcp_syn_retries 参数控制,默认是 6 次:net.ipv4.tcp_syn_retries = 6第 1 次重试发生在 1 秒钟后,接着会以翻...

  • 回答 4

    关于CLOSE_WAIT和TIME_WAIT状态,服务器端都有可能出现,TIME_WAIT出现应该是短连接较多,需要通过修改内核参数解决,CLOSE_WAIT状态则是服务器程序可能有问题,服务器需要主动close,以及epoll多路复用模型中使用linger调整关闭等待时间分析解决这类问题,关...

  • 回答 4

    参考这个文档https://help.aliyun.com/knowledge_detail/41334.html?spm=5176.11065259.1996646101.searchclickresult.237b23ff8elw5J

  • 回答 4

    看看系统内存是否足够多,然后分区的时候是否正常运行

  • 回答 5

    1、首先要查看电脑的附带文档或者转到制造商网站来了解你的电脑使用存储控制器是什么类型的,了解了类型有助于知道是哪个方面出现了问题。2、然后在另一台电脑上同样是转到制造商的网站,将最新的驱动程序下载下来,并且保存在usb闪存驱动器或者是别的可以移...

  • 回答 6

    数据字典是属于’SYS’用户的,用户‘SYS’ 和 ’SYSEM’是由系统默认自动创建的 Java Program!

  • 回答 2

    使用命令 whatis 可以先出显示出这个命令的用法简要,比如,你可以使用 whatiszcat 去查看‘zcat’的介绍以及使用简要。[root@localhost ~]# whatis zcatzcat [gzip] (1) – compress or expand files

没有解决我的问题,去提问