Linux系统程序(其一)
目录
1.1.1、 BIOS(Basic Input Output System):存储硬件信息,是一段程序
一、启动流程
1.1、 BIOS
1.1.1、 BIOS(Basic Input Output System):存储硬件信息,是一段程序
存储在主板的CMOS芯片,由主板的电池供电。有两种模式BIOS和UEFI。
BIOS是Basic Input/Output System的缩写,是一种计算机系统固件,主要作用是在计算机开机时初始化硬件并启动操作系统。
UEFI是Unified Extensible Firmware Interface的缩写,是一种新一代的系统固件标准。它的作用是在计算机启动时初始化硬件并启动操作系统。
进入BIOS系统,不同品牌的主板进入方式不一致(F2或者DEL)
1.1.2、 系统引导方式
硬盘引导
网络引导:PXE装机(批量装机服务)
U盘引导:安装操作系统
1.2、 开机自检的流程
1. power on开机
2. POST开机自检,如果有问题会发出蜂鸣声,没有问题就加载bios程序
3. bios是基本输入输出系统,通过BIOS加载引导程序
4. boot启动顺序检查,启动第一启动顺序
1.3、 选择硬盘作为第一启动顺序
5. 然后找到硬盘的第一个扇区,读取MBR主引导记录,MBR中有一个grub2引导程序,是用来启动Linux系统的
6. 加载/boot里文件系统里的驱动
7. 运行/boot里的内核文件vmlinuz、initramfs
8. 启动systemd进程(系统的第一个进程,是所有其他进程的父进程)
9. 启动对应的运行级别的里的服务,我们一般是启动multi-user多用户模式
10. 启动相应运行级别的的服务,比如/etc/rc.local以及/etc/fstab文件
11. 然后进入login登录,用户输入用户名和密码以后,Linux系统会自动进入/etc/passwd文件和/etc/shadow文件里验证用户名和密码是否正确
12. 验证成功之后,运行/etc/profile和 /etc/bashrc 全局配置(所有验证成功的用户都会加载),再运行用户家目录下的初始化文件, /.bash_profile、/.bashrc 局部配置(只有用户本身可以加载)
二、管理机制
2.1、 service
Linux6及之前老版本系统
语法: service 服务名称 服务操作类型
服务启停脚本存储目录 /etc/init.d/
2.2、 systemd
Linux7及之后的新版本系统
语法 systemctl 服务操作类型 服务名称
服务启停脚本存储目录 /usr/lib/systemd/system
三、运行级别
3.1、 运行级别
0 系统关机级别,系统默认的运行级别不能设置为0,否则不能正常启动。
init 0 进行关机 poweoff.target
1 单用户模式级别。root权限,用于系统维护(或修复系统,或重置系统密码信息),禁止远程登录。
该运行级别是没有网络的 rescue.target
2 多用户模式级别。该级别下没有NFS和网络的支持。
mulit-user.target
init 2 进入文本模式界面,首先输入用户名,然后输入密码
3 完整的多用户文本模式级别。登录后进入到控制台命令行模式,带有网络支持。
mulit-user.raeget
4 预留级别,该级别系统未使用
multi-user.target
5 图形化模式级别,登录后进行图形GUI模式
graphical.target
6 系统重启级别,默认运行级别不能设置为6.否则系统不能正常启动
init 6 系统会重启
reboot.target
runlevel
可以使用 runlevel 命令来查看当前系统的运行级别
3.2、 运行级别存储文件
/usr/lib/systemd/system
runlevel0.target->poweroff.target
runlevel1.target->rescue.target
runlevel2.target->multi-user.target
runlevel3.target->multi-user.target
runlevel4.target->multi-user.target
runlevel5.target->graphical.target
runlevel6.target->reboot.target
3.3、 操作命令
1. runlevel
2. init
3. systemctl
systemctl get-default 查看默认运行级别
systemctl set-default 运行级别名称 查看默认运行级别
四、root密码修复
1. 启动系统后,在grup界面按e进入编辑模式
2. Linux 16 的那一行,将 ro 改为 rw init=/sysroot/bin/sh
3. Ctrl+x 进入字符界面
4. chroot /sysroot(chroot命令可以将当前进程的根目录切换到指定目录下)
pwd打印当前路径,whoami我是谁。
5. 修改root用户密码(两种方式,任选其一即可)
passwd
echo "密码" |passwd --stdin root
6. touch /.autorelabel 自动识别label标签(不创建密码修改不生效)
7. exit
8. reboot