?從實驗來了解grub

實驗一為grub設置密碼

  1. 先看一看grub是怎么樣的

1465430254911174.jpg

grub有兩個版本

grub: GRand Unified Bootloader

grub 0.x: grub legacy

grub 1.x: grub2

 Note:grub 1.x是完全重寫的只不過是保留grub 0.x的工作機制。

2.利用grub自帶命令生成密碼grub-md5-crypt

1465430969979206.jpg

3.把密碼保存在配置文件:/boot/grub/grub.conf

1465431118996558.jpg

配置項:

default=#: 設定默認啟動的菜單項;落單項(title)編號從0開始;

timeout=#:指定菜單項等待選項選擇的時長;

splashimage=(hd#,#)/PATH/TO/XPM_PIC_FILE:指明菜單背景圖片文件路徑;

hiddenmenu:隱藏菜單;

password [–md5] STRING: 菜單編輯認證;

title TITLE:定義菜單項“標題”, 可出現多次;

root (hd#,#):grub查找stage2及kernel文件所在設備分區;為grub的“根”; 

kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:啟動的內核

initrd /PATH/TO/INITRAMFS_FILE: 內核匹配的ramfs文件;

password [–md5] STRING: 啟動選定的內核或操作系統時進行認證;

1465431422397393.jpg1465431512177929.jpg

輸入密碼就會原先還沒設置密碼的grub。 

1465431698142983.jpg

這個要通過grub進行引導進入系統需要的密碼,也是之前在配置文件設置的。

1465431845341007.jpg

實驗二忘記root的密碼 ,就可以用grub來進行改密碼

這進入單用戶模式進行修改密碼

進入單用戶模式:

(1) 編輯grub菜單(選定要編輯的title,而后使用e命令); 

1465432150199492.jpg

(2) 在選定的kernel后附加

1, s, S或single都可以;

1465432692208099.jpg

(3) 在kernel所在行,鍵入“b”命令;1465432745638074.jpg它就會以root身份直接登入,改密碼就只需要passwd

1465432824748458.jpg

實驗三.安裝grub和修復grub

已經知道進入單用戶和配置文件,那也得知道這么安裝著個grub。

先對grub進行破壞

1465433546958196.jpg

grub破壞后,硬盤就沒有識別到,直接識別成光盤。

1465433842868239.jpg

(1) grub-install

grub-install –root-directory=ROOT /dev/DISK

1465433637420190.jpg

(2) 采用光盤救援模式

grub

grub> root (hd#,#)

grub> setup (hd#)

1465434020356015.jpg

1465434639368063.jpg

1465434663571784.jpg1465434731287415.jpg

是要對網絡接口進行配置,可以選擇no,選擇yes會進入以下界面

1465434749546604.jpg

這是選擇back,因為本次實驗是對grub修復

1465434779270987.jpg

1465434957432148.jpg

選擇continue

1465434992803507.jpg

這里提示切換/,使用chroot /mnt/syscimage,因為grub啟動是先會進入一個虛擬的根,然后在轉到真實的/

1465435050782817.jpg

1465435075720917.jpg

1465435229282125.jpg

下面就是修復grub

1465435579684867.jpg1465435661333036.jpg

修復完畢。

示例四、制作grub

準備一塊硬盤

1465435803305952.jpg

1465435962965280.jpg

可以看到系統已經加入了/dev/sdb 

這時候就需要進行分區。我這是已經分好區了已經格式化過

1465437575526434.jpg

安裝grub并配置文件

1465441076416549.jpg

在kernel的后面還需加上 selinux=0 init=/bin/bash

分區完畢就需要進行掛載。并創建一個文件系統所需要的文件夾。1465439513365693.jpg

為什么只掛載/dev/sdb3 不掛載2和1呢  因為/dev/sdb1是作為grub  /dev/sdb2 是swap分區

查看所依賴的庫文件

1465440919115619.jpg

復制庫文件

1465440955569126.jpg

這是建立好的grub

1465441346139042.jpg

1465441291985196.jpg

總結

GRUB(Boot Loader):

grub: GRand Unified Bootloader

grub 0.x: grub legacy

grub 1.x: grub2

grub legacy:傳統的 

stage1: mbr

stage1_5: mbr之后的扇區,讓stage1中的bootloader能識別stage2所在的分區上的文件系統;

stage2:磁盤分區(/boot/grub/)

配置文件:/boot/grub/grub.conf <– /etc/grub.conf

stage2及內核等通常放置于一個基本磁盤分區;

功用:

(1) 提供菜單、并提供交互式接口

e: 編輯模式,用于編輯菜單;

c: 命令模式,交互式接口;

(2) 加載用戶選擇的內核或操作系統

允許傳遞參數給內核

可隱藏此菜單

(3) 為菜單提供了保護機制

為編輯菜單進行認證

為啟用內核或操作系統進行認證

如何識別設備:

(hd#,#)

hd#: 磁盤編號,用數字表示;從0開始編號

#: 分區編號,用數字表示; 從0開始編號

(hd0,0)

grub的命令行接口    這個還沒說道

help: 獲取幫助列表

help KEYWORD: 詳細幫助信息

find (hd#,#)/PATH/TO/SOMEFILE:

root (hd#,#)

kernel /PATH/TO/KERNEL_FILE: 設定本次啟動時用到的內核文件;額外還可以添加許多內核支持使用的cmdline參數;

例如:init=/path/to/init, selinux=0

initrd /PATH/TO/INITRAMFS_FILE: 設定為選定的內核提供額外文件的ramdisk;

boot: 引導啟動選定的內核;

手動在grub命令行接口啟動系統:

grub> root (hd#,#)

grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE 

grub> initrd /initramfs-VERSION-RELEASE.img

grub> boot

配置文件:/boot/grub/grub.conf

配置項:

default=#: 設定默認啟動的菜單項;落單項(title)編號從0開始;

timeout=#:指定菜單項等待選項選擇的時長;

splashimage=(hd#,#)/PATH/TO/XPM_PIC_FILE:指明菜單背景圖片文件路徑;

hiddenmenu:隱藏菜單;

password [–md5] STRING: 菜單編輯認證;

title TITLE:定義菜單項“標題”, 可出現多次;

root (hd#,#):grub查找stage2及kernel文件所在設備分區;為grub的“根”; 

kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:啟動的內核

initrd /PATH/TO/INITRAMFS_FILE: 內核匹配的ramfs文件;

password [–md5] STRING: 啟動選定的內核或操作系統時進行認證;

grub-md5-crypt命令

進入單用戶模式:

(1) 編輯grub菜單(選定要編輯的title,而后使用e命令); 

(2) 在選定的kernel后附加

1, s, S或single都可以;

(3) 在kernel所在行,鍵入“b”命令;

安裝grub:

(1) grub-install

grub-install –root-directory=ROOT /dev/DISK

(2) grub

grub> root (hd#,#)

grub> setup (hd#)

grub從無到有:1.對硬盤進行分區并格式化  2.進行掛載 3.制作grub 4.生成根文件系統 5.拷貝對應的庫文件 6.從內存中保存一下sync

 

原創文章,作者:N19_king,如若轉載,請注明出處:http://www.www58058.com/17969

(0)
N19_kingN19_king
上一篇 2016-06-07 22:03
下一篇 2016-06-09 20:23

相關推薦

  • Centos6系統救援模式

    CentOS 6系統救援模式 在學習了CentOS 5、6系統啟動流程與啟動故障排除之后,為了加深印象進行了如下破壞性嘗試。 刪除/boot目錄與/etc/fstab文件后嘗試修復系統 1. 首先是第一步刪除/boot目錄與/etc/fstab 刪除/boot /etc/fstab 可以看到雖然boot目錄無法刪除但是目錄中的文件已經全部刪掉了。 2. 重新…

    Linux干貨 2016-11-24
  • 用戶和組的管理

    前言 服務器最主要的工作是提供可靠的服務,提供服務就必須對外開放自己的網絡,可靠就需要一定的機制來保證了。Linux中有一個3A的機制,首先是認證,就是我們經常聽到的一句話,怎么證明你就是你;其次是授權,管理一個服務器,每個管理員都有自己的職責,那么我們就只分配對應的權限給特定的人,這樣就可以明確事故的責任,從源頭甩鍋;最后是審計,總有一些黑客可以通過各種手…

    Linux干貨 2016-10-22
  • puppet代碼分析

    這篇博客的目的是通過分析Forge上的Puppet模塊來加深一些概念的理解,同時了解一些常用用法。 今天的例子是jfryman-nginx模塊,它是原puppetlabs-nginx模塊的升級版本,依賴3個Puppet公共模塊:puppetlabs-apt,puppetlabs-stdlib和puppetlabs-concat。安裝非常方便,puppet m…

    2017-03-18
  • CA服務器的搭建以及證書簽署、dropbear的編譯安裝

    CA服務器的搭建以及證書簽署、dropbear的編譯安裝 一、CA Server和Client: 1、CA server:創建私鑰CA (1)   openssl的配置文件:/etc/pki/tls/openssl.conf   如果Client端的申請是來自不同的國家,則需要將下圖中紅色框內的三項,由“match”改為“opt…

    Linux干貨 2016-09-23
  • 馬哥教育網絡班21期+第10周課程練習

    1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情) POST –>Boot Sequence(BIOS) –> Boot Loader(MBR) –> Kernel(ramdisk) –>rootfs –>…

    Linux干貨 2016-09-19
  • Linux發展史

    Linux發展史 操作系統出現前:   1946年第一臺計算機誕生–20世紀50年代中期,還未出現操作系統,計算機工作采用手工操作方式。程序員將對應于程序和數據的已穿孔的紙帶(或卡片)裝入輸入機,然后啟動輸入機把程序和數據輸入計算機內存,接著通過控制臺開關啟動程序針對數據運行;計算完畢,打印機輸出計算結果;用戶取走結果并卸下紙帶(或卡片…

    Linux干貨 2016-10-14
欧美性久久久久