<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

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

    導航

    留言簿(2)

    隨筆分類(13)

    隨筆檔案(13)

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

     
    目錄
    1、GRUB 基礎

    2、命名習慣

    3、安裝 GRUB

    4、GRUB 接口

    5、GRUB 常用命令

    6、保護 GRUB 設置

    7、GRUB 和 stage 文件

    8、GRUB 常見錯誤信息

    9、制作 GRUB 引導軟盤

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

    11、把配置文件嵌入到 GRUB 中

    12、總結

    13、個人建議



    一、GRUB 基礎

    1.1 GRUB 簡介

    “boot loader”是計算機啟動后第一個運行的軟件。它負責加載一個操作系統的內核,并把控制權交給內核。內核則負責剩下的初始過程。

    GRUB 一個很重要的特色就是靈活性;GRUB 可以識別文件系統和二進制格式的內核,所以你可以加載任何操作系統,而不需要記錄內核在

    磁盤上的物理位置。

    1.2 GRUB 的現狀

    我不打算介紹 GRUB 的發展歷史,有興趣的朋友可以自己到官方站點或者執行 info grub 自行獲取信息。我們著眼于 GRUB 當前的現狀。

    目前 GRUB 分成 GRUB legacy 和 GRUB 2。版本號是 0.9x 以及之前的版本都稱為 GRUB Legacy ,從 1.x 開始的就稱為 GRUB 2。目前

    GRUB Legacy 已經停止開發了,只是出于一個 bug fix 的狀態,不再增加新的功能了,所有的開發都轉移到 GURB 2 之上了。

    1.3 GRUB Legacy 和 GRUB 2

    GRUB 2 是源自于一個名為 PUPA 的項目,目的是建立下一代的 boot loader。GRUB 2 幾乎是從零開始開始開發的,它和 GRUB Legacy 不

    同的地方有很多,例如支持 scripts、國際化語言、動態加載模塊、帶有 resuce 模式等等,這些都是 GRUB Legacy 所沒有的。

    下面是 GRUB2 新特性的介紹 :(原文請參http://www.gnu.org/software/grub/grub-2.en.html

    a)支持腳本語言,例如條件判斷,循環、變量和函數

    b)圖形接口

    c)在運行時動態加載需要的模塊,而不是在 biuld 的時候指定加入那些模塊(靜態)

    d)可以移植到不同的架構上

    e)國際化語言。包括支持非ASCII的字符集和類似 gettext 的消息分類,字體,圖形控制臺等等。

    f)實際內存管理。使得 GNU GRUB 更加具有可擴展性

    g)針對文件系統、文件、設備、驅動、終端、命令、分區表、 os loder 的模塊化、層次化、基于對象的框架

    h)跨平臺的安裝,允許從另外一個架構上安裝 GRUB

    i)支持 rescue 模式,可用于系統無法引導的情況。stage 1.5 被取消了

    j)修復 GRUB Legacy 設計上的錯誤,同時又保持向后的兼容性。

    1.4 Multiboot 規范

    Multiboot 規范是在 boot loader 和 kernel 之間的一個協議,用于統一各種引導操作系統的方法。Linux 和 BSD 目前并不支持該規范。

    1.5 可用資源

    GRUB 的 homepage http://www.gnu.org/software/grub/grub-legacy-faq.en.html

    info grub

    1.6 舊版 GRUB(GRUB Legacy)的功能特色

    a)識別多種可執行格式,支持 “a.out” , ELF, symbol tables)

    b)支持 non-Multiboot 內核。主要是FreeBSD、NetBSD、OpenBSD、Linux。

    c)支持加載多個模塊

    d)支持配置文件

    e)提供菜單接口。菜單項的數量并沒有限制,目前版本支持數百個菜單條目

    f)有一個靈活的命令行接口。如果沒有配置文件存在,GRUB 會自動進入命令模式

    g)支持多種文件系統格式。主要有BSD FFS”、“DOS FAT 16 、FAT32”,“Minix fs”、ext2/ext3、ReiserFS 、jfs、xfs、VSTa fs

    h)支持自動解壓

    i)能夠訪問任何已經安裝的設備上的數據

    j)Be independent of drive geometry translations (這個不知道怎么翻譯好)
    Unlike many other boot loaders, GRUB makes the particular drive
    translation irrelevant. A drive installed and running with one
    translation may be converted to another translation without any
    adverse effects or changes in GRUB's configuration.

    k)檢測所有已經安裝的 RAM

    l)支持 LBA 模式。在傳統的磁盤調用(稱為 CHS 模式),存在一個限制 :就是 BIOS 無法訪問在 1024 柱面。之后的內容,所以 BIOS

    只能訪問最小 508 MB ,最大8GB 的空間。(這也就是 /boot 分區必須在 1024 柱面之前的原因)。GRUB 并不能解決全部問題,因為

    并沒有統一的解決方法,不過 GRUB 可以檢測是否支持 LBA 模式,如果支持則使用 LBA 模式。

    m)支持網絡引導,可以使用 TFTP 協議通過網絡加載內核

    n)支持遠程終端,目前只支持串口



    二、命名習慣

    首先 GRUB 要求設備名被括在一個 ( ) 中。fd表示軟盤,hd 表示硬盤(不區分 IDE 還是 SCSI)。其次設備是從 0 開始編號,分區也是如此,

    分區和設備之間用一個 ‘,’ 分開。下面給出幾個例子 :

    (fd0) :表示整個軟盤

    (hd0,1) :表示 BIOS 中的第一個硬盤的第2個分區

    (hd0,0)/boot/vmlinuz :表示 BIOS 中的第一個硬盤的第一個分區下的 boot/ 目錄下的vmlinuz 文件。

    如果沒有指定某個分區,則表示使用整個設備,否則只使用指定的分區。


    三、安裝 GRUB

    3.1 下載 tarball

    有兩種方法,一種是 rpm ;一種是 tarball 。rpm 沒有什么好說的,只是 rpm –Uvh 就可以了。不過一般不會啟用網絡引導功能,

    所以我們決定采用 tarball 的方式安裝。 首先到下面的地址下載 tarball ftp://alpha.gnu.org/gnu/grub

    上面有 GRUB Legacy 和 GRUB 2 ,就選擇目前 RHEL AS4 用的 0.95 版本做實驗。

    不過在安裝之前先要用 rpm –q grub 檢查一下 grub 是否安裝了。如果是的話,用 rpm –e grub 刪除,即使你在安裝時指定不安裝

    boot loader ,安裝程序還是會安裝 grub rpm 包的。

    3.2 安裝需求

    INSTALL 文件中給出了 build 所需要的軟件包條件 :

    GCC :當前版本的 GCC 應該也可以用,不過還是建議用 2.95 或者以上版本的 GCC

    GNU Make :生成 Makefiles 所用

    GNU binutils 2.9.1.0.23 或者個更高版本

    如果你想自己開發 GRUB ,還需要 Texinfo 4.0 或者更高 ,同時還有GNU Autoconf 2.5x ,GNU Automake 1.7 或者更高頒布。

    3.3 參數介紹

    下面我們介紹幾個 configure 過程中可能用到的選項,要完整的選項列表,可以參看 INSTALL 文件和 netboot/README.netboot 文件.

    a)--enable-preset-menu=FILE :默認情況下 grub.conf 和 stage2 文件是分離的,使用該選項,可以直接把配置文件嵌入到 stage2 中,

    這樣啟動時可以立即獲得配置文件。對于一些嵌入式的系統來說比較有用,又或者在前面提到的沒有顯示器/鍵盤的主機有用,因為在切

    換顯示輸出到你的筆記本之前,你是看不到啟動的畫面的,所以執行切換顯示操作也是在看不到輸出的情況下進行的(切換顯示之后就不會了)。

    通過這個選項你可以在 中指定啟動時立即把顯示輸出切換到你的筆記本上了。

    b)--enable-diskless :如果使用了該選項,你會得到額外的兩個文件,nbgrub 和 pxegrub。接下來你需要指定網卡的驅動程序,

    netboot/ 目錄下有較常見的幾種 ,可以看到幾種網卡可以合用一個驅動。常見的有 :


    [Copy to clipboard]CODE:
    Intel Etherexpress Pro/100
    --enable-eepro100

    Novell NE2100 and NE1500
    --enable-ne2100

    Realtek 8139
    SMC 1211
    D-Link DFE530TX+ and DFE538TX
    --enable-rtl8139


    3Com90x
    --enable-3c90x

    如果你不想那么麻煩,則按照下面的過程進行 :


    [Copy to clipboard]CODE:
    ./configure
    make
    make install

    安裝結束。默認命令會放在 /usr/local/bin 和 /usrlocal/sbin 下。Stage 文件則放在 /usr/local/share/grub/i386-pc/ 目錄下。

    3.4 安裝之后的操作

    a)把 /usr/local/share/grub/i386-pc/ 目錄下的所有文件統統拷貝到 /boot/grub/ 目錄下。

    b)接下來是創建 grub.conf ,并在 /boot/grub/ 目錄下建立一個 menu.lst ,指向 grub.conf。

    c)注意,這個 symbol link 在 Redhat 9 是必需的,否則啟動時會直接進入命令模式,即使已經存在 grub.conf ;但在 RHEL AS4 下卻不是。

    d)確認 /usr/local/sbin 和 /usr/local/bin 在 PATH 變量的值中。

    e)執行 grub-install /dev/hda1 把 stage1 寫入到 /boot 分區的引導扇區。

    也可以執行 grub 進入 grub shell ,然后通過 root 和 setup 命令來安裝 stage1 。

    f)重啟機器,安裝過程到此結束。
    posted on 2007-05-16 20:02 執手麥田 閱讀(478) 評論(0)  編輯  收藏 所屬分類: 展覽館
     
    Copyright © 執手麥田 Powered by: 博客園 模板提供:滬江博客
    主站蜘蛛池模板: 成人免费无码大片A毛片抽搐色欲| 日本久久久免费高清| 国产一精品一AV一免费| 久久精品中文字幕免费| 毛片免费全部免费观看| 精品丝袜国产自在线拍亚洲| 老外毛片免费视频播放| 无码人妻精品中文字幕免费| 国产精品免费播放| 久久夜色精品国产噜噜噜亚洲AV | 免费国产成人18在线观看| 亚洲av无码一区二区乱子伦as| 亚洲高清一区二区三区| 在线涩涩免费观看国产精品 | 亚洲一区免费视频| www国产亚洲精品久久久日本| 久久久久亚洲AV成人无码网站 | 亚洲国产亚洲综合在线尤物| 国产亚洲蜜芽精品久久| 91免费国产自产地址入| 久久国产亚洲精品| 国产免费变态视频网址网站| 亚洲图片激情小说| 日本高清高色视频免费| 91亚洲性爱在线视频| 日本免费无遮挡吸乳视频电影| h视频在线观看免费| 热99re久久精品精品免费| 亚洲大尺码专区影院| 国产自产拍精品视频免费看| jizz18免费视频| 亚洲影视一区二区| 无码国产亚洲日韩国精品视频一区二区三区| 精品久久久久久无码免费| 四虎影视永久免费观看地址| 东北美女野外bbwbbw免费| 亚洲精品无码AV中文字幕电影网站| 狠狠色香婷婷久久亚洲精品| 亚洲国产成人久久综合一区77| 美女黄色免费网站| 亚洲第一视频网站|