设为首页 收藏本站
查看: 505|回复: 0

[经验分享] RHEL6启动原理和故障恢复

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-12-23 08:56:55 | 显示全部楼层 |阅读模式
本节所讲内容:
Linux启动过程详解
影响启动的配置文件
常见的启动故障排除
救援模式的使用
Live CD的使用

本节课的所有操作在RHEL6操作系统中完成
Linux启动过程详解
1.    加载BIOS 的硬件信息,跟据设定取得第一个可开机引导设置,如:光驱,硬盘,网络,USB; 如果是硬盘为第一引导。
大白菜,  老毛桃   ,电脑店

wKioL1Z5YkjwkU-lAAGqvC94YzM533.jpg
wKiom1Z5YhTBDAPFAAFOyVJJ8Rs293.jpg

2. 读取硬盘中 MBR 的 bootLoader (亦即是 grub,Lilo 等程序);
 硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。它由三个部分组成,主引导程序、硬盘分区表DPT(Disk Partition table)和硬盘有效标志(55AA)。
16*4+446+2=512
wKioL1Z5YgfjvC8EAACnGboqhF8569.jpg

注:磁盘默认一个扇区大小为:512字节。

在总共512字节的主引导扇区

第一部分是:主引导程序(boot loader)占446个字节。主引导程序,它负责从活动分区中装载,并运行系统引导程序。

第二部分是Partition table区(分区表),即DPT,占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中。每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4。

第三部分是MBR有效标识位,占2个字节,固定为55AA。如果这个标志位0xAA55,就认为这个是MBR。

GRUB(GRand Unified Bootloader简称“GRUB”)是一个来自GNU项目的多操作系统启动程序。

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 程序,最后就等待用户登入啦;
如图:
wKiom1Z5YdbwUBOwAAIkJbS5LGU261.jpg

Linux启动相关的配置文件
在init3 级别下启动图形界面: startx
init 3 - 》init 5 ,需要重启服务

系统启动EL6
   BIOS
bootloader(GRUB或 lilo)
[iyunv@xuegod163 ~]# vim/boot/grub/grub.conf
[iyunv@xuegod64 ~]# ll/etc/grub.conf
lrwxrwxrwx. 1 root root 22 Oct21 03:01 /etc/grub.conf -> ../boot/grub/grub.conf

判断启动级别:
[iyunv@xuegod163 ~]# vim/etc/inittab
# Default runlevel. Therunlevels 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(系统初始化: 像:主机名 和/etc/fstab  selinux都在这里指定了...)
执行rc.sysinit 完成了包括mount分区激活swap 加载modules等重要的工作.

启动对应级别下的服务如: init 3 级别
/etc/rc.d/rc3.d/(这里的程序/服务S开头的全部开机执行;K开头的开机不执行)
rcn.d (n为1到6) 是对应于不同的runlevel下起不同的服务. 这些目录下都
是一些符号连接, 连接到/etc/rc.d /init.d下的一些文件.以S开头的表示要启动, 以K开头的不启动.
第一个字母后面的数值是一个优先级.

例:
[root@xuegod63rc3.d]# vim/etc/init.d/network
#!/bin/bash
#
#network       Bring up/down networking
#
# chkconfig:2345  10         90
看有chkconfig的那一行, 2345表示在runlevel 2 3 4 5下被启动, 10是为此服务的启动顺序, 90为关

[iyunv@xuegod163 rc3.d]# ls*network*
S10network
[iyunv@xuegod163 rc3.d]#chkconfig network off
[iyunv@xuegod163 rc3.d]#chkconfig --list network
network            0:off       1:off       2:off       3:off       4:off       5:off       6:off
[iyunv@xuegod163 rc3.d]# ls*network*
K90network
#说明,如果在此级别下开机启动,就不再显示其关机顺序了

所有服务都运行成功后
设置开机自动执行某个命令: /etc/rc.local
[iyunv@xuegod163~]# vim /etc/rc.local
[iyunv@xuegod163~]# chkconfig httpd on
[iyunv@xuegod163~]# ll /etc/rc.local
lrwxrwxrwx. 1root root 13 Apr  8 02:29 /etc/rc.local-> rc.d/rc.local
[iyunv@xuegod163~]# ll /etc/rc.d/rc.local
-rwxr-xr-x. 1root root 240 Jul 23 21:16 /etc/rc.d/rc.local

