執手麥田的咖啡空間  
          專注于Java的學習研究
          公告
          • 于喧鬧網界之中,尋一處僻靜之所,與三二好友,品程序、論思想,其樂何融融!
            執手麥田的咖啡館——在這里關注JAVA的學習研究
          日歷
          <2007年5月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          留言簿(2)

          隨筆分類(13)

          隨筆檔案(13)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

           
          九、制作 GRUB 引導軟盤

          GRUB 不僅可以安裝在硬盤上,也可以安裝在軟盤。有兩種方式可用于創建 GRUB 引導軟盤,區別在于后者帶有文件系統,而前者只有

          boot loader 本身。如果你誤刪除那些 stage 文件,后一種方式就大大有用了。

          第一種 :用 dd 命令創建 GRUB 軟盤


          [Copy to clipboard]CODE:
          a)按照 ./configure , make ,make install 的步驟安裝 GRUB

          b)dd if=/usr/local/share/grub/i386-pc/stage1 of=/dev/fd0

          c)dd if=/usr/local/share/grub/i386-pc/stage2 of=/dev/fd0 seek=1

          d)這樣就創建好一張 GRUB 引導軟盤了。


          第二種 :用 grub-install 創建帶文件系統的 GRUB 引導軟盤


          [Copy to clipboard]CODE:
          a)同樣是先安裝 GRUB

          b)mke2fs /dev/fd0

          c)mount /dev/fd0 /mnt/floppy

          d)grub-install –-root-directory=/mnt/floppy ‘(fd0)’

          e)這樣軟盤上就會有一個 /boot/grub/ 目錄,下面就是那些 stage 文件了。

          f)上面的兩種方法做出來的軟盤都只能進入 GRUB 命令模式,你可能會覺得不爽,是否可以直接進入菜單呢?答案是可以的,只需要多一個步驟 :

          g)把 /boot/grub/ 目錄下的 device.map ,grub.conf ,menu.lst 統統拷貝到 /mnt/floppy/boot/grub 目錄下,這樣就可以了。因為之前 GRUB

          在軟盤上找不到配置文件,所以自動進入命令模式,現在用它啟動機器就可以直接進入菜單模式了。


          十、使用 GRUB 通過網絡引導操作系統

          GRUB 不僅可以從本地硬盤引導操作系統,還可以通過網絡引導操作系統內核。

          假使你由于某種原因,無法啟動操作系統。這時你需要在別的空閑的機器上先 build 一份GRUB ,并安裝到一張軟盤上。

          不過由于要支持網絡功能,所以 ./configure 時有所不同了 :你必須指定啟用網絡功能,和網卡芯片的型號 :(具體參考 netboot/README.netboot 文件)。

          由于測試機器的網卡芯片是 RTL-8139 ,所以加上 –-enable-rtl8139 ,整個過程就是(在別的空閑的機器上進行的) :


          [Copy to clipboard]CODE:
          # rpm –e grub (刪除原來的 GRUB rpm,如果沒有裝就不用了)
          # ./configure –-enable-diskless –-enable-rtl8139 (這是故障主機的網卡型號)
          # make
          # make install
          # cp –fa /usr/local/share/grub/i386-pc/* /boot/grub/
          # grub-install /dev/hda
          # mke2fs /dev/fd0 (格式化軟盤,建立 ext2 文件系統)
          # mount /dev/fd0 /mnt/floppy
          # grub-install –-root-directory=/mnt/floppy ‘(fd0)’

          檢查 /mnt/floppy 下是否有 nbgrub 和 pxegrub 兩個文件,這兩個文件就是用于網路啟動的。如果

          沒有,就從 /boot/grub/ 目錄拷貝到 /mnt/floppy/boot/grub/ 目錄下。切記切記!!

          這樣你就制作好了一張帶有 stage 文件,支持網絡引導,且帶有網卡驅動的 GRUB 引導盤了。

          接下來就是 TFTP 服務器方面的工作了 :


          -)1、啟動 TFTP 服務器(編輯 /etc/xinetd.d/tftp 文件,把 disalbe改為 no)。

          -)2、檢查防火墻配置,確保故障主機可以順利訪問該 TFTP 服務器

          -)3、找出一臺和故障機器具有相同內核的主機,把 /boot/vmlinuz-2.xx 和 /boot/initrd-2.xx.img 拷貝到 TFTP 服務器的 /tftpboot/boot 目錄下

          -)4、把這張軟盤插入故障機器的軟驅并用它啟動機器,就會自動進入 GRUB 命令模式。

          -)5、執行 ifconfig 命令將會顯示下面的畫面



          -)6、下面開始設置 ip 信息了 :(ifconfig 命令可以分成多次執行)

          -)7、現在網卡 ip 和 TFTP 服務器的地址都已經設置了。



          -)8、下面設置 root device、kernel、initrd 。注意 root 括號中是 nd ,切記切記!!!



          當你執行 boot 時,內核將被解壓并執行,一切就和往常一樣。



          補充 :如果你的網絡有 dhcp 服務器,則可以直接執行 dhcp 命令來代替 ifconfig 命令獲取 ip 信息

          十一、把配置文件嵌入到 GRUB 中

          這里介紹一種比較少見的情況。有時我們會遇到主機不帶顯示器/鍵盤,但由于某些原因需要重啟主機并訪問 GRUB,

          這時怎么辦?你可能會說用串口連接。不錯,通過串口的確可以控制 GRUB ,但有一個問題,即使你把筆記本連接到該主機上,

          但啟動時 GRUB 并不會自動使用筆記本的鍵盤,又如何通過筆記本控制GRUB 呢?

          GRUB 支持一個功能叫做 preset menu(預設菜單),工作原理 :

          a)GRUB 檢查是否啟用了 preset menu 功能,如果是的話,加載 preset menu 文件(不是 grub.conf)

          b)GRUB 加載 grub.conf ,這個過程是一定會執行的,不管有沒有 preset menu 存在。

          c)在 grub.conf 被加載后,不管 grub.conf 有沒有引導項目,只要 preset menu 含有任何引導條目,都會被清掉。只有 grub.conf

          文件不可用時,preset menu 的內容才會被保留。

          看到這里,我想你應該明白 preset menu 怎么用了。我們可以定義一個文件 pre-menu.conf ,內容是把顯示切換到 COM1 上 ,grub.conf 則是正常的內容。

          然后把筆記本接到故障主機的 COM1,啟動超級終端。再啟動故障主機,GRUB 會先把顯示切換到 COM1 ,然后加載 grub.conf ,后面的過程就和普通情況沒

          有什么不同。


          [Copy to clipboard]CODE:
          要使用 preset-menu ,你必須在執行 configure 腳本時指定 –-preset-menu ,例如
          #./configure –-preset-menu=pre-menu.conf
          # make
          # make install
          pre-menu.conf 文件的內容就是下面兩句 :
          serial –-unit=0 –-speed=9600
          terminal –-timeout=0 serial

          注意,當內核開始執行時,顯示也就交回給原來的主機,而不再是你的筆記本了。要解決該問題,

          可以在顯示菜單是進入命令模式,在 kernel 行后面加上 console=ttyS0,這樣 boot 時就可以在超級終端上看到啟動的信息了。

          不過在 login 提示符出現時,顯示輸出又會回到原來的故障主機上了。這時你可以用 secureCRT 來登錄了,不需要再用到超級終端了。

          整體效果如下圖 :(通過串口看的)



          選擇引導 Red Hat 9 項目 :



          一旦你不想使用preset-menu了,是否直接刪除 pre-menu.conf 就可以呢?

          不可以。因為 pre-menu.conf 已經被嵌入到 grub 中了,這時留在硬盤上的 pre-menu.conf 文件其實已經沒有用了。要象取消 preset-menu 功能,

          必須重新 congfiure ,并去掉 –-enable-preset-menu 選項,再重新安裝 GRUB 。

          十二、總結

          寫了這么多,現在總結一下大概的內容

          a)GRUB 是一種 boot loader ,它分成兩個階段 :stage1 和 stage2(中間可能有 stage 1.5)

          b)stage1 嵌入到 MBR 或者 PBR 中,stage2 留在文件系統中。

          c)build GRUB三部曲 :configure 、make、make install、

          d)grub-install 和 grub shell 都可以用于安裝 stage1 ,但 grub-install 功能更加強大

          e)GRUB 支持菜單模式、命令模式。命令模式下的快捷鍵 :c、o、O、e、d、ESC

          f)使用 GRUB 口令保護 GRUB 設置

          g)GRUB 支持從網絡引導操作系統,不過在編譯時事先指定 –-enable-diskless 和網卡驅動。可惜的是,GRUB 支持的網卡驅動不多。

          h)GRUB 支持通過串口來訪問 GRUB 的命令和菜單模式

          i)GRUB 可以把配置文件事先嵌入到 GRUB ,但刪除時也需要重裝 GRUB 。

          十三、個人建議

          當安裝好操作系統后,應該做好下面幾項工作

          a)安裝光盤(建議刻成 ISO 文件便于保存)

          b)制作一張 bootdisk 用于引導操作系統

          c)制作一張帶文件系統的 GRUB 引導盤用于引導 GRUB,也可以自帶配置文件。

          d)將 MBR 或者 PBR 備份成文件
          posted on 2007-05-16 20:06 執手麥田 閱讀(700) 評論(0)  編輯  收藏 所屬分類: 展覽館
           
          Copyright © 執手麥田 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 灌阳县| 察隅县| 肥乡县| 河津市| 浙江省| 玉龙| 红原县| 准格尔旗| 桂林市| 杭州市| 英山县| 北京市| 东港市| 白城市| 黑河市| 辽宁省| 都昌县| 金山区| 苏尼特右旗| 大荔县| 淮北市| 泉州市| 定襄县| 北京市| 阿合奇县| 疏勒县| 当阳市| 菏泽市| 东乌珠穆沁旗| 砀山县| 隆德县| 弋阳县| 都兰县| 鸡西市| 云梦县| 惠水县| 屏东市| 平山县| 竹溪县| 资阳市| 大姚县|