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

linux开机启动流程

1,power on 开机
2,POST开机自检
由主板上的BIOS程序来完成
3,BIOS对硬件进行检测
BIOS:基本输入输出系统,是个人电脑启动时加载的第一个软件。可从CMOS中读写系统设置的具体信息。

名词解释:
1,什么是BIOS?
BIOS是英文"Basic Input Output System"的缩略词,直译过来后中文名称就是"基本输入输出系统"。
BIOS是个人电脑启动时加载的第一个软件。
它是一组固化到计算机内主板上一个ROM芯片上的程序,保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,可从CMOS中读写系统设置的具体信息。

BIOS这个大程序里面有3个小程序:基本输入输出的程序、开机后自检程序和系统自启动程序

2,CMOS是什么?
CMOS是一个存储参数配置的芯片,是主板上一块可读写的RAM芯片
CMOS芯片靠后备电池供电,即使系统关机掉电后系统也不会消失

4,boot启动顺序检查
hard drive 硬盘
cdrom 光驱
removeable device 可移动设备
Network 从网络中的服务器启动
一般从硬盘启动
5,硬盘
硬盘里有一个MBR分区
6,MBR
主引导记录,MBR是第一个可开机设备的第一个扇区的引导分区块,内包含引导加载程序,电脑开机的时候,计算机系统会主动去执行BIOS这个程序,然后BIOS会分析计算机上的存储设备,硬盘的话,BIOS会到该硬盘里面去读取第一个扇区的MBR位置,MBR里面放着引导加载程序,加载内核文件
7,groub2引导启动程序
里面的ext4驱动,可以识别/boot分区里的内容

8,/boot
/boot分区里有vmlinuxz 和initramfs执行这两个文件,将其加载到内存
vmlinuz-4.18.0-147.el8.x86_64 真正的linux内核程序
initramfs-4.18.0-147.el8.x86_64.img --为内核配套的文件系统,存放了很多的驱动

注:initramfs文件可以解压:
cpio -idmv < ./initramfs.img

9.启动systemd进程
systemd进程 是linux里的第1个进程
10,启动对应的运行级别里的服务
一般是multi-user级别,运行/etc/rc.local和/etc/fstab
/etc/rc.local -->开机启动的过程中将所有的服务启动后,会执行这个文件里的命令
‘chmod +x /etc/rc.d/rc.local’ 这个文件必须要设置可执行权限,里面的命令才会执行

/etc/fstab  会自动挂载文件系统

11,之后进入login登录页面(输入用户名和密码)

12,根据/etc/passwd和/etc/shadow 检测用户名和密码是否正确

13,如果登录成功就运行~/.bashrc ~/.bash_profile /etc/bashrc /etc/profile 这四个配置文件
~/.bashrc -->启动bash程序的时候会加载 -->只是影响某个用户的
~/.bash_profile -->用户登录的时候会运行的脚本

/etc/bashrc -->全局,会影响所有的用户的
/etc/profile -->全局,会影响所有的用户的

首先会执行/etc/profile、和~/.bash_profile-->~/.bashrc -->/etc/bashrc

14,开机成功,最后会出现bash提示符
root用户:#
普通用户:$

开机启动相关问题

如何查看一个服务是否开机启动?
方法1: 到多用户模式对应的文件夹下查看是否有这个服务的名字

[root@localhost ~]# cd /etc/systemd/system
[root@sanchuang system]# cd multi-user.target.wants/
[root@localhost system]# ls
basic.target.wants                          default.target           network-online.target.wants  sysinit.target.wants   timers.target.wants
dbus-org.freedesktop.nm-dispatcher.service  getty.target.wants       nginx.service.d              syslog.service         vmtoolsd.service.requires
dbus-org.freedesktop.resolve1.service       multi-user.target.wants  sockets.target.wants         sysstat.service.wants

如果不想某个服务开机启动可以:
如:禁用nginx开机启动

root@sanchuang multi-user.target.wants]# systemctl  disable  nginx  
Removed /etc/systemd/system/multi-user.target.wants/nginx.service.

[root@sanchuang multi-user.target.wants]# ls
auditd.service   dnf-makecache.timer  NetworkManager.service  sshd.service     tuned.service
chronyd.service  irqbalance.service   remote-fs.target        sssd.service     vmtoolsd.service
crond.service    kdump.service        rsyslog.service         sysstat.service

解释:
/etc存放系统管理和配置文件
/etc/systemd/system 存放系统启动的默认级别及启动的unit的软连接,优先级最高。

运行级别(centos6里概念)
在centos6里有哪些运行级别?

runlevel 可以查看当前运行级别
0级:关机
1级:单用户(找回丢失密码)
2级:多用户无网络,不能使用NFS功能
3级:多用户有网络(multi-user),最常用的级别,CLI字符界面
(会定义哪些程序在字符界面下开机启动 -->开启的程序少–>消耗的资源少 -->最小化安装)
4级:保留,目前Linux暂无使用
5级:图像界面,GUI界面
(图形界面 -->会定义哪些程序在图形界面下开机启动 -->开启的程序多–>消耗资源多 -->带GUI服务器,linux里启动图形界面是启动GNOME 和KDE)
6级:重启
在centos7/8里该文件已经不再使用了

[root@localhost system]# cat /etc/inittab 
inittab is no longer used when using systemd.
 Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
systemd uses 'targets' instead of runlevels. By default, there are two main targets:
multi-user.target: analogous to runlevel 3
graphical.target: analogous to runlevel 5
To view current default target, run:
systemctl get-default
To set a default target, run:
systemctl set-default TARGET.target

查看当前的默认运行级别

[root@sanchuang zhuxiaodan]# systemctl get-default 
multi-user.target

设置默认的运行级别

[root@sanchuang zhuxiaodan]# systemctl set-default graphical.target  
[root@sanchuang zhuxiaodan]# systemctl set-default multi-user.target
Removed /etc/systemd/system/default.target.
Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/multi-user.target.

init 0 关机
init 3 进入运行级别3 -->字符界面
init 6 重启
注:千万不能把initdefault 设为0或6,会导致你的系统一开机就关机,一开机就重启

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值