Chinaunix首页 | 论坛 | 博客
  • 博客访问: 25882
  • 博文数量: 25
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: -10
  • 用 户 组: 普通用户
  • 注册时间: 2017-05-25 14:48
文章分类

全部博文(25)

文章存档

2006年(25)

我的朋友

分类: LINUX

2006-09-09 11:35:40

開機和關機誰不會哦﹖哈哈﹐不一定哦~~~

您或許會發現安裝完 Linux 之後﹐原來的 Windws 開機畫面不見了﹗那~~ 怎麼回去啊﹖

不知道不緊要啦。當機器開著之後﹐在您看到 RedHat 的開機選單﹐移動上下方向鍵選擇您要進入的系統就可以了﹔如果您這時候按 Ctl+X 鍵﹐則會得到 LILO Boot: 的提示(後面我們提到‘單人模式’的時候會用到)﹐然後按 Tab 鍵﹐也可以看到開機的各項選擇。假如您的系統是按照前面的例子進行安裝的話﹐應該會看到 Linux 和 win(您在安裝時所取的名稱) 這兩項。如果要進入 Linux﹐可以輸入 Linux 再 Enter﹐或直接按 Enter(因為此例中 Linux 被選擇為預設系統了)﹔如果您要進入 Windows﹐可以輸入 win 再按 Enter。

tips﹕如果您原來的系統是 NT 的話﹐有一個要注意的地方﹐就是﹕當增加 Linux partition 之後﹐ 原先 NT 看到的 partition number 或許會有所變更﹐這需要修改 c:/boot.ini 才可以糾正過來。修改的時候﹐基本上您無需理會各句子前面的號碼﹐將 partition( ) 中的號碼換換試試﹐直到可以開機為止。

剛纔提到的 LILO﹐是 Linux 安裝在機器上面的系統載入程式﹐取名於 LInux LOader 的前兩個字母的組合。根據我們在安裝的時候所選擇﹐目前 LILO 安裝在系統的 MBR (Master Boot Record)﹐也就是開機磁碟的第一個 Cylinder 之第一個 Sector 之上。MBR 所存放的 loader﹐是用來告訴機器在啟動之後要載入那個系統﹐和到哪裡載入。除了 LILO 之外﹐其實我們也有許多其它 loader 可以選擇﹐例如 NT 的 NT Loader﹑System Commander﹑Boot Magic﹑以及國人所寫的 spfdisk﹑等等。假如您已經採用別的 loader 而不是 LILO﹐那您在安裝的時候﹐就要確定您的 LILO 是裝在 /boot partition (所謂的 super block)上面而不是 MBR (後面我會介紹用 NT loader 來載入 Linux 的方法)。無論您用哪個 loader﹐也不管 LILO 裝在 MBR 還是 supper block﹐在一些新的大容量硬碟上面(通常超過 8G)﹐要注意 /boot 分區所在位置不要超過 1024 磁柱的範圍。不過﹐新的 Linux 啟動程式都允許超出這個限制﹐只需確定磁碟使用 LBA 模式﹐以及在 LILO 上使用 lba32 選項就可以了(這個以後我們在談到 LILO 的設定時再說明)。

tips﹕假如您的 Linux 開機分區裝在 slave 硬碟之上﹐開機的時候可能會遇到麻煩﹐請儘量避免。如果您真的必須如此﹐可以參考 Juniko 兄的文章﹕
 撰寫於郵件 news:3hBdkI$B8w@bbs.kimo.com.tw...
> ※ 引述《NoEMail@NoWay.org (Harrier Knight)》之銘言:
> >  lilo 你說了這段話:
> > >           問題解決了...
> > >           就只是linux不可以放在第二個ide上
> > 這是目前 LILO 的限制吧?
> 
> 嗯, 我目前是放在第二顆(hdd) IDE 上, boot 也在 hdd 上
> 
> 稍微修改一下 lilo.conf
> 
> 加入
> 
> disk=/dev/hdd
>        bios=0x81 # 本來 hdd ,lilo 會讀成 0x82, 中間裝了兩台 Cdrom
>                  # Why? i don't know, 我試著改成 0x80 也不行, 所以
>                  # 我猜0x81 指的是第二顆 IDEHD
>                  # 以此類推, 第四顆 IDEHD 應該改成 0x83, 因為我沒有
>                  # 第四顆 HD, 所以沒辦法 test
> 
> disk=/dev/hda
>        bios=0x80 #需不需要設定 /dev/hda 我不是很確定,
>                  #因為一開始就設了, 也沒移除試過
(假如您還不會修改 lilo.conf﹐那就等日後我們介紹完 vi 和 LILO 的時候再回來不遲。)

