Linux下启动程序常见问题,linux系统启动流程及常见故障解决方式
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?#?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行指的是啟動級別)#關機
11?#???1?-?Single?user?mode#單用戶模式??通常用于維護系統
12?#???2?-?Multiuser,?without?NFS?(The?same?as?3,?if?you?do?not?have?networking)
#多用戶模式?但是無網絡
13?#???3?-?Full?multiuser?mode#多用戶模式(字符界面)
14?#???4?-?unused#用戶定義??,未定義情況下與3級別相同
15?#???5?-?X11#圖形界面
16?#???6?-?reboot?(Do?NOT?set?initdefault?to?this)#系統重啟
17?#
18?id:3:initdefault:
#第一列表示表示怎么表示無所謂????第二列表示啟動級別??第三列表示動作??第四列
表示參數???如果級別列無任何標示表示任何級別????該句話表示默認啟動級別為三
19
20?#?System?initialization.
21?si::sysinit:/etc/rc.d/rc.sysinit
#參考十八行??第一列表示標示???第二列無表示?代表進入任何級別都要執行該指令????第三行表示動作??表示進行初始化???第四行表示執行/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
#參考十八行???最后一個數字表示將此數字傳遞給/etc/rc.d/rc腳本
如傳遞3那么就會執行/etc/rc.d/rc3.d
30
31?#?Trap?CTRL-ALT-DELETE
32?ca::ctrlaltdel:/sbin/shutdown?-t3?-r?now
#參考十八行?表示在任何級別下都可以使用ctrl+alt+del執行/sbin/shutdown?-r表示關機并重新啟動系統,默認三秒后立即執行
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"
#系統斷電后?執行/sbin/shutdown?-h表示關機之后不重新啟動-f表示重新啟動不執行fsck?2分鐘之后執行??并顯示?提示信息
39
40?#?If?power?was?restored?before?the?shutdown?kicked?in,?cancel?it.
41?pr:12345:powerokwait:/sbin/shutdown?-c?"Power?Restored;?Shutdown?Cancelled"
#電力恢復之后取消已經運行的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??表示產生字符終端??共六個字符終端respawn表示再生的意思??即當前的終端注銷后??仍然在一個終端里
51
52?#?Run?xdm?in?runlevel?5
53?x:5:respawn:/etc/X11/prefdm?-nodaemon
~
~-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
~啟動故障:
可分為兩大階段:
1.系統引導扇區MBR出現問題
2.Grub菜單出現問題
1.模擬MBR扇區出現故障
創建一個文件覆蓋整個硬盤
[root@localhost?~]#?dd??if=/dev/zero??of=/dev/sda???bs=446??count=1
MBR扇區被覆蓋?引導程序抹掉了
解決方式:
重建MBR用可安裝光盤引導
在此界面下進入急救模式輸入linux??resuce
選擇語言
鼠標鍵盤類型
是否啟動網絡功能??沒有必要
關于急救模式的提示硬盤將會掛載在/mnt/p_w_picpath
提示將./mnt/sysp_w_picpath當做系統根目錄使用chroot指令指定硬盤的根目錄#chroot???/mnt/sysp_w_picpath
修復分區表??執行grup指令#grub
1.先指明引導系統??執行root指令
#root?(hd0,0)??(第一塊硬盤,第一塊分區)
2.執行setup可以幫助重新建mbr#setuo??hd0
執行一次quit兩次exit系統進行重新啟動
二.GRUB引導菜單出現故障
查看/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#默認操作系統
11?timeout=5#超時時間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)#標簽
15?????????root?(hd0,0)#引導分區MBR
16?????????kernel?/vmlinuz-2.6.18-164.el5?ro?root=LABEL=/?rhgb?quiet
#內核文件位置??以只讀方式進行?系統啟動后根目錄變成文件系統的根quiet靜默
17?????????initrd?/initrd-2.6.18-164.el5.img#驅動
故障一.
故障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直接啟動表明第二階段有問題
指明引導分區#root(hd0,0)??(第一塊硬盤,第一塊分區)
grub>help可以查看可以執行的指令
查看根目錄grup?>?find?/
執行kernel??/vmlinuz-2.6-164.e15??ro??root=/dev/sda2?quit
Initrd?/initrd-2.6.18-164.e15.img
執行完成后啟動???grub>boot
啟動完成
進入系統后使用grub-install產生二階段的其他文件
--------------------------------------------------------------------------------
[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文件丟失需重新編寫
重啟:
故障二??/boot目錄下的所有內容被刪
a.刪除/boot下的所有內容rm???-rf??/boot/*
b.重啟
c.進入bios設置??將光驅設置為首先啟動
d.進入救援模式:linux??rescue
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.內核安裝完成之后我們安裝grub????grub-install???/dev/sda
j.再次查看/boot目錄下的內容
k.查看grub的內容發現缺少grub.conf重新編寫grub.conf
#cd??/boot/grub/#touch???grub.conf#vim?grub.conf
l.兩次exit退出重啟??重啟要設置bios為硬盤啟動
故障三?刪除了/grub下的內容
依據故障二重復第a.c.e.j.l即可
故障四:文件系統表改變
vim??/etc/fstab
如果誤操作其中一個例如
重新啟動后會出現
輸入管理員密碼
編輯vim??/etc/fstab
重新掛載?mount?-o?remount??/??然后再編輯
重啟
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Linux下启动程序常见问题,linux系统启动流程及常见故障解决方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中柏平板u盘启动_中柏电脑如何设置BIO
- 下一篇: AndroidStudio 3.4更新了