1.下载grub4dos,解压后,拷贝grldr (非grldr.mbr),grub.exe两个文件复制到C盘根目录下。(我之前用的是旧版本的grldr,由于后面运行出错,所以此处亲自去下载了:
然后解压,获得最新的grldr,grldr.mbr等文件,放到C盘根目录下,再去试试
而后又证实,后面的应该是grldr.mbr,而不是grldr,所以,应该旧版本的grldr.mbr也可以的)
2.下载好Ubuntu-9.10-desktop-i386.iso之后,放到了E盘根目录E:\下。
3.解压出ubuntu-9.10-desktop-i386.iso中\casper文件夹下的vmlinuz和initrd.lz,将它们放到C盘根目录。
4.C盘根目录下建立menu.lst文件,内容为:
title Install Ubuntu 9.10
root (hd0,0)
kernel (hd0,0)/vmlinuz boot=casper iso-scan/filename=/ubuntu-9.10-desktop-i386.iso ro quiet splash locale=zh_CN.UTF-8
initrd (hd0,0)/initrd.lz
5.在我的电脑–>工具–>文件夹选项–> 的查看标签下去掉“隐藏受保护的操作系统文件”之前的勾,并勾选“显示所有文件和文件夹”。取消C盘根目录下的boot.ini文件的“只读”属性,然后用记事本打开boot.ini文件,做如下更改:timeout=0 改成 timeout=10 或者更大的数字,在boot.ini 文件内容末尾加上一行 C:\grldr=”Ubuntu 9.10 Install”
(附:boot.ini 文件路径 c:\boot.ini )
6.重启电脑,原先启动菜单是:
Windows 7
Windows XP
现在就多了一个:
Ubuntu 9.10 Install
选中后该项,由于刚才忘了把menu.lst放到C盘根目录下,结果确定后,显示运行\grldr有问题,无法启动。
按ESC后,系统就又重新启动,只能暂时用现在的Win7了,现在把menu.lst放到C盘根目录下,再重启试试如何。。。
还是运行出错,显示:
Windows未能启动.。。。。。。。。。。。。。
。。。。。。。。。。。
文件: \grldr
状态:0xC000007b
信息:无法加载所选项,因为这个应用程序丢失或损坏。
再去试试,从解压出来的grldr,看看能否启动。
刚刚验证了,结果是文件的设置问题,grldr不能运行,grldr.mbr才可以,即上面的步骤,修正如下:
下载后,解压出grldr,grldr.mbr和grldr.exe,拷贝到C盘根目录下,然后记得,C:\grldr=”Ubuntu 9.10 Install”,要写成是C:\grldr.mbr=”Ubuntu 9.10 Install”,这样就可以运行grldr.mbr,其会找到grldr,然后就会载入menu.lst,就会显示出类似于grub中的那样的列表了:Install Ubuntu 9.10
选中之后,确定,即可进入Ubuntu 9.10的安装环境了。
【安装Ubuntu 9.10】
点击桌面上的 安装Ubuntu 9.10,然后一步步安装即可,
注意,一定要在合适的时候,比如分区那一步之前,在选择键盘布局的那一步,去
Ctrl+Alt+F2,进入命令行模式,然后确认一下当前的确是挂载了,那个含有Ubuntu的iso安装文件ubuntu-9.10-desktop-i386.iso,的那个盘,我这里是E盘:
ls /isodevice
会显示出这个盘的所有内容,其中就有那个iso安装文件。
然后一定要去卸载它:
sudo umount -l /isodevice
然后再去看看成功与否
ls /isodevice
应该就看不到任何东西才对。
然后再Ctrl+Atl+F7,回到图形安装界面。
此步卸载/isodevice,是为了保证后面不出现那个关于/isodevice被挂载而导致分区无法正常进行。
接下来,正常分区,我分的如下:
swap 1G
/boot 256M
/ 12G
/home 14G(余下的一共14G都给了它,因为我以后开发,多数是在/home下面)
【安装好系统后,启动时候找不到对应的文件 -> 已解决】
然后继续安装,在一系列的步骤之后,到了分区确定那一步,有个高级选项,点击后,把“安装启动引导的设备”从默认的(hd0)改成了/boot区对应的/dev/sda9,确保不要将其安装到hd0,否则,应该就会把Windows系统的那套启动信息给干掉了。。。
继续了几步之后,等待一段时间后,就安装好了,安装好之后,去按照以前的方法,修改C:\menu.lst,添加一个用于正常运行Ubunt的启动菜单:
title Run Ubuntu 9.10
#here use the uuid of /boot partition, current is /dev/sda9
uuid fe5b09aa-f932-4223-aceb-2fa259644827
#here use the uuid of / partition, current is /dev/sda10
kernel /vmlinuz root=UUID=cb24a935-afac-4871-802b-ed41ff38e875 ro quiet splash
#destinate init ramdisk file
initrd /initrd.img
quiet
title Install Ubuntu 9.10
root (hd0,0)
kernel (hd0,0)/vmlinuz boot=casper iso-scan/filename=/ubuntu-9.10-desktop-i386.iso ro quiet splash locale=zh_CN.UTF-8
initrd (hd0,0)/initrd.lz
其中的uuid fe5b09aa-f932-4223-aceb-2fa259644827,是/boot分区的uuid,具体可以去通过sudo blkid查看得到,我这里对应的是:
sudo blkid
/dev/sda1: UUID=”F008639B08635F98″ LABEL=”Win7″ TYPE=”ntfs”
/dev/sda5: UUID=”BCD8904BD8900634″ LABEL=”SOFTWARE” TYPE=”ntfs”
/dev/sda7: LABEL=”LINUXXP” UUID=”4B6E-20B3″ TYPE=”vfat”
/dev/sda6: LABEL=”MEDIA” UUID=”C352-49C7″ TYPE=”vfat”
/dev/sda8: UUID=”d635c3a1-7a54-4bc3-b177-16ac369121a6″ TYPE=”swap”
/dev/sda9: UUID=”fe5b09aa-f932-4223-aceb-2fa259644827″ TYPE=”ext4″
/dev/sda10: UUID=”cb24a935-afac-4871-802b-ed41ff38e875″ TYPE=”ext4″
/dev/sda11: UUID=”d35d24bc-f2d8-421d-b922-b28cc5c23eff” TYPE=”ext4″
其中/dev/sda9就是我分区时候挂载到/boot上的boot分区,/dev/sda10是对应的/,根分区。
kernel /vmlinuz root=UUID=cb24a935-afac-4871-802b-ed41ff38e875 ro quiet splash 中的root=后面的uuid就是上面查看到的/dev/sda10,即根分区/的uuid。
所有的都设置好之后,在选中Ubuntu 9.10 -> Run Ubuntu 9.10后,出现错误,
显示内容大概为:
当前设置根分区为hd0(0,8),找不到
kernel /vmlinuz root=UUID=cb24a935-afac-4871-802b-ed41ff38e875 ro quiet splash
中的vmlinuz文件。
看到这里,很清楚意思是要我们,确保系统里面有对应的文件,所以又重启进去Install Ubuntu 9.10,去查看是否有这些文件。即进入到/boot和/下查看,结果显示,/下有对应的initrd.img和vmlinuz链接,分别链接到boot下的initrd.img-2.6.31-14-generic和vmlinuz-2.6.31-14-generic,但是boot中没有这两个对应的文件。
后来经过反复尝试,最后才搞懂,此时,进入的是Ubuntu安装系统的那个环境,此时所看到的文件,不是真正那些已经安装到对应的分区的那些文件,也就是说,此时去/和/boot下的文件,不是/dev/sda9和/dev/sda10下面的文件,所以,要去
sudo mkdir /mnt/sda9
sudo mkdir /mnt/sda10
sudo mount /dev/sda9 /mnt/sda9
sudo mount /dev/sda10 /mnt/sda10
然后再去/mnt/sda9和/mnt/sda10下面去看,才是真正的系统的文件。
此时看到的是/boot下面是有initrd.img-2.6.31-14-generic和vmlinuz-2.6.31-14-generic的,而且/下面也有对应的那两个链接文件,initrd.img和vmlinuz,但上面menu.lst中写的也对,但是就是提示file not dound,折腾了半天才搞清楚,在menu.lst中,终于可以找到启动文件并启动了。具体的原因是
kernel /vmlinuz root=UUID=cb24a935-afac-4871-802b-ed41ff38e875 ro quiet splash
中的/vmlinuz,不是真正的/,而是对应的/root,所以,我拷贝了从安装系统中解压出来,现在在C:\下也有的vmlinuz和initrd.lz,然后放到真正的/root分区下面,即
sudo cp /media/Win7/vmlinuz /mnt/sda9
sudo cp /media/Win7/initrd.lz /mnt/sda9
然后再运行的时候, 上面的/vmlinuz,就能在/boot下面找到需要的vmlinuz和initrd.lz文件了。相应地,上面的menu.lst里面的initrd /initrd.img,也要改成initrd /initrd.lz了。
此处的initrd.lz的后缀是lz,和之前见到的原始文件initrd.img,压缩文件initrd.gz相比,应该是另外一种格式的压缩文件,但是系统启动的时候能够识别即可。
因此,总结一下,对于文件找不到的情况,我这里的解决办法是:
1.挂载真正的/boot分区,然后拷贝之前解压出来的vmlinuz和initrd.lz到/boot分区下面:
//挂载boot分区
sudo mkdir /mnt/sda9
sudo mount /dev/sda9 /mnt/sda9
//准备好vmlinuz和initrd.lz,此处是放在C盘,其盘符为Win7,由于Ubuntu里面,可以看到Win7的那个盘,所以直接点击即可自动挂载无需手动挂载,自动挂载后,C盘此处对应的是/media/Win7
//拷贝vmlinuz和initrd.lz到/boot分区下面
sudo cp /media/Win7/vmlinuz /mnt/sda9
sudo cp /media/Win7/initrd.lz /mnt/sda9
2.menu.lst中对应的部分,就可以写成:
title Run Ubuntu 9.10
#here use the uuid of /boot partition, current is /dev/sda9
uuid fe5b09aa-f932-4223-aceb-2fa259644827
#here use the uuid of / partition, current is /dev/sda10
kernel /vmlinuz root=UUID=cb24a935-afac-4871-802b-ed41ff38e875 ro quiet splash
#destinate init ramdisk file
initrd /initrd.lz
quiet
title Install Ubuntu 9.10
root (hd0,0)
kernel (hd0,0)/vmlinuz boot=casper iso-scan/filename=/ubuntu-9.10-desktop-i386.iso ro quiet splash locale=zh_CN.UTF-8
这样就可以找到文件并启动Ubuntu了。
估计有人会问了,为何不将上面的/vmlinuz,改成/vmlinuz-2.6.31-14-generic,回答是,我已经试过了,这么改,也还是找不到vmlinuz,无法启动。不知道别人此处的,会不会也是出现我这样的问题。
【后记】
已经完成使命的,用于安装Ubuntu的那些相关文件,配置,即:
(1)menu.lst中的:
title Install Ubuntu 9.10
root (hd0,0)
kernel (hd0,0)/vmlinuz boot=casper iso-scan/filename=/ubuntu-9.10-desktop-i386.iso ro quiet splash locale=zh_CN.UTF-8
(2)用于安装的,我放在E:\下面的ubuntu-9.10-desktop-i386.iso安装文件。
自己看着办吧,可以保留,也可以删除,