有些朋友﹐在碰到多重系統安裝的時候﹐會覺得有些疑惑﹐或許只是對 OS loader 不甚了解而已﹐單純將安裝順序換成﹕先 windows 後 linux 就可以了。

為什麼﹖那要知道各 OS 放在 MBR 裡面的 loader 能力了。一般的 OS loader﹐都會提供開機選單﹐讓您選擇用什麼系統開機﹐以及開機系統放在硬碟的什麼位置上。比如﹐linux 的 LILO 就有這個功能﹕它除了開 linux 之外﹐還提供一個選單﹐給您開Windows。但 windows 的 loader 卻不然﹐它的 loader 只能開 windows 而不讓您有選單開 linux。(真是不公平哦~~)

而 OS loader 一般都放在 MBR 位置上﹐也就是第一個 cylinder 的第一個 sector 上面﹐這樣﹐系統順利通過 BIOS 之後﹐就會到這裡讀入硬碟的開機資訊﹐也就是載入loader 。在 MBR 上面﹐每次只能放一個 loader﹐如果您先放 windows 的 loader﹐然後放 linux 的﹐MBR 的 loader 就變成是 LILO﹐那您就有一個選單來選擇開機系統。如果先灌 linux 再 windows﹐那 MBR 的 loader 是 windows 的﹐因而沒有選單選擇﹐只能進入 windows。

不過﹐Linux 的 LILO﹐除了放在 MBR 之外﹐還可以放在 boot 的 partition 上面的第一個 block﹐也就是所謂的 superblock是也。那您在安裝的時候﹐就要將 LILO 裝在 boot 的 partition 上面﹔或是修改 /etc/lilo.conf ﹐將 boot=hda 改成boot=hda2 (假設您的 boot partition 是在 hda2 上面)﹐然後再執行 lilo 命令就可以完成。

假如您真的將 LILO 裝在 superblock 上面﹐那您在 MBR 上面的 loader 必須有能力提供選單﹐而且能夠告訴系統到哪裡找到 LILO。抱歉﹐windows 的 loader 都沒有這個能力。其它諸如 partition magic 或 spfdisk 之類的 loader﹐則有這個功能﹐但前提條件是﹕您的 LILO 要裝在 superblock 上面。

當您在 LILO 選擇 Linux之後﹐您會看到一大堆開機過程的報告﹐有興趣可以逐行看看(假如您眼睛夠快的話)。如果開機過程卡在某些服務上面而等上好幾分鐘的話﹐可能您的網路設定不正確﹐最常見的問題是 /etc/hosts 或 DNS沒設定好。為避免這些情況﹐請確定機器在開機的時候﹐啟動程式能夠能連得上指定的伺服器地址。

最終﹐您會看到 Login: 的提示﹐如果您的 X window 在安裝的時候設定好了﹐那麼登錄畫面會是圖形界面的。這時候您可以用 ‘ root ’進行登錄﹐然後輸入您在安裝時設定的 root 密碼。之後﹐整個 Linux系統就是您的啦﹗

tips﹕不過﹐任何時候﹐我們都不鼓勵直接用 root 登錄﹐因為它的權限太大﹐會在系統安全上構成威脅。我們通常是用普通用戶進行登錄(也就是安裝的時候所設定的帳號)﹐然後真的碰到系統設定的時候﹐才用 susudo 命令切換為 root 身份執行。不過﹐這裡的例子﹐大部份是教您設定伺服器的﹐通常都需要 root 來執行﹐只是日後換到真正的工作系統之後﹐就請儘量避免用 root 來工作了。

