亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

學習筆記之grub應用

發布時間:2020-08-11 18:09:52 來源:網絡 閱讀:277 作者:KIWI譚龍 欄目:安全技術

GRUB(Boot Loader):基本應用

grub: GRand Unified Bootloader

   版本:grub 0.x: grub legacy傳統grub版本

 grub 1.x: grub2

以centos6為例;

grub是安裝在MBR中的

 grub legacy:

    stage1: mbr

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

    stage2:存放于磁盤分區(/boot/grub/)


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

當系統啟動時,如果要加載grub所在的磁盤時,會讀取磁盤上的MBR,從此能加載到stage1,stage1加載以后,它會嘗試去讀取隨后扇區的stage1_5,從而之后會讀到驅動stage2的磁盤分區了。

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

grub(或stage2)功用:

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

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

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

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

允許傳遞參數給內核

可隱藏此菜單

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

為編輯菜單進行認證

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


grub如何識別設備:

   (hd#,#)

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

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


(hd0,0)


開機時的一個交互界面,敲c可以進入grub命令行模式

grub的命令行接口中的常用命令介紹

help: 獲取幫助列表

help KEYWORD: 詳細幫助信息

find (hd#,#)/PATH/TO/SOMEFILE:(在磁盤)查找某文件

root (hd#,#):把哪一個磁盤分區設置為grub的根設備

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 (指定內核版本和指定根所在的目錄,這里必須注意root必須是你根所在的設備的分區的文件,可以通過df命令查看)

grub> initrd /initramfs-VERSION-RELEASE.img

grub> boot


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

    配置項:

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

timeout=#:指定菜單項等待選項選擇的時長;(如果用戶選擇時間超過5秒就自己動選擇了)

splashp_w_picpath=(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項,在選定的kernel后附加

1, s, S或single都可以;之后回車回到菜單項

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

   系統損壞之后,在沒有重啟的時候可以按照下面的方法來修復

安裝grub:

(1) grub-install:安裝grub命令grub-install - install GRUB on your drive

grub-install [OPTION] install_device

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

系統沒重啟修復使用下面的:

(2) grub

grub> root (hd#,#)###此方法必須實現存在有一個grub目錄

        grub> setup (hd#)

創建一個磁盤,提供一個可以單獨運行bash的系統

1、首先添加一塊磁盤,并分區創建文件系統,這里設置為/dev/sdb1(做boot和安裝grub用),/dev/sdb2(作為swap分區),/dev/sdb3(放根)。

2、安裝grub

[root@localhost ~]# mkdir /mnt/boot

[root@localhost ~]# mount /dev/sdb1 /mnt/boot

[root@localhost ~]# ls /mnt/boot

lost+found

[root@localhost ~]# grub-install --root-directory=/mnt /dev/sdb

##安裝grub并指明根所在目錄

Probing devices to guess BIOS drives. This may take a long time.

Installation finished. No error reported.

This is the contents of the device map /mnt/boot/grub/device.map.

Check if this is correct or not. If any of the lines is incorrect,

fix it and re-run the script `grub-install'.


(fd0) /dev/fd0

(hd0) /dev/sda

(hd1) /dev/sdb

[root@localhost ~]# ls /mnt

boot  sysroot

[root@localhost ~]# ls /mnt/boot

grub  lost+found

###顯示已經成功安裝grub

[root@localhost ~]# ls /mnt/boot/grub/

device.map     iso9660_stage1_5   stage1           xfs_stage1_5

e2fs_stage1_5  jfs_stage1_5       stage2

fat_stage1_5   minix_stage1_5     ufs2_stage1_5

ffs_stage1_5   reiserfs_stage1_5  vstafs_stage1_5

[root@localhost ~]# cp /boot/vmlinuz-2.6.32-573.el6.x86_64 /mnt/boot/vmlinuz

###復制內核

[root@localhost ~]# cp /boot/initramfs-2.6.32-573.el6.x86_64.img /mnt/boot/initramfs.img

[root@localhost ~]# vim /mnt/boot/grub/grub.conf

     default=0

     timeout=5

     title Centos (express)

            root (hd0,0)##此處在新建的系統中識別為第一塊磁盤的第一分區

            kernel /vmlinuz ro root=/dev/sda3

       ###此處也一樣用的是sda3而非sdb3,對新系統來說它就是磁盤的第三分區

           initrd /initramfs.img

#####編輯grub配置文件

##以上為grub配置階段,下面為創建根文件


[root@localhost ~]# mkdir /mnt/sysroot

[root@localhost ~]# ls /mnt

boot  sysroot

[root@localhost ~]# mount /dev/sdb3 /mnt/sysroot

#####掛載分區sdb3,將它作為根文件放的位置

[root@localhost ~]# ls /mnt/sysroot

lost+found

[root@localhost ~]# cd /mnt/sysroot

[root@localhost sysroot]# ls

lost+found

[root@localhost sysroot]# mkdir -pv etc bin sbin lib lib64 dev proc sys tmp var usr home root mnt media 

##給根下創建必要的目錄

mkdir: created directory `etc'

mkdir: created directory `bin'

mkdir: created directory `sbin'

mkdir: created directory `lib'

mkdir: created directory `lib64'

mkdir: created directory `dev'

mkdir: created directory `proc'

mkdir: created directory `sys'

mkdir: created directory `tmp'

mkdir: created directory `var'

mkdir: created directory `usr'

mkdir: created directory `home'

mkdir: created directory `root'

mkdir: created directory `mnt'

mkdir: created directory `media'

[root@localhost sysroot]# ls

bin  etc   lib    lost+found  mnt   root  sys  usr

dev  home  lib64  media       proc  sbin  tmp  var

###此時文件中沒有程序,下面我們將bash復制進來作為init來啟動

[root@localhost sysroot]# cp /bin/bash /mnt/sysroot/bin/

[root@localhost sysroot]# ldd /bin/bash

linux-vdso.so.1 =>  (0x00007ffcb40d4000)

libtinfo.so.5 => /lib64/libtinfo.so.5 (0x0000003d61800000)

libdl.so.2 => /lib64/libdl.so.2 (0x0000003d5ac00000)

libc.so.6 => /lib64/libc.so.6 (0x0000003d5b000000)

[root@localhost sysroot]# cp /lib64/libtinfo.so.5 /mnt/sysroot/lib64

[root@localhost sysroot]# cp /lib64/libdl.so.2 /mnt/sysroot/lib64

[root@localhost sysroot]# cp /lib64/libc.so.6 /mnt/sysroot/lib64

[root@localhost sysroot]# cp /lib64/ld-linux-x86-64.so.2 /mnt/sysroot/lib64

####要將bash所依賴的都復制到相應目錄

[root@localhost sysroot]# chroot /mnt/sysroot

bash-4.1# 

###檢測根系統

##配置根已經成功

一個簡單的系統就配置完成了,在之后創建一個虛擬機,將該磁盤裝載上面就可以了,但在同時使用手動啟動的時候,要在grub菜單項中編輯kernel選項在init前面添加selinux=0之后回車退回菜單項敲擊“b命令”就可以啟動了。

注:這里面沒有任何命令,要使用命令則需另外復制相關文件到系統中



 


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

余姚市| 长治县| 忻州市| 霍邱县| 盱眙县| 阿克陶县| 洪江市| 三门峡市| 甘南县| 桂平市| 枣强县| 溆浦县| 涞源县| 宣城市| 宜宾市| 阿勒泰市| 彰武县| 蕲春县| 嵩明县| 和平区| 抚顺市| 铜陵市| 浦东新区| 英山县| 无为县| 华安县| 太和县| 抚顺县| 哈巴河县| 陆良县| 孟津县| 黄山市| 且末县| 合川市| 静安区| 从江县| 柘城县| 拉孜县| 上饶县| 江川县| 山丹县|