日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Linux 開機程序之研討( 二 )


## 成 swap 的 device 全部啟動 .

/sbin/swapon -a


## 喔 ! 下面這個指令 update 就很重要了 , 它負責(zé)每隔一段固定的時間 , 就將
## buffer 中的資料 , 利用 sync 寫回磁碟機上 , 并將 superblock 做 update
## 的動作 . 使用 ps 這個指令看看有那些 process , 就可看到 update 還有一個
## bdflush , 這兩個 process 都是必然要存在的 , 可不要隨便砍掉 , 要不然 ,
## 萬一系統(tǒng) crash 了 , 那磁碟機里面的資料就不是最新的了 ......

/sbin/update &


## 利用 echo -n >> 制造一個檔案 , 并用 rm -f 這個檔案來測試 root partition
## 是不是 read-only 或者是可讀寫

READWRITE=no
if echo -n >> "Testing filesystem status"; then
rm -f "Testing filesystem status"
READWRITE=yes
fi


## 假如 root partition 是 read-only 就作 fsck 的動作 , 假如不是 read-only
## 而是 read-write 的話 , 就做下面 else 之後的動作

if [ ! $READWRITE = yes ]; then
## 利用 fsck 做檢查及修復(fù)檔案系統(tǒng)的工作 , 後面接的兩個參數(shù) -A , -a .
## -A 的意思是 : fsck 會依據(jù) /etc/fstab 中的記錄 , 去檢查所有的檔案
## 系統(tǒng) ; 而 -a 就是 auto 的意思 , 當(dāng) fsck 有修復(fù)的動作時 , 它不會問
## 你問題 , 而直接修復(fù) .

/sbin/fsck -A -a


## 假如 fsck 有 error , [ $? -gt 1 ] 括號里面的意思是 : 若上個命令的
## 傳回值大於 1 , 而上個命令就是 fsck . 讓我們看看 fsck 的傳回值 :
##0;- No errors
##1;- File system errors corrected
##2;- File system errors corrected, system should
##; be rebooted if file system was mounted
##4;- File system errors left uncorrected
##8;- Operational error
##16- Usage or syntax error
##128; - Shared library error
## 很明顯的 , 若有任何錯誤產(chǎn)生的話 , 那 fsck 的傳回值都大於 1 . 其實
## 就我的觀點認為 , 應(yīng)該寫成 if [ $? -ge 1 ] 比較好 . 既然有錯呢 , 系統(tǒng)
## 應(yīng)該就要跳至單人模式 , 在單人模式中主要就是 /etc/rc.d/rc.K
## 中的兩件事 : 關(guān)掉 swap 及 卸下所有的檔案系統(tǒng) , 而最後重新 login .
## 一般正常的情況下 ,; if 下面這一大段是不會執(zhí)行的 , 而會跳至下面
## 標(biāo)有 *************************; Normal 1; ************************* 處

if [ $? -gt 1 ] ; then
echo
echo
echo "**************************************"
echo "fsck returned error code - REBOOT NOW!"
echo "**************************************"
echo
echo
/bin/login
fi

## ******************************; Normal 1; **************************
## 當(dāng) fsck 檢查沒有錯誤之後 , 就把 root partition 重新 mount 上來
## 下面指令的參數(shù)有三個 , -w 代表mount 成可讀寫 , -n 代表把一個 file-
## system mount 上來 , 但不會把記錄寫到 /etc/mtab 中 , 在上次對 /etc/mtab
## 介紹時有提到 , 當(dāng)我們使用 mount 這個指令把一個 filesystem mount 上來
## 的時候 , /etc/mtab 就會記錄 ! 利用 -n 這個 option 可使得做 mount 的動
## 作 , 卻不會記錄 . -o 後面可以接許多的選項 , 在這里 , 我們給它的選項是
## remount . remount 的意思是 : 重新 mount 一個已經(jīng)被 mount 的 filesystem
## 這個選項通常被用來改變該 filesystem 的讀寫旗號 ,尤其是把 filesystem
## 從 read-only 的狀態(tài) , 改變成 read-write 的狀態(tài) .

echo "Remounting root device with read-write enabled."
/sbin/mount -w -n -o remount /


## 在前面的情況中 , 都是 root partition 為 read-only 的狀態(tài)下 , 所做的一些
## 工作 , 到了最後一個指令 /sbin/mount -w -n -o remount / , 才把 root
## partition mount 成 read-write . 各位有沒有看到前面那行 :
## if [ ! $READWRITE = yes ]; then ..... 下面這個 else 就是與這個 if 對應(yīng)
## 也就是說 , 前面那個 if 的區(qū)塊中 , 所作的工作都是在 root partition 為
## read-only 的條件成立下所作的事 , 那很明顯的 , 下面這個 else 就是 root

推薦閱讀