昨天周末,闲来无事,看身边的人个个玩双系统玩的不亦乐乎,自己心里也痒痒,于是决定自己也装个感受下。遂开始google找资料教程了,一路上认识了 grub menu.lst 等几个名词和新的内容,从下午3点一直折腾到晚上10点才算装好,这个过程实在也是痛苦啊,但经历过一次后自己对相关知识也有了一定了解。
废话少说,下面是我的安装过程:
1、下载系统的ISO镜像(这个当然的啦),和在win下引导linux的grub4dos ;
2、安装:(转)
-------------------------------转---------------------------------------------------
win7的设置
为什么这部分要强调,因为win7舍弃了XP的不少东西,比如C :\boot.ini就被win7丢弃了,硬盘安装需要添加启动项,而想要添加启动项在win7下没有boot.ini就只能通过bcdedit命令来搞定。
想用bcdedit也不是件顺手牵来的事情,还得启动administrator账户。win7的其它账户,就算是完全的管理员权限,也没有运行这个bcdedit的权限,除了administrator,而win7的administrator用户默认状态下是被锁定的,想要开启administrator账户,得先做点操作。
桌面上右键“我的电脑”图标,出来的菜单里选择“管理”,然后会弹出一个计算机管理的界面,在计算机管理的界面左侧的树形结构里选择 “系统工具- >本地用户和组->用户”,然后右侧便会出来一个用户列表,其中一个就是administrator,右键administrator,选择属性,弹出界面的常规选项卡里有一个“账户已禁用”的复选框,将它的勾选状态去掉,然后切换用户,就会看到win7的登录界面中有administrator了,用administrator账户登录win7后便可以实施我的安装工作了。
开始在win7下硬盘安装Ubuntu
1、将grub4dos解压,复制其中的grldr和grldr.mbr两个文件到C盘根目录。
2、用winrar或者虚拟光驱打开ubuntu-9.04-desktop-i386.iso,将.disk和casper两个文件夹复制到C盘根目录,然后将casper文件夹下的initrd.gz和vmlinuz两个文件复制到C盘根目录。
3、运行cmd,打开命令提示符,在命令提示符下依次键入一下命令:
- bcdedit /create /d “GRUB4DOS” /application bootsector 这个命令会产生一个guid打印在cmd窗口中,例如,我的就是{90e14995-d284-11de-a325-a4ab4deca1b7}。
- bcdedit /set {90e14995-d284-11de-a325-a4ab4deca1b7} device partition=C: 这个命令是设置刚刚添加启动项的启动分区,这里设的是C盘,因为我们的文件都在C盘。
- bcdedit /set {90e14995-d284-11de-a325-a4ab4deca1b7} path \grldr.mbr 设置启动时运行的文件。
- bcdedit /displayorder {90e14995-d284-11de-a325-a4ab4deca1b7} /addlast 这个只是为了将增加的启动项放到其他启动项的后面。
- 用bcdedit /enum 查看一下,就会看到刚刚这些命令产生的启动项配置。
实模式启动扇区
———————
标识符 {90e14995-d284-11de-a325-a4ab4deca1b7}
device partition=C:
path \grldr.mbr
description GRUB4DOS
8、在C盘根目录下新建menu.lst文件,用记事本打开将以下类容黏贴进去并保存:
title Install Ubuntu
root (hd0,0)
kernel (hd0,0)/vmlinuz boot=casper find_iso=/ubuntu-9.10-desktop-i386.iso ro quiet splash locale=zh_CN.UTF-8
initrd (hd0,0)/initrd.lz //注意此处的文件名,9.04为 initrd.gz
9、将下载的.iso文件复制到U盘根目录,名字改为ubuntu-9.10-desktop-i386.iso(和menu.lst中一致),并把硬盘上的iso文件改成其他名字,据说用硬盘上的iso文件安装时会出现无法卸载/cdrom的错误。
-------------------------------转完---------------------------------------------------
但在此处,我并无U盘,于是又查资料,发现没有U盘也可以的,把ISO文件放在别的分区(不要是你要安装系统的分区就好)。重新启动,这次不选择安装,选择live CD的模式,进入系统后 在终端输入:
sudo umount –l /cdrom 。
然后点击桌面上的安装图标进行安装即可。
安装过程中,在分区这步时要留意一下,我是之前就先在Win下分好了一个空白的区用来装linux,此处就可选择该新分区。选中后点修改,文件格式改为ext4 ,同时我调整了下大小,留了1G作为swap空间,然后格式化,就可以一路next到最后一步了。
在最后一步时,会让你确认所有安装的信息,此时在下方有个选项为 高级 ,此处很关键了。选择后,弹出 一个安装 grub 的窗口。我选择的是取消安装该 grub。
(说明:我们之前下载的 grub4dos 可以理解为grub 的一个Windows版,此处安装的grub是Ubuntu的grub,两者是不同的。我之所以要取消,是因为在我参考的教程里说到,用grub4dos是绿色版的,不会写入信息至系统引导文件内(MBR),即不会影响Windows的引导文件。而ubuntu带的grub则可能有这个问题,以后修改起来会比较麻烦。说实话,我对此也不是太清楚,所以我最后还是选择了没安装。)
若此处选择安装,那重启之后即可看到启动选项,即grub已经写入了引导文件,正确引导了Ubuntu的启动。若和我一样,未安装grub,则需自己来修改位于我们C:\ 根目录下的menu.lst 文件内容了。
menu.lst 内容例子:
------------------------------------------
title Ubuntu 9.04, kernel 2.6..28-11-generic
root (hd0,6)
kernel /boot/vmlinuz-2.6..28-11-generic root=UUID=e58b658e-c129-40c0-b6bd-8993deb9eb6f ro locale=zh_CN quiet splash
initrd /boot/initrd.img-2.6..28-11-generic
quiet
title Ubuntu 9.04, kernel 2.6..28-11-generic (recovery mode)
root (hd0,6)
kernel /boot/vmlinuz-2.6..28-11-generic root=UUID=e58b658e-c129-40c0-b6bd-8993deb9eb6f ro locale=zh_CN single
initrd /boot/initrd.img-2.6..28-11-generic
title Ubuntu 9.04, memtest86+
root (hd0,6)
kernel /boot/memtest86+.bin
quiet
------------------------------------------------[/quote]
然后修改 其中 root (hd0,6) 为自己的根分区
UUID= e58b658e-c129-40c0-b6bd-8993deb9eb6f 改为根分区的的UUID
vmlinuz-2.6..28-11-generic和initrd.img-2.6..28-11-generic,改为/boot/目录下的版本。
P.S:
查询uuid:
$ ls -al /dev/disk/by-uuid
总用量 0
drwxr-xr-x 2 root root 100 2010-05-07 08:23 .
drwxr-xr-x 5 root root 100 2010-05-07 08:23 ..
lrwxrwxrwx 1 root root 10 2010-05-07 08:23 2d3d98e5-3bf4-4487-ab5a-a58d2cd5c7d1 -> /sda6
lrwxrwxrwx 1 root root 10 2010-05-07 08:23 847d2141-01bc-4d38-a8b7-d942d0658af5 -> /sda1
lrwxrwxrwx 1 root root 10 2010-05-07 08:23 93140c82-18e4-4605-abdd-8e28384b42fb ->/sda5
正确修改menu.lst 文件后,重启系统即可选择grub4dos,然后选择 ubuntu 即可进入系统了!!
至此,双系统安装完毕!!
-----------------------我遇到的问题----------------------------
p.s : 我的安装过程中还遇到了一个问题,在修改完 menu.lst 文件后,还是无法正确引导启动系统,报错, 找不到引导文件。情况如下:
menu.lst 文件内容的诡异问题!!!!!!求教!
我照着楼主的方法昨天装的系统(在Win7下装ubuntu9.10),在安装系统时也没选择grub,然后我就去修改添加 menu.lst 文件。
但照着楼主给的例子却无法正常引导,总是报错 error: fail to find file 之类的错误,然后就进不了系统
后来我用live CD 的方法先进去看了下,发现我的 /boot/ 目录下 并无上述的两个引导启动的文件 vmlinuz-2.6.31-14-generic 和 initrd.img-2.6.31-14-generic
同时,在根目录下 / 也无 vmlinuz 和 initrd,img 的文件。我想这可能就是我刚才遇到错误的原因了,接着继续google,又把我安装系统时用到的这两个文件cp到/boot/下,同时在
根目录下 也作了link ,和我另外一台linux的主机上的对应文件路径都完全匹配了。
这次接着修改menu.lst 为楼主的例子,但结果还是……老问题阿! 我就在启动时,按 c 进入 grub 的命令行模式,手动来检测 kernel 和 initrd 引导的情况:
发现问题如下:
kernel /boot/vmlinuz-2.6.31-14-generic //结果仍然无效,还是报错,找不到文件,但该路径下确有这个文件
想起根目录下也有,同时网上有的资料也有用根目录下的,我又试了:
kernel /vmlinuz //ok!!这次成功的出现了引导的信息
接着 试验 initrd :
initrd /boot/initrd.img-2.6.31-14-generic //结果仍然无效,还是报错,找不到文件,但该路径下确有这个文件
我同样的推理:
initrd /initrd.img //本以为这样可以,谁知同样不行,还是报错
最后看到网上有如下用法:
initrd (hd0,5)/initrd.img // (hdx,x)为你的根目录所在分区的序号,可自己去查。结果,这次可以了!!!
然后我就这样修改了我的menu.lst 文件
修改了下面两句为:
kernel /vmlinuz
initrd (hd0,5)/initrd.img
然后,一切正常,顺利进入ubuntu。至此,我很困惑的就是我的这个情况,引导的文件路径和命令到底该怎么写?其中这些不同的写法又有什么区别?
为什么我的文件不能用同样的方法去引导呢?希望各位帮忙解惑下!!
问题原文链接:http://www.ylmf.net/read.php?tid=1329214&fpage=0&page=6
----------------最新修订 2010/04/05 15:02-----------------------------------
昨晚又发现了新情况,之前我加载 kernel 时用的 是kernel /vmlinuz 后来才明白,这是由于我在C:\根目录下还留有 vmlinuz这个文件,所以我加载的其实是我Win7系统C:\下的vmlinuz,而且加载的文件不对的话,我发现进入系统后xorg这个进程的CPU占用率很高。后来我把其删除后,发现该kernel /vmlinuz 无效了,
我将其修改为 :
kernel (hd0,5)/vmlinuz
initrd (hd0,5)/initrd.img
OK,这次一切正常!! 算是自己解惑了。
主要参考:
http://www.ylmf.net/read.php?tid=1329214
http://www.loststop.cn/archive/soft-and-internet/install-ubuntu-with-hdd-in-win7.html