<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 第?22?章?Grub **目錄** [](ch22.html#id3092437) [硬件基礎](ch22s02.html) [系統引導流程](ch22s02.html#id3092219) [Grub 介紹](ch22s03.html) [Grub 術語](ch22s04.html) [Grub 的根分區](ch22s04.html#id3093728) [系統根目錄所在分區](ch22s04.html#id3093794) [Grub 配置文件](ch22s05.html) [Grub 安裝](ch22s06.html) [將 Grub 安裝到系統中](ch22s06.html#id3094130) [將 Grub 安裝到 MBR](ch22s06.html#id3094197) [Grub 使用](ch22s07.html) ## 硬件基礎 一塊硬盤,它起始的一部分扇區為主引導扇區,包括 MBR(主引導紀錄)和 DPT(分區表,您可以閱讀[“分區概念”一節](ch08.html#partition "分區概念")中相關內容) 每個分區起始的一部分扇區,為分區引導扇區。 在分區引導扇區之后的部分,為文件系統的索引,文件系統通過它定位文件在硬盤上的位置。不同的文件系統采用不同的索引,例如 FAT 文件系統使用文件分配表和目錄區。 絕大多數操作系統,對硬盤的讀寫操作,通過文件系統來完成,因此引導扇區中的內容,我們不能夠在文件系統中進行操作,而需要專用軟件,比如引導管理器。 我們對文件進行修改后,操作系統會將文件系統索引中的內容同步。 ### 系統引導流程 1. 系統啟動時,首先引導至 MBR,將控制權移交安裝在 MBR 中的引導管理器![4](https://box.kancloud.cn/2015-10-12_561bcb9508b82.png) 2. 引導管理器裝載自身[[39](ch22s02.html#ftn.grub-stage)] 3. 引導管理器讀取分區中的配置文件,并按配置文件中預設的參數運行![5](https://box.kancloud.cn/2015-10-12_561bcb95133e7.png) 4. 引導管理器根據您的選擇,可能會有如下活動 * 加載內核,啟動 Linux 系統檢查活動分區,并引導它 * Windows 系統:讀取相應分區的引導扇區,將控制權移交該扇區中的引導管理器 > [![4](https://box.kancloud.cn/2015-10-12_561bcb9508b82.png)](ch22s02.html#grub-11) Windows 使用 NTLDR,Linux 通常用 Grub > [![5](https://box.kancloud.cn/2015-10-12_561bcb95133e7.png)](ch22s02.html#grub-12) 例如,Grub 讀取“`/boot/grub/menu.lst`”文件中內容,將可引導系統通過菜單顯示 Linux 系統在安裝 Grub 時,會提問您安裝在 MBR 或者分區引導扇區中。如果將 Grub 安裝在分區引導紀錄中,您必須確保 MBR 中的引導管理器能夠正確的引導至分區引導扇區。 如果您在 MBR 中使用的是 Windows 的引導管理器 NTLDR,完成這件工作會非常困難,因而我們推薦您使用 Grub。 * * * > [[39](ch22s02.html#grub-stage)] Grub 先裝載 MBR 中的 stage1,通過 stage1 來裝載文件系統中的 stage2,顯示菜單和 Shell 等待用戶。 > 有時 stage1 不能識別 stage2 所在分區的文件系統,這就需要裝載 stage1.5 來連接 stage1 和 stage2 ## Grub 介紹 Grub 主要有以下功能: * 菜單式選擇 * 命令行模式 * 支持開機畫面 * 支持大硬盤 其它的功能還有很多,就不一一介紹了。 您可以運行命令 **grub** 啟動它。會顯示一些版本信息和使用提示,當然還有命令提示符,如下: ``` GNU GRUB version 0.97 (640K lower / 3072K upper memory) [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ] grub> ``` 您可以使用 `TAB` 鍵補全命令和路徑,這非常重要,因為 Grub 中路徑表示方式與操作系統是不同的,您可能比較陌生,所以盡量用 TAB 補全它,既方便,也不容易出錯。 您可以在 _grub&gt;_ 提示符后按 `TAB` 鍵,會將所有可用的命令顯示出來。 呵呵,是不是有點暈,命令可真不少啊!!!其實我們會用到的命令只有兩個:**root** ?**setup** ## Grub 術語 在分區概念章節里,我們已經介紹了 Linux 系統中表示分區的方法 `/dev/sda5` ``` /dev/sdMN M 為 a 起始的小寫字母,表示硬盤序號;N 為 1 起始的數字,表示分區序號 ``` Grub 中使用的表示方法為 `hd0,1` ``` hdX,Y X 為 0 起始的數字,表示硬盤序號;Y 為 0 起始的數字,表示分區序號 ``` 留意它們之間的區別: * N 從 1 開始計數,X 和 Y從 0 開始計數 * N 為 1~4,它是一個主分區;N 為 5 或大于 5,它是第(N-4)個邏輯分區。Y 按分區在硬盤上排列的順序排列,無論它表示的是主分區還是邏輯分區。 舉例來說: | 分區分布 | 主分區 | 主分區 | 邏輯分區 | 邏輯分區 | 主分區 | | --- | --- | --- | --- | --- | --- | | /dev/sdMN | sda1 | sda2 | sda5 | sda6 | sda3 | | hdX,Y | hd0,0 | hd0,1 | hd0,2 | hd0,3 | hd0,4 | 現在我們來看 **root** 和 **setup** 命令的使用,`sudo grub`進入 Grub 交互模式: ``` grub>root (hd0,1) grub>setup (hd0) ``` > [![1](https://box.kancloud.cn/2015-10-12_561bcb76795ae.png)](ch22s04.html#grub-31) 這個命令將 Grub 的根分區定位為 “(hd0,1)” > [![2](https://box.kancloud.cn/2015-10-12_561bcb768596e.png)](ch22s04.html#grub-32) 這個命令表示將 Grub 安裝在“(hd0)”,因為沒有指定安裝的分區,所以安裝位置為 MBR ### Grub 的根分區 為 Grub 配置文件 `grub/menu.lst` 和`stage[[39](ch22s02.html#ftn.grub-stage)]`文件所在分區。假如您單獨為 `/boot` 目錄掛載了一個分區,那么 Grub 的根分區通常為您系統中 `/boot` 目錄所在的分區。 搞錯了根分區,Grub 就不能正確讀取配置文件,自然不能正確引導。[[40](ch22s04.html#ftn.id3093773)] ### 系統根目錄所在分區 Linux 根目錄 `/` 的掛載分區。Linux 系統的分區掛載信息保存在文件系統分配表 `/etc/fstab` 文件中 Grub 首先讀取根分區[[41](ch22s04.html#ftn.id3093820)]中的 `/boot/grub/menu.lst` 文件,并轉到引導分區,如果是 Windows 等系統,則將控制權移動分區引導扇區中的啟動管理器。如果是 Linux 系統,則加載內核和設備,并根據 `/etc/fstab` 文件的內容掛載文件系統。 看這個例子:(假設 Grub 安裝在 MBR 中,Grub 的安裝位置為 `(hd0)`) ``` title Linux root (hd0,0) kernel (hd0,1)/vmlinuz-2.6.15-25-686 root=/dev/sda3 ro splash vga=0x31b initrd (hd0,1)/initrd.img-2.6.15-25-686 boot ``` > [![1](https://box.kancloud.cn/2015-10-12_561bcb76795ae.png)](ch22s04.html#grub-41) 這一行表示引導分區為第一塊硬盤的第一個分區 (hd0,0)。如果下面也指定了這個參數,那么下面的優先 > [![2](https://box.kancloud.cn/2015-10-12_561bcb768596e.png)](ch22s04.html#grub-42) 表示當前系統的 /boot 目錄掛載到第一塊硬盤的第二個分區 (hd0,1),它是引導分區。一般情況下在 “root”項中指定 > [![3](https://box.kancloud.cn/2015-10-12_561bcb94ee26f.png)](ch22s04.html#43) 表示當前系統的 / 目錄掛載到第一塊硬盤的第三個分區 (hd0,2) ,內核根據該分區中的 `/etc/fstab` 文件來掛載文件系統 > [![4](https://box.kancloud.cn/2015-10-12_561bcb9508b82.png)](ch22s04.html#grub-44) 同2 * * * > [[40](ch22s04.html#id3093773)] Windows 等系統的引導分區為它的安裝分區,Linux 系統的引導分區為它的 `/boot` 目錄所在的分區,也就是 Grub 根分區 > [[41](ch22s04.html#id3093820)] 配置文件中并不能指定 Grub 根分區,它要在 Grub 安裝過程中指定 ## Grub 配置文件 `/boot/grub/menu.lst` 文件,主要由一些下面這樣的塊構成的 ``` timeout 5 default 0 title Linux root (hd0,2) kernel (hd0,2)/boot/vmlinuz-2.6.15-25-686 root=/dev/sda3 ro splash vga=0x31b initrd (hd0,2)/boot/initrd.img-2.6.15-25-686 boot title Windows root (hd0,0) makeactive chainloader +1 ``` > [![1](https://box.kancloud.cn/2015-10-12_561bcb76795ae.png)](ch22s05.html#grub-49) 等待時間,如果用戶在這段時間內未進行選擇,則引導默認系統 > [![2](https://box.kancloud.cn/2015-10-12_561bcb768596e.png)](ch22s05.html#grub-50) 默認系統,從 0 開始計數,每個_title_項為一個系統 > [![3](https://box.kancloud.cn/2015-10-12_561bcb94ee26f.png)](ch22s05.html#grub-51) 標題,title 和分隔符后的內容為 Grub 菜單中顯示的條目 > [![4](https://box.kancloud.cn/2015-10-12_561bcb9508b82.png)](ch22s05.html#grub-52) 引導分區 > [![5](https://box.kancloud.cn/2015-10-12_561bcb95133e7.png)](ch22s05.html#grub-55) 表示當前系統的 / 目錄掛載到第一塊硬盤的第三個分區 (hd0,2) ,內核根據該分區中的 `/etc/fstab` 文件來掛載文件系統 > [![6](https://box.kancloud.cn/2016-01-06_568cdb4f32753.png)](ch22s05.html#grub-56) 以只讀模式掛載 > [![7](https://box.kancloud.cn/2016-01-06_568cdb4f41fcc.png)](ch22s05.html#grub-57) 顯示啟動畫面 > [![8](https://box.kancloud.cn/2016-01-06_568cdb4f5948a.png)](ch22s05.html#grub-58) 啟動屏幕分辨率 > [![9](https://box.kancloud.cn/2016-01-06_568cdb4f68749.png)](ch22s05.html#grub-53) 設置活動分區 > [![10](https://box.kancloud.cn/2016-01-06_568cdb4f83cf0.png)](ch22s05.html#grub-54) 鏈式引導 ## Grub 安裝 ### 將 Grub 安裝到系統中 ``` grub-install --no-floppy --root-directory=/boot /dev/sdM ``` > [![1](https://box.kancloud.cn/2015-10-12_561bcb76795ae.png)](ch22s06.html#grub-61) 不使用軟盤 > [![2](https://box.kancloud.cn/2015-10-12_561bcb768596e.png)](ch22s06.html#grub-62) 文件安裝目錄,通常不需要指定 > [![3](https://box.kancloud.cn/2015-10-12_561bcb94ee26f.png)](ch22s06.html#grub-63) 目標磁盤 * 這一步只是拷貝 Grub 的文件。如果是修復系統,通常情況下它們已經存在,直接進行下一步就可以 ### 將 Grub 安裝到 MBR `sudo grub`進入 Grub 交互模式: ``` grub> find /boot/grub/stage2 (hd0,0) grub> root (hd0,0) Filesystem type is xfs, partition type 0x83 grub> setup (hd0) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/xfs_stage1_5" exists... yes Running "embed /boot/grub/xfs_stage1_5 (hd0)"... 19 sectors are embedded. succeeded Running "install /boot/grub/stage1 (hd0) (hd0)1+19 p (hd0,0)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded Done. grub> quit ``` > [![1](https://box.kancloud.cn/2015-10-12_561bcb76795ae.png)](ch22s06.html#grub-71) 搜索 stage2 文件所在的分區[[39](ch22s02.html#ftn.grub-stage)],通常就是 Grub 根分區 > [![2](https://box.kancloud.cn/2015-10-12_561bcb768596e.png)](ch22s06.html#grub-72) 返回 Grub 根分區名稱 > [![3](https://box.kancloud.cn/2015-10-12_561bcb94ee26f.png)](ch22s06.html#grub-73) 將這個分區設為 Grub 根分區 > [![4](https://box.kancloud.cn/2015-10-12_561bcb9508b82.png)](ch22s06.html#grub-74) 返回 Grub 根分區的文件系統信息 > [![5](https://box.kancloud.cn/2015-10-12_561bcb95133e7.png)](ch22s06.html#grub-75) 將 Grub 安裝到 MBR。注意是(hd0)而不是(hd0,0) > [![6](https://box.kancloud.cn/2016-01-06_568cdb4f32753.png)](ch22s06.html#grub-76) 檢查需要的文件是否存在,因為用了 XFS 文件系統,所以需要`xfs_stage1_5` > [![7](https://box.kancloud.cn/2016-01-06_568cdb4f41fcc.png)](ch22s06.html#grub-77) 將`xfs_stage1_5`嵌入到 MBR,不然 Grub 不能夠讀取 XFS 分區中的 stage2 > [![8](https://box.kancloud.cn/2016-01-06_568cdb4f5948a.png)](ch22s06.html#grub-78) 將`stage1`安裝到 MBR,并指向 `stage2` 和 `menu.lst` > [![9](https://box.kancloud.cn/2016-01-06_568cdb4f68749.png)](ch22s06.html#grub-79) 退出 * 可以使用`TAB`補全,或者按兩次`TAB`列出提示 ## Grub 使用 在 Grub 啟動菜單中,您可以選擇您要的選項,按下 `d` 刪除該項;或者按下 `e` 鍵,進入到編輯模式 修改您的啟動參數,完成后回車 按 `b` 鍵,Grub 將以您修改后的參數引導系統。 在 Grub 啟動菜單中,按下 `c` 進入命令模式,操作與交互模式基本相同;只不過最后一個命令是**boot**,而不是**quit**
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看