天天看點

grub應用

一、GRUB簡介

   GRUB(GRand

Unified

Bootloader簡稱“GRUB”)是一個來自GNU項目的多作業系統啟動程式。GRUB是多啟動規範的實作,它允許使用者可以在計算機内同時擁有多個作業系統,并在計算機啟動時選擇希望運作的作業系統。GRUB可用于選擇作業系統分區上的不同核心,也可用于向這些核心傳遞啟動參數。

=========================================================================================

二、GRUB的組成

grub分為三個部分

   第一部分被放在MBR中前446位元組裡(MBR共512位元組,中間54位元組存放磁盤分區資訊,最後2位元組判斷MBR是否損壞),主機闆啟動時首先會讀取MBR裡的内容,是以grub是系統核心啟動之前就啟動的。

   第二部分放在MBR之後的扇區中,存放的是檔案系統的驅動程式,可以在系統内啟動分區沒挂載的情況下讀取磁盤内裡的指定内容

   第三部分就是存在磁盤分區中的内容,裡面是grub的配置資訊,核心檔案,這裡就是gurb的根分區

==============================================================================

三、GRUB的功能

1、提供菜單,并提供互動式接口(e:

進入編輯模式 在核心後添加single,後按b就可以進入單使用者模式、c:進入指令行接口模式)

2、選擇要啟動的核心或系統(允許傳遞引導參數給核心,選擇界面可隐藏)

3、為編輯功能提供保護機制(選擇運作指定的核心得先輸入密碼、使用e指令得先輸入密碼)

=============================================================================

四、 grub的兩種形式(使用虛拟機示範)

1、圖形模式

系統啟動之前開始出現倒數秒數的時候,按esc可以進入grub界面(一般是隐藏的,會啟動預設的系統)選擇我們想要啟動的不同系統。我這裡隻有一個系統,是以隻有一項可以選

grub應用

按e進入編輯模式

grub應用

按上下選擇要編輯的項,按e對其編輯,按enter鍵儲存編輯,按o新添一行,d删除此行,b啟動系統

2、指令行模式  

系統啟動前倒數秒數的時候按esc進入圖形界面,之後按c鍵會進入指令行模式

grub應用
grub應用

grub的指令行接口

help:獲得幫助清單  

root

(hd#,#)

設定哪兒塊磁盤為根    

kernel

/path/to/kernel_file :設定本次啟動時用到的核心檔案

vmlinuz(z表示壓縮的意思);額外還可以添加許多核心支援使用的cmdline參數

initrd

/path/to/initrd_file : 設定為標明的核心提供額外檔案的ramdisk;要和核心版本一樣

boot:引導啟動標明的核心

五、GRUB的配置檔案:

/boot/grub/grub.conf

配置項:支援指令行補全(tab)

default=#:

//設定預設啟動的菜單項

timeout=#:

//指定菜單項等待選項選擇的時長

splashp_w_picpath=(hd#,#)/path/to/xpm_pic_file

:   //指明菜單背景圖檔所在路徑(gimp 640*680)

hiddenmenu :    

//隐藏菜單

password [--md5] string :  

//菜單編輯認證

title TITLE :          

//定義菜單項“标題”

         root (hd#,#):

//grub查找stage2及kernel檔案所在裝置分區;為grub的“根”

/path/to/vmlinuz_file [parameters]:  //啟動核心并設定額外參數

/path/to/initramfs_file:   //核心比對的ramfs檔案

         password [--md5]

string :    //啟動標明的核心或作業系統時進行認證 【grub-md5-crypt 生成密碼】

六、安裝GRUB指令

使用grub-install指令

 # grub-install [--root-directory=DIR] DEVICE

  --root-directory=指定的路徑必須是核心及initrd檔案所在的分區的挂載點的父目錄,且此挂載點必須叫boot

========================================================================================

七、執行個體,安裝GRUB至令一個磁盤,并使用這個磁盤啟動一個帶bash的linux的系統

1、給虛拟機建立1個20G的磁盤,過程圖解:

grub應用
grub應用
grub應用
grub應用
grub應用
grub應用

2、啟動虛拟機,并給新的磁盤分3個區

/dev/sdb1(/boot):100M

檔案系統使用ext4

/dev/sdb2(swap):2G

/dev/sdb3(/):5G

grub應用
grub應用

[root@pyhon ~]

# mke2fs -t ext4 /dev/sdb1      //格式化分區,檔案系統為ext4

[root@pyhon ~]

# mke2fs -t ext4 /dev/sdb3

[root@pyhon ~]

# mkswap /dev/sdb2

[root@pyhon ~]

# mkdir /mnt/boot

[root@pyhon ~]

# mount /dev/sdb1 /mnt/boot/

[root@pyhon ~]

# grub-install --root-directory=/mnt /dev/sdb

grub應用
grub應用

4、建立/sysroot目錄,挂載/dev/sdb3,具體操作過程如下

[root@pyhon ~]

# mkdir /mnt/sysroot

[root@pyhon ~]

# mount /dev/sdb3 /mnt/sysroot/

[root@pyhon ~]

# cd /mnt/sysroot/

[root@pyhon sysroot]

# mkdir -pv bin boot dev etc home lib lib64 media mnt opt proc root sbin srv sys tmp usr var

[root@pyhon sysroot]

# cp /bin/bash /mnt/sysroot/bin/

[root@pyhon sysroot]

# ldd /bin/bash

[root@pyhon sysroot]

# cp /lib64/libtinfo.so.5 /mnt/sysroot/lib64/    

[root@pyhon sysroot]

# cp /lib64/libdl.so.2 /mnt/sysroot/lib64/

[root@pyhon sysroot]

# cp /lib64/libc.so.6 /mnt/sysroot/lib64/

[root@pyhon sysroot]

# cp /lib64/ld-linux-x86-64.so.2 /mnt/sysroot/lib64/

grub應用

5、修改/mnt/boot/grub/grub.conf檔案,并關閉此虛拟機

grub應用

[root@pyhon ~]

# sync

[root@pyhon ~]

# sync

[root@pyhon ~]

# sleep 10

[root@pyhon ~]

# shutdown -h now

grub應用
grub應用
grub應用
上一篇: GRUB應用
下一篇: grub應用

繼續閱讀