新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 教你如何學習GRUB

        教你如何學習GRUB

        作者: 時間:2016-09-12 來源:網絡 收藏

        1 首先要了解的幾個概念

        本文引用地址:http://www.104case.com/article/201609/304086.htm

        1.1 啟動管理器

        啟動管理器是存儲在磁盤開始扇區中的一段程序,例如,硬盤的MBR(Master Boot Record),在系統完成啟動測試后,如果系統是從MBR啟動,則BIOS(Basic Input/Output System)將控制傳送給MBR。然后存儲在MBR中的這段程序將運行。這段程序被稱為啟動管理器。它的任務就是將控制傳送給操作系統,完成啟動過程》有許多可用的啟動管理器,包括GNU (Grand Unified Boot Loader),Bootmanager, LILO (LInux LOader), NTLDR (boot loader for Windows NT systems),等等等.

        1.2 什么是?

        grub 是一個多重啟動管理器。grub是GRand Unified Bootloader的縮寫,它可以在多個操作系統共存時選擇引導哪個系統。它可以引導的操作系統包括:

        Linux,FreeBSD,Solaris,NetBSD,BeOSi,OS/2,Windows95/98,Windows NT,Windows2000,WinXP。它可以載入操作系統的內核和初始化操作系統(如Linux,FreeBSD),或者把引導權交給操作系統(如Windows 98)來完成引導。

        1.3 的特點

        特別適用于與其它操作系統共存情況。

        支持大硬盤 現在大多數Linux發行版本的lilo都有同樣的一個問題:根分區(/boot分區)不能分在超過1024柱面的地方,一般是在8.4G左右的地方,否則lilo不能安裝,或者安裝后不能正確引導系統。而grub就不會出現這種情況,只要安裝時你的大硬盤是在LBA模式下,grub就可以引導根分區在8G以外的操作系統。

        支持開機畫面   grub支持在引導開機的同時顯示一個開機畫面。對于玩家來說,這樣可以制作自己的個性化開機畫面;對于PC廠商,這樣可以在開機時顯示電腦的一些信息和廠商的標志等。grub支持640x480,800x600,1024x768各種模式的開機畫面,而且可以自動偵測選擇最佳模式,與Windows那320x400的開機畫面不可同日而語。

        兩種執行模式 grub不但可以通過配置文件進行例行的引導,還可以在選擇引導前動態改變引導時的參數,還可以動態加載各種設備。例如你在Linux下編譯了一個新的核心,但不能確定它能不能工作,你就可以在引導時動態改變grub的參數,嘗試裝載這個新的核心進行使用。Grub的命令行有非常強大的功能,而且支持如bash或doskey一樣的歷史功能,你可以用上下鍵來尋找以前的命令。

        菜單式選擇   grub使用一個菜單來選擇不同的系統進行引導。你還可以自己配置各種參數,如延遲時間,默認操作系統等。

        分區大小改變后不必重新配置   grub是通過文件系統直接把核心讀取到內存,因此只要操作系統核心的路徑沒有改變,grub就可以引導系統。

        除此之外,Grub還有許多非常強大的功能。例如支持多種外部設備,動態裝載操作系統內核,甚至可以通過網絡裝載操作系統核心。Grub支持多種文件系統,支持多種可執行文件格式,支持自動解壓,可以引導不支持多重引導的操作系統,支持網絡啟動等。

        1.4 MBR和第一扇區

        你可以簡單的理解為MBR是整個硬盤的物理第一位置,而第一扇區是硬盤的物理第二位置.

        1.5 一個GRUB配置文件

        基于本例的分區如下:

        hda 15G

        hda1 8G / RED HAT LINUX8.0

        hda5 7G /home

        hdc 20G

        hdc1 6.4G WinXP

        hdc5 6.4G

        hdc6 6.4G

        hdc7 6.4G

        #fdisk -l

        # Disk /dev/hdc: 255 heads, 63 sectors, 2434 cylinders

        Units = cylinders of 16065 * 512 bytes

        Device Boot Start End Blocks Id System

        /dev/hdc1 * 1 894 7181023+ b Win95 FAT32

        /dev/hdc2 895 2434 12370050 f Win95 Ext'd (LBA)

        /dev/hdc5 895 1787 7172991 b Win95 FAT32

        /dev/hdc6 1788 2434 5196996 b Win95 FAT32

        Disk /dev/hda: 255 heads, 63 sectors, 1867 cylinders

        Units = cylinders of 16065 * 512 bytes

        Device Boot Start End Blocks Id System

        /dev/hda1 * 1 1020 8193118+ 83 Linux

        /dev/hda2 1021 1802 6281415 83 Linux

        /dev/hda3 1803 1867 522112+ 82 Linux swap

        grub.conf,這個文件位于;/boot/grub/grub.conf

        # grub.conf generated by anaconda

        #

        # Note that you do not have to rerun grub after making changes to this file

        # NOTICE: You do not have a /boot partition. This means that

        # all kernel and initrd paths are relative to /, eg.

        # root (hd0,0)

        # kernel /boot/vmlinuz-version ro root=/dev/hda1

        # initrd /boot/initrd-version.img

        #boot=/dev/hda

        default=0

        timeout=3

        splashimage=(hd0,0)/boot/grub/splash.xpm.gz

        title Red Hat Linux (2.4.18-14)

        root (hd0,0)

        kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/

        initrd /boot/initrd-2.4.18-14.img

        title Microsoft Windows XP

        map (hd0) (hd1)

        map (hd1) (hd0)

        root (hd1,0)

        chainloader (hd1,0)+1

        makeactive

        boot

        2 解讀grub.conf文件

        我們將來看看grub.conf文件內語句,(注:...)內的東西是我們的解讀內容.

        # grub.conf generated by anaconda

        #

        # Note that you do not have to rerun grub after making changes to this file

        # NOTICE: You do not have a /boot partition. This means that

        # all kernel and initrd paths are relative to /, eg.

        # root (hd0,0)

        # kernel /boot/vmlinuz-version ro root=/dev/hda1

        # initrd /boot/initrd-version.img

        #boot=/dev/hda (注:以上以符號井#開頭的行表示被注釋掉,沒有任何意義)

        default=0 (注:默認的操作系統就是由default控制的。default后加一個數字n,表明是第 n+1個。需要注意的是,GRUB中,計數是從0開始的,第一個硬盤是hd0,第一 個軟驅是fd0,等等。所以,default 0 表示默認的操作系統在這兒是 Red Hat Linux (2.4.18-14)如果你修改成1就是WinXP了)


        上一頁 1 2 3 4 5 下一頁

        關鍵詞: GRUB linux

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 图木舒克市| 安顺市| 雷州市| 寻甸| 保靖县| 安溪县| 长武县| 宁安市| 东乌珠穆沁旗| 会理县| 朝阳县| 北辰区| 桑植县| 永福县| 莱阳市| 徐汇区| 白山市| 通河县| 渝中区| 任丘市| 克拉玛依市| 同德县| 都匀市| 公主岭市| 华蓥市| 巫山县| 海城市| 衡东县| 河南省| 屏东县| 宣城市| 仲巴县| 张家界市| 蓝田县| 正定县| 衡水市| 平陆县| 桦甸市| 绥芬河市| 岳西县| 嘉祥县|