刚才在论坛上看到一个贴子,这位网友安装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 #创建菜单
测试成功!!