root@localhost ~]# vim /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, <[email protected]>
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)
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
15 # 5 - X11
16 # 6 - reboot (Do NOT set initdefault to this)
17 #
18 id:3:initdefault: 進入3級別執行這個動作,init要進行工作的時候,預設情況下進入3級別
19
20 # System initialization.
21 si::sysinit:/etc/rc.d/rc.sysinit 進入任何級別執行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
25 l2:2:wait:/etc/rc.d/rc 2
26 l3:3:wait:/etc/rc.d/rc 3 預設是3級別,因此會執行這一行,把3作為引數傳遞給rc這個指令碼。最後的結果會進入rc3.d這個目錄。
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
30
31 # Trap CTRL-ALT-DELETE
32 ca::ctrlaltdel:/sbin/shutdown -t3 -r now 無論在哪一種級別下使用者都可以使用ctrl-alt-del來啟動機器,這樣很危險,所以在用的時候最好把它禁用掉。
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" 交流電失敗後,一般重要的伺服器都是用一些後備電源的(UPS)。當伺服器檢測到交流電沒了,後備電源已經通上了,然後開始向主機上登入的所有使用者去傳送指令:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down
39
40 # If power was restored before the shutdown kicked in, cancel it.
41 pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled" 當電源恢復了,取消關機指令。
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 產生字元終端,在2345級別都是6個終端。Respawn表示再生的意思,只要終端一登出,還會產生一個終端。
51
52 # Run xdm in runlevel 5
53 x:5:respawn:/etc/X11/prefdm -nodaemon
53,1 Bot
開機指令碼: /etc/rc.d/rc.local 希望自動執行的一些指令可以編輯在這個檔案裡。
啟動時故障排除:
啟動的時候,故障往往表現在grub的第一階段和第二階段。
第一階段:就是在MBR的446B可能會出現問題,一旦出現問題後面的grub選單根本看不到。
第二階段:如果沒有grub選單的話,就無法選擇作業系統,所以第二階段往往是它的配置檔案和說明檔案。而第一階段純粹就是程式,所以這兩個階段是最容易出現問題的。
現在模擬第一階段出現問題的情況:
將載入程式覆蓋掉,重啟一下(重啟之前斷開與光碟的連線)
重啟:
硬碟進不了引導,進而用PXE進行網路引導。出現這種情況需要重建MBR,重建MBR
要先使用光碟引導進去:
出現瞭如上介面,這時不要回車,回車就成了安裝了。這時候輸入linux rescue 進入急救模式,利用引導光碟來進入急救模式。
如果說能夠找到系統的話,將會把系統掛載到/mnt/sysimage目錄下。上面提示系統已經被掛載到/mnt/sysimage/目錄下,進去之後需要chroot /mnt/sysimage,把/mnt/sysimage這個目錄作為根目錄
使用grub指令重建MBR裡面的446B。
指明引導系統:這裡面支援Tab鍵
root(hd0,0)
之後再執行
setup(hd0):MBR是針對一塊盤的,所以寫hd0,表示第一塊盤。
setup是grub裡面的一個子程式,它可以用於幫助重建第一階段和第二階段。
執行好之後,輸入quit退出,執行兩次exit之後將會自動進行啟動。
grub引導第二階段主要生成了很多檔案,這些檔案在/boot/grub/目錄下:
[root@Device-8C324C ~]# ll /boot/grub/
total 234
-rw-r--r-- 1 root root 63 Dec 21 05:06 device.map
-rw-r--r-- 1 root root 7584 Dec 21 05:06 e2fs_stage1_5
-rw-r--r-- 1 root root 7456 Dec 21 05:06 fat_stage1_5
-rw-r--r-- 1 root root 6720 Dec 21 05:06 ffs_stage1_5
-rw------- 1 root root 598 Dec 21 05:06 grub.conf
-rw-r--r-- 1 root root 6720 Dec 21 05:06 iso9660_stage1_5
-rw-r--r-- 1 root root 8192 Dec 21 05:06 jfs_stage1_5
lrwxrwxrwx 1 root root 11 Dec 21 05:06 menu.lst -> ./grub.conf
-rw-r--r-- 1 root root 6880 Dec 21 05:06 minix_stage1_5
-rw-r--r-- 1 root root 9248 Dec 21 05:06 reiserfs_stage1_5
-rw-r--r-- 1 root root 32428 Jan 5 2007 splash.xpm.gz
-rw-r--r-- 1 root root 512 Dec 21 05:06 stage1 第一階段的描述資訊 共512B
-rw-r--r-- 1 root root 104988 Dec 21 05:06 stage2 stage2的描述資訊,stage2主要包含了列出來的這些檔案。
-rw-r--r-- 1 root root 7072 Dec 21 05:06 ufs2_stage1_5
-rw-r--r-- 1 root root 6272 Dec 21 05:06 vstafs_stage1_5
-rw-r--r-- 1 root root 8904 Dec 21 05:06 xfs_stage1_5
所以第二階段可以理解為在/boot/grub/目錄下生成了很多檔案。第一階段主要是程式,第二階段主要是一些配置和說明檔案。配置檔案中最重要的是/etc/grub.conf
模擬/boot/grub/grub.conf檔案丟失的情況:
重啟時,發現已經啟動了grub,當看到這種資訊的時候,說明第二階段失效了,問題就是缺少了說明檔案或者是配置檔案,所以才造成無法啟動。(出現這種情況的時候要使用命令啟動第二階段,使用help可以檢視命令)
這就是靠指令將它啟動起來,如果不是靜默模式,螢幕上會出現一堆資訊。
成功啟動後,要手工建立這個第二階段的配置檔案,直接靠指令來啟動的話會產生第二階段的其他檔案,但是這個配置檔案是不會產生的。
使用指令來產生grub第二階段的其他檔案:
#grub-install -root-directory=/ /dev/sda
建grub第一階段的步驟:
grub
root (hd0,0)
setup (hd0)
模擬(把/boot/grub/目錄刪了,意味著第二階段裡面的所有說明檔案配置檔案都沒有了。實驗前記得備份)
載入grub1.5,上面表示載入到grub1.5階段的時候起不來,找不到第二階段的檔案。像這種情況,只能使用急救模式。用光碟引導的時候發現光碟引導不了,說明這個階段是硬碟在引導。硬碟在引導,說明第一階段沒有問題。可以在虛擬機器的CMOS裡面設定硬碟引導。設定成光碟引導,接著進入急救模式
/boot/grub/目錄下的檔案生成成功,但是沒有grub.conf這個檔案。由於是光碟引導的,所以先把光碟去了再退出。這時就是以硬碟的方式來引導。
起來之後再為它建立一個grub.conf就可以了。接著再重啟試一下。
grub是一個載入程式,分為兩階段。第一階段就在主引導記錄的446個位元組裡面,第二階段就在grub目錄下。一個完整的程式少了一段肯定是不行的。
所以說:一階段實際上是靠grub裡面的一個子命令叫setup來建立。二階段要使用grub-install來建立。
除了遇到這種一類故障、二類故障之外,有時候還有一種比較常見的故障:
還有一種故障是:只要在引導過程當中牽扯到的一些檔案,在編譯的過程中可能會出現
一些故障。
比如/etc/fstab(檔案系統表,這裡面表明了每一個要掛載的分割槽,若誤操作了,這個檔案又是引導的時候要用的檔案)
能走到這一步,說明grub一階段和二階段都是沒有問題的。
提示輸入root密碼進入維護,或者按Control-D繼續來啟動,
進入維護模式 修改/etc/fstab 但是提示只讀,所以這時候要將根重新掛載一次:
root@localhost ~]# vim /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, <[email protected]>
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)
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
15 # 5 - X11
16 # 6 - reboot (Do NOT set initdefault to this)
17 #
18 id:3:initdefault: 進入3級別執行這個動作,init要進行工作的時候,預設情況下進入3級別
19
20 # System initialization.
21 si::sysinit:/etc/rc.d/rc.sysinit 進入任何級別執行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
25 l2:2:wait:/etc/rc.d/rc 2
26 l3:3:wait:/etc/rc.d/rc 3 預設是3級別,因此會執行這一行,把3作為引數傳遞給rc這個指令碼。最後的結果會進入rc3.d這個目錄。
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
30
31 # Trap CTRL-ALT-DELETE
32 ca::ctrlaltdel:/sbin/shutdown -t3 -r now 無論在哪一種級別下使用者都可以使用ctrl-alt-del來啟動機器,這樣很危險,所以在用的時候最好把它禁用掉。
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" 交流電失敗後,一般重要的伺服器都是用一些後備電源的(UPS)。當伺服器檢測到交流電沒了,後備電源已經通上了,然後開始向主機上登入的所有使用者去傳送指令:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down
39
40 # If power was restored before the shutdown kicked in, cancel it.
41 pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled" 當電源恢復了,取消關機指令。
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 產生字元終端,在2345級別都是6個終端。Respawn表示再生的意思,只要終端一登出,還會產生一個終端。
51
52 # Run xdm in runlevel 5
53 x:5:respawn:/etc/X11/prefdm -nodaemon
53,1 Bot
開機指令碼: /etc/rc.d/rc.local 希望自動執行的一些指令可以編輯在這個檔案裡。
啟動時故障排除:
啟動的時候,故障往往表現在grub的第一階段和第二階段。
第一階段:就是在MBR的446B可能會出現問題,一旦出現問題後面的grub選單根本看不到。
第二階段:如果沒有grub選單的話,就無法選擇作業系統,所以第二階段往往是它的配置檔案和說明檔案。而第一階段純粹就是程式,所以這兩個階段是最容易出現問題的。
現在模擬第一階段出現問題的情況:
將載入程式覆蓋掉,重啟一下(重啟之前斷開與光碟的連線)
重啟:
硬碟進不了引導,進而用PXE進行網路引導。出現這種情況需要重建MBR,重建MBR
要先使用光碟引導進去:
出現瞭如上介面,這時不要回車,回車就成了安裝了。這時候輸入linux rescue 進入急救模式,利用引導光碟來進入急救模式。
如果說能夠找到系統的話,將會把系統掛載到/mnt/sysimage目錄下。上面提示系統已經被掛載到/mnt/sysimage/目錄下,進去之後需要chroot /mnt/sysimage,把/mnt/sysimage這個目錄作為根目錄
使用grub指令重建MBR裡面的446B。
指明引導系統:這裡面支援Tab鍵
root(hd0,0)
之後再執行
setup(hd0):MBR是針對一塊盤的,所以寫hd0,表示第一塊盤。
setup是grub裡面的一個子程式,它可以用於幫助重建第一階段和第二階段。
執行好之後,輸入quit退出,執行兩次exit之後將會自動進行啟動。
grub引導第二階段主要生成了很多檔案,這些檔案在/boot/grub/目錄下:
[root@Device-8C324C ~]# ll /boot/grub/
total 234
-rw-r--r-- 1 root root 63 Dec 21 05:06 device.map
-rw-r--r-- 1 root root 7584 Dec 21 05:06 e2fs_stage1_5
-rw-r--r-- 1 root root 7456 Dec 21 05:06 fat_stage1_5
-rw-r--r-- 1 root root 6720 Dec 21 05:06 ffs_stage1_5
-rw------- 1 root root 598 Dec 21 05:06 grub.conf
-rw-r--r-- 1 root root 6720 Dec 21 05:06 iso9660_stage1_5
-rw-r--r-- 1 root root 8192 Dec 21 05:06 jfs_stage1_5
lrwxrwxrwx 1 root root 11 Dec 21 05:06 menu.lst -> ./grub.conf
-rw-r--r-- 1 root root 6880 Dec 21 05:06 minix_stage1_5
-rw-r--r-- 1 root root 9248 Dec 21 05:06 reiserfs_stage1_5
-rw-r--r-- 1 root root 32428 Jan 5 2007 splash.xpm.gz
-rw-r--r-- 1 root root 512 Dec 21 05:06 stage1 第一階段的描述資訊 共512B
-rw-r--r-- 1 root root 104988 Dec 21 05:06 stage2 stage2的描述資訊,stage2主要包含了列出來的這些檔案。
-rw-r--r-- 1 root root 7072 Dec 21 05:06 ufs2_stage1_5
-rw-r--r-- 1 root root 6272 Dec 21 05:06 vstafs_stage1_5
-rw-r--r-- 1 root root 8904 Dec 21 05:06 xfs_stage1_5
所以第二階段可以理解為在/boot/grub/目錄下生成了很多檔案。第一階段主要是程式,第二階段主要是一些配置和說明檔案。配置檔案中最重要的是/etc/grub.conf
模擬/boot/grub/grub.conf檔案丟失的情況:
重啟時,發現已經啟動了grub,當看到這種資訊的時候,說明第二階段失效了,問題就是缺少了說明檔案或者是配置檔案,所以才造成無法啟動。(出現這種情況的時候要使用命令啟動第二階段,使用help可以檢視命令)
這就是靠指令將它啟動起來,如果不是靜默模式,螢幕上會出現一堆資訊。
成功啟動後,要手工建立這個第二階段的配置檔案,直接靠指令來啟動的話會產生第二階段的其他檔案,但是這個配置檔案是不會產生的。
重啟:
使用指令來產生grub第二階段的其他檔案:
#grub-install -root-directory=/ /dev/sda
建grub第一階段的步驟:
grub
root (hd0,0)
setup (hd0)
模擬(把/boot/grub/目錄刪了,意味著第二階段裡面的所有說明檔案配置檔案都沒有了。實驗前記得備份)
載入grub1.5,上面表示載入到grub1.5階段的時候起不來,找不到第二階段的檔案。像這種情況,只能使用急救模式。用光碟引導的時候發現光碟引導不了,說明這個階段是硬碟在引導。硬碟在引導,說明第一階段沒有問題。可以在虛擬機器的CMOS裡面設定硬碟引導。設定成光碟引導,接著進入急救模式
/boot/grub/目錄下的檔案生成成功,但是沒有grub.conf這個檔案。由於是光碟引導的,所以先把光碟去了再退出。這時就是以硬碟的方式來引導。
起來之後再為它建立一個grub.conf就可以了。接著再重啟試一下。
grub是一個載入程式,分為兩階段。第一階段就在主引導記錄的446個位元組裡面,第二階段就在grub目錄下。一個完整的程式少了一段肯定是不行的。
所以說:一階段實際上是靠grub裡面的一個子命令叫setup來建立。二階段要使用grub-install來建立。
除了遇到這種一類故障、二類故障之外,有時候還有一種比較常見的故障:
還有一種故障是:只要在引導過程當中牽扯到的一些檔案,在編譯的過程中可能會出現
一些故障。
比如/etc/fstab(檔案系統表,這裡面表明了每一個要掛載的分割槽,若誤操作了,這個檔案又是引導的時候要用的檔案)
能走到這一步,說明grub一階段和二階段都是沒有問題的。
提示輸入root密碼進入維護,或者按Control-D繼續來啟動,
進入維護模式 修改/etc/fstab 但是提示只讀,所以這時候要將根重新掛載一次: