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

PDF
Heartbeat+my sql+drbd构建高可用mysql方案
PDF
Asm+aix
PPT
20030623 linuxbasic and-security
PDF
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
PDF
Dbabc.net 利用heartbeat + drbd搭建my sql高可用环境
DOC
X64服务器 lamp服务器部署标准 new
DOC
康盛创想项目部Linux 服务器部署标准(最新版)
PPTX
5, system admin
Heartbeat+my sql+drbd构建高可用mysql方案
Asm+aix
20030623 linuxbasic and-security
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
Dbabc.net 利用heartbeat + drbd搭建my sql高可用环境
X64服务器 lamp服务器部署标准 new
康盛创想项目部Linux 服务器部署标准(最新版)
5, system admin

Similar to 202254.com香蕉影视,免费观看《《沙丘2》在线观看电影,海外华人在线观看《沙丘2》在线播放,免费观看最新电影 (20)

DOC
Linux必学的60个命令
PPT
Linux commands ppt
PDF
Bypat博客出品-利用cent os快速构建自己的发行版
PPT
南投替代役整理組數位典藏報告
PDF
Oracle enterprise manager cloud control 12c release 5 installation on oracle ...
PDF
Clonezilla tutorial.v7
DOC
Linux服务器服务配置说明
PPT
Linux1文字介面操作
DOC
尚观Linux研究室 linux驱动程序全解析
PDF
Oracle10g Rac Configuration For Linux X86
PDF
Ubuntu
PPT
Linux系统工程师教程
PPTX
20121111 linux intro
PDF
unix toolbox 中文版
PPT
0118 Windows Server 2008 的伺服器核心 (Server Core)
PPT
[精华回顾]讲座:How To Install Linux
PDF
Install Oracle11g For Aix 5 L
PDF
利用Cent Os快速构建自己的发行版
PDF
Oracle管理藝術第1章 在Linux作業體統安裝Oracle 11g
DOCX
Oda安装 恢复步骤
Linux必学的60个命令
Linux commands ppt
Bypat博客出品-利用cent os快速构建自己的发行版
南投替代役整理組數位典藏報告
Oracle enterprise manager cloud control 12c release 5 installation on oracle ...
Clonezilla tutorial.v7
Linux服务器服务配置说明
Linux1文字介面操作
尚观Linux研究室 linux驱动程序全解析
Oracle10g Rac Configuration For Linux X86
Ubuntu
Linux系统工程师教程
20121111 linux intro
unix toolbox 中文版
0118 Windows Server 2008 的伺服器核心 (Server Core)
[精华回顾]讲座:How To Install Linux
Install Oracle11g For Aix 5 L
利用Cent Os快速构建自己的发行版
Oracle管理藝術第1章 在Linux作業體統安裝Oracle 11g
Oda安装 恢复步骤
Ad

More from ffg01100 (12)

PDF
《神偷奶爸4》在线观看,免费观看神偷奶爸,卑鄙的我4 / 坏蛋奖门人4(港),最新电影在线免费观看
PDF
202254.com香蕉影视,在线播放《沙丘2》在线播放最新电影,免费观看《杀球2》免费观看高清电影,海外影视免费在线观看
PDF
202254.com在线播放《错位》在线播放高清电视剧,免费播放《错位》免费播放,在线观看
PDF
202254.com香蕉影视,在线观看《我才不要和你做朋友呢》在线观看最新电影,香蕉影视在线观看《我才不要和你做朋友呢》在线观看高清电影
PDF
202254.com香蕉影视,在线观看最新动漫,民调异闻录第二季线上看,民调异闻录第二季免费观看,民调异闻录第二季免费播放,民调异闻录第二季在线观看,民调...
PDF
202254.com香蕉影视。最新电视剧最新电影免费观看。全网最快无广告影视网站,2024最新电视剧《长相思第二季》免费在线观看。长相思第二季免费看。长相...
PDF
202254.com免费观看《长相思第二季》免费观看高清,长相思第二季线上看,《长相思第二季》最新电视剧在线观看,杨紫最新电视剧
PDF
202254.com《长相思第二季》在线观看,最新电视剧《长相思第二季》在线播放,长相思第二季今天开播了,全网最高清电视剧免费播放
PDF
202254.com香蕉影视全网最高清影视,免费在线观看,2024最新电影最新电视剧,免费在线观看。
PDF
202554.com香蕉影视全网最高清,最新电影,最新电视剧,在线观看狐妖小红娘月红篇
PDF
202254.com全网最高清影视香蕉影视,热门电影推荐,热门电视剧在线观看,免费电影,电影在线,在线观看。球华人在线電視劇,免费点播,免费提供最新高清的...
PDF
202254.com香蕉影视免费在线观影,最新电视剧,最新电影,最新综艺,最新动漫,免费观看。
《神偷奶爸4》在线观看,免费观看神偷奶爸,卑鄙的我4 / 坏蛋奖门人4(港),最新电影在线免费观看
202254.com香蕉影视,在线播放《沙丘2》在线播放最新电影,免费观看《杀球2》免费观看高清电影,海外影视免费在线观看
202254.com在线播放《错位》在线播放高清电视剧,免费播放《错位》免费播放,在线观看
202254.com香蕉影视,在线观看《我才不要和你做朋友呢》在线观看最新电影,香蕉影视在线观看《我才不要和你做朋友呢》在线观看高清电影
202254.com香蕉影视,在线观看最新动漫,民调异闻录第二季线上看,民调异闻录第二季免费观看,民调异闻录第二季免费播放,民调异闻录第二季在线观看,民调...
202254.com香蕉影视。最新电视剧最新电影免费观看。全网最快无广告影视网站,2024最新电视剧《长相思第二季》免费在线观看。长相思第二季免费看。长相...
202254.com免费观看《长相思第二季》免费观看高清,长相思第二季线上看,《长相思第二季》最新电视剧在线观看,杨紫最新电视剧
202254.com《长相思第二季》在线观看,最新电视剧《长相思第二季》在线播放,长相思第二季今天开播了,全网最高清电视剧免费播放
202254.com香蕉影视全网最高清影视,免费在线观看,2024最新电影最新电视剧,免费在线观看。
202554.com香蕉影视全网最高清,最新电影,最新电视剧,在线观看狐妖小红娘月红篇
202254.com全网最高清影视香蕉影视,热门电影推荐,热门电视剧在线观看,免费电影,电影在线,在线观看。球华人在线電視劇,免费点播,免费提供最新高清的...
202254.com香蕉影视免费在线观影,最新电视剧,最新电影,最新综艺,最新动漫,免费观看。
Ad

202254.com香蕉影视,免费观看《《沙丘2》在线观看电影,海外华人在线观看《沙丘2》在线播放,免费观看最新电影