至於機器如何從啟動到成功載入﹐如果我們對這個過程了解的話﹐相信在日後的管理﹐或遇到問題的時候會非常有幫助。下面不妨讓我們看看 Linux 的開機過程和其中的一些選項。

系統的初始化步驟粗略如下﹕

  1. 首先﹐當電源打開之後﹐機器會首先經過 POST 檢查﹐然後從 CMOS 載入 BIOS﹐以確定最基本的硬體架構﹐如時鐘和硬碟資訊等。

  2. 然後會找到 MBR﹐載入 boot loader﹐以確定啟動哪一個作業系統。

  3. 當作業系統選定之後﹐LOADER 會告訴機器到那裡載入作業系統的核心程式。

    tips﹕關於 LILO 這個開機管理程式﹐本身的開機提示符號就非常有學問﹐不妨參考下面這篇錄自新聞群組的文章﹕
    "繼續頹廢"  撰寫於郵件 news:41243S$2vw@Terry.Dorm11.NCTU.edu.tw...
    > ※ 引述《fllow.bbs@bbs.mgt.ncu.edu.tw (無雨的夏天)》之銘言:
    > > 灌完 Redhat 7.3 後, 沒有任何錯誤訊息
    > > 重開機後只見 LI 就當機了
    > > 請問是何問題.
    > > 似乎在哪有見過類似的說明
    > > L 後當機
    > > LI 後當機
    > > LIL 後當機
    > > 謝謝..
    > 
    > LILO 啟動訊息
    > 
    > 當LILO自行載入時,它會顯示LILO一字。在執行某些特定的動作之前或之後會
    > 列印每一個字母。如果LILO在某一點失敗,則目前為止已印出的字母可用來識
    > 別問題。
    > 
    > 請注意,如果發生暫態磁碟問題,則在第一個"L"之後可插入某些十六進位數字。
    > 除非LILO在該點停止,產生無限的錯誤碼串流,這種十六進位數字不表示伺服器
    > 問題。
    > 
    > [無]
    > - 未載入 LILO 的任何部件。 LILO 不是未安裝就是其啟動區段所在的分割區
    > 不在作用中。
    > 
    > L [錯誤] ...
    > - 第一階段啟動載入程式已載入並啟動,但是它無法載入第二階段啟動載入程式。
    > 二位數字錯誤碼指出問題的類型。 這種狀況通常表示媒體失效或幾何不符
    > (例如,磁碟參數無效)。
    > 
    > LI
    > - 第一階段啟動載入程式已能夠載入第二階段啟動載入程式,但是無法加以執行。
    > 這可能是由於幾何不符或是沒有執行 map 安裝程式而移動 /boot/boot.b所導致。
    > 
    > LIL
    > - 第二階段啟動載入程式已啟動,但是它無法從映射檔載入描述子表格。這通常是
    > 由於媒體失效或幾何不符所導致。
    > 
    > LIL?
    > - 在不正確的位址載入了第二階段啟動載入程式。這通常是由於細微的幾何不符或
    > 是沒有執行 map 安裝程式而移動 /boot/boot.b 所導致。
    > 
    > LIL-
    > - 描述子表格訛誤。這可能是由於幾何不符或是沒有執行 map 安裝程式而移動
    > /boot/map 所導致。LILO 已順利載入 LILO 的所有部件。
    

  4. 當核心程式載入之後﹐機器基本上就交由核心處理了。核心程式首先要載入檔案系統﹐然後第一個執行的程式就是 init (它是所有程式的 parrent )﹐init 的第一個動作是找到 /etc/rc.d/rc.sysinit 並執行之。

  5. 這個 rc.sysinit 程式首先是執行 /sbin/initlog 並輸出 $LOGLEVEL 變數﹐以決定記錄檔的信息量。

  6. 接著檢查 /dev/.devfsd 和 /sbin/devfsd 這兩個檔案﹐以決定系統是否使用 devfs 。

  7. 然後設定 PATH 環境。

  8. 然後檢查 /etc/sysconfig/network 檔是否存在﹐然則根據設定檔設定網路環境﹐否則用 localhost 命名系統。

  9. 再來是執行 /etc/rc.d/init.d/functions 這隻 script ﹐以提供其後的 shell 程式所使用的一些變數和功能。

  10. 然後載入 keymap﹐按照您安裝時指定的鍵盤資訊來確定您的鍵盤類型。

  11. 執行 /sbin/setsysfont 來設定系統使用的字型。

  12. 啟動系統的置換(swap)空間。至此﹐系統之主機名稱(hostname)和網域名稱(domain)﹐將作為環境變數的依據。

  13. 然後 rc.sysinit 會檢查 /fsckoptions 這個檔是否存在﹐然則﹐會改變這個檔的中的一個變數值﹔如果 /forcefsck 檔案存在的話﹐就會在這個變數值前面增加一個旗標﹐這樣會導致後面的步驟強迫系統對檔案系統進行檢查。

  14. 接下來﹐會檢查 /fastboot 是否存在﹐然則﹐系統會略過檔案系統的檢查步驟﹔否則﹐系統會對 / ( 也就是 root) 進行一個完整的檢查。

  15. 之後﹐系統會執行 mount -t proc /proc /proc 命令﹐為核心掛載一個特殊的檔案系統﹐它完全建立在記憶體之上。每次關機都會消失﹐而每次開機才被建立。其中的資料﹐純粹是給核心使用的﹐其中一些設定﹐會根據系統設定檔進行配置。

  16. 完成這個動作之後﹐接下來是對 Plug and Play 設備的檢測。如果經過特別設定﹐還會執行 isapnp 程式來檢查 ISA 類型的 PnP 設備。

  17. 現在﹐檔案系統的 / 才掛載為完整的讀和寫模式﹐並更新 quota 資訊﹐同時在 / 上面實施 quota 限制。

  18. 再來呢﹐系統會清掉 IN_INITLOG 變數﹐如果 /etc/HOSTNAME 檔不存在﹐則將 HOSTNAME 的變數值作為該檔的內容。

  19. 再來是清空 mtab﹐並將 / 檔案系統和 /proc 置於其中。系統通常根據 /etc/fstab 來判定要掛載的檔案系統在哪裡﹐而 mtab 是一個檔案﹐算是從 /etc/fstab 提煉出來真正給系統使用的版本吧。

  20. 然後﹐系統會載入一系列的核心模組。一旦完成﹐除非前面的 /fastboot 存在﹐否則系統會對 / 之外的所有檔案系統進行檢查。除了 NFS 之外﹐所有分區都會完成掛載﹐並且非 / 分區的 quota 也會打開。

  21. 到這裡﹐系統會砍掉一些檔案﹐以清理這次啟動﹐同時也是為下次啟動作準備。前面提到的 /fastboot 和檔案系統檢查選項都會清掉﹐同時﹐ /var/lock 其下的一些 lock 檔也會移除﹐/var/run 裡面的陳舊行程 ID 也會砍掉﹐更多在 /tmp 裡面的 lock 檔也會砍光。這樣﹐rc.sysinit 可以說為系統安排好一切了﹕設定好系統時鐘﹑啟用置換空間﹑載入相應模組﹑並根據 /etc/sysconfig/desktop 來決定 X 系統使用的視窗管理系統(除非使用者另行設定)。

  22. 關於 rc.sysinit 在啟動過程中所顯示的所有信息﹐都會存放到 /var/log/dmesg 裡面去。

  23. 此時﹐rc.sysinit 已經完成準備工作﹐並將系統交還 /sbin/init 程式﹐然後根據 /etc/inittab 選擇預設的 run level (這個容後解釋)﹐以決定執行哪些服務程式。具體要執行的程式﹐按照 /etc/rc.d/rcX.d/ ( X 代表不同的 run level 號碼)目錄裡面的 script 內容而定。而最後一個要執行的 script﹐則是 /etc/rc.d/rc.local 。並執行 /sbin/loglevel 以確定系統的記錄等級(級別越高﹐記錄越詳細)。

    Tips﹕在 /etc/rc.d/ 目錄下的 rc.local﹐有點像 DOS 裡面的 autoexec.bat ﹐如果您有哪些在開機的時候需要執行的系統設定﹐可以將命令行﹐或 script 寫在這裡。比方說﹐您在用別台機器 telnet 進來的時候﹐會看到機器目前的作業系統資訊(這或許對別有用心的人非常有用)﹐您單純以為修改 /etc/issue.net 的內容就可以解決掉﹔但發現重新開機之後﹐檔案又復原了。呵~~ 這就是 rc.local 搞的鬼啦﹕當您修改好 issue.net 之後﹐還不要忘記修改 rc.loal 這個檔﹐將其中一行 cp -f /etc/issue /etc/issue.net 註解起來。

  24. 最後﹐init 將系統交由 login 程式接管﹐正式完成開機使命。