运行mingetty,打开tty1-6
[iyunv@xuegod163~]# ps -aux | grep ming
Warning:bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root      2245 0.0  0.0   4064  580 tty2     Ss+  20:48  0:00 /sbin/mingetty /dev/tty2
root      2247 0.0  0.0   4064  576 tty3     Ss+  20:48  0:00 /sbin/mingetty /dev/tty3
root      2249 0.0  0.0   4064  580 tty4     Ss+  20:48  0:00 /sbin/mingetty /dev/tty4
root      2251 0.0  0.0   4064  576 tty5     Ss+  20:48  0:00 /sbin/mingetty /dev/tty5
root      2253 0.0  0.0   4064  576 tty6     Ss+  20:48  0:00 /sbin/mingetty /dev/tty6
root      3004 0.0  0.0 103244   864 pts/0   S+   21:17   0:00 grep ming

[iyunv@xuegod163~]# runlevel
N 5

进入单用户模式,破解root密码。如果防止破解root密码?
加密grub,不让别人破解root密码:
[iyunv@xuegod163~]# grub-md5-crypt
Password:
Retypepassword:
$1$ehxiQ$tOBQyT3HRKHCxONd/oU3g.

[iyunv@xuegod163~]# vim /boot/grub/grub.conf
wKioL1Z5YcGycCVsAACDnCB_l0w337.jpg

重启测试:  
编辑grub时,需要按下p键,然后输入密码:123456
wKioL1Z5YZjiSvbFAAB5UtRmufU504.jpg


进入救援模式:
例:当系统坏了,进不去了。  进入救援模式拷贝数据
以光盘引导:

wKiom1Z5YWODXDOyAAJhSjBnd-g107.jpg
wKioL1Z5YU7Bpk19AACUTmdE6Qc355.jpg
wKiom1Z5YRiglSc6AACnADgmzGE283.jpg

wKiom1Z5YO2gcMlNAAFJRMwfryA728.jpg

wKioL1Z5YNfTSjGCAACla1MD6wM319.jpg

wKioL1Z5YKyw8J0bAACkeX2rJy4640.jpg

wKiom1Z5YHfBAbaaAAA3PrsmhHc550.jpg

wKiom1Z5YFaT8KahAAC_IH2E7Bg315.jpg
ramfs  : 内存文件系统
chroot  /mnt/sysimage   # 切换文件系统根
wKioL1Z5YEmhV4aRAAE0rI9_l_M797.jpg

系统故障,忘记root用户的密码
解决方法:重启系统进入单用户模式,然后重设密码
grub界面按任意键,干预启动过程。
e按键,编辑启动时内核接收的选项,增加“1”。
enter和b按键,按照修改过的选项启动操作系统。
把下图中的x去掉,然后reboot 就可以,再次使用root进入密码,就不需要输入密码。
wKioL1Z5YB6QxVW-AACF1U0OaCk586.jpg
进入系统passwd就可以修改root。
例3:磁盘资源耗尽故障
1、:无法写入新的文件,提示“… :设备上没有空间”
2、:部分程序无法运行,甚至系统无法启动

故障原因:
         one :磁盘空间已被大量的数据占满,空间耗尽
         two :虽然还有可用空间,但文件数i节点耗尽
解决方案:
             1.清理磁盘空间,删除无用、冗余的文件
             2.转移或删除占用大量i节点的琐碎文件
             3.进 入单用户模式、救援模式进行修复或删除文件
例4:

双系统启动修复

当我们安装双系统环境,先安装Linux再安装Windows;;或者已经安装好双系统环境的Windows损坏,在重新安装Windows后,保存 GRUB的MBR(MasterBoot Record,主引导记录)会被Windows系统的自举程序NTLDR所覆盖,造成Linux系统无法引导。

1、如果要恢复双系统引导,首先用上述方法进入救援模式,执行chroot命令如下:

sh-4.1#chroot /mnt/sysimage

2、将根目录切换到硬盘系统的根目录中,然后执行grub-install命令重新安装GRUB:

sh-4.1#grub-install  /dev/sda

wKiom1Z5X-ji0A89AAB806BNaQg943.jpg

3、然后依次执行exit命令,退出chroot模式及救援模式(执行两次exit命令):

sh-4.1#exit

sh-4.1#reboot


系统重启后,将恢复GRUB引导的双系统启动。

live cd    300M左右  iso 。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-155006-1-1.html 上篇帖子: 自动化部署PXE+Kickstart VS Cobbler 下篇帖子: ERROR: You appear to be running an X server; please exit X before installing.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表