Linux中开机启动流程

Centos6

启动流程

1.内核引导
加载grub菜单
运行BIOS的加电自检
2.运行init
init 所有的进程都被init控制 (所有进程的起点)
0:关机
1:切换到单用户模式,root权限,禁止远程连接
2:多用户状态(没有文件系统)
3:完全多用户状态,有文件系统,登录后使用命令行控制
4:unused 没有被使用
5:切换到图形化界面(装图形化)
6:重启
3.系统初始化
首先找到,runlevel查看当前系统的运行级别
然后找到/etc/rc.d/rcN.d N代表当前的运行级别
4.建立终端
5.用户登录系统


C6忘记root密码

1.开机进入grub菜单
2.按e,进入单用户模式
3.选择内核kernel,按e
4.进入单用户模式
在quiet 后面输入1然后回车或者输入single然后回车
5.按b(boot),重新引导启动系统
6.修改root密码
echo 1 |passwd --stdin root
reboot 重启


关机指令

shutdown
-h:指定关机的时间
halt
poweroff
init 0


Centos7

启动流程

1.BIOS(开机自检)
2.MBR ( Master Boot Record 主引导记录)
3.GRUB2 Bootloader(引导菜单)
4.Kernel(内核引导)
5.Systemd (不再使用init,改成了systemd)


运行级别

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

#运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
#运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
#运行级别2:多用户运行级别(没有文件系统)
#运行级别3:完全的多用户状态(有文件系统),登陆后进入控制台命令行模式
#运行级别4:多用户运行级别
#运行级别5:X11控制台,登陆后进入图形GUI模式
#运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动


进入单用户模式

方式1:只能解决忘记root密码问题
1.先关机
init 0
2.停在grub2菜单
3.按e进入编辑
4.将光标下移,移动到 linux16 那一行,行末
5.输入 enforcing=0 init=/bin/bash
6.按Ctrl + x
7.重新挂载/目录 , 因为该模式/目录是只读权限
bash-2.4# mount -o rw,remount /
8. 修改root密码
bash-2.4# echo 123 |passwd --stdin root
9. 重新引导系统
bash-2.4# exec /sbin/init
方式2
1.先重启
init6
2.进入grub2菜单
3.按e进入编辑
4..将 biosdevname=0 前面的 ro 改成 rw ,避免重新挂在 / 目录,然后还是在 linux16 的行末输入 rd.break
5.按Ctrl + x
6.执行命令
1.获取到root权限
switch_root:/# chroot /sysroot
2. 修改运行级别
sh-4.2# systemctl set-default multi-user.target
3.退出
sh-4.2# exit
4.重启
switch_root:/# reboot


救援模式

误删除mbr
1.挂载镜像(通过镜像进入)
2.bios中设置优先加载光驱
3.进入安装界面,选择troubleshooting
4.进入后,选择第二个rescue a centos system,按enter
5.进入救援模式,输入1.然后回车
6.按回车,获得shell
7.输入命令
获取到root权限
bash-2.4# chroot /mnt/sysimage
修复mbr引导
grub2-install /dev/sda
退出
exit
重启
reboot


systemd管理服务

优势
1.最新系统都采用systemd管理(RedHat7,CentOS7,Ubuntu15...)
2.CentOS7 支持开机并行启动服务,显著提高开机启动效率
3.CentOS7关机只关闭正在运行的服务,而CentOS6,全部都关闭一次。
4.CentOS7服务的启动与停止不在使用脚本进行管理,也就是/etc/init.d下不在有脚本
5.CentOS7使用systemd解决原有模式缺陷,比如原有service不会关闭程序产生的子进程。
#systemd相关的配置文件
/usr/lib/systemd/system #类似C6系统的启动脚本目录/etc/init.d/
/etc/systemd/system/ #类似C6系统的/etc/rc.d/rcN.d/
/etc/systemd/system/multi-user.target.wants/
systemctl相关命令
#启动服务
systemctl start 服务名
#停止服务
systemctl stop 服务名
#重启服务
systemctl restart 服务名
#重新加载配置文件,不重启服务
systemctl reload 服务名
#查看服务的运行状态
systemctl status 服务名
#判断服务是否在运行
systemctl is-active 服务名
#禁止服务运行
systemctl mask 服务名
#取消禁止服务运行
systemctl unmask 服务名
#开机自启
systemctl enable 服务名
#禁止开机自启
systemctl disable 服务名
#查看系统中开机自启和禁止、静态服务
systemctl list-unit-files
#查看服务是否允许开机自启
systemctl is-enabled 服务名
#重新加载启动脚本
systemctl daemon-reload