您的位置:首页 > 运维架构 > Linux

经典面试题---linux启动流程

2014-10-21 11:02 148 查看
linux启动流程:

power on ---->BIOS加电自检,根据引导顺序启动---->MBR---->grub(stage2 ) --->/boot/grub/grub.conf ----->加载内核和ramfs文件系统--->init ---->读取/etc/inittab , 执行/etc/rc.sysinit等脚本文件------>根据/etc/inittab里的运行级别进入/etc/rc*.d目录,启动里面的服务(s开头的为要启动的) ------->启动登录程序

linux系统引导流程简图:



BIOS是基本输入输出系统(Basic Input Output System)的简称,是计算机中最基础,最重要的程序,存储在主板上的Flash ROM中。

BIOS加电自检中会检查内存、CPU、主板等硬件中是否存在错误,出现错误后会有两种处理情况:对于严重故障(致命性故障)则停机,此时由于各种初始化操作还没完成,不能给出然后提示或信号;对于非严重故障则给出提示或声音警报信号,等待用户处理。引导操作系统:BIOS会先从软盘或硬盘的开始扇区读取引导记录,如果没有找到,则会在显示器上显示没有引导设备,如果找到就把电脑的控制权交给引导记录处理。

-----------------开机进入BIOS,开机第一个画面都会有提示-------------------

台式机---》del

笔记本--》品牌不同按键不一样,F1、F2、F8、F12等

服务器---》F1

启动BIOS:固化在主板上的芯片里

POST(power on self test)系统检查:检查核心硬件是否正常

设备初始化:初始化驱动程序,分配资源

引导设备选择:使用光驱,硬盘还是PXE引导

移交执行区域:加载引导设备的第一个扇区(512字节)

-----------------BIOS介绍--------------------

输入/输出系统的简称

存储计算机基本硬件的信息

不可以随意拔插

--------------BIOS作用-------- -------------

加电自检

初始化

引导操作系统

------------------------BIOS和CMOS的关系?-----------------------------------------

bios是一个程序,CMOS是一个存数据的芯片,bios启动会到CMOS里读数据。平时我们配置bios的参数的时候,都存在CMOS里。

CMOS常指保存计算机基本启动信息(如日期、时间、启动设置等)的芯片。有时人们会把CMOS和BIOS混称,其实CMOS是主板上的一

块可读写的RAM芯片,是用来保存BIOS的硬件配置和用户对某些参数的设定。

------------------计算机里可以设置哪些密码?有哪些作用?------------------------

BIOS密码-->防止别人设置从U盘或者网络引导进入系统

grub密码--->防止破密码

系统的密码-->防止人家进系统

------------------根据显示信息排除故障------------------------------------------------

POST信息,包括检测过程和错误提示

计算机启动时显示“CMOS battery failed”

主板电池电力不足,需要更换新电池

计算机启动时显示“Floppy disk s fail Press F1 to Continue,Del to setup

无法驱动软驱 ,按F1键继续

根据警报音排除故障

根据警报音识别故障硬件

蜂鸣器长鸣

内存错误,清理灰尘,或更换一条插槽

PXE(preboot execute environment)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,

支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,

终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file

transfer protocol)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,

从而引导预先安装在服务器中的终端操作系统。

MBR(Master Boot Record引导记录),又叫主引导扇区

引导程序

LILO(淘汰)

GRUB是GNU赞助的项目

引导程序的两个工作阶段

stage1:就是bootloader(MBR里446字节程序)。第一阶段只用来定位装载第二阶段的引导程序,stage1有stage2的地址

stage2:第二阶段指引导程序本身,会运行某种应用程序并读取相应的配置信息,很多的驱动

stage1.5:是stage1和stage2之间的桥梁,由于stage1不能识别文件系统格式,需要Stage1.5来引导位于某个文件系统当中的stage2

/boot目录下的stage1、stage1.5、stage2都是备份的,防止grub被破坏后,可以拿来修复grub程序

正常的顺序是从stage1--->stage2

如果grub被破坏过,启动顺序stage1-->stage1.5--->stage2

-------------解压image映像文件,查看里面的内容。------------------------------------

[root@station initramfs]# mkdir /initramfs

[root@station initramfs]# cp /boot/initramfs-2.6.32-279.el6.i686.img /initramfs/

[root@station initramfs]# file initramfs-2.6.32-279.el6.i686.img

initramfs-2.6.32-279.el6.i686.img: gzip compressed data, from Unix, last modified: Fri Mar 1 09:27:07 2013, max compression