以上就是大致的開機流程﹐其中我省略了許多步驟﹐如果您有興趣研究的話﹐不妨深入追蹤一下 /etc/rc.d/rc.sysinit 這個檔案。

Tip﹕有時候您不正常關機﹐會造成檔案損毀的現像﹐系統在開機的時候會嘗試自動修復。如果自動修復不成功﹐則會停下來要您輸入 root 密碼﹐執行 fsck 程式進行手工修復。

您要知道有問題的 partiton 是那一個(幾個)﹖比方說您現在碰到 / 有問題﹐假設它在 /dev/hda6 上面﹐那您就輸入﹕

fsck /dev/hda6

然後要回答許多問題﹐一直按 y 就是了﹔如果您不想按 y ﹐那就輸入﹕

fsck -y /dev/hda6

不過﹐小心哦﹕有時候第一個問題可能告訴您一些警告﹐然後說按 y 進行 cancel﹐那您就只好第一個按 n﹐然後逐個按 y 了。

假如您對上面的描述不是很理解﹐不用擔心﹐儘可略過您不懂的對方﹐等日後對系統有更充份的了解之後﹐再回來重拾靈感好了。不過﹐對開機過程的了解程度﹐會影像到您日後的系統管理和調整技巧﹐尤其是在進行除錯的時候。建議您最好將開機過程了解透切一些﹐是絕對有百利而無一害的。

