当前位置: 首页 > 工具软件 > Grub4DOS > 使用案例 >

grub通过img文件启动linux,通过grub4dos引导本地linux系统

嵇弘新
2023-12-01

刚才在论坛上看到一个贴子,这位网友安装windows

xp时把引导linux的mbr重写了,所以进不了linux系统。我知道只要把grub2安装到mbr上就可以了,但他没有安装盘和live

usb,这时可以借助grub4dos这个软件来引导。

只要把linux系统引导起来就好办了。

我只知道有这个方法,但没有遇到过所以在物理机实验了一下,我的机器如下:windows xp + ubuntu 11.04 +

ubuntu 10.04

分区:

第一个分区:boot ext4 200M

第2,3,4个分区: ntfs xp用

其它的为linux的分区

一、获取grub4dos软件包

先上网上下载grub4dos这个软件。

http://code.google.com/p/grub4dos-chenall/downloads/list

我下载完之后,双击解不开,但这个软件包的后缀是7z,我想是否有7z压缩类的软件,于是在终端输入7z,发现有了提示,安装上就可以解开了。

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

....

解开之后复制到 /mnt/winc下(这个是windows xp所在的分区,为硬盘的第二个分区)

二、把grub4添加到起动菜单里

由于用windows xp所以直接在boot.ini中添加就行了。

进行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复制到c盘根目录下

三、从grub引导linux

启机之后windows

xp会出现两个菜单,其中会有'grub4dos'这个菜单项,选择这个菜单之后会打开menu.lst菜单,但我们不需要这个菜单,按'c'键进入grub控制终端:

这里会几个命令即可

ls  查看文件

root 设置根

kernal 加载内核

initrd 初始ram磁盘,这是一个临时的根文件系统,用来支持两阶段的引导过程。

boot 引导

我的实验:

ls /  #发现目前处在c盘,但我的内核文件在第一个分区了,xp是第二个分区

ls (hd0,0)/  #发现内核文件了。

root=(hd0,0)  #设置根

ls (hd0,8)/

#发现这是我的linux的root所在的分区,可以多试几次,找到正确的分区

kernal /vmlinuz-2.6.32-28-generic  ro text

root=/dev/sda8

initrd /initrd.img-2.6.32-28-generic

boot

启动后并没有进入linux系统,这是怎么回事???

现在出现(initramfs)提示符了,我ls了一下,发现是一个简易的/文件系统,这是

RAM磁盘映像,怎么会没有加载磁盘的/文件系统呢?

我又ls /root

#发现里面的文件是我原先第一个linux上/home分区中的文件,而这个分区的下一个分区才是第二个linux系统的/

原来是这样啊,grub4dos (hd0,0)表示第一块硬盘,那么编号应该+1,所以:

kernal /vmlinuz-2.6.32-28-generic  ro text

root=/dev/sda9 #改成这个,启动成功。

测试完毕,一切通过,不过windows7如何添加grub4dos我没有办法测试,物理机器上没装windows7系统。

grub4dos添加到windows7启动项里

(1)把grub4dos软件包里的grldr, grldr.mbr ment.lst复制到c盘根目录下

(2)运行如下命令

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

项 {d8cc12aa-3068-11e0-acbe-8492abfb673e} 成功创建。

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

操作成功完成。

之后重启计算机就会出现菜单了,选择grub进入grub菜单模式,剩下的与上面的引导指令一样。

(3)安装grub2

从grub4dos引导linux成功之后,以root用户登录

grub-install /dev/sda  #安装grub

update-grub #创建菜单

测试成功!!

 类似资料: