linux——开机启动流程

1.了解开机启动流程的意义

        1.掌握让某个软件开机自动运行,即使得以后自己开发的程序可以具备自动开机启动的能力。

        2.当服务器出现故障无法开机,或者服务启动不了时,能够查看到是在开机哪个环节出现了问题,具备一定的故障排除的能力。

        3.同时也可以查看在开机过程中是否有木马病毒潜伏,查询黑客可能会把木马放在哪些地方,与此同时,可以更好地预防木马病毒的入侵。

2.关于开机关机的命令

       1. 开机命令:boot 启动   、   init 6 (重启);     

        2.关机命令:init 0    、    poweroff    、    half    、   shutdown -h -now (立即关机)    、      shutdown (一分钟后关机)   、   shutdown -c (取消关机)

3.开机启动详细流程

        首先,我们先有一张图片了解一下开机启动的流程,上面是详解版,下面的是简版。后文进行详细讲解。

         3.1 开机自检

                第一步,通电开机启动(power on)首先就会进行自检(POST),由已固化在主板上的BIOS程序来完成自检的工作(打开计算机电源,计算机硬件会自动加载BIOS),检测主板上的各个硬件是否存在,若不存在就会给出相应提示(主板motherboard: 是所有硬件的载体,插到主板上,所有的硬件之间的数据传输靠主板传送)。

        3.2 /boot启动顺序检查

                若没有问题,会启动第二步,/boot启动顺序检查,会以第一启动顺序进行启动,这里系统的第一顺序是以硬盘启动 。

                扩展:以下是系统默认的引导顺序,可以人为的调整:第一引导顺序——hard drive(硬盘)、第二引导顺序——cdrom(光驱)、第三引导顺序——removable devices(可移动设备,u盘,移动硬盘)、第四引导顺序——Network boot(从网络启动)。

        3.3 硬盘、MBR

                第三步,看硬盘的第一个扇区是否有主引导记录(MBR),系统找到BIOS所指定的MBR后采用MBR中的grub2引导程序加载文件系统的驱动文件(存放在/boot中),系统读取内存中的grub配置信息(一般为menu.lst或grub.conf),并依据此配置来加载指定内核,加载内核中的vmlinuz文件initramfs文件

扫描二维码关注公众号,回复: 15619988 查看本文章

                扩展:1.MBR全称为master boot record,即主引导记录。        2.第一个扇区(0柱面0磁道1扇区)是磁道里的一个非常重要的位置(磁盘最开始的位置),是固定的,占一个扇区的位置,一个扇区是512个字节。        3.vmlinuz文件是linux的内核文件,是一个可执行的程序 ,相当于皇上。         4.initramfs文件是一个压缩文件,给vmlinuz提供很多程序和驱动的文件,在内存里形成一个临时的根文件系统。

        3.4 systemd进程

                第四步,加载这个内核文件的systemd进程之后,会启动对应的运行级别里的服务。运行级别(run level):是比较老的概念,在centos6中非常流行,到了centos7以后这种说法就不常见了。

                一共有一下几种运行级别:0: 关机; 1:单用户模式; 2:多用户模式,但不能使用网络资源(NFS) ;3:字符界面(完全多用户模式,有NFS); 5:图形界面; 6:系统正常关闭并重启。       现在常见的是两种运行级别,一种是运行级别3:multi-user(字符界面),这个级别消耗资源和内存相对较小;另一种是运行级别5:graphical(图形界面),这个级别消耗资源和内存相对较大。这个运行级别的命令设置格式是:init 运行级别(例:init 0 关机;init 6 重启)。

                扩展:1.使用命令行yum install runlevel先下载命令runlevel,然后就可以使用runlevel命令查看当前的运行级别(N 3 , N表示NO  开机直接进入运行级别3 没有其他的级别;5 3 , 开机的时候进入的是运行级别5 现在是运行级别3); 2.systemctl get-default  查看默认的启动模式(运行级别); 3.systemctl set-default multi-user.target  设置为多用户模式; 4.systemctl set-default graphical.target    图形界面模式

        3.5 /etc/rc.local、/etc/fstab

                第五步, 启动驱动中的完全多用户模式(字符界面,即mutil-user)后,运行/etc/rc.local这个脚本里的命令,加载一下配置文件/etc/fstab,然后输入用户名密码之后,系统根据/etc/passwd和/etc/shadow文件检查用户名和密码是否正确,然后进入控制台命令行模式

        3.6 运行初始化文件

                最后,加载用户的环境变量初始化文件(~/.bashrc、~/.bash_profile、/etc/bashrc、/etc/profile),加载bash提示符之后,开机启动流程就成功完成了。

                扩展:四个用户环境变量的配置文件,1.影响某个用户: ~/.bashrc、~/.bash_profile
2.影响所有的用户:/etc/bashrc、/etc/profile

猜你喜欢

转载自blog.csdn.net/m0_53891399/article/details/131464136