作者 主題: 請較懂shell script瞧瞧!! 不正常reboot  (閱讀 5104 次)

0 會員 與 1 訪客 正在閱讀本文。

...

  • 酷學園旁聽生
  • 俺是博士!
  • *****
  • 文章數: 5607
    • 檢視個人資料
請較懂shell script瞧瞧!! 不正常reboot
« 於: 2002-01-04 17:19 »
>>我覺得應該沒那麼容易﹐因為那時候還在開機的初期階段﹐還沒將 / remount 為 >>r/w 呢
它在這個階段的確是還沒mount起來!!
但它的確是靠這隻script-->rc.sysinit 在判斷要不要開進去或是等在這外面su root

>>真要動這部份﹐恐怕需要修改開機程式。不過﹐抱歉﹐我真的不知道如何修改呢
應該不用改boot的部份唷!!.. 你只要稍稍看看rc.sysinit因為判斷式根本就是它在判斷
只是shell傳回值的問題.... fsck傳回"1"所以停著等....
但我只要進command mode #後下 fsck -y /dev/hdxx 再reboot就ok了!
所以若我改成 initlog -c "fsck -T -a -y $fsckoptions /"這樣的話...
可以解決我要解決的問題嗎???

我引上來大家瞧瞧~~
=================rc.sysinit ================
_RUN_QUOTACHECK=0
ROOTFSTYPE=`grep " / " /proc/mounts | awk '{ print $3 }'`
if [ -z "$fastboot" -a "$ROOTFSTYPE" != "nfs" ]; then

STRING=$"Checking root filesystem"
//這裡開始Check囉!!
echo $STRING
initlog -c "fsck -T -a $fsckoptions /"
^^^^^^^^^^^^^^^^^^^它的-a是自動修若我再加 -y有用嗎?
########## initlog -c "fsck -T -a -y $fsckoptions /" <--降子!

rc=$?
^^^^^^^^^^^如果這樣的話傳回值就應該會是0囉!! 因為加上 -y的參數,我這樣想有對嗎??? 比較懂script的人來瞧瞧吧!! 我不想讓service又停在su了!!

if [ "$rc" = "0" ]; then
success "$STRING"
echo
elif [ "$rc" = "1" ]; then
passed $"$STRING"
echo
fi

# A return of 2 or higher means there were serious problems.
if [ $rc -gt 1 ]; then
failure "$STRING"
echo
echo
echo $"*** An error occurred during the file system check."
echo $"*** Dropping you to a shell; the system will reboot"
echo $"*** when you leave the shell."

PS1=$"(Repair filesystem) # # "; export PS1
sulogin

echo $"Unmounting file systems"
umount -a
mount -n -o remount,ro /
echo $"Automatic reboot in progress."
reboot -f
elif [ "$rc" = "1" ]; then
_RUN_QUOTACHECK=1
fi
fi