Linux下启动程序常见问题,linux系统启动流程及常见故障解决方式
Linux系統(tǒng)中啟動(dòng)的流程:
1.加載bios的硬件信息以及進(jìn)行自我檢測(cè)??并根據(jù)設(shè)置取得第一個(gè)啟動(dòng)的設(shè)備
2.若以硬盤(pán)方式引導(dǎo)??讀取并執(zhí)行引導(dǎo)扇區(qū)?MBR
3.加載grub(引導(dǎo)程序)啟動(dòng)菜單(/\)
4.+加載內(nèi)核(以只讀方式進(jìn)行掛載)
5.掛載根目錄系統(tǒng)??啟動(dòng)init進(jìn)程(所有進(jìn)程的鼻祖)
6.讀取/etc/inittab配置文件
7.執(zhí)行/etc/rc.d/rc.sysint腳本
8.根據(jù)/etc/initab文件下的啟動(dòng)級(jí)別執(zhí)行/etc/rc.d/rc下的腳本
9.執(zhí)行/etc/rc.d/rc.local(開(kāi)機(jī)腳本??期望開(kāi)機(jī)自動(dòng)執(zhí)行的指令可以放在這個(gè)腳本里)
分析/etc/inittab文件
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1?#
2?#?inittab???????This?file?describes?how?the?INIT?process?should?set?up
3?#???????????????the?system?in?a?certain?run-level.
4?#
5?#?Author:???????Miquel?van?Smoorenburg,?
6?#???????????????Modified?for?RHS?Linux?by?Marc?Ewing?and?Donnie?Barnes
7?#
8
9?#?Default?runlevel.?The?runlevels?used?by?RHS?are:
10?#???0?-?halt?(Do?NOT?set?initdefault?to?this)#(10-16行指的是啟動(dòng)級(jí)別)#關(guān)機(jī)
11?#???1?-?Single?user?mode#單用戶模式??通常用于維護(hù)系統(tǒng)
12?#???2?-?Multiuser,?without?NFS?(The?same?as?3,?if?you?do?not?have?networking)
#多用戶模式?但是無(wú)網(wǎng)絡(luò)
13?#???3?-?Full?multiuser?mode#多用戶模式(字符界面)
14?#???4?-?unused#用戶定義??,未定義情況下與3級(jí)別相同
15?#???5?-?X11#圖形界面
16?#???6?-?reboot?(Do?NOT?set?initdefault?to?this)#系統(tǒng)重啟
17?#
18?id:3:initdefault:
#第一列表示表示怎么表示無(wú)所謂????第二列表示啟動(dòng)級(jí)別??第三列表示動(dòng)作??第四列
表示參數(shù)???如果級(jí)別列無(wú)任何標(biāo)示表示任何級(jí)別????該句話表示默認(rèn)啟動(dòng)級(jí)別為三
19
20?#?System?initialization.
21?si::sysinit:/etc/rc.d/rc.sysinit
#參考十八行??第一列表示標(biāo)示???第二列無(wú)表示?代表進(jìn)入任何級(jí)別都要執(zhí)行該指令????第三行表示動(dòng)作??表示進(jìn)行初始化???第四行表示執(zhí)行/etc/rc.d/rc.sysinit腳本
22
23?l0:0:wait:/etc/rc.d/rc?0
24?l1:1:wait:/etc/rc.d/rc?1
24?l1:1:wait:/etc/rc.d/rc?1
25?l2:2:wait:/etc/rc.d/rc?2
26?l3:3:wait:/etc/rc.d/rc?3
27?l4:4:wait:/etc/rc.d/rc?4
28?l5:5:wait:/etc/rc.d/rc?5
29?l6:6:wait:/etc/rc.d/rc?6
#參考十八行???最后一個(gè)數(shù)字表示將此數(shù)字傳遞給/etc/rc.d/rc腳本
如傳遞3那么就會(huì)執(zhí)行/etc/rc.d/rc3.d
30
31?#?Trap?CTRL-ALT-DELETE
32?ca::ctrlaltdel:/sbin/shutdown?-t3?-r?now
#參考十八行?表示在任何級(jí)別下都可以使用ctrl+alt+del執(zhí)行/sbin/shutdown?-r表示關(guān)機(jī)并重新啟動(dòng)系統(tǒng),默認(rèn)三秒后立即執(zhí)行
33
34?#?When?our?UPS?tells?us?power?has?failed,?assume?we?have?a?few?minutes
35?#?of?power?left.??Schedule?a?shutdown?for?2?minutes?from?now.
36?#?This?does,?of?course,?assume?you?have?powerd?installed?and?your
37?#?UPS?connected?and?working?correctly.
38?pf::powerfail:/sbin/shutdown?-f?-h?+2?"Power?Failure;?System?Shutting?Down"
#系統(tǒng)斷電后?執(zhí)行/sbin/shutdown?-h表示關(guān)機(jī)之后不重新啟動(dòng)-f表示重新啟動(dòng)不執(zhí)行fsck?2分鐘之后執(zhí)行??并顯示?提示信息
39
40?#?If?power?was?restored?before?the?shutdown?kicked?in,?cancel?it.
41?pr:12345:powerokwait:/sbin/shutdown?-c?"Power?Restored;?Shutdown?Cancelled"
#電力恢復(fù)之后取消已經(jīng)運(yùn)行的shutdown指令??并提示信息
42
43
44?#?Run?gettys?in?standard?runlevels
45?1:2345:respawn:/sbin/mingetty?tty1
46?2:2345:respawn:/sbin/mingetty?tty2
47?3:2345:respawn:/sbin/mingetty?tty3
48?4:2345:respawn:/sbin/mingetty?tty4
49?5:2345:respawn:/sbin/mingetty?tty5
50?6:2345:respawn:/sbin/mingetty?tty6
#/sbin/mingetty??表示產(chǎn)生字符終端??共六個(gè)字符終端respawn表示再生的意思??即當(dāng)前的終端注銷后??仍然在一個(gè)終端里
51
52?#?Run?xdm?in?runlevel?5
53?x:5:respawn:/etc/X11/prefdm?-nodaemon
~
~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
~啟動(dòng)故障:
可分為兩大階段:
1.系統(tǒng)引導(dǎo)扇區(qū)MBR出現(xiàn)問(wèn)題
2.Grub菜單出現(xiàn)問(wèn)題
1.模擬MBR扇區(qū)出現(xiàn)故障
創(chuàng)建一個(gè)文件覆蓋整個(gè)硬盤(pán)
[root@localhost?~]#?dd??if=/dev/zero??of=/dev/sda???bs=446??count=1
MBR扇區(qū)被覆蓋?引導(dǎo)程序抹掉了
解決方式:
重建MBR用可安裝光盤(pán)引導(dǎo)
在此界面下進(jìn)入急救模式輸入linux??resuce
選擇語(yǔ)言
鼠標(biāo)鍵盤(pán)類型
是否啟動(dòng)網(wǎng)絡(luò)功能??沒(méi)有必要
關(guān)于急救模式的提示硬盤(pán)將會(huì)掛載在/mnt/p_w_picpath
提示將./mnt/sysp_w_picpath當(dāng)做系統(tǒng)根目錄使用chroot指令指定硬盤(pán)的根目錄#chroot???/mnt/sysp_w_picpath
修復(fù)分區(qū)表??執(zhí)行g(shù)rup指令#grub
1.先指明引導(dǎo)系統(tǒng)??執(zhí)行root指令
#root?(hd0,0)??(第一塊硬盤(pán),第一塊分區(qū))
2.執(zhí)行setup可以幫助重新建mbr#setuo??hd0
執(zhí)行一次quit兩次exit系統(tǒng)進(jìn)行重新啟動(dòng)
二.GRUB引導(dǎo)菜單出現(xiàn)故障
查看/boot/grub
[root@localhost?~]#?ll?/boot/grub
在所有文件中最為重要的是grub.conf文件
----------------------------------------------------------------------------------------------------------------------
1?#?grub.conf?generated?by?anaconda
2?#
3?#?Note?that?you?do?not?have?to?rerun?grub?after?making?changes?to?this?file
4?#?NOTICE:??You?have?a?/boot?partition.??This?means?that
5?#??????????all?kernel?and?initrd?paths?are?relative?to?/boot/,?eg.
6?#??????????root?(hd0,0)
7?#??????????kernel?/vmlinuz-version?ro?root=/dev/sda2
8?#??????????initrd?/initrd-version.img
9?#boot=/dev/sda
10?default=0#默認(rèn)操作系統(tǒng)
11?timeout=5#超時(shí)時(shí)間5s
12?splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz#grub菜單背景圖片
13?hiddenmenu
14?title?Red?Hat?Enterprise?Linux?Server?(2.6.18-164.el5)#標(biāo)簽
15?????????root?(hd0,0)#引導(dǎo)分區(qū)MBR
16?????????kernel?/vmlinuz-2.6.18-164.el5?ro?root=LABEL=/?rhgb?quiet
#內(nèi)核文件位置??以只讀方式進(jìn)行?系統(tǒng)啟動(dòng)后根目錄變成文件系統(tǒng)的根quiet靜默
17?????????initrd?/initrd-2.6.18-164.el5.img#驅(qū)動(dòng)
故障一.
故障1.刪除了grub.conf
[root@localhost?~]#?rm??/boot/grub/grub.conf
rm:?remove?regular?file?`/boot/grub/grub.conf'??y
[root@localhost?~]#?cd??/boot/grub
重啟
Grub直接啟動(dòng)表明第二階段有問(wèn)題
指明引導(dǎo)分區(qū)#root(hd0,0)??(第一塊硬盤(pán),第一塊分區(qū))
grub>help可以查看可以執(zhí)行的指令
查看根目錄grup?>?find?/
執(zhí)行kernel??/vmlinuz-2.6-164.e15??ro??root=/dev/sda2?quit
Initrd?/initrd-2.6.18-164.e15.img
執(zhí)行完成后啟動(dòng)???grub>boot
啟動(dòng)完成
進(jìn)入系統(tǒng)后使用grub-install產(chǎn)生二階段的其他文件
--------------------------------------------------------------------------------
[root@localhost?~]#?grub-install
install_device?not?specified.
Usage:?grub-install?[OPTION]?install_device
Install?GRUB?on?your?drive.
-h,?--help??????????????print?this?message?and?exit
-v,?--version???????????print?the?version?information?and?exit
--root-directory=DIR????install?GRUB?p_w_picpaths?under?the?directory?DIR
#指明這些文件的目錄
instead?of?the?root?directory
--grub-shell=FILE???????use?FILE?as?the?grub?shell
--no-floppy?????????????do?not?probe?any?floppy?drive
--force-lba?????????????force?GRUB?to?use?LBA?mode?even?for?a?buggy
BIOS
--recheck???????????????probe?a?device?map?even?if?it?already?exists
This?flag?is?unreliable?and?its?use?is
strongly?discouraged.
INSTALL_DEVICE?can?be?a?GRUB?device?name?or?a?system?device?filename.
grub-install?copies?GRUB?p_w_picpaths?into?the?DIR/boot?directory?specfied?by
--root-directory,?and?uses?the?grub?shell?to?install?grub?into?the?boot
sector.
Report?bugs?to?.
[root@localhost?~]#?grub-install??--root-directory=/boot/grub??/dev/sda
Grub.conf文件丟失需重新編寫(xiě)
重啟:
故障二??/boot目錄下的所有內(nèi)容被刪
a.刪除/boot下的所有內(nèi)容rm???-rf??/boot/*
b.重啟
c.進(jìn)入bios設(shè)置??將光驅(qū)設(shè)置為首先啟動(dòng)
d.進(jìn)入救援模式:linux??rescue
e.使用chroot指令切換到硬盤(pán)的目錄Chroot??/mnt/sysp_w_picpath
f.切換到boot目錄并查看內(nèi)容cd??/boot?&&?ls
g.掛載光驅(qū)Mount?????/dev/hdc??/mnt
h.安裝內(nèi)核??內(nèi)核安裝完成后會(huì)自動(dòng)安裝initrd
Rpm??-ivh??--force??/mnt/Server/kernel-2.6.18-164.e15.i686.rpm
i.內(nèi)核安裝完成之后我們安裝grub????grub-install???/dev/sda
j.再次查看/boot目錄下的內(nèi)容
k.查看grub的內(nèi)容發(fā)現(xiàn)缺少grub.conf重新編寫(xiě)grub.conf
#cd??/boot/grub/#touch???grub.conf#vim?grub.conf
l.兩次exit退出重啟??重啟要設(shè)置bios為硬盤(pán)啟動(dòng)
故障三?刪除了/grub下的內(nèi)容
依據(jù)故障二重復(fù)第a.c.e.j.l即可
故障四:文件系統(tǒng)表改變
vim??/etc/fstab
如果誤操作其中一個(gè)例如
重新啟動(dòng)后會(huì)出現(xiàn)
輸入管理員密碼
編輯vim??/etc/fstab
重新掛載?mount?-o?remount??/??然后再編輯
重啟
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的Linux下启动程序常见问题,linux系统启动流程及常见故障解决方式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 中柏平板u盘启动_中柏电脑如何设置BIO
- 下一篇: linux编写复制脚本程,常用的Shel