?? bootdisk-howto-10.html
字號:
</code>
</blockquote>
一旦你設定了這些值,接下來你可以將這個檔案寫入一張磁片內,你可以利用
Norton Utilities Disk Editor ,不然就是利用名為 <code>rawrite.exe</code>
的這支程式。這支程式在所有的 distribution
都找得到。這支程式是一支在DOS環境下執行的程式,它能將檔案寫入一張
``raw'' disk
,從開機磁區開始寫入,而不是將檔案寫入檔案系統。如果你使用
Norton Utilities
,你必須將檔案寫入一張實體磁片,從磁片的頭開始寫入。
<p><em>Q. 我要如何製作 boot/root 磁片的額外備份 ?</em>
<p>
<p>因為磁性媒介可能在一段時間後遭遇損害,你應該保留幾張你的救援磁片的備份,以防原來的那一片不能被電腦讀取。
<p>製作任何磁片的備份,包括開機用與公用程式 (utility)
磁片,最簡單的方法是利用 <code>dd</code> 這個指令,去
copy
原來那張磁片的內容到你硬碟上的一個檔案之中,然後再用相同的指令將這個檔案
copy 回一張新磁片上。請注意,你並不需要,也不應該去
mount 這張磁片,因為 <code>dd</code>利用raw設備介面。
<p>要 copy 原磁片,請輸入以下指令:
<blockquote>
<code>
<pre> dd if=DEVICENAME of=FILENAME
</pre>
</code>
</blockquote>
<p>在此, DEVICENAME 是指這臺磁碟機的設備名 (譯按:/dev/fd0)
,而 FILENAME 是指(存在硬碟上的)輸出檔案檔名。省略 <code>count</code>
參數讓 <code>dd</code> 去copy整張磁片 (如果是高密度磁片,有
2880 個 blocks) 。
<p>要把從上面得到的檔案 copy
到一張新磁片上,請插入一張新磁片並輸入相反的指令:
<blockquote>
<code>
<pre> dd if=FILENAME of=DEVICENAME
</pre>
</code>
</blockquote>
<p>請注意,以上的討論是假設你只有一臺軟碟機。假如相同種類的軟碟機你有兩臺,你可以利用像下面的指令去
copy 磁片:
<blockquote>
<code>
<pre> dd if=/dev/fd0 of=/dev/fd1
</pre>
</code>
</blockquote>
<p><em>Q. 我如何能在每一次開機時,不用輸入 “ahaxxxx=nn,nn,nn”
?</em>
<p><!--
kernel, parameters
-->
<p>當一臺磁碟設備不能被自動偵測時,就有必要提供
kernel 指定的設備參數字串,諸如:
<blockquote>
<code>
<pre> aha152x=0x340,11,3,1
</pre>
</code>
</blockquote>
<p>這行參數字串可以利用 LILO 以數種方法提供給 kernel :
<p>
<ul>
<li>每次當系統以 LILO
開機時,你可以在命令列輸入它。但是每次這樣做會很煩。
<li>你可以使用 LILO 的 <code>lock</code> 這個關鍵字,使
LILO
儲存這行命令列,並做為預設的命令列,這樣每當開機時,
LILO 就會使用相同的選項。
<li>你可以在 LILO 的組態檔中,使用 <code>append=</code>
這個敘述。請注意參數字串必須被雙引號 (quotes)
夾住。</li>
</ul>
<p>舉例來說,一行使用上述參數字串的樣本命令列將長成這樣:
<blockquote>
<code>
<pre> zImage aha152x=0x340,11,3,1 root=/dev/sda1 lock
</pre>
</code>
</blockquote>
<p>如此將會傳遞設備參數字串給 kernel ,同時也要求
kernel 把 root 設備設定到 /dev/sda1
,並且儲存整行命令列,讓以後開機時都能再使用這個命令列。
<p>以下是一個 APPEND 敘述的樣本:
<blockquote>
<code>
<pre> APPEND = “aha152x=0x340,11,3,1”
</pre>
</code>
</blockquote>
<p>請注意參數字串在命令列上 <em>不能 </em>被雙引號夾住,但是參數字串在
<code>APPEND</code> 敘述中 <em>一定要 </em>被雙引號夾住。
<p>另外也請注意,為了能讓參數字串起作用, kernel
內必須有符合這個磁碟類型的驅動程式。如果沒有,那麼就沒有東西會去接受
(listen for)
這個參數字串,所以你將必須重新建造一個包含指定驅動程式的
kernel 。有關重新建立 kernel 的細節,請至目錄 /usr/src/linux
閱讀其 README 檔,以及 Linux FAQ 與 Installation HOWTO 。
Alternatively ,你可以為這種磁碟類型取得一個 generic kernel
並且安裝它。
<p>在體驗 LILO 安裝之前,強烈建議讀者先讀過 LILO
文件。不小心使用 <code>BOOT</code> 敘述將會損壞 partition
。
<p><em>Q. 在開機的時候,出現了 “<code>A: cannot execute B</code>”
的錯誤訊息。為什麼 ?</em>
<p><!--
hardcoded locations
-->
<p>程式名稱有好幾種不同的寫法被寫死 (hardcoded)
在不同的公用程式裡。這些寫法不會在每個地方都發生,但是它們可能說明了為什麼一個顯而易見的可執行檔,不能在你的系統上被發現,縱使你看到它就在那裡。你可以找出是否一個已知的程式有另一種被寫死的名稱,你可以利用
<code>strings</code> 這個指令,並且利用管道方法 (譯按:
piping, |) 將輸出透過 <code>grep</code> 呈現出來。
<p>已知關於寫死的例子有:
<ul>
<li>在某些版本中, <code>Shutdown</code> 有把 /etc/reboot
寫死在其程式碼內,所以 <code>reboot</code>
必須被放置在 /etc 這個目錄下。
<li>因為有不能夠找到 <code>init</code> 的 kernel 存在, <code>init</code>
已至少為一個人帶來問題。</li>
</ul>
<p>為了修正這些問題,不是移動這些程式到正確的目錄,就是更改設定檔
(e.g. inittab)以指向正確的目錄。假如有所懷疑,就請先把程式如同它們在你硬碟上一樣,放入相同的目錄,並且如同它們顯現在你硬碟上一樣,使用相同的
inittab 與 /etc/rc.d 檔。
<p><em>Q. 我的 kernel 支援 ramdisk ,但是卻初始化 0K 的
ramdisk 。為什麼 ?</em>
<p>
<p>當 kernel
正在進行開機動作時,在問題發生之處,會出現一個像這樣的
kernel 訊息: <!--
ramdisk
-->
<pre> Ramdisk driver initialized : 16 ramdisks of 0K size
</pre>
<p>這可能是因為 size 已被 kernel 參數在開機時設成 0
。這可能是由於一個 overlooked LILO組態設定檔參數所導致:
<blockquote>
<code>
<pre> ramdisk= 0
</pre>
</code>
</blockquote>
<p>在某些較舊的 distributions 裡,這個會被包含在 LILO
組態設定檔樣本中,這放在那裡是為了 override 任何 kernel
原先的設定。如果你有這樣的一行,請移除之。
<p>請注意,如果企圖使用一個已被設定成 0 size 的 ramdisk
,這樣的行為將會導致不可預測的結果,同時也會讓
kernel 不知如何是好。
<p>
<hr>
<a href="Bootdisk-HOWTO-11.html"><img alt="Next" src="next.gif" width="16" height="16"></a> <a href="Bootdisk-HOWTO-9.html"><img alt="Previous" src="prev.gif" width="16" height="16"></a>
<a href="Bootdisk-HOWTO.html#toc10"><img alt="Contents" src="toc.gif" width="16" height="16"></a></td>
</table>
<p> </p>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -