⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bootdisk-howto-10.html

📁 Linux初学者最好的老师就是howto了。相当于函数man。
💻 HTML
📖 第 1 页 / 共 2 页
字号:
        </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 + -