SlideShare a Scribd company logo
1/56
Linux系统启动原理及故障排除
RHEL6系统启动过程及相关配置文件
RHEL6系统启动过程
1. 加载 BIOS 的硬件信息,跟据设定取得第一个可开机引导设置,如:光驱,硬盘,网络,
USB; 如果是硬盘为第一引导。
按F10保存配置并退出
2/56
VMware Workstation Pro上面的虚拟机进入BIOS有个好处就是可以不用考验手速
3/56
2. 读取硬盘中 MBR 的 boot Loader 就是 grub引导
GRUB(GRand Unified Bootloader简称“GRUB”)是一个来自GNU项目的多操作系统启动程序。
MBR的硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。它由三个部分组
成,主引导程序、硬盘分区表DPT(Disk Partition table)和硬盘有效标志(55AA)。
互动:为什么MBR分区表,只能分4个主分区?
注:磁盘默认一个扇区大小为:512字节。MBR由以下3部分组成:
第一部分是:主引导程序(boot loader)占446个字节。主引导程序,它负责从活动分区中装载,
并运行系统引导程序。
第二部分是Partition table区(分区表),即DPT,占64个字节,硬盘中分区有多少以及每一分区的
大小都记在其中。每个分区表项长16个字节,16*4=64字节。为分区项1、分区项2、分区项3、分
区项4。64字节只存4个分区表。
第三部分是MBR有效标识位,占2个字节,固定为55AA。如果这个标志位0xAA55,就认为这个是
MBR。
所以:16*4+446+2=512
3. 依据 boot loader 的设定,到引导分区加载 Kernel ,Kernel 会开始侦测硬件并加载驱劢程序;
4. 在硬件驱动成功后,Kernel 会主动执行 init 程序,而 init 会取得 run-level 信息;
5. init 执行 /etc/rc.d/rc.sysinit 文件来准备软件执行的作业环境 (如网络、时区等);
6. init 执行 run-level 下各个服务并启动 (script 方式);
7. init 执行开机后自动运行脚本 /etc/rc.d/rc.local 文件;
8. init 执行虚拟终端机控制程序 mingetty 来启动 login 程序,最后就等待用户登录;
启动流程图:
4/56
RHEL6启动相关的配置文件
[root@localhost Desktop]# vim /boot/grub/grub.conf
default=0 设定默认启动菜单项,当系统中有多个内核时,0表示默认加载第1个,1表示第2个内
核
timeout=5 菜单项等待选项时间为5s
splashimage=(hd0,0)/grub/splash.xpm.gz 指明菜单背景图片路径为
hiddenmenu 隐藏菜单
title RHEL (2.6.32-358.6.1.el6.x86_64) 定义菜单项
root (hd0,0) grub查找stage2及kernel文件所在设备分区,grub的根
kernel /vmlinuz-2.6.32-358.6.1.el6.x86_64 ro root=/dev/vg_have/lv_root rd_NO_LUKS
LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto rhgb quiet 启动的内核
initrd /initramfs-2.6.32-358.6.1.el6.x86_64.img 内核匹配的ramfs文件
修改系统启动级别:
[root@localhost Desktop]# vim /etc/inittab
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault: #这里决定系统启动的级别
/etc/rc.d/rc.sysinit shell脚本 作用:系统初始化 比如主机名 和/etc/fstab 都在这里指定了,完
成了包括mount分区 激活swap 加载modules等重要的工作.
启动对应级别下的服务如: init 3 级别
/etc/rc.d/rc3.d/(这里的程序/服务S开头的全部开机执行;K开头的表示开机不执行,表明了关机
时顺序)
rcn.d (n为0到6) 是对应于不同的runlevel下起不同的服务. 这些目录下都是一些符号链接, 连接到/
etc/rc.d/init.d下的一些文件.以S开头的表示要启动, 以K开头的不启动.
第一个字母后面的数值是一个优先级.
[root@localhost ~]# ll /etc/rc.d/rc3.d/ | grep network
lrwxrwxrwx. 1 root root 17 Dec 18 2012 S10network -> ../init.d/network #表示network是第10
个启动的服务。 所以init是顺序启动系统,需要一个一个服务启动成功,再执行下一步操作,启动
系统比较慢。而RHEL7中的systemd可以并行启动多个服务,启动比较快。
例:
[root@localhost rc3.d]# vim /etc/init.d/network
5/56
#! /bin/bash
#
# network Bring up/down networking
#
# chkconfig: 2345 10 90
看有chkconfig的那一行, 2345表示在runlevel 2 3 4 5下被启动, 10是为此服务的启动顺序, 90为关
机时,关闭此服务的顺序。
[root@localhost ~]# chkconfig --list | grep network
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@localhost ~]# ll /etc/rc.d/rc3.d/ | grep network
lrwxrwxrwx. 1 root root 17 Dec 18 2012 S10network -> ../init.d/network #开机顺序
[root@localhost ~]# chkconfig network off
[root@localhost ~]# ll /etc/rc.d/rc3.d/ | grep network
lrwxrwxrwx 1 root root 17 May 23 21:17 K90network -> ../init.d/network #只显示k90关机顺序了
[root@localhost rc3.d]# chkconfig --list network
network 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@localhost Desktop]# chkconfig network on
[root@localhost Desktop]# ll /etc/rc.d/rc3.d/ | grep network
lrwxrwxrwx. 1 root root 17 Nov 27 10:08 S10network -> ../init.d/network
[root@localhost Desktop]# chkconfig --list network
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
所有服务都运行成功后,设置开机自动执行某个命令: /etc/rc.local
[root@localhost rc3.d]# vim /etc/rc.local
[root@localhost rc3.d]# ll !$
ll /etc/rc.local
lrwxrwxrwx. 1 root root 13 Dec 18 2012 /etc/rc.local -> rc.d/rc.local
[root@localhost rc3.d]# ll /etc/rc.d/rc.local
-rwxr-xr-x. 1 root root 240 Feb 5 21:17 /etc/rc.d/rc.local
运行mingetty命令,打开tty1-6
[root@localhost rc3.d]# ps -aux | grep ming
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root 2346 0.0 0.0 4116 548 tty2 Ss+ 20:55 0:00 /sbin/mingetty /dev/tty2
root 2348 0.0 0.0 4116 548 tty3 Ss+ 20:55 0:00 /sbin/mingetty /dev/tty3
root 2350 0.0 0.0 4116 544 tty4 Ss+ 20:55 0:00 /sbin/mingetty /dev/tty4
root 2352 0.0 0.0 4116 544 tty5 Ss+ 20:55 0:00 /sbin/mingetty /dev/tty5
root 2354 0.0 0.0 4116 544 tty6 Ss+ 20:55 0:00 /sbin/mingetty /dev/tty6
[root@localhost ~]# runlevel #查看系统启动级别
N 5
[root@localhost ~]# init 3
[root@localhost ~]# runlevel
5 3 #由5启动级别进入3级别
6/56
[root@localhost ~]# init 5
[root@localhost ~]# runlevel
3 5 #由3启动级别进入5级别
RHEL7系统启动过程及相关配置文件
RHEL7系统启动过程
RHEL7引导顺序
1. UEFI或BIOS初始化,运行POST开机自检
2. 选择启动设备
3. 引导装载程序, RHEL7是grub2
4. 加载装载程序的配置文件:/etc/grub.d/ /etc/default/grub /boot/grub2/grub.cfg
5. 加载内核选项
6. 加载initramfs初始化伪文件系统
7. 内核初始化,RHEL7使用systemd代替init
8. 执行initrd.target所有单元,包括挂载/etc/fstab
9. 从initramfs根文件系统切换到磁盘根目录
10. systemd执行默认target配置,配置文件/etc/systemd/system/default.target
11. systemd执行sysinit.target初始化系统及basic.target准备操作系统
12. systemd启动multi-user.target下的本机的服务
13. systemd执行multi-user.target下的/etc/rc.d/rc.local
14. systemd执行multi-user.target下的getty.target及登录服务
15. systemd执行graphical需要的服务
RHEL7启动过程:
7/56
[root@localhost logs]# find /boot/ -name *img*
/boot/grub2/i386-pc/core.img
/boot/grub2/i386-pc/boot.img
/boot/initrd-plymouth.img
/boot/initramfs-0-rescue-750416e2d691464fa70acd4c14a8cbea.img
/boot/initramfs-3.10.0-514.el7.x86_64.img
/boot/initramfs-3.10.0-514.el7.x86_64kdump.img
Systemd运行原理
Systemd概述:systemd即为system daemon [ˈ
di:mən] 守护进程,是linux下的一种init软件,开发目
标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,
同时达到降低Shell的系统开销的效果,最终代替现在常用的System V与BSD风格init程序。
8/56
与多数发行版使用的System V风格init相比,systemd采用了以下新技术:
(1) 采用Socket激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能;
(2) 用Cgroups代替PID来追踪进程,即使是两次fork之后生成的守护进程也不会脱离systemd的控
制。
unit对象:unit表示不同类型的systemd对象,通过配置文件进行标识和配置;文件中主要包含了系
统服务、监听socket、保存的系统快照以及其它与init相关的信息
Systemd配置文件:
• /usr/lib/systemd/system/ #这个目录存储每个服务的启动脚本,类似于之前的/etc/init.d/
• /run/systemd/system/ #系统执行过程中所产生的服务脚本,比上面目录优先运行
• /etc/systemd/system/ #管理员建立的执行脚本,类似于/etc/rc.d/rcN.d/Sxx类的功能,比
上面目录优先运行
注意: 对于新创建的unit文件,或者修改了的unit文件,要通知systemd重载此配置文件
[root@localhost ~]# systemctl daemon-reload #重载系统服务
总结:RHEL5-6-7 3个系统版本启动过程
RHEL 5: SysV init RHEL 6: Upstart RHEL 7: Systemd
管理系统服务
命令: systemctl COMMAND name.service
9/56
点击这里 点击这里
- RHEL6
启动 service name start
停止 service name stop
重启 service name restart
状态 service name status
重载或重启服务(先加载,再启动) -
chkconfig命令的对应关系
点击这里 点击这里
- RHEL6
设定某服务开机自启 chkconfig name on
设定某服务开机禁止启动 chkconfig name off
查看所有服务的开机自启状态 chkconfig --list
用来列出该服务在哪些运行级别下启用和禁用 chkconfig sshd --list
查看服务是否开机自启 -
服务状态
[root@localhost ~]# systemctl list-unit-files --type service #显示状态
• loaded:Unit配置文件已处理
• active(running):一次或多次持续处理的运行
• active(exited):成功完成一次性的配置
• active(waiting):运行中,等待一个事件
• inactive:不运行
• enabled:开机启动
• disabled:开机不启动
• static:开机不启动,但可被另一个启用的服务激活
10/56
运行级别
RHEL6下Linux运行级别0-6的各自含义
0: 关机模式
1:单用户模式 ,用于破解root密码
2:无网络,支持的多用户模式
3:有网络支持的多用户模式(一般叫字符界面,工作中最长使用的模式)
4:保留,未使用
5:有网络支持,支持图形界面,支持的多用户模式(图形界面)
6:重新引导系统,即重启
可以在不同级别下,设置服务是否随系统启动运行。在RHEL7上运行级别的含义已经和之前不同
了,已由.target来代替运行级别,我们可以称target为目标态,我们可以通过target定制更符合我
们工作运行环境。
[root@localhost ~]# ls /usr/lib/systemd/system/*.target #查看我们的机器上有多少个target
[root@localhost ~]# ll /usr/lib/systemd/system/*.target | grep runlevel
lrwxrwxrwx. 1 root root 15 9月 19 2017 /usr/lib/systemd/system/runlevel0.target ->
poweroff.target
lrwxrwxrwx. 1 root root 13 9月 19 2017 /usr/lib/systemd/system/runlevel1.target ->
rescue.target
lrwxrwxrwx. 1 root root 17 9月 19 2017 /usr/lib/systemd/system/runlevel2.target -> multi-
user.target
lrwxrwxrwx. 1 root root 17 9月 19 2017 /usr/lib/systemd/system/runlevel3.target -> multi-
user.target
lrwxrwxrwx. 1 root root 17 9月 19 2017 /usr/lib/systemd/system/runlevel4.target -> multi-
11/56
user.target
lrwxrwxrwx. 1 root root 16 9月 19 2017 /usr/lib/systemd/system/runlevel5.target ->
graphical.target
lrwxrwxrwx. 1 root root 13 9月 19 2017 /usr/lib/systemd/system/runlevel6.target ->
reboot.target
注: 发现在runlevel2-4 都是调用multi-user.target这个unit 所以在RHEL7上runlevel2-4是一个意思
[root@localhost ~]# systemctl list-unit-files --type target #查看所有target的状态
[root@localhost ~]# systemctl list-dependencies runlevel3.target #查看3级别Unit 的所有依赖。
Unit 之间存在依赖关系:A 依赖于 B,就意味着 Systemd 在启动 A 的时候,同时会去启动 B ;
也可以理解也3运行级别下都开启哪些服务。
在RHEL7上所谓的目标态,其实就是由各种指定的服务和基础target组合而成的。
总结:RHEL6和7运行级别的变化
6 7
init systemd
Traditional runlevel | New target name Symbolically linked to...
Runlevel 0 | runlevel0.target -> poweroff.target
Runlevel 1 | runlevel1.target -> rescue.target
Runlevel 2 | runlevel2.target -> multi-user.target
Runlevel 3 | runlevel3.target -> multi-user.target
Runlevel 4 | runlevel4.target -> multi-user.target
Runlevel 5 | runlevel5.target -> graphical.target
Runlevel 6 | runlevel6.target -> reboot.target
Init 0 à systemctl poweroff 关机
Init 1 à systemctl isolate rescue.target 单用户
Init 3 à systemctl isolate multi-user.target 字符界面
Init 5 à systemctl isolate graphical.target 图形化
Init 6 à systemctl reboot 重启
运行级别的切换
1、在RHEL6上,我们切换级别使用init,在RHEL7上虽然也能使用,但是调用的不再是原来的程序
了。RHEL7使用systemctl isolate name.target来切换target。 # isolate [ˈ
aɪsəleɪt] 分离,隔离
例1:在RHEL6/7下切换操作
[root@localhost ~]# init 3 #切换到字符界面
[root@localhost ~]# init 5 #切换到图形界面
例2:RHEL7切换操作
12/56
[root@localhost ~]# systemctl isolate multi-user.target
或:
[root@localhost ~]# systemctl isolate runlevel3.target
2、RHEL7设置默认系统默认启动级别
systemctl set-default name.target来修改我们的目标态。
我们看一下我们的默认目标态究竟为何物。
[root@localhost ~]# ll /etc/systemd/system/default.target
注:它其实就是创建了一个软链接到指定的target上去了
例1:默认系统启动使用3级别字符界面
[root@localhost ~]# systemctl set-default multi-user.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-
user.target.
[root@localhost ~]# ll /etc/systemd/system/default.target #查看链接
lrwxrwxrwx 1 root root 41 5月 23 19:08 /etc/systemd/system/default.target -> /usr/lib/systemd/
system/multi-user.target
例2:默认系统启动使用5级别图形界面
[root@localhost ~]# systemctl set-default graphical.target
补充:
[root@server11 ~]# ll /usr/lib/systemd/system/*.target | grep runlevel
lrwxrwxrwx. 1 root root 15 Aug 15 07:12 /usr/lib/systemd/system/runlevel0.target ->
poweroff.target
lrwxrwxrwx. 1 root root 13 Aug 15 07:12 /usr/lib/systemd/system/runlevel1.target ->
rescue.target
lrwxrwxrwx. 1 root root 17 Aug 15 07:12 /usr/lib/systemd/system/runlevel2.target -> multi-
user.target
lrwxrwxrwx. 1 root root 17 Aug 15 07:12 /usr/lib/systemd/system/runlevel3.target -> multi-
user.target
lrwxrwxrwx. 1 root root 17 Aug 15 07:12 /usr/lib/systemd/system/runlevel4.target -> multi-
user.target
lrwxrwxrwx. 1 root root 16 Aug 15 07:12 /usr/lib/systemd/system/runlevel5.target ->
graphical.target
lrwxrwxrwx. 1 root root 13 Aug 15 07:12 /usr/lib/systemd/system/runlevel6.target ->
reboot.target
13/56
[root@server11 ~]# systemctl set-default reboot.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/
reboot.target.
[root@server11 ~]# systemctl get-default
reboot.target
[root@server11 ~]# ll /etc/systemd/system/default.target
lrwxrwxrwx 1 root root 37 Aug 21 23:48 /etc/systemd/system/default.target -> /usr/lib/systemd/
system/reboot.target
[root@server11 ~]#
grub2和grub区别
在RHEL6上,我们的grub文件是/boot/grub/grub.conf
在RHEL7使用grub2,配置文件改成/boot/grub2/grub.cfg了,但是功能还是大致一样的都是用于加
载内核的,不过在RHEL7上设置默认启动项发生了一些变化。
互动:如果我们的系统中有两个内核?改变默认启动的内核顺序?
例1: RHEL7修改内核启动顺序
[root@localhost ~]# vim /etc/default/grub
GRUB_TIMEOUT=5 #开机时 grub 默认5秒后启动内核
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
改:GRUB_DEFAULT= saved
为:GRUB_DEFAULT= 1 #这里我们改成1,0代表第一个内核,1代表第二个,以此类推。
UB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0"
GRUB_DISABLE_RECOVERY="true"
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg #修改完成后,并没有立即生效,
使用此命令来生成grub.cfg文件,我们在下次启动的时候就会默认选择新的默认内核。
[root@localhost ~]# uname -r #查当前系统内核
3.10.0-693.2.2.el7.x86_64
[root@localhost ~]# reboot
[root@localhost ~]# uname -r #重启成功后, 发现加载的内核变了
3.10.0-693.el7.x86_64
例2: RHEL6修改内核启动顺序
[root@localhost ~]# vim /boot/grub/grub.conf
改:10 default=0
为:10 default=1
[root@localhost ~]# reboot
14/56
实战-加密grub防止黑客通过单用户模式破解root密码
实战场景:如何防止别人恶意通过单用户模式破解root密码,进入系统窃取数据?
给grub加密,不让别人通过grub进入单用户模式。
基于RHEL6进行grub加密
[root@localhost ~]# grub-md5-crypt
Password: 123456
Retype password: 123456
$1$oaqo5$3d/cmTosm68jTw6o1wCu31
[root@localhost init]# vim /boot/grub/grub.conf
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
password --md5 $1$oaqo5$3d/cmTosm68jTw6o1wCu31
title Red Hat Enterprise Linux (2.6.32-220.el6.x86_64)
root (hd0,0)
如图:
重启测试:
编辑grub时,需要按下p键,然后输入密码:123456
15/56
输入grub密码正确的情况下会出现常规的grub界面,此时可以按e进行编辑,然后进入单用户模式
更改root密码
16/56
选择对应的内核
在quiet后面输入1,表示要进入单用户模式
17/56
输入b启动单用户模式
基于RHEL7进行grub加密
生成密码
[root@localhost ~]# grub2-mkpasswd-pbkdf2
Enter password: 123456
Reenter password: 123456
PBKDF2 hash of your password is
grub.pbkdf2.sha512.10000.BD575E59CFF9AA1365C8347425B757BB8DF4B9E7D9DE9EF0F2BB7DCE49
18/56
[root@localhost ~]# vim /etc/grub.d/00_header
#在配置文件的最后追加以下内容,配置文件里定义的uplooking用户可以更改其他用户(即使这个
用户不存在)
cat <<EOF
set superusers='uplooking'
password_pbkdf2 uplooking grub.pbkdf2.sha512.10000.0C84B3E1AADBBD9CB50B1D49CCB65
338BE3AF4519DB37439FFF833F9AA03177810886F5F48C049617EF7004C8CCA6F5A21D00485A9D70
852059FA7606D828B2E.
69CC63B29E3A77E380B494CB3ACFF1F49569F112DC3975858376E09B15F9
0DC14BF7F6FD61FB8CE85E16E7E7E52657B655E4E9A6583DF7B67E557C9CA54EDF74
EOF
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg #更新grub信息
重启验证:
输入用户名和密码
19/56
看到可以进入GRUB菜单,就证明你加密成功了
按ctrl-x 开始启动
补充:grub2-setpassword加密可以实现同样的效果
实战-通过liveCD进入救援模式-重装grub修复损坏的系统
实战:使用系统光盘进入救援模式拯救坏掉的系统
实战场景:当系统坏了(各种原因引起的系统故障),进不去了,还需要把里面的数据复制出来,
怎么办?
可以进入救援模式拷贝数据
基于RHEL6版本系统进入救援模式
本次模拟故障是删除了 /boot/grub/grub.conf 配置文件里的某些内容
20/56
修改BIOS启动顺序,直接以光盘引导系统
21/56
按F10保存配置并退出
22/56
23/56
24/56
25/56
26/56
27/56
28/56
ramfs : 内存文件系统
chroot /mnt/sysimage #切换文件系统
29/56
查看grub配置文件并更正里面的参数
30/56
重启验证
改BISO引导
31/56
32/56
33/56
系统能正常启动,说明修复成功!
实战-当MBR引导记录损坏后-重装grub进行修复
使用场景: 修复MBR,主要出现在安装双系统时,后安装的系统把原来系统的MBR删除了,需要
修复。
34/56
第一步:在RHEL7下破坏硬盘的前446字节:
[root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=1 count=446
446+0 records in
446+0 records out
446 bytes (446 B) copied,0.000758682 s,588 kB/s
重启系统如果出现下图的情况,请选择Troubleshooting进入故障排除界面,然后再选择Rescue进
入紧急救援模式。
第二步:将RHEL7系统光盘挂载到虚拟机光驱上,重启计算机,修改BIOS引导顺序,让光盘启
动。
35/56
36/56
进入启动的界面
上面有三项,我们选择第三项进入Troubleshooting故障排除界面 ,进入第三项后,点击第二项,
进入救援模式的RHEL7系统
37/56
然后我们进入如下模式,选择1,继续进行,接下来,我们就会进入到一个shell模式中,需要切换
根目录,进行系统修复:
38/56
退出当前shell,再重启
改BISO引导
39/56
、
验证
40/56
41/56
修复成功!
实战-在RHEL7下误删除grub文件进行修复
第一步:删除grub.cfg
[root@localhost ~]# rm -rf /boot/grub2/grub.cfg
第二步,重启计算机
[root@localhost ~]# reboot
进入如下界面:
现在开始解决grub
重启系统,按Esc,进入光盘救援模式,选择第三项(Troubleshooting),进入光盘救援(前提是
挂载光盘)
42/56
43/56
使用live cd 进入救援模式后:
第一步:切根
44/56
下图中,我们可以看到在grub2文件夹中,还没有grub.cfg文件,接下来,我们需要执行grub2-
mkconfig > /boot/grub2/grub.cfg生成配置文件;按exit后,重启Linux系统。
45/56
修改BIOS 引导,让硬盘做第一引导
46/56
已修复grub
/var/log下面有相关系统日志信息
比如messages和dmesg
dmesg还是一个命令,用来记录系统的启动信息的
用法:
[root@localhost log]# dmesg | grep kernel
[ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.10.0-514.el7.x86_64 root=/dev/mapper/
rhel-root ro crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet
[ 0.000000] kexec: crashkernel=auto resulted in zero bytes of reserved memory.
[ 0.000000] Booting paravirtualized kernel on bare hardware
[ 0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-3.10.0-514.el7.x86_64 root=/dev/
mapper/rhel-root ro crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet
[ 0.000000] Memory: 968208k/1048576k available (6764k kernel code, 524k absent, 79844k
reserved, 4433k data, 1680k init)
[ 0.412425] Loaded X.509 cert 'Red Hat Enterprise Linux kernel signing key:
75fea1df245accd97a17fe3a367261e65f8a1e60'
[ 0.418299] Freeing unused kernel memory: 1680k freed
[ 0.429789] systemd[1]: Starting Create list of required static device nodes for the current
kernel...
[ 0.436898] systemd[1]: Started Create list of required static device nodes for the current
kernel.
[ 0.831245] [TTM] Zone kernel: Available graphics memory: 499968 kiB
47/56
dd备份MBR再恢复
通过scp拷贝mbr到另外一台Linux
使用dd将MBR弄挂
重启Linux系统,出现故障
48/56
修复方法:
49/56
50/56
51/56
至此,恢复MBR成功!
内核失踪的修复方法
制造故障
重启Linux
进入rescue模式修复
52/56
记得改启动引导选项
补充:
53/56
内核失踪之删除initramfs文件
制造故障
54/56
cd /boot
mkinitrd -v initramfs-$(uname -r).img $(uname -r) #生成initramfs驱动
或者
55/56
记得改启动引导选项
56/56
至此,修复initramfs成功!

More Related Content

Similar to 202254.com香蕉影视,你比星光美丽在线播放,你比星光美丽线上看,最新电视剧你比星光美丽在线,热门电视剧推荐,2024最新电视剧推荐。 (11)

DOC
Linux安全配置终极指南
wensheng wei
 
DOCX
Linux学习
tonyhuang2008
 
PDF
Bypat博客出品-利用cent os快速构建自己的发行版
redhat9
 
PPT
Monitor is all for ops
琛琳 饶
 
PPTX
4, files & folders
ted-xu
 
PDF
Sysadmin
卫国 赵
 
PDF
Linux基础
zhuqling
 
PDF
九州通小型机扩Vg大小(20090416)
heima911
 
PPT
Linux系统工程师教程
yiditushe
 
PDF
Ubuntu
Liu Lizhi
 
PDF
Sery lvs+keepalived
colderboy17
 
Linux安全配置终极指南
wensheng wei
 
Linux学习
tonyhuang2008
 
Bypat博客出品-利用cent os快速构建自己的发行版
redhat9
 
Monitor is all for ops
琛琳 饶
 
4, files & folders
ted-xu
 
Sysadmin
卫国 赵
 
Linux基础
zhuqling
 
九州通小型机扩Vg大小(20090416)
heima911
 
Linux系统工程师教程
yiditushe
 
Ubuntu
Liu Lizhi
 
Sery lvs+keepalived
colderboy17
 

202254.com香蕉影视,你比星光美丽在线播放,你比星光美丽线上看,最新电视剧你比星光美丽在线,热门电视剧推荐,2024最新电视剧推荐。