1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【学神】1-15 linux启动及常见故障的排除

【学神】1-15 linux启动及常见故障的排除

时间:2019-06-06 01:45:21

相关推荐

【学神】1-15 linux启动及常见故障的排除

本节所讲内容:

lLinux启动过程详解、影响启动的配置文件、常见的启动故障排除、救援模式的使用、LiveCD的使用

一、Linux启动过程详解

1.加载BIOS的硬件信息,跟据设定取得第一个可开机引导设置,如:光驱,硬盘,网络,USB。

2.读取硬盘中MBR的bootLoader(亦即是grub,Lilo等程序);

硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。它由三个部分组成,主引导程序、硬盘分区表DPT(DiskPartitiontable)和硬盘有效标志(55AA)。GRUB(GRandUnifiedBootloader简称“GRUB”)是一个来自GNU项目的多操作系统启动程序。

MBR=一个分区表的大小*分区表的个数+主引导程序大小+有效标=16*4+446+2=512

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

主引导扇区说明

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

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

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

3.依据bootloader的设定,到引导分区加载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程序,最后就等待用户登入。

如图:

二、Linux启动相关的配置文件

1命令行模式启动图形界面

#startx#需启动关闭init5级别的设置的服务

#init5#不需启动关闭init5级别的设置的服务

2grub相关配置文件

[root@xuegod64Desktop]#vim/boot/grub/grub.conf

3启动级别配置文件

[root@xuegod64Desktop]#vim/etc/inittab#打开启动配置文件#Defaultrunlevel.Therunlevelsusedare:#0-halt(DoNOTsetinitdefaulttothis)#1-Singleusermode#2-Multiuser,withoutNFS(Thesameas3,ifyoudonothavenetworking)#3-Fullmultiusermode#4-unused#5-X11#6-reboot(DoNOTsetinitdefaulttothis)#id:3:initdefault:

4系统初始化相关配置文件

/etc/rc.d/rc.sysinit

主要完成了包括读取mount分区、激活swap、初始化环境变量、加载modules、读取主机名和/etc/fstab等重要的工作.

5开机启动配置文件

/etc/rc.d/rcn.d/rcn.d(n为1到6)

是对应于不同的runlevel下起不同的服务.这些目录下都是一些符号连接,连接到/etc/rc.d/init.d下的一些文件。以S开头的表示要启动,以K开头的不启动.第一个字母后面的数值是一个优先级。

【例】

[root@xuegod63rc3.d]#vim/etc/init.d/network#!/bin/bash##networkBringup/downnetworking##chkconfig:23451090看有chkconfig的那一行,2345表示在runlevel2345下被启动,10是为此服务的启动顺序,90为关机时闭此服务的顺序。[root@xuegod64rc3.d]#ls*network*K01matahari-networkS10network[root@xuegod64rc3.d]#[root@xuegod64rc3.d]#chkconfignetworkoff[root@xuegod64rc3.d]#chkconfig--listnetwork#查看不同级别下的network的开机启动情况network0:off1:off2:off3:off4:off5:off6:off[root@xuegod64rc3.d]#ls*network*K01matahari-networkK90network#说明:如果在此级别下开机启动,就不再显示其关机顺序了

6开机自动执行某个命令配置文件

[root@xuegod64rc3.d]#ll/etc/rc.locallrwxrwxrwx.1rootroot13Dec18/etc/rc.local->rc.d/rc.local[root@xuegod64rc3.d]#vim/etc/rc.d/rc.local#打开rc.local配置文件touch/var/lock/subsys/local#touch为给某个文件加锁[root@xuegod64rc3.d]#ll/var/lock/subsys-rw-r--r--.1rootroot0Feb708:47vsftpd#重启ftp服务会重新生成这个文件。

【例】

#vim/etc/rc.d/rc.local#添加touch/var/lock/subsys/vsftpd#chkconfigvsftpdoff#把vsftpd服务设置为开机不启动#reboot#servicevsftpdstatusvsftpddeadbutsubsyslocked#说明现在vsftp是一个锁定状态#servicevsftpdrestart#重启动ftp服务即可更新subsys下的vsftp文件#servicevsftpdstatusvsftpd(pid2100)isrunning...

补充:删除subsys下的文件后查看状态(servicevsftpdstatus),并不会影响查看运行的状态。

7运行mingetty,打开tty1-6

[root@xuegod64rc3.d]#ps-axu|grepmingWarning:badsyntax,perhapsabogus'-'?See/usr/share/doc/procps-3.2.8/FAQroot23460.00.04116548tty2Ss+20:550:00/sbin/mingetty/dev/tty2root23480.00.04116548tty3Ss+20:550:00/sbin/mingetty/dev/tty3root23500.00.04116544tty4Ss+20:550:00/sbin/mingetty/dev/tty4root23520.00.04116544tty5Ss+20:550:00/sbin/mingetty/dev/tty5root23540.00.04116544tty6Ss+20:550:00/sbin/mingetty/dev/tty6

三、grubbios加密及破解、系统修复

1设置grub密码

[root@xuegod63~]#grub-md5-crypt#生成md5类型的密钥Password:123456Retypepassword:123456$1$oaqo5$3d/cmTosm68jTw6o1wCu31[root@localhostinit]#vim/boot/grub/grub.conf#打开配置文件添加md5串码#boot=/dev/sdadefault=0timeout=5splashp_w_picpath=(hd0,0)/grub/splash.xpm.gzhiddenmenupassword--md5$1$oaqo5$3d/cmTosm68jTw6o1wCu31titleRedHatEnterpriseLinux(2.6.32-220.el6.x86_64)root(hd0,0)