好了﹐前面提到過 這個詞﹐究竟是什麼東東呢﹖嗯﹐如果您以前玩過 DOS﹐為不同游戲設定過不同的開機環境﹐或許比較容易了解。要不然﹐您可以簡單的認為﹕run level 就是不同的系統啟動配置﹐不同的 run level 會讓系統執行不同的服務和設定﹐最後獲得的環境和功能也不一樣。系統每次開機﹐只能進入其中一個 run level 而已﹐您可以在 LILO 提示的時候指定要進入哪個 level (或是在啟動時看到紅色的 RedHat 文字時按 i 鍵)﹐也可以調整 /etc/inittab 的設定來指定系統的預設 level (號碼)。不同的廠商﹐其 run leve 的號碼不太一樣﹐如果以 RedHat 為例﹐號碼所代表的 run level 如下﹕

  • Level 0﹕關機
  • Level 1﹕單人模式
  • Level 2﹕多人模式﹐沒有網路功能
  • Level 3﹕完整多人模式﹐文字界面
  • Level 4﹕保留
  • Level 5﹕完整多人模式﹐圖形界面
  • Level 6﹕重新開機

以上這些號碼﹐分別對應不同的系統配置。在 /etc/inittab 檔案中﹐您會找到一行句子如﹕

id:5:initdefault: 

其中的數字 5 所代表的就是系統預設的 run level﹐這裡就是圖形界面﹐當您的系統完成啟動之後﹐您會看到 X window 的登錄畫面。如果您要將預設界面換成文字模式﹐那只要將 5 換為 3 就可以﹐這樣下次開機就會進入文字界面﹔當然﹐如果您換成 0 的話﹐那每次啟動完畢就會關機﹐這可不好玩哦~~~

有時候﹐因為系統的設定錯誤﹐或是檔案損壞﹐您可能必須進入單人模式進行一些維護工作。比方說﹐您的 root 密碼忘了﹐那您可以到 LILO 提示那裡(開機選單按 Ctl+X)﹐然後輸入﹕

