GRUB的使用
讀取MBR之二 GRUB使用?點介紹一下GRUB的使用。
grub是linux比較常用的bootloader(linux 下還有lilo),它可以用來引導多種文件系統(windows linux dos等).
Red Hat Linux 7.2起,grub(GTand Unified Bootloader)取代lilo成為默認的啟動裝載程序。
MBR只是硬盤的第一個sector內的一個區塊,446bytes容量。
Linux 將 boot loader的程序代碼執行與設定值分成兩個階段
1.執行bootloader主程序 (這個主程序必須安裝在開機區,即MBR或者bootsector..但通常僅安裝bootloader的最小主程序)
2.bootloader主程序加載配置文件 (bootloader的最小主程序加載配置文件及相關環境參數,LINUX中配置文件常放在/boot下 /boot/grub)
GRUB的配置文件的menu.lst講解
如何未配置menu.lst,則進入grub>命令行模式
menu.lst位于/boot/grub目錄中。
創建menu.lst命令
[root@localhost ~]# touch /boot/grub/menu.lst
[root@localhost ~]# cd /boot/grub
[root@localhost ~]# ln -s menu.lst grub.conf?? 做一個menu.lst的鏈接grub.conf (鏈接相當快捷方式)
?
1、menu.lst的寫法之一
default=0??? 默認啟動哪個系統,第一個title為0.
timeout=5??? 開機出現GRUB畫面后無操作5秒開始以默認配置啟動
#splashimage=(hd0,6)/boot/grub/splash.xpm.gz?? 將圖片設置為背景
#hiddenmenu 開機是否要顯示選單
對啟動LINUX操作系統來說,一般包括四行 title root kernel initrd
title red hat???? (需要注意的是title 后有空格)
root (hd0,6)????? (表示的是/boot所在的分區 0 是指第一個磁盤 6指第一個磁盤第7個分區)
kernel /boot/vmlinuz-2.6 ro root=LABEL=/ rhgb quiet?? (指定linux內核文件絕對路徑)
#kernel /vmlinuz-2.6 ro root=LABEL=/ rhgb quiet??????? (如果/boot是獨立分區)
initrd /boot/initrd-2.6.img??????????????????????????? (/boot與 /在同一分區)
#initrd /initrd-2.6.img??????????????????????????????? (/boot是獨立分區)
ro 意思是只讀? root=LABEL=/ 來表示LINUX的根所處分區 這里也可以直接寫root=/dev/hda7
rhgb 表示redhat graphics boot,用圖片來代替啟動過程中顯示的文本信息,啟動后deesg可查
quiet 表示在啟動過程中只有重要信息顯示,類似硬件自檢的消息不回顯示
kernel 中兩個root。root一是grub命令,它用來指定boot所在的分區作為grub的根目錄.
而root=/dev/ram0是kernel的參數,告訴操作系統內核加載完后,真實的文件系統所在的設備.
精簡寫法:
/boot與 /在同一分區
title redhat??????????
kernel (hd0,6)/boot/vmlinuz-2.6 ro root=/dev/hda7??
initrd(hd0,6)/boot/initrd-2.6.img
/boot是一個單獨分區時
title redhat???????????
kernel (hd0,6)/vmlinuz-2.6 ro root=LABLE=/??
initrd (hd0,6)/initrd-2.6.img
grub的命令行模式
需要確定LINUX安裝在哪個分區,可以用cat來查看并判斷
#grub> kernel /boot/vmlinuz-2.6 ro root=LABEL=/
grub> kernel (hd0,6)/boot/vmlinuz-2.6 ro root=/dev/hda7
grub> initrd /boot/initrd-2.6.img
#grub> initrd (hd0,6)/initrd-2.6.img
grub>boot???????
整個命令和menu.lst中一樣。
開機控制權的轉交 chain loader方式
title Windows partition??? 將控制權轉交與windows 的loader
? rootnoverify (hd0,0)?? 檢驗此分割槽
? chainloader +1???????? 第一個扇區boot sector?
? makeactive???????????? 設定定此分割槽為開機碟(active)
?
title Windows partition
? hide (hd0,4)?????????? 隱藏 (hd0,4) 這個分割槽 ,WINDOWS 不能訪問此分區
? rootnoverify (hd0,0)
? chainloader +1
? makeactive
修改管理員密碼方法
1.需要進入編輯模式,在kerkel 行后加上 single
2.需要進入編輯模式,在kerkel 行后加上 init=/bin/bash
啟動后需要? 下達以下指令
bash#mount -o remount,rw /
bash#mount -a
然后重啟一次。
總結
- 上一篇: c++ setstate() 和 cle
- 下一篇: 详解linux的initrd