當前位置:首頁 » 操作系統 » grub源碼分析

grub源碼分析

發布時間: 2022-05-14 15:00:18

1. 如何用系統引導程序Grub安裝三系統不沖突

一、分區
本人的電腦中有兩塊硬碟,基本的想法是80G為Win系統,10G的硬碟放兩個linux系統,第一塊硬碟中已有Win2K系統,如果你只有一個硬碟,可以用PQ分一個空區出來,然後在空出來的區中劃一個交換分區,格式為/swap,大小一般為內存的1.5倍,如果你的內存為512M或者以上的交換分區和內存大小一樣就行了,再分出兩個大小為5G左右的根分區,格式化為EXT3。這樣做的好處就是當安裝完Linux系統後,Win系統不會因為不識別EXT3格式再變得非常緩慢。
二、安裝Linux系統
現在安裝Linux已經非常方便了,只要按屏幕上的提示來就行了,系統的安裝不分先後,但是安裝RedHat9時把Grub安裝在硬碟hda1的MBR上,安裝Mandrake9.1時把LILO或Grub安裝到/boot的第一個扇區上就OK了。在linux中,主分區是hda1,第二個硬碟的主分區是hdb1,邏輯分區是從hda5開始的,如果有兩個硬碟,可能就是從hdb5開始,以此類推。如果您不知道是怎麼回事,就要用fdisk -l或df-la來查看。要安裝系統的時候,也會有相應的讓您選擇安裝位置,也是hdaX或者hdbX分區之類的,Linux下沒有Win的C和D盤之分。
三、修改grub.conf
系統安裝完了,但是現在只能引導RedHat9和Win系統,必須要改一下/boot/grub/grub.conf才能讓三系統正常運行,用root用戶進入系統,先用fdisk -ld 終端中查看你的分區情況,知道分區情況就好辦了,用任何文件編輯器來打開/boot/grub/grub.conf,一般來說,Win系統會自動載入到grub裡面的,下面是筆者的grub.conf文件,我們來分析一下
default=0
timeout=10
splashimage=(hd1,2)/boot/grub/splash.xpm.gz
title Windows2K
rootnoverify (hd0,0)
chainloader +1
title RedHat9
root (hd1,2)
kernel /boot/vmlinuz-2.4.20-8 ro root=LABEL=/
initrd /boot/initrd-2.4.20-8.img
title Mandrake9.1
kernel (hd1,4)/boot/vmlinuz root=/dev/hdb5 quiet devfs=mount acpi=off vga=788
initrd (hd1,4)/boot/initrd.img
default=X為默認啟動的系統,0為排在第一個的系統,以此類推。
timeout=X為Grub菜單停留的時間,單位為秒
title XXX,XXX為標題,也就是你要引導的操作系統的名字,可以自己修改
root (hdX,Y)X和Y都代表一個數值,X是linux的根分區在哪個硬碟上。如你只有一個硬碟。那就是hd0。如果你的linux的一個發行版是安裝在第二個硬碟,這個X,就是1。Y是代表您所安裝的linux是在哪個區。這個數值有點不同,不太好說清楚。舉個例子來說。比如我把Mandrake安裝到第二塊硬碟的第二個分區,也就是hdb5了。那他的root (hdX,Y),就應該寫為root (hd1,4),也就是說Y=hdaZ或hdbZ中的Z減去1。
kernel (hdX,Y)/boot/vmlinuz root=/dev/hdaZ和initrd (hdX,Y)/boot/initrd.img就是要引導哪個硬碟分區的映像和initrd文件,一定要寫正確XY的數值,不然無法引導系統。
quiet devfs=mount acpi=off vga=788為啟動的參數。
rootnoverify (hdX,Y)如果不能啟動Win的話,可以改為root (hdX,Y)來試試
chainloader +1意思是指定此分區上的第一個磁軌來啟動
想加入別的操作系統到Redhat 中的GRUB中,也不過是如此,如者用其它發行版中的GRUB來引導別的發行版,原理也是一樣的。這和Win2K和XP中的BOOT.INI差不多,grub很簡單吧,多試幾次就會了。

2. linux系統開機出現grub

在windows下安裝軟體大家都覺得很容易,只要雙擊setup或是install的圖標,然後跟著向導一步一步的按提示做就可以了,但是在linux下安裝軟體就不像windows下那樣容易了,有時你找到的是沒有編譯過的軟體源碼,那就更加的麻煩了,這里就介紹一下如何安裝linux的軟體啦! linux下的軟體一般都是經過壓縮的,主要的格式有這幾種:rpm、tar、tar.gz、tgz等。所以首先拿到軟體後第一件事就是解壓縮。 一、在xwindow下以rpm格式的軟體安裝比較容易,只要在把滑鼠移到文件上單擊右鍵,在彈出的菜單里會有專門的三項(只有在右鍵單擊rpm文件才會出現)show info,upgrade和install,這三項的意思大家都很清楚了,我就不多說了。rpm格式說了,接著就是tar,tar.gz,tgz等,在xwindow下雙擊這些格式的文件就會自動解壓縮的,是解壓縮而不是像rpm那樣有install選項的,install文件會在你解壓縮後才出現,不過這里我要先說一下,在你雙擊install前建議先好好看一下readme,因為你所要安裝這些軟體可能是沒有編譯的,所以看一下會比較好。 二、說完了xwindow下的安裝和解壓縮,接著說在文本模式下如何解壓縮和安裝,還有編譯源碼了。首先說rpm的,以root身份登陸後(用其他的身份登陸也可以但有些軟體就不能被安裝)鍵入rpm -i你所要解壓縮的文件+擴展名(當然是rpm)也不是很難吧,這里我要說的是「-i」意思是install,如果你想要卸載或是要執行其他的指令就打rpm --help,看電腦給你的提示吧,為了照顧那些E文不太好的人我這里就寫幾個常用的參數:-e:卸載相關的應用程序,-U(注意是大寫):升級軟體包, -pql:列出rpm軟體包的相關信息,-qf:查找指定文件屬於哪個軟體包。至於那些其他格式的軟體則可以用gunzip,gzip,tar和unzip等指令來解壓縮,然後再運行install。通過解包後會得到一些文件,然後進入剛才解壓縮後文件目錄用「ls -F -color」指令看一下所得到的文件,一般有兩種情況:第一種是文件為已經編譯好的程序(無須再編譯了)用上面的察看文件命令會以帶「*」標記的亮綠色顯示;第二種則是需要由你自己編譯的源代碼。得到的是源代碼的話,就需要我們自己編譯來得到可運行的程序。編譯源代碼聽到編譯是不是就嚇到你了呢,其實說穿了也就加上幾句話而已,對初學者是有些困難想用好的操作系統就需要學習嘛,等你學會了在MM前露一手的時候想想吧……,在編譯之前先要認真的閱讀一下readme文檔,老鳥們就不需要了吧,等你閱讀完了以後就執行 ./configure make make install(只有Root身份才能執行此命令),編譯完成之後便會在當前目錄或src子目錄下得到軟體的可執行程序。 介紹完了,大家是不是覺的RPM的軟體安裝比較容易一點呢,但我個人意見初學者還是多選擇RPM格式以外的軟體,因為通過編譯軟體的源碼可以為你以後編譯內核打下一定的基礎。

3. u盤做pe採用grub啟動iso的方式 要源代碼

很高興為您解答,源代碼如下:default 0
timeout 1
title win 7 PE
fallback 5
find --set-root /win7.ISO
map /win7.iso (0xff) || map --mem /win7.iso (0xff)
map --hook
chainloader (0xff)
savedefault --wait=2
title reboot
reboottitle halt
halt

4. u盤啟動出現「grub」怎麼解決

解決方式:

撥下電源,打開主機,取下主板電池,過30秒安裝回主板,這樣可以讓BIOS恢復出廠值,然後重新進入BIOS設好啟動項和時間。

5. GNU GRUB 是什麼

GRUB是功能強大的引導程序,可以引導多種不同類型的操作系統,例如Windows,DOS,Linux,GNU Hurd,*BSD等...GRUB的源代碼可以從網址ftp://alpha.gnu.org/pub/gnu/grub下載。

6. 怎樣製作linux啟動U盤

介紹 UNetbootin允許你在Windows或Linux系統上創建一個可啟動的Live U盤, Live U盤上的Linux發行版本的種類很多, 這個過程不需要燒制CD. 你可以直接下載現成的眾多Linux發行版, 如果你已經下載好了Linux安裝盤的.iso文件 ,你也可以直接使用它,或者使用你喜歡的但不在這個列表上的發行版.系統要求 Microsoft Windows 2000/XP/Vista, 或者Linux. 如果你在使用Linux版本的UNetbootin遇到了麻煩, 試試Windows版本的, 它通常運行的更好. 接通互聯網的寬頻連接 – 下載Linux發行版的.iso文件時需要(除非你使用預先自己下載好的文件). 特性 UNetbootin能創建一個可啟動的Live U盤, 如果你沒有U盤的話, 它也可以在你的本地磁碟上做一個」簡單安裝」. 它能自動下載並載入ISO文件, 也可以直接使用現成的ISO文件或軟盤/磁碟鏡像或直接使用內核文件, 參安裝其他發行版.
目前內置支持的可以自動下載並載入的分發版如下: (不過, 也支持其他一些發行版的)Ubuntu (及官方衍生版本) 6.06 LTS 6.10 7.04 7.10 8.04 LTS 8.10 Daily CD Images Debian Stable/Etch Testing/Lenny Unstable/Sid Linux Mint 3.1 4.0 5-r1 6 openSUSE 10.2 10.3 11.0 11.1 Factory Arch Linux 2007.08 Damn Small Linux 4.4 SliTaz Stable Cooking Puppy Linux 4.00 gNewSense deltah-2.1 FreeBSD 6.3 7.0 NetBSD 4.0 Fedora 7 8 9 10 Rawhide PCLinuxOS 2007 2008 Sabayon Linux 4-LiteMCE Gentoo 2007.0 2008.0 MEPIS SimplyMEPIS 8 AntiX 8 Zenwalk 5.2 Slax 6 Dreamlinux 3.2 Elive Development CentOS 4 5 Mandriva 2007.1 2008.0 2008.1 FaunOS 0.5.4 Frugalware Linux Stable Testing Current
UNetbootin還可以用於載入若干係統工具:Parted Magic, 一個分區管理工具, 它可以設置分區大小, 修復分區, 還可以用於分區的備份和恢復.
Super Grub Disk, 一個啟動工具, 它可以重建和修復被覆蓋或者錯誤配置的GRUB安裝或者直接啟動若干操作系統.
Backtrack, 用於網路分析和突破測試工具.
Ophcrack, 恢復Windows密碼的工具
NTPasswd, 用於修改Windows密碼和注冊表的工具
Gujin, 一個圖形界面的啟動器, 支持若干操作系統和媒體介質.
Smart Boot Manager (SBM), 它可以使一個無法從光碟機或軟盤啟動的已損壞的BIOS啟動.
FreeDOS, 它可以運行BIOS flash和其他遺留的DOS工具.

�0�3 參 UNetbootin內置支持列表
�0�3 參 已知UNetbootin支持的分發版的總列表
�0�3 參 UNetbootin客戶化版本和插件
�0�3 參 使用UNetbootin插件 安裝和截圖
如果在Windows系統上使用, 運行UNetbootin, 選擇載入一個Linux發行版, 軟盤/磁碟鏡像, 或者內核, 再選擇一個目標位置(U盤或者硬碟), 完成後重啟.
如 果在Linux系統上使用, 首先使文件UNetbootin可執行 (可以使用chmod +x ./unetbootin-linux, 或者右鍵打開」屬性」 -> 「許可權」, 選中」允許以程序執行文件」 <譯者注: 這里的圖形化操作模式基於Ubuntu>), 然後開始運行它, 你將會要求輸入密碼以授予該應用程序管理員許可權, 然後主窗口將出現, 請選擇一個發行版和安裝位置(U盤或者磁碟), 當執行完成後重啟.
重 啟後, 如果你在上面的安裝類型中選擇了USB驅動器(U盤), 請在電腦啟動BIOS時按合適的按鍵(通常是F1, F2, F12, 或者空格鍵)進入啟動選擇菜單, 選擇從U盤啟動; 如果沒有啟動順序選項, 請到BIOS中把U盤設置為預設啟動設備. 另外, 如果你使用的是」簡單安裝」, 請到Windows啟動菜單中選擇UNetbootin條目進入.

�0�3 參 Live U盤創建向導卸載 (僅針對安裝到硬碟或」簡單安裝」) 如果使用的是Windows系統, 安裝好UNetbootin再進入Windows的時候, 系統會出現刪除的選項提示. 另外, 你也可以到控制面板的添加刪除程序里卸載.

如果使用的是Linux系統, 重新運行UNetbootin (用root許可權), 當提示卸載時點擊OK按鈕.

如果安裝時目標位置是磁碟, 那麼刪除U盤上的啟動引導文件, 備份好其他文件後格式化之就行了.

卸載UNetbootin可以簡單地通過移除啟動菜單的選項做到, 但如果你用UNetbootin把操作系統安裝到了某個分區, 卸載UNetbootin是不會刪除那個操作系統的.

要手動刪除Linux安裝, 你可以使用Windows恢復光碟上的fixmbr來重裝Windows的啟動文件, 用Parted Magic刪除Linux分區然後擴展Windows分區.用UNetbootin安裝其他發行版 下載並運行UNetbootin, 在彈出框中選擇合適的ISO文件 (CD鏡像)/軟盤鏡像/磁碟鏡像/內核文件 (參截圖). 如果對使用的ISO文件有疑慮, 請檢查發行版的下載頁面.
如 果你正在載入ISO文件或者軟磁碟鏡像, 選一下鏡像就行了(僅僅需要點擊OK開始安裝), 否則, 如果你喜歡手工選擇內核和initrd文件並填寫一些特定的啟動選項, 請檢查發行版的啟動配置文件 (通常是這些文件中包含」kernel」字樣的行: isolinux.cfg, syslinux.cfg, menu.lst, 或者 grub.conf) 並把它們填寫到」Options」行.有哪些翻譯版本?我用哪個呢?
在最近釋出的版本中,有如下語言可供使用:Espa�0�9ol / Spanish (es) / 西班牙語 Português / Portuguese (pt) / 葡萄牙語 Fran�0�4ais / French (fr) / 法語 Italiano / Italian (it) / 義大利語 中文 / Simplified Chinese (zh) / 中文 (簡體) Русский / Russian (ru) / 俄語 Norsk bokm�0�2l / Norwegian (nb) / 挪威語 Magyar / Hungarian (hu) / 匈牙利語
如果上面語言之一和你的系統位置吻合, UNetbootin將自動使用你的本地語言. 另外, 語言也可以手動設置: 命令行里執行程序並添加運行選項」lang=xy」 (沒有引號), xy是ISO 639-1 代碼中定義的二位語言代碼. 例如, 運行參數"lang=es"表示將使用西班牙語. 如果要使用外置的翻譯 (僅僅在當前翻譯版本沒有包含這種語言時需要), 請把.qm文件 (unetbootin_es.qm) 放到UNetbootin運行的目錄中就行了.

如果你願意貢獻一種語言的翻譯, 請下載源碼的zip包找到相應語言的.ts文件. 另外, .ts文件也可以在Launchpad.net的bazaar repository瀏覽和下載, 目錄位置是src/unetbootin. 這些.ts文件可以用Qt Linguist翻譯, 這個軟體可以在Trolltech的Qt下載頁面下載, 對Ubuntu用戶, 它已經包含在qt4-dev-tools包里了. 當你完成翻譯後, 導出成.qm文件 (Qt Linguist, 「File -> Release As」), 上傳.ts和.qm文件到wiki並在翻譯頁面放置一個鏈接, 或者把.ts文件email給我 (參下邊的聯系信息).

�0�3 參 UNetbootin翻譯FAQ UNetbootin是怎麼工作的, 它幹嘛的? 對於Live U盤創建模式, UNetbootin下載並釋放ISO文件到你的USB盤, 生成一個適配的syslinux配置文件, 使你的USB盤可以用syslinux啟動.

對 於磁碟/」簡單安裝」模式, UNetbootin使用基於Windows或者Linux的安裝程序對啟動引導程序作了小的修改 (Vista上是bootmgr和bcdedit, 基於NT的系統是grldr和boot.ini, Win9x是grub.exe和config.sys, Linux是GRUB ), 用啟動引導程序去啟動安裝到磁碟的發行版, 一旦使用系統工具修復, 這些修改將回滾.它含有任何嗅探軟體, 病毒, 木馬或者其他有害軟體么? 沒有! 雖然一些殺毒軟體(如卡巴斯基)因為它的自動卸載特性而提示有木馬(「Trojan.generic), 但這些是錯誤的保護行為. 你僅需要確認你是從Sourceforge的官方下載頁面得到UNetbootin軟體就可以了, 一些影子源可能有問題. 如果你仍然有疑慮, 你可以下載源代碼自行編譯. 它是用什麼語言寫的? 源代碼在哪裡? 我怎麼編譯它? UNetbootin是用C++ 寫的, 用的是Qt4 toolkit. 源代碼的zip包可以從這里獲取, 或者從Launchpad得到. Linux版本是用g++編譯的, Windows版本是用mingw32編譯的. 都用了穩定鏈接版本的qt4 (消除了外部庫的依賴). 可執行文件使用了UPX以減小空間.

