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

          導(dǎo)航

          留言簿(2)

          隨筆分類(13)

          隨筆檔案(13)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

           
          九、制作 GRUB 引導(dǎo)軟盤

          GRUB 不僅可以安裝在硬盤上,也可以安裝在軟盤。有兩種方式可用于創(chuàng)建 GRUB 引導(dǎo)軟盤,區(qū)別在于后者帶有文件系統(tǒng),而前者只有

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

          第一種 :用 dd 命令創(chuàng)建 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)這樣就創(chuàng)建好一張 GRUB 引導(dǎo)軟盤了。


          第二種 :用 grub-install 創(chuàng)建帶文件系統(tǒng)的 GRUB 引導(dǎo)軟盤


          [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)上面的兩種方法做出來的軟盤都只能進(jìn)入 GRUB 命令模式,你可能會覺得不爽,是否可以直接進(jìn)入菜單呢?答案是可以的,只需要多一個步驟 :

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

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


          十、使用 GRUB 通過網(wǎng)絡(luò)引導(dǎo)操作系統(tǒng)

          GRUB 不僅可以從本地硬盤引導(dǎo)操作系統(tǒng),還可以通過網(wǎng)絡(luò)引導(dǎo)操作系統(tǒng)內(nèi)核。

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

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

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


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

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

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

          這樣你就制作好了一張帶有 stage 文件,支持網(wǎng)絡(luò)引導(dǎo),且?guī)в芯W(wǎng)卡驅(qū)動的 GRUB 引導(dǎo)盤了。

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


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

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

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

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

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



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

          -)7、現(xiàn)在網(wǎng)卡 ip 和 TFTP 服務(wù)器的地址都已經(jīng)設(shè)置了。



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



          當(dāng)你執(zhí)行 boot 時,內(nèi)核將被解壓并執(zhí)行,一切就和往常一樣。



          補(bǔ)充 :如果你的網(wǎng)絡(luò)有 dhcp 服務(wù)器,則可以直接執(zhí)行 dhcp 命令來代替 ifconfig 命令獲取 ip 信息

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

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

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

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

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

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

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

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

          文件不可用時,preset menu 的內(nèi)容才會被保留。

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

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

          有什么不同。


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

          注意,當(dāng)內(nèi)核開始執(zhí)行時,顯示也就交回給原來的主機(jī),而不再是你的筆記本了。要解決該問題,

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

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

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



          選擇引導(dǎo) Red Hat 9 項目 :



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

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

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

          十二、總結(jié)

          寫了這么多,現(xiàn)在總結(jié)一下大概的內(nèi)容

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

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

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

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

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

          f)使用 GRUB 口令保護(hù) GRUB 設(shè)置

          g)GRUB 支持從網(wǎng)絡(luò)引導(dǎo)操作系統(tǒng),不過在編譯時事先指定 –-enable-diskless 和網(wǎng)卡驅(qū)動。可惜的是,GRUB 支持的網(wǎng)卡驅(qū)動不多。

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

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

          十三、個人建議

          當(dāng)安裝好操作系統(tǒng)后,應(yīng)該做好下面幾項工作

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

          b)制作一張 bootdisk 用于引導(dǎo)操作系統(tǒng)

          c)制作一張帶文件系統(tǒng)的 GRUB 引導(dǎo)盤用于引導(dǎo) GRUB,也可以自帶配置文件。

          d)將 MBR 或者 PBR 備份成文件
          posted on 2007-05-16 20:06 執(zhí)手麥田 閱讀(700) 評論(0)  編輯  收藏 所屬分類: 展覽館
           
          Copyright © 執(zhí)手麥田 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 教育| 石林| 新建县| 道真| 鄂尔多斯市| 蒙自县| 平山县| 新竹市| 清丰县| 乌拉特后旗| 安西县| 景东| 高淳县| 齐齐哈尔市| 泸西县| 沙湾县| 景德镇市| 营山县| 都江堰市| 澄迈县| 十堰市| 新郑市| 富裕县| 邮箱| 莎车县| 雷波县| 肥西县| 罗平县| 天台县| 阿坝县| 宝应县| 黎平县| 吕梁市| 西林县| 通辽市| 湖口县| 荥经县| 黄龙县| 探索| 新建县| 江西省|