Linux 开机启动流程

开机启动流程

centos6开机启动流程

1.内核引导

2.运行init

3.系统初始化

4.建立终端

5.用户登录系统

运行级别

运行级别(runlevel)的分类:

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

查看运行级别

# 查看当前运行级别
runlevel 

[root@localhost /etc/yum.repos.d]#
runlevel
N 3
此处3是当前的级别,当前使用了什么级别,就显示几
N是上一次使用的级别,因为没有使用所以是N

临时切换运行级别

[root@zls ~]# init 5
[root@zls ~]# runlevel 
3 5 

永久切换运行级别

[root@zls ~]# vim /etc/inittab id:3:initdefault

启动流程

1.内核引导

  • BIOS加电自检,检测主板上的硬件设备
  • 读取/boot分区下,所有的内核文件

2.运行init

0 关机运行级别
1 单用户级别
2 多用户级别(没有文件系统)
3 多用户级别 有文件系统
4 保留
5 多用户模式,图形化模式
6 重启运行级别
 # 运行init 会读取/etc/inittab
 # 读取配置文件中的默认运行级别
 # 获取当前系统的运行级别
 C6
 id3:initdefault:

 c7
 multi-user-target:

3.系统初始化

根据运行级别设置开机启动服务来启动
centos6
chkconfig --list

centos7
ll /etc/system/multi-user.target.wants/

4.建立终端

5.用户登录系统

命令行登录
ssh     ssh user@IP地址
图形化登录

linux关机命令

init 0

shutdown
shutdown 关机指令,你可以man shutdown 来看一
下帮助文档。例如你可以运行如下命令关机:
shutdown –h 10 ‘This server will
shutdown after 10 mins’ 这个命令告诉大家,计
算机将在10分钟后关机,并且会显示在登陆用户的当前
屏幕中。
shutdown –h now 立马关机
shutdown –h 20:25 系统会在今天20:25关机
shutdown –h +10 十分钟后关机

poweroff

linux重启

init 6

shutdown –r now 系统立马重启
shutdown –r +10 系统十分钟后重启

reboot 就是重启,等同于 shutdown –r now

centos7开机启动流程

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

1.bios(开机自检)

  • bios开机自检,检测主板上的硬件设备
  • 读取/boot分区下,所有的内核引导

2.MBR引导

主引导记录放在Linux引导硬盘的第一个扇区中,此信息通过BIOS预加载到ROM(只读内存)中。

MBR的大小只有512个字节,它包含用于引导操作系统的机器代码指令,称为引导加载程序,以及分区表。一

旦BIOS找到引导加载程序(GRUB2)并将其加载到(ROM)内存或硬盘驱动器中,它就会控制引导过程。

只是MBR(主引导记录)加载并执行GRUB2引导加载程序。

3.GRUB2(引导加载程序版本2)引导加载程序

言简意赅:grub2菜单,如果装了双系统会让你进行选择,Linux?还是windows?还是MacOS?

GRUB2是所有最新版本(如Red Hat/CentOS 7)中的默认引导加载程序,也是9.10版中的Ubuntu。它已经被GRUBbootloader(也称为GRUBLegacy)所取代。

grub2配置文件位于/boot/grub2/grub.cfg中,由grub2mkconfig使用/etc/grub.d中的模和/etc/default/grub

中的设置自动生成。不建议编辑GRUB2配置文件。

引导加载程序(rhel 7的grub2)启动rhel7内核和初始RAM磁盘(initrd)。GRUB 2安装在服务器硬盘的引导扇区中,配置为加载Linux内核和initramfs,initrd是一个初始根文件系统,将在Linux系统上的实际根文件系统之前安装。

4.kernel内核引导

Linux内核是操作系统的核心,它是系统上第一个加载的程序。当系统启动时,内核从initrd.img加载所有必要的内核模块和驱动器,以加载Linux7中的系统第一个进程systemd,在6里面,init是爸爸,在7里面换了个爸爸,那就是systemd