linux -s

這樣啟動完成後就會進入 run level 1﹐這裡您是無須登錄就具備 root 權限的了﹐然後您輸入 passwd root 就可以重新設定 root 的密碼了。不過﹐這個便利也變成一個系統的安全問題。此時﹐如何確保您的系統不被外人實體上接觸到就顯得非常重要了﹐否則﹐別人只要重新啟動機器就可以為所欲為了。小心小心﹗如果您想在單人模式中也需要密碼檢驗﹐那可以修改 /etc/inittab 這個檔案﹐在 si:: sysinit:... 那行句子後面另外增加一行設定﹕

修改前﹕
si::sysinit:/etc/rc.d/rc.sysinit

修改後﹕
si::sysinit:/etc/rc.d/rc.sysinit
~~:S:wait:/sbin/sulogin

不過﹐這樣您就一定不能將 root 密碼忘記囉~~~ ^_^

tips﹕您還可以修改 lilo.conf﹐加上密碼﹐這樣別人選好 LILO 選單之後﹐只有知道密碼才能載入(不過﹐如果您想要執行遠端重開機的話﹐有麻煩)。這部份留待日後我們談到 lilo.conf 的時候再介紹吧。不過﹐有經驗的用戶﹐還是知道如何用其它辦法進行開機的啦。所以﹐實體上的安全還是至關重要的。

另外﹐有些系統預設上並不使用 LILO 而使用另一套名為 GRUB 的開機管理程式來載入核心。要進入單人模式的方法和 LILO 有所不同﹐基本的步驟如下﹕

1﹐移動方向鍵選擇正確的 Linux 選單後 按"e" 
2﹐再選擇以 kernel 開頭的句子(通常為二行)﹐再按"e" 
3﹐並將游標移到該行行尾﹐並輸入一個空白鍵和" -s" 
4﹐按Enter 
5﹐按"b"就能進入單人模式

如果您已經在一個 run level 裡面了﹐這時候要換到另一個 level 去﹐除了重新開機之外﹐您也可以直接用 init 命令來轉換﹐如輸入 init 1 就會切換到單人模式去﹐然後再輸入 init 3 就回到多人文字模式去。有機會不妨玩玩看。

那麼﹐究竟不同的 run level 是如何為系統配置出不同的環境呢﹖如果您有興趣知道的話﹐請看看 /etc/rc.d/ 目錄下面﹐分別有著 rcX.d 的子目錄﹐其中的 X 就是不同 run level 的號碼了。然後再看看 rcX.d 目錄裡面的檔案﹐您會發現有兩類檔案﹕其一是以 S 開頭的﹐而另外則是以 K 開頭的。這些檔案都是一些 script﹐如果以 S 開頭的話﹐那是在進入(Startup)該 level 的時候要執行的﹐其執行順序是根據 S 後面的數字來決定﹐數值越小﹐越被優先執行。您千萬不要隨便亂改這些數字哦﹐因為有些 script 之間是有相依關係的﹐必須等前面的 script 執行妥當之後﹐才能執行後面的 script。而那些以 K 開頭呢﹖K 是 Kill 的意思﹐沒錯啦﹐就是在退出該 level 的時候要執行的﹐順序也是以數字為依據。

Tips﹕事實上﹐不同的 run level 是幫您執行行不同的 daemon 服務程式而已(我們日後再說 daemon )。您可以執行 ntsysv 命令﹐然後用空白鍵上下選擇哪些 daemon 要在開機的時候執行﹐哪些不需要。然而﹐除了 ntsysv 外﹐更精確的設定工具應該是 chkconfig 這隻程式﹕
chkconfig --level 3 pcmcia on
chkconfig --level 3 pcmcia off
chkconfig --level 3 --del pcmcia

第一個命令是在 run level 3 將 pcmcia 服務打開(也就是設定為 S 開頭的服務)﹔第二行則是關閉(也就手設定為 K 開頭)﹔第三行則將之刪除(沒有 S 也沒有 K )。透過靈活的組合﹐您可以輕鬆的控制各個 run level 所執行的服務程式。建議您 man chkconfig 詳細看看它的用法。

