Linux系统中启动的流程:
1.加载bios的硬件信息以及进行自我检测并根据设置取得第一个启动的设备
2.若以硬盘方式引导读取并执行引导扇区MBR
3.加载grub(引导程序)启动菜单(/\)
4.+加载内核(以只读方式进行挂载)
5.挂载根目录系统启动init进程(所有进程的鼻祖)
6.读取/etc/inittab配置文件
7.执行/etc/rc.d/rc.sysint脚本
8.根据/etc/initab文件下的启动级别执行/etc/rc.d/rc下的脚本
9.执行/etc/rc.d/rc.local(开机脚本期望开机自动执行的指令可以放在这个脚本里)
分析/etc/inittab文件
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1#
2#inittabThisfiledescribeshowtheINITprocessshouldsetup
3#thesysteminacertainrun-level.
4#
5#Author:MiquelvanSmoorenburg,
6#ModifiedforRHSLinuxbyMarcEwingandDonnieBarnes
7#
8
9#Defaultrunlevel.TherunlevelsusedbyRHSare:
10#0-halt(DoNOTsetinitdefaulttothis)#(10-16行指的是启动级别)#关机
11#1-Singleusermode#单用户模式通常用于维护系统
12#2-Multiuser,withoutNFS(Thesameas3,ifyoudonothavenetworking)
#多用户模式但是无网络
13#3-Fullmultiusermode#多用户模式(字符界面)
14#4-unused#用户定义,未定义情况下与3级别相同
15#5-X11#图形界面
16#6-reboot(DoNOTsetinitdefaulttothis)#系统重启
17#
18id:3:initdefault:
#第一列表示表示怎么表示无所谓第二列表示启动级别第三列表示动作第四列
表示参数如果级别列无任何标示表示任何级别该句话表示默认启动级别为三
19
20#Systeminitialization.
21si::sysinit:/etc/rc.d/rc.sysinit
#参考十八行第一列表示标示第二列无表示代表进入任何级别都要执行该指令第三行表示动作表示进行初始化第四行表示执行/etc/rc.d/rc.sysinit脚本
22
23l0:0:wait:/etc/rc.d/rc0
24l1:1:wait:/etc/rc.d/rc1
24l1:1:wait:/etc/rc.d/rc1
25l2:2:wait:/etc/rc.d/rc2
26l3:3:wait:/etc/rc.d/rc3
27l4:4:wait:/etc/rc.d/rc4
28l5:5:wait:/etc/rc.d/rc5
29l6:6:wait:/etc/rc.d/rc6
#参考十八行最后一个数字表示将此数字传递给/etc/rc.d/rc脚本
如传递3那么就会执行/etc/rc.d/rc3.d
30
31#TrapCTRL-ALT-DELETE
32ca::ctrlaltdel:/sbin/shutdown-t3-rnow
#参考十八行表示在任何级别下都可以使用ctrl+alt+del执行/sbin/shutdown-r表示关机并重新启动系统,默认三秒后立即执行
33
34#WhenourUPStellsuspowerhasfailed,assumewehaveafewminutes
35#ofpowerleft.Scheduleashutdownfor2minutesfromnow.
36#Thisdoes,ofcourse,assumeyouhavepowerdinstalledandyour
37#UPSconnectedandworkingcorrectly.
38pf::powerfail:/sbin/shutdown-f-h+2"PowerFailure;SystemShuttingDown"
#系统断电后执行/sbin/shutdown-h表示关机之后不重新启动-f表示重新启动不执行fsck2分钟之后执行并显示提示信息
39
40#Ifpowerwasrestoredbeforetheshutdownkickedin,cancelit.
41pr:12345:powerokwait:/sbin/shutdown-c"PowerRestored;ShutdownCancelled"
#电力恢复之后取消已经运行的shutdown指令并提示信息
42
43
44#Rungettysinstandardrunlevels
451:2345:respawn:/sbin/mingettytty1
462:2345:respawn:/sbin/mingettytty2
473:2345:respawn:/sbin/mingettytty3
484:2345:respawn:/sbin/mingettytty4
495:2345:respawn:/sbin/mingettytty5
506:2345:respawn:/sbin/mingettytty6
#/sbin/mingetty表示产生字符终端共六个字符终端respawn表示再生的意思即当前的终端注销后仍然在一个终端里
51
52#Runxdminrunlevel5
53x:5:respawn:/etc/X11/prefdm-nodaemon
~
~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
~启动故障:
可分为两大阶段:
1.系统引导扇区MBR出现问题
2.Grub菜单出现问题
1.模拟MBR扇区出现故障
创建一个文件覆盖整个硬盘
[root@localhost~]#ddif=/dev/zeroof=/dev/sdabs=446count=1
MBR扇区被覆盖引导程序抹掉了
解决方式:
重建MBR用可安装光盘引导
在此界面下进入急救模式输入linuxresuce
选择语言
鼠标键盘类型
是否启动网络功能没有必要
关于急救模式的提示硬盘将会挂载在/mnt/p_w_picpath
提示将./mnt/sysp_w_picpath当做系统根目录使用chroot指令指定硬盘的根目录#chroot/mnt/sysp_w_picpath
修复分区表执行grup指令#grub
1.先指明引导系统执行root指令
#root(hd0,0)(第一块硬盘,第一块分区)
2.执行setup可以帮助重新建mbr#setuohd0
执行一次quit两次exit系统进行重新启动
二.GRUB引导菜单出现故障
查看/boot/grub
[root@localhost~]#ll/boot/grub
在所有文件中最为重要的是grub.conf文件
----------------------------------------------------------------------------------------------------------------------
1#grub.confgeneratedbyanaconda
2#
3#Notethatyoudonothavetorerungrubaftermakingchangestothisfile
4#NOTICE:Youhavea/bootpartition.Thismeansthat
5#allkernelandinitrdpathsarerelativeto/boot/,eg.
6#root(hd0,0)
7#kernel/vmlinuz-versionroroot=/dev/sda2
8#initrd/initrd-version.img
9#boot=/dev/sda
10default=0#默认操作系统
11timeout=5#超时时间5s
12splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz#grub菜单背景图片
13hiddenmenu
14titleRedHatEnterpriseLinuxServer(2.6.18-164.el5)#标签
15root(hd0,0)#引导分区MBR
16kernel/vmlinuz-2.6.18-164.el5roroot=LABEL=/rhgbquiet
#内核文件位置以只读方式进行系统启动后根目录变成文件系统的根quiet静默
17initrd/initrd-2.6.18-164.el5.img#驱动
故障一.
故障1.删除了grub.conf
[root@localhost~]#rm/boot/grub/grub.conf
rm:removeregularfile`/boot/grub/grub.conf'?y
[root@localhost~]#cd/boot/grub
重启
Grub直接启动表明第二阶段有问题
指明引导分区#root(hd0,0)(第一块硬盘,第一块分区)
grub>help可以查看可以执行的指令
查看根目录grup>find/
执行kernel/vmlinuz-2.6-164.e15roroot=/dev/sda2quit
Initrd/initrd-2.6.18-164.e15.img
执行完成后启动grub>boot
启动完成
进入系统后使用grub-install产生二阶段的其他文件
--------------------------------------------------------------------------------
[root@localhost~]#grub-install
install_devicenotspecified.
Usage:grub-install[OPTION]install_device
InstallGRUBonyourdrive.
-h,--helpprintthismessageandexit
-v,--versionprinttheversioninformationandexit
--root-directory=DIRinstallGRUBp_w_picpathsunderthedirectoryDIR
#指明这些文件的目录
insteadoftherootdirectory
--grub-shell=FILEuseFILEasthegrubshell
--no-floppydonotprobeanyfloppydrive
--force-lbaforceGRUBtouseLBAmodeevenforabuggy
BIOS
--recheckprobeadevicemapevenifitalreadyexists
Thisflagisunreliableanditsuseis
stronglydiscouraged.
INSTALL_DEVICEcanbeaGRUBdevicenameorasystemdevicefilename.
grub-installcopiesGRUBp_w_picpathsintotheDIR/bootdirectoryspecfiedby
--root-directory,andusesthegrubshelltoinstallgrubintotheboot
sector.
Reportbugsto.
[root@localhost~]#grub-install--root-directory=/boot/grub/dev/sda
Grub.conf文件丢失需重新编写
重启:
故障二/boot目录下的所有内容被删
a.删除/boot下的所有内容rm-rf/boot/*
b.重启
c.进入bios设置将光驱设置为首先启动
d.进入救援模式:linuxrescue
e.使用chroot指令切换到硬盘的目录Chroot/mnt/sysp_w_picpath
f.切换到boot目录并查看内容cd/boot&&ls
g.挂载光驱Mount/dev/hdc/mnt
h.安装内核内核安装完成后会自动安装initrd
Rpm-ivh--force/mnt/Server/kernel-2.6.18-164.e15.i686.rpm
i.内核安装完成之后我们安装grubgrub-install/dev/sda
j.再次查看/boot目录下的内容
k.查看grub的内容发现缺少grub.conf重新编写grub.conf
#cd/boot/grub/#touchgrub.conf#vimgrub.conf
l.两次exit退出重启重启要设置bios为硬盘启动
故障三删除了/grub下的内容
依据故障二重复第a.c.e.j.l即可
故障四:文件系统表改变
vim/etc/fstab
如果误操作其中一个例如
重新启动后会出现
输入管理员密码
编辑vim/etc/fstab
重新挂载mount-oremount/然后再编辑
重启
如果觉得《Linux下启动程序常见问题 linux系统启动流程及常见故障解决方式》对你有帮助,请点赞、收藏,并留下你的观点哦!