下面的命令将帮助您找到SystemD进程ID(PID)

[root@zls ~]# ps -ef | grep [s]ystemd
root          1      0  1 22:58 ?        00:00:00 /usr/lib/systemd/systemd --switched-root --system --deserialize 22

root       2965      1  0 22:58 ?        00:00:00 /usr/lib/systemd/systemd-journald

root       2985      1  1 22:58 ?        00:00:00 /usr/lib/systemd/systemd-udevd

root       5633      1  0 22:58 ?        00:00:00 /usr/lib/systemd/systemd-logind

dbus       5649      1  0 22:58 ?        00:00:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation

获取当前默认的运行级别

[root@localhost /etc/yum.repos.d]# systemctl get-default
multi-user.target

centos7的运行级别

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,否则不能正常启动

centos7进入单用户模式-忘记root密码

在开机进入选择系统界面时,使用e进入编辑选定模式

img

在编辑选定模式中按下方向键往下到linux16行末

img

在linux16行末写入
enforcing=0 init=/bin/bash

按ctrl + X

进入单用户模式

img

无法修改密码,因为当前的/目录是只读状态

# 重新挂载/
mount -o rw,remount /

# 修改密码
echo 111 | passwd --stdin root

# 重新加载init
exec /sbin/init

免挂载方式

# 可以少输入一步
mount -o rw,remount /

直接在编辑选定模式把ro改为rw

img

修改默认运行级别

systemctl set-default  reboot.target

centos7进入单用户模式-修改默认运行级别

在开机进入选择系统界面时,使用e进入编辑选定模式

img

在编辑选定模式中按下方向键往下到linux16行末

ro改为rw 在行末写入rd.break

ctrl + x

img

# 重新挂载root权限目录
mount -o rw,remount /sysroot

# 获取root权限
chroot /sysroot

# 修改默认运行级别
systemctl set-default multi-user.target

# 退出
exit

# 重启
reboot

centos7进入救援模式

# 删除了grub2引导
rm -fr /boot/grub2/

img

img

将CD-ROM Drive 用+号顶到第一个

F10 保存退出

img

img

img

img

img

# 获取一个root环境
chroot /mnt/sysimage

# 修复/dev/sda第一块磁盘
grub2-install /dev/sda

# 修复grub.cfg配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg

# 查看是否修复
ls /boot/grub2

# 退出root环境
exit

# 重启
reboot

# 改回之前的磁盘启动

img

systemd 管理服务

# 启动服务
c7
systemctl start 服务名
c6
/etc/init.d/服务名 start

# 停止服务
systemctl stop 服务名
 c7
systemctl stop 服务名
 c6
/etc/init.d/服务名 stop
 
# 重启服务
systemctl restart 服务名
 c7
systemctl restart 服务名
 c6
 /etc/init.d/服务名 restart
 
 # 重新加载
systemctl reload 服务名
 c7
systemctl reload 服务名
 c6
/etc/init.d/服务名 reload
 
 # 检查服务的启动状态
systemctl status 服务名
 c7
systemctl status 服务名
 c6
/etc/init.d/服务名 status

# 判断服务是否在运行
systemctl is-active 服务名
[root@localhost ~]# systemctl is-active
sshd
active 运行
[root@localhost ~]# systemctl is-active
nginx
unknown 没运行

# 禁用某个服务
systemctl mask 服务名

# 取消禁用的服务
systemctl unmask 服务名

开机自启服务管理

# 查看开机自启的服务有哪些
chkconfig

# 设置开机自启
systemctl enable 服务名

# 关闭自启服务
systemctl disable 服务名
systemctl disable firewalld

Removed symlink
/etc/systemd/system/multi-user.target.wants/firewalld.service.

Removed symlink
/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

# 查看指定服务是否开机自启
systemctl is-enabled firewalld
disabled 不允许开机自启

systemctl is-enabled network
network.service is not a native service,redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig network --level=5
enabled 允许开及自启
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