GRUB(Boot Loader):
·grub:GRand Unified Bootloader
grub 0.x:grub leagacy
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開始編號
#:分區編號,用數字表示;從9開始
(hd0,0)
·grub的命令行接口
help:獲取命令幫助
help KEYWORD:獲取幫助信息
find (hd#,#) /PATH/TO/SOMEFILE
·root (hd#,#):指定grub stage2的根所在
·kernel /PATH/TO/KERNEL_FILE:設定本次啟動時用戶的內核文件;額外還可以添加許多內核支持使用的cmdline參數
可在kernel后追加的內容:
init=/path/to/init:指明init路徑,指定啟動內核后的第一個進程
selinux=0:此次啟動關閉seliunx
ro root=/path/to :指明根文件系統
quiet:靜默模式
rhgb:設置啟動過程是圖像
max_loop=100:增加/dev/loop設備為100個(默認為8個)
1,S,s,single:以級別1啟動,可用戶破解root用戶密碼
·initrd /PATH/TO/INITRAMFS_FILE:設定為選定的內核提供額外文件的ramdisk
initrd中文件的版本號必須同內核版本號完全匹配(這個文件是安裝好系統后自動編譯生成了(mkdosfs),和當前系統是匹配的,選則了不匹配的ramdisk則可能出錯)
·boot:引導啟動此前選定的內核
手動在grub命令行接口啟動系統:
grub > root (hd0,0)
grub > kernel /vmliunz-VERSION-RELEASE ro root=/dev/DEVICE selinux=0
grub > initrd /initramfd-VERSION-RELEASE.img
grub > boot
·配置文件:/boot/grub/grub.conf
配置項:
default=#:設定默認啟動的菜單項;菜單項(title)編號從0開始
timeout=#:設定菜單項等待選項選擇的時長
splashimage=(hd0,0)/PATH/TO/XPM_PIC_FILE:指明菜單背景圖片文件路徑
hiddenmenu:隱藏菜單
password [–md5] STRING:菜單編輯認證,增加系統安全
title TITLE:定義菜單項“標題”,可出現多次
root (hd0,0):grub查找stage2及kernel文件所在這邊分區,為grub的“根”提供訪問路徑
kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:啟動的內核
initrd /PATH/TO/INITRAMFS_FILE:內核匹配的ramfs文件
password [–md5] STRING:啟動選定的內核或操作系統時進行認證
·grub-md5-crypt命令:
用于生成/etc/grub.conf文件中password –md5 的密碼
·cat /var/log/boot.log
記錄系統啟動過程(Welcome to CentOS 之后的)
·cat /proc/cmdline
本次啟動的內核參數
·進入單用戶模式:(可直接root破解密碼)
(1) 編輯grub菜單(選定要編輯的title,而后使用e命令)
(2) 在選定的kernel后附加
1,s,S或single都可以
(3) 在kernel所在行,鍵入“b”命令
·MBR被破壞了,安裝grub:(系統啟動中<先掛載光盤,然后進行根切換,然后運行命令>,或系統運行中)
(1) grub-install
grub-install –root-directory=ROOT /dev/DISK
-root-directory=:應該為boot所在的父目錄
/dev/DISK:對那塊磁盤安裝grub
(2) grub
grub > root (hd#,#)
grub > setup (hd#)
拓展:
·chroot命令: 根切換
·破壞了rpm包如何安裝
進入光盤救援模式:
rpm -ivh /mnt/cdrom/Packages/rpm….rpm –root=/mnt/sysimage/
·破壞了kernel包如何安裝
進入光盤救援模式:
(1)rpm -ivh /mnt/cdrom/Packages/kernel….rpm –root=/mnt/sysimage/
(2)chroot /mnt/sysimage
mount /dev/cdrom /mnt
rpm -ivh /mnt/Packages/kernel….rpm
·/etc/fstab被破壞了
進入救援模式
測試性掛載,找到根
無法使用lsblk
可以使用fdisk -l , blkid (有卷標則可以直接找到根所在磁盤)
vim /etc/fstab
/dev/sda1 /boot ext4 defaults 0 0 //掛載boot分區
/dev/sda2 / ext4 defaults 0 0 //掛載root分區
reboot:重新啟動
·根為lvm的/etc/fstab 被破壞
lvsacn //掃描lvm
vgchange -ay //恢復lvm中的vg和lv
blkid //查看邏輯卷
掛載根和boot分區,操作同上
原創文章,作者:megedugao,如若轉載,請注明出處:http://www.www58058.com/45531