[root@station initramfs]# gunzip <initramfs-2.6.32-279.el6.i686.img >inittramfs.img

[root@station initramfs]# cpio -iv <inittramfs.img

[root@station initramfs]# ls

bin dracut-004-283.el6 init initqueue-settled inittramfs.img pre-pivot proc sysroot var

cmdline emergency initqueue initqueue-timeout lib pre-trigger sbin tmp

dev etc initqueue-finished initramfs-2.6.32-279.el6.i686.img mount pre-udev sys usr

[root@station fs]# pwd

/initramfs/lib/modules/2.6.32-279.el6.i686/kernel/fs

内核比喻成皇上,img文件相当于给皇上提供一个住的地方,大臣,部队等组成一个朝廷

内核里的驱动不多,所以将img文件加载到内存里当一个临时的根文件系统,里面有很多的驱动,可以驱动其他的重要设备了。

initrd (initial ramdisk)

ramdisk --》虚拟内存盘是通过软件将一部分内存(RAM)模拟为硬盘来使用的一种技术。

内核里的驱动不多,所以将img文件加载到内存里当一个临时的根文件系统,里面有很多的驱动,可以驱动其他的重要设备了。

---------引导程序的功能---------------------

编写内核命令行

装载初始化虚拟磁盘

将控制权交给Linux内核

GRUB菜单项配置

title Red Hat Enterprise Linux Server (2.6.18-164.el5)

root (hd0,0)

kernel /boot/vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quiet

initrd /boot/initrd-2.6.18-164.el5.img·····

title:菜单名称

kernel:内核文件的位置及内核启动参数

initrd:初始虚拟磁盘的位置

[root@station initramfs]# vim /etc/inittab

# System initialization is started by /etc/init/rcS.conf

系统初始化使用

# Individual runlevels are started by /etc/init/rc.conf

# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf

是系统在启动的过程中按Ctrl-Alt-Delete就重新启动系统

# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,

开启tty虚拟控制台(tty1-tty6)

# with configuration in /etc/sysconfig/init.

# Default runlevel. The runlevels used are:

# 0 - halt (Do NOT set initdefault to this) 关机

# 1 - Single user mode 单用户模式,破密码的时候进入此模式

# 2 - Multiuser, without NFS (The same as 3, if you do not have networking) 多用户模式,但是不能使用NFS功能

# 3 - Full multiuser mode 字符界面

# 4 - unused

# 5 - X11 图形界面

# 6 - reboot (Do NOT set initdefault to this) 重启

id:5:initdefault:

[root@station initramfs]# runlevel 查看运行级别

N 5 前面为N表示直接进入的是图形界面

3 5 表示前面进入的3字符界面

-------vim /etc/rc.d/rc.sysinit(系统 初始化文件) ------------------

由init进程调用执行

完成设置网络、主机名、加载文件系统等初始化工作

获取网络环境与主机类型

设置系统时间(clock)

……

以FSCK检验磁盘文件系统

重新以可读可写模式载入系统磁盘

……

清除启动过程中的临时文件

将启动相关信息加载到/var/log/dmesg文件中

不管在哪种运行级别,开机都会执行/etc/rc.local

系统启动硬件信息

dmesg | more

/var/log/dmesg文件

这两个地方都可以看到系统最近一次启动的硬件信息

dmesg---》/var/log/dmesg 记录引导开启信息的

[root@teacher vnc]# dmesg |grep Eth查看网卡信息

[root@teacher vnc]# dmesg |grep eth 查看与eth相关的信息,开机引导的时候

/etc/rc.d/rc.sysinit

由init进程调用执行

完成设置网络、主机名、加载文件系统等初始化工作

/etc/rc.d/rc脚本文件

由init进程调用执行

根据指定的运行级别, 加载或终止相应的系统服务

红帽企业版Linux服务脚本位于/etc/rc.d/init.d中

/etc/rc.d/rcn.d目录中

包含运行级别n执行服务状态配置的符号连接

===========

/etc/rc.d/rcn.d目录中

包含运行级别n执行服务状态配置的符号连接

控制系统在相应运行级别会自动启动或停止的服务

符号连接名称:Lddservice_name

L:K或者S;表示停止或者启动服务

dd:两位数字;表示启动或停止服务的顺序

[root@station rc3.d]# ls|grep httpd

K15httpd

[root@station rc3.d]# chkconfig --list httpd

httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

[root@station rc3.d]# chkconfig --level 3 httpd on

[root@station rc3.d]# ls|grep httpd

S85httpd
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: