grub通过img文件启动linux,通过grub4dos引导本地linux系统
剛才在論壇上看到一個(gè)貼子,這位網(wǎng)友安裝windows
xp時(shí)把引導(dǎo)linux的mbr重寫(xiě)了,所以進(jìn)不了linux系統(tǒng)。我知道只要把grub2安裝到mbr上就可以了,但他沒(méi)有安裝盤(pán)和live
usb,這時(shí)可以借助grub4dos這個(gè)軟件來(lái)引導(dǎo)。
只要把linux系統(tǒng)引導(dǎo)起來(lái)就好辦了。
我只知道有這個(gè)方法,但沒(méi)有遇到過(guò)所以在物理機(jī)實(shí)驗(yàn)了一下,我的機(jī)器如下:windows xp + ubuntu 11.04 +
ubuntu 10.04
分區(qū):
第一個(gè)分區(qū):boot ext4 200M
第2,3,4個(gè)分區(qū): ntfs xp用
其它的為linux的分區(qū)
一、獲取grub4dos軟件包
先上網(wǎng)上下載grub4dos這個(gè)軟件。
http://code.google.com/p/grub4dos-chenall/downloads/list
我下載完之后,雙擊解不開(kāi),但這個(gè)軟件包的后綴是7z,我想是否有7z壓縮類(lèi)的軟件,于是在終端輸入7z,發(fā)現(xiàn)有了提示,安裝上就可以解開(kāi)了。
linux@cdyemail:~$ 7z
The program '7z' is currently not installed.
You can install it by typing:
sudo apt-get install p7zip-full
linux@cdyemail:~$ sudo apt-get install
p7zip-full
[sudo] password for linux:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
p7zip-rar
....
解開(kāi)之后復(fù)制到 /mnt/winc下(這個(gè)是windows xp所在的分區(qū),為硬盤(pán)的第二個(gè)分區(qū))
二、把grub4添加到起動(dòng)菜單里
由于用windows xp所以直接在boot.ini中添加就行了。
進(jìn)行windows的終端(cmd)里,之后
attrib -r -s -h boot.ini
#解除boot.ini的只讀隱藏等屬性
notepad boot.ini ?#編輯boot.ini
我的信息如下:
[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows
XP Professional" /noexecute=optin /fastdetect /detecthal
c:\grldr='grub4dos' ?#這一句是后加的。
把grub4dos軟件包里的grldr, grldr.mbr ment.lst復(fù)制到c盤(pán)根目錄下
三、從grub引導(dǎo)linux
啟機(jī)之后windows
xp會(huì)出現(xiàn)兩個(gè)菜單,其中會(huì)有'grub4dos'這個(gè)菜單項(xiàng),選擇這個(gè)菜單之后會(huì)打開(kāi)menu.lst菜單,但我們不需要這個(gè)菜單,按'c'鍵進(jìn)入grub控制終端:
這里會(huì)幾個(gè)命令即可
ls ?查看文件
root 設(shè)置根
kernal 加載內(nèi)核
initrd 初始ram磁盤(pán),這是一個(gè)臨時(shí)的根文件系統(tǒng),用來(lái)支持兩階段的引導(dǎo)過(guò)程。
boot 引導(dǎo)
我的實(shí)驗(yàn):
ls / ?#發(fā)現(xiàn)目前處在c盤(pán),但我的內(nèi)核文件在第一個(gè)分區(qū)了,xp是第二個(gè)分區(qū)
ls (hd0,0)/ ?#發(fā)現(xiàn)內(nèi)核文件了。
root=(hd0,0) ?#設(shè)置根
ls (hd0,8)/
#發(fā)現(xiàn)這是我的linux的root所在的分區(qū),可以多試幾次,找到正確的分區(qū)
kernal /vmlinuz-2.6.32-28-generic ?ro text
root=/dev/sda8
initrd /initrd.img-2.6.32-28-generic
boot
啟動(dòng)后并沒(méi)有進(jìn)入linux系統(tǒng),這是怎么回事???
現(xiàn)在出現(xiàn)(initramfs)提示符了,我ls了一下,發(fā)現(xiàn)是一個(gè)簡(jiǎn)易的/文件系統(tǒng),這是
RAM磁盤(pán)映像,怎么會(huì)沒(méi)有加載磁盤(pán)的/文件系統(tǒng)呢?
我又ls /root
#發(fā)現(xiàn)里面的文件是我原先第一個(gè)linux上/home分區(qū)中的文件,而這個(gè)分區(qū)的下一個(gè)分區(qū)才是第二個(gè)linux系統(tǒng)的/
原來(lái)是這樣啊,grub4dos (hd0,0)表示第一塊硬盤(pán),那么編號(hào)應(yīng)該+1,所以:
kernal /vmlinuz-2.6.32-28-generic ?ro text
root=/dev/sda9 #改成這個(gè),啟動(dòng)成功。
測(cè)試完畢,一切通過(guò),不過(guò)windows7如何添加grub4dos我沒(méi)有辦法測(cè)試,物理機(jī)器上沒(méi)裝windows7系統(tǒng)。
grub4dos添加到windows7啟動(dòng)項(xiàng)里
(1)把grub4dos軟件包里的grldr, grldr.mbr ment.lst復(fù)制到c盤(pán)根目錄下
(2)運(yùn)行如下命令
bcdedit /create /d "grub" /application bootsector
#生成id
bcdedit /set {id} device partition=c:
bcdedit /set {id} path \grldr.mbr
bcdedit /displayorder {id} /addlast
我的如下:
C:\Users\cdyemail>bcdedit /create /d "grub"
/application bootsector
項(xiàng) {d8cc12aa-3068-11e0-acbe-8492abfb673e} 成功創(chuàng)建。
C:\Users\cdyemail>bcdedit /set
{d8cc12aa-3068-11e0-acbe-8492abfb673e} device par
tition=c:
操作成功完成。
C:\Users\cdyemail>bcdedit /set
{d8cc12aa-3068-11e0-acbe-8492abfb673e} path \grld
r.mbr
操作成功完成。
C:\Users\cdyemail>bcdedit /displayorder
{d8cc12aa-3068-11e0-acbe-8492abfb673e} /
addlast
操作成功完成。
之后重啟計(jì)算機(jī)就會(huì)出現(xiàn)菜單了,選擇grub進(jìn)入grub菜單模式,剩下的與上面的引導(dǎo)指令一樣。
(3)安裝grub2
從grub4dos引導(dǎo)linux成功之后,以root用戶(hù)登錄
grub-install /dev/sda ?#安裝grub
update-grub #創(chuàng)建菜單
測(cè)試成功!!
總結(jié)
以上是生活随笔為你收集整理的grub通过img文件启动linux,通过grub4dos引导本地linux系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 读债务危机0814-08年9月崩溃
- 下一篇: grub4dos和bootmgr双启动