不過﹐並不是所有寫在 /etc/rc.d/init.d 的 deamon 都能使用 chkconfig 來設定哦﹐您必須包含如下兩個句子在檔案中(缺一不可)﹕

# chkconfig: 2345 80 20
# description: decsription about the daemon

要注意﹕這兩句前面的 ‘ # ’符號不能拿掉哦﹗第一行的第一堆數字是說要作用於哪些 run level 上面﹔而中間的數字則是 link 到各 rcX.d 目錄後的以 " S " 開頭的數字﹔最後一組數字則是 " K " 開頭的數字。第二行可以隨便寫﹐關於 daemon 的說明文字就是了。

如果您仔細比較不同的 rcX.d 目錄﹐您會發現它們的 script 數目和順序都不太一樣﹗沒錯啦﹐就是這些不一樣才讓系統獲得不同的配置。不過﹐如果您再仔細檢查這些檔案﹐其實它們都是一些 links (這個我們在介紹檔案系統的時候再說)﹐歸跟結底﹐這些 script 都集中放在 /etc/rc.d/init.d/ 目錄裡面﹐然後根據不同的 level 而‘分身’在不同的 rcX.d 目錄中而已。這個﹐等我們日後對 script 和 links 有一定了解之後﹐就比較清楚了。如果您現在不大理解﹐那沒關係﹐知道不同的 run level 要對應到哪個 rcX.d 目錄就好。

除非您不想機器不用的時候還開著(如為了省電)﹐或是進行硬體更換﹐Linux 甚少需要關機的(有些 Linux 跑好幾年還好好的呢﹗)。不過﹐您知道怎樣關機嗎﹖

如果您在安裝過程中能夠正確設定好 XWindow﹐並且選擇了開機進入 X﹐或許您還能找到關機的門徑(和 windows 和像)。不過﹐通常來說﹐除非是天才﹐在第一次使用 Linux 的時候(之前也沒 Unix 或 Novell 經驗)﹐還真不知道怎麼關機哦﹗(哈哈﹐指我自己啦~~~ ^_^ 見笑見笑﹗)

不過﹐各位根據剛纔的 run level 和 init 命令﹐或許也不難找出關機的辦法吧﹖輸入 init 0 就可以了﹗不過﹐這其實不是一個正確的關機辦法﹐ 如果您輸入下面這個指令﹕

shutdown --help

您會看到好些選項﹐請看看各項的意思。如果您要立即將機器關掉的話﹐建議您輸入﹕

shutdown -h now

如果用 r 代替 h 的話﹐會進行重新啟動﹐不過﹐您可以用 reboot 這個指令代替﹐或可以按 ctl+alt+del (這個也不建議使用﹐更要注意所有資料已回存好和程式都關閉妥當)。

在某些舊系統中﹐您還必須執行 sync 命令多次﹐以確定所有資料都回存到硬碟中﹐才可以進行關機的動作。不過﹐如果您用 shutdown 或 reboot 命令的話﹐就不需擔心這個了。

tips﹕關於關機所使用到的一些命令﹐大家不妨參考 Leo 兄的說明﹕
From: "leo" 
To: 
Sent: Sunday, August 12, 2001 8:37 PM
Subject: Hi

其實,常常遇到有人問說,shutdown -r 與 reboot 與 halt 這些指令的關係。
其實 shutdown 指令,只是可以設定訊息,時間等,真正 reboot 之類的動作,
還是呼叫 reboot 來執行的。

而 reboot 指令則不,將會立即 reboot。
halt 也是一樣,將會立即關機。

reboot 與 halt 預設都會先執行 sync,(也可強迫不要用 sync,比方 reboot -n)
這兩個指令無法送出訊息到 tty.. 等等。

另外還有人問到 poweroff 指令,
其實 halt 指令,預設是會執行 poweroff 的,所以會將電源切掉。

等您已經會得正常的開機和關機之後﹐我才可以說﹕您可以放心進行學習了。

阅读(852) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~