�0�3 參 編譯 UNetbootin我怎麼用UNetbootin製作自己的發行版? 可以通過如下途徑創建:一個isolinux或GRUB-based ISO文件, 或 一個軟盤/磁碟鏡像, 或 內核和initrd文件
用以上方法的任意一種都可以製作你的發行版, 在製作模式上或者Live, 或者通過FTP安裝. 然後, 報一個bug, 提供kernel/initrd鏈接, 或者磁碟鏡像, 如此, 你的發行版將會在下一版的UNetbootin得到支持.

�0�3 參已知UNetbootin支持的分發版的總列表如何製作的定製版本的UNetbootin (包含專門化, rebranded, 再分發等)? (譯者按, 這個標題翻不好, rebranded也不知道用什麼合適的詞來對應)Auto Super Grub Disk EeePCLinuxOS Ubuntu Eee FUSBi – Free USB Installer
選用相應的插件系統或者改變源碼 (unetbootin.h的#define語句), UNetbootin很方便被改寫以適用於不同版本的Linux發行版. 如果你嘗試構建一個特定版本的發行版, 需要額外的說明和細節, 如需要在下一個版本中合並你的補丁, 或者需要需要把你的客戶化版本添加到列表中, 請報一個bug. (譯者按, 請達人指導這句的翻譯.)

�0�3 參 構建UNetbootin插件
�0�3 參 使用UNetbootin插件
�0�3 參 構建一個客戶化的UNetbootin版本
�0�3 參 客戶化UNetbootin版本和插件列表去哪裡報bug, 提需求, 找幫助? 等等. 如果你在使用中碰到了UNetbootin自身的錯誤, 請到Boot Land的UNetbootin論壇發一個問題. 已經有兩個話題在論壇可供參考(Live U安裝或者硬碟安裝). 如果你確信找到了一個bug, 請報一個bug. 盡管如此, 如果是發行版或者硬體問題, 請到發行版那去報一個bug.許可和認證 UnetBootin由Geza Kovacs (tuxcantfly)(聯系信息)創建. 翻譯者列在翻譯者列表中. UNetbootin基於GPL2+ 發布. 網站資源可以自由地使用, 復制, 修改, 及發布.

7. 電腦開機出現grub怎麼解決

電腦開機出現grub解決的具體步驟如下:

1、首先按「Ctrl「+「Alt」+"Del"組合按鍵重啟。

8. grub2 怎麼安裝和使用

grub-install 是gurb1 的命令
grub2應該使用grub2-install。

在/boot/grub 建立一個配置文件名為: grub.cfg
也有可能是/boot/grub2/grub.cfg 這跟你的設置有關。
root 許可權執行
grub2-mkconfig>/boot/grub/grub.cfg
或者:
grub2-mkconfig>/boot/grub2/grub.cfg

重啟電腦應該就能看到菜單了。

熱點內容
使命召喚生化武器怎麼配置 發布:2024-10-10 13:13:15 瀏覽:490
磁碟陣列怎麼配置管理口 發布:2024-10-10 13:10:05 瀏覽:187
如何撤銷自己的配置 發布:2024-10-10 12:41:47 瀏覽:687
win7無法復制文件夾 發布:2024-10-10 12:40:11 瀏覽:147
文章存儲結構 發布:2024-10-10 12:40:11 瀏覽:881
添加多個FTP網站的方法有哪些 發布:2024-10-10 12:03:03 瀏覽:842
表格怎麼調用網頁資料庫資料庫數據 發布:2024-10-10 11:37:33 瀏覽:657
海力壓縮機 發布:2024-10-10 11:32:26 瀏覽:526
洗過的海帶存儲方法 發布:2024-10-10 11:19:00 瀏覽:241
64H的源碼 發布:2024-10-10 11:06:01 瀏覽:153