如图:

重启测试:

编辑grub时,需要按下p键,然后输入密码:123456

2grub被加密怎么破解

进入救援模式bash-4.1#chroot/mnt/sysp_w_picpathsh-4.1#vim/boot/grub/grub.conf

3BIOS加密如何破解

(1)如何加密

security--->setsupervisorpassword

(2)破解密码

物理机:扣电池,让bios恢复出场设置

虚拟机:找到虚拟机安装位置,有个“XXX.nvram”后缀名的文件,删除即可

4系统故障,忘记root用户的密码

解决方法:

(1)重启系统进入单用户模式grub界面按任意键,干预启动过程。

e按键,编辑启动时内核介绍的选项,增加“1”。

enter和b按键,按照修改过的选项启动操作系统。

(2)把下图中的x去掉,然后reboot就可以,再次使用root进入密码,就不需要输入密码。

进入系统passwd就可以修改root,删去“X”

5系统无法正常启动

1错误的引导级别

注意:配置文件/etc/inittab正常使用3或5级别

先进入单用户模式,然后修改启动级别

比如系统无限重启,一般都是配置文件里面的启动级别被修改成了6

2fstab文件被篡改

先输入root密码

(Repairfilesystem)#mount-oremount,rw/(Repairfilesystem)#ll/dev/disk/by-uuid(Repairfilesystem)#vim/etc/fstab

3bash丢失

1、重启不了,只能强制关机

2、进入救援模式

注意:要安装bash并且指定/在/mnt/sysp_w_picpath这个目录下

bash-4.1#rpm-ivh/mnt/sysp_w_picpath/var/ftp/pub/Packages/bash...--force--nodeps--root/mnt/sysp_w_picpath

4grub相关文件丢失

(1)如果是bootloader丢失

以下是为了创造一个实验grub丢失的环境

先备份出来

[root@localhostDesktop]#ddif=/dev/sdaof=/root/mbr.bpbs=512count=1

对其进行破坏

[root@localhost~]#ddif=/dev/zeroof=/dev/sdabs=446count=1

只能对/dev/sda写入446B写多了分区表也会被破坏

进入救援模式,安装grub

bash-4.1#chroot/mnt/sysp_w_picpathsh-4.1#grub-install/dev/sda

(2)如果stage2丢失

进入救援模式,重新安装grub软件包

bash-4.1#rpm-ivh/mnt/sysp_w_picpath/var/ftp/pub/Packages/grub...--force--root/mnt/sysp_w_picpathbash-4.1#chroot/mnt/sysp_w_picpathsh-4.1#grub-install/dev/sda#查看是否有stage2Stage2借助于grub.conf

(3)grub.conf丢失

grub>root(hd0,0)grub>kernel/vmlinuz...roroot=/dev/sda2grub>initrd/initramfs....grub>boot进入系统后手动写grub.conf配置文件Default=0Timeout=5TitlemylinuxRoot(hd0,0)Kernel/vmlinuzroroot=/dev/sda2#这里写根挂载点Initrd/initramfs

四、进入救援模式步骤:

例:当系统坏了,进不去了。进入救援模式拷贝数据(类似Windows里的PE系统一样)

以光盘引导:

ramfs:内存文件系统

chroot/mnt/sysp_w_picpath#切换文件系统根

挂载优盘:#mount–tntfs/dev/sda/opt(如果先插入u盘再启动救援模式,就会先读u盘为sda,具体可用df命令查看)

#cp/etc/shadow/opt#ls/opt

五、系统故障处理

1忘记root用户的密码

解决方法:重启系统进入单用户模式,然后重设密码

grub界面按任意键,干预启动过程。

e按键,编辑启动时内核介绍的选项,增加“1”。

enter和b按键,按照修改过的选项启动操作系统。

把下图中的x去掉,然后reboot就可以,再次使用root进入密码,就不需要输入密码。

进入系统passwd就可以修改root。

2livecd的使用

2.1无法写入新的文件,提示“…:设备上没有空间”

2.2部分程序无法运行,甚至系统无法启动

故障原因:

2.1:磁盘空间已被大量的数据占满,空间耗尽

2.1:虽然还有可用空间,但文件数i节点耗尽

解决方案:

1.清理磁盘空间,删除无用、冗余的文件

2.转移或删除占用大量i节点的琐碎文件

3.进入单用户模式、救援模式进行修复或删除文件

3综合排错练习

删除

/boot/*/etc/fstab/etc/rc.d/*1.rm-rf/boot/*2.rm-rf/etc/fstab3.rm-rf/etc/rc.d/*

内核丢失

进入救援模式

提示识别不到linux分区,fstab这个文件损坏

通过fdisk-l可以得出:

带*的分区是引导分区(/dev/sda1挂载到boot),/dev/sda2是/分区

手动挂载/分区

修复fstab文件

现在提示变了,提示我可以直接chroot/mnt/sysp_w_picpath

boot目录下是空的

vmlinuz-...initramfs-...grub都没了

先强制安装内核

安装grub

手动创建grub.conf配置文件

重启,登录系统,主机名丢失

/etc/rc.d/rc.sysinit有个功能是设置主机名的

rpm-qf/etc/rc.d/rc.sysinit查看文件对应的安装包

rpm-ql查看安装包生成哪些文件

重启检查系统

学神-IT-教育51cto技术交流群:468845589快来上我们公开课吧!

学神MK老师:1273815479

学神ZY老师:3054384936

学神教育学神VIP-1508-旭斌整理提供

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。