📄 bootdisk-howto-9.html
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>9</title>
</head>
<body>
<table>
<tr>
<td bgColor="#FFFFFF" vAlign="top"><a href="Bootdisk-HOWTO-10.html"><img alt="Next" src="next.gif" width="16" height="16"></a>
<a href="Bootdisk-HOWTO-8.html"><img alt="Previous" src="prev.gif" width="16" height="16"></a> <a href="Bootdisk-HOWTO.html#toc9"><img alt="Contents" src="toc.gif" width="16" height="16"></a>
<hr>
<h2><a name="s9">9. How the pros do it</a></h2>
<p><a name="Pros"></a>
<p>您可能已經注意到,那些被諸如 Slackware、RedHat、Debian
等主要 distribution 所使用的 bootdisks
,似乎比本文中所描述的還要來得複雜許多。專業的
distribution bootdisks
以在此所提出的相同原則為基礎,但是採用各式各樣的技巧,因為它們的
bootdisks
有一些額外的需求。第一,它們必須能夠在各種不同的硬體上運作,所以它們必須能夠與使用者互動,並且能載入各式各樣的設備驅動程式。第二,它們必須準備以許多不同的安裝選項、不同的自動化程度來運作。最後,
distribution bootdisks
通常結合了安裝磁片與救援磁片的能力。
<p><!--
initial ramdisk (initrd)
-->
<p>某些 bootdisks 使用名為 <em>initrd</em>(<em>initial ramdisk</em>)的特性。這個特性大約在
2.0.x 版時引入,它允許 kernel 以兩階段開機。當 kernel
開機時,它從 boot disk 載入一個initial ramdisk映像檔。這個
initial ramdisk 是一個 root filesystem ,包含一個在真正的 root
fs
被載入之前所執行的程式。這個程式通常會檢查作業環境,
以及/或
要求使用者選擇不同的開機選項,例如選擇從哪一個設備載入真正的
rootdisk 。一般來說,它會載入未被內建在 kernel
內的額外模組。當這個初始化 (initial) 程式結束 (exit)
時, kernel 就載入真正的 root
映像檔,開機動作將依一般情況繼續執行下去。若要進一步得知
<code>initrd</code> 的資訊,請詳閱你機器上的 <a href="../../../../usr/src/linux/Documentation/initrd.txt">/usr/src/linux/Documentation/initrd.txt</a>
,以及 <a href="ftp://elserv.ffm.fgan.de/pub/linux/loadlin-1.6/initrd-example.tgz">ftp://elserv.ffm.fgan.de/pub/linux/loadlin-1.6/initrd-example.tgz</a>
。
<p>以下是每一家 distribution的安裝磁片如何運作的摘要,這份摘要以檢閱
(inspect) 它們的filesystems 以及/或
它們的原始碼為基礎。我們不保證這份資訊完全正確無誤,或是自從版本noted以來,這些運作方式未被改變。
<p>Slackware(v.3.1) 使用一種與 <a href="http://www.linux.org.tw/CLDP/Bootdisk-HOWTO-6.html#TransferringWithLILO">Transferring
the kernel with LILO</a> 這節所描述類似的前向式
(straightforward) LILO 開機法。 Slackware 的 bookdisk 利用 LILO 的
<code>訊息 </code>參數印出一個 bootup 訊息 (“<code>Welcome to
the Slackware Linux boot kernel disk!</code>”)
。假如必要的話,這裡會指示使用者輸入一個開機參數行(boot
parameter line)。在開機之後,一個root檔案系統會從第二張磁片載入。此時使用者喚起(invoke)一個
<code>setup</code> script,這個script將啟動安裝程序。Slackware並非使用一個模組化
kernel ,相反地,它提供許多不同的 kernel
,並且靠使用者自己選擇一個符合 他/她 硬體需求的
kernel 。
<p>RedHat(v.4.0) 也使用 LILO
開機法。它從第一張磁片載入一個壓縮的 ramdisk
,這動作執行一個 custom <code>init</code>
程式。這個程式查詢驅動程式,然後,假如必要的話,從
supplemental 磁片載入額外的檔案。
<p>Debian(v1.3) 可能是最複雜的安裝磁片集。它使用 SYSLINUX
loader 去安排各式各樣的載入選項,然後使用一個 <code>initrd</code>
映像檔指示使用者完成安裝程序。它顯然使用了一個客製化的
<code>init</code> 與一個客製化的 shell 兩者。
<p>
<hr>
<a href="Bootdisk-HOWTO-10.html"><img alt="Next" src="next.gif" width="16" height="16"></a> <a href="Bootdisk-HOWTO-8.html"><img alt="Previous" src="prev.gif" width="16" height="16"></a>
<a href="Bootdisk-HOWTO.html#toc9"><img alt="Contents" src="toc.gif" width="16" height="16"></a></td>
</table>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -