起源还是学习上要用到 linux 操作系统,所以才在自己电脑上安装 linux 操作系统。先开始是在虚拟机上用的,但用过一两星期就感觉还是不适合,用虚拟机感觉只要 ctrl+Alt 就能退出来,给自己留了太多的退路,又回到了 windows 环境。所以个人很支持在硬盘上安装双系统,在操作系统的选择上,我是支持 ubuntu 的,因为她拥有一个坚固的后盾,那就是 http://forum.ubuntu.org.cn/ ,记住这个网址,有什么问题都可以找她。
好了废话也不多说了,就我自己的安装经历给大家讲一讲在 win7 操作系统下安装 Ubuntu 过程中会遇到的各种问题(本人是两块硬盘,所以情况更复杂,但也更有参考价值!)。
STEP1: 下载 ubuntu
目前截止到 2010/10/23 最新的版本是 10.10
http://www.verycd.com/topics/2857712/ 这是电驴上的资源,可以去下, 600 多 M 不是很大,下载完当然刻盘后就叫 ubuntu 10.10 LiveCD 。
STEP2: 空出你的硬盘空间
安装 ubuntu 所需要的空间不大, 10G 足以(太够了,考虑到以后还要装其他一些东西,留大一点吧)。
STEP3: 情况调查
QA: 你机箱中安装了几块硬盘?
A1 、一块 (太简单了,网上很多教程都适合你)
A2 、两块 (情况复杂,引导需要小心)
QB: 你愿意将 liveCD 刻录下来吗?(这会省去你许多麻烦,也可以收藏以备崩溃后重新安装。但没有刻录机和空白光盘的用户也不要着急,还是有办法的)
B1 、愿意
B2 、不愿意
一、 A1B1用户
太简单了,将你的 liveCD 塞入光驱,从主板设置由 CDROM 启动系统也就是我下面要说的 二、 A1B2 用户 的第 6 、 7 两步,呵呵,这时大多数人发现在开机的 GNU GRUB 中没有 win7 系统 的选项只能进入 ubuntu ,请往下翻页至——从 ubuntu 中修复 win7 开机引导 就教你解决这个问题
二、 A1B2用户
这就是网上说的很多的“ win7 下如何使用 GRUB4DOS 来引导硬盘安装 LINUX 系统 ”,好这里提到了一个新的名词“ GRUB4DOS ” 这是 ubuntu 社区上一篇帖子 http://forum.ubuntu.org.cn/viewtopic.php?f=139&t=150541 ,可以去膜拜一下,当然如果想省一点时间,我就简单地说——这是一款在 win7 下能在启动主板后引导进入光盘或操作系统的软件(虽然很不全面,但在本教程中就起到这点作用了),这是她的下载地址,去下一个最新版的(就是最新发布的,这个不会不懂吧)吧 http://download.gna.org/grub4dos ,这是很多小软件的集成打包,我们只会用到其中的几个,这个待会再说。
1、
将下载的
grub4dos
解压,复制其中的
menu.lst
、
grldr
和
grldr.mbr
三
个文件到
C
盘根目录
(就是
C:\
)
,如果想
GRUB
支持中文,那就把
china
文件夹中的
grldr
放在
C
盘根目录下。
2
、将下载的
ISO
文件
ubuntu-9.04-desktop- i386.iso
放在分区根目录下
,
并将用
winrar
或者虚拟光驱打开
LINUX
的
ISO
文件,这里以
ubuntu-
10
.10-dvd-i386.iso
为例,该文件内
casper
文件夹里的
initrd
和
vmlinuz
这两个文件复制到
C
:盘根目录
,
(其实不一定放在
C
盘根目录,任何一个分区都可以,只要你的
menu.lst
文件参数配置正确就可以了,例如只有一块硬盘,放在
C
盘就是(
hd0,
0
)
,
D
盘就是(
hd0,
1
)依次类推),
menu.lst
中指定
initrd.lz
和
vmlinuz
两个文件的路径是
正确的
就可以了,并不一定要把
initrd.lz
和
vmlinuz
两个文件放到根目录的。
3、 这里将会出现一个分歧,网上有些教程会使用 boot.ini 方法,有的会使用 BCDedit 方法。这里我推荐使用 BCDedit 方法,原因有一下两点: 1 )、 boot.ini 方法对 win7 使用软改激活的用户会导致启动不能(虽然我也不确定软改的具体定义是什么,但君子不立危墙之下,不要没事找事了,当然纯学习时间的例外) 2 )、 BCD(Boot Configuration Date) 即系统引导配置数据,这是从 Windows Vista 开始才引入的。我们知道,在 Windows Vista/Server 2008 中 BootManager 组件负责系统的初始化和引导工作,而与之相匹配系统的引导数据就 存储 在 BCD 中。 这才是 win7 引导的核心,已经不再用 boot.ini 引导了,当然 win7 还是承认 boot.ini 文件的这也是为什么 boot.ini 方法能起作用的原因。初步了解 BCD ,这也将是本次安装的额外收获。 PS: 强烈推荐阅读 ubuntu 社区 smallapple 所整理的 grub2 基础教程 , http://forum.ubuntu.org.cn/viewtopic.php?f=139&t=229387 这是帖子的地址,这个 pdf 教程有 21 页,我是打印下来放入文件夹好好阅读收藏的。事实上,教程非常详细,对 ubuntu 的引导问题基本都提到了,膜拜!如果说 BCD 是 win7 引导的核心,那么 grub 就是 ubuntu 的 BCD 了,现在自 ubuntu9.10 升级后就默认使用 grub2 了,一定要了解一下。
4、 我们使用 BCD 方法:
1) 、 在 WIN7 里以管理员的身份运行 cmd ,打开命令提示符
2) 、输入 bcdedit /export " D :\BCD Backup"
# 将系统存储的内容导出到文件。此文件可以在以后用于还原系统存储的状态。此命令仅对系统存储有效。注意 : 一定要备份,一方面以还原防止操作错误,另一方面,后面再说(顺带一提 :bcdedit /import "D:\BCD Backup" 就是与之相对的还原操作)
3) 、输入 bcdedit /create /d “GRUB4DOS” /application bootsecto r
# 这个命令会产生一个 guid 打印在 cmd 窗口中 , 通俗讲就是在启动队列中占一个位置。注意: guid 类似于 {******xx-***x-***x-***x-************} 格式,具体数字根据硬盘或分区参数会有相应变化。 例如我的就是 {dadaa27d-c9f1-11df-a802-ce8c84d8192b}, 我们把它复制下来,我们下面有用(有同学提到:怎么复制呀?这里提一种方法 在 cmd 窗口右键 → 标记 → 选中要复制的东西再点鼠标右键,此时选中的文本会变成未选中的状态,不过没关系,按下 Ctrl+C , information 就到你的剪贴板里了 ~ 到目的地去 Ctrl+V 吧 ~ ! )
4) 、 bcdedit /set {dadaa27d-c9f1-11df-a802-ce8c84d8192b} device partition=C:
# 设定操作系统 {dadaa27d-c9f1-11df-a802-ce8c84d8192b} 引导分区“C” , 设置刚刚添加启动项的启动分区,这里设的是 C 盘,因为我们的文件都在 C 盘 。
5) 、 bcdedit /set {dadaa27d-c9f1-11df-a802-ce8c84d8192b} path \grldr.mbr
# 设置启动时运行的文件。
6)
、
bcdedit /displayorder
{dadaa27d-c9f1-11df-a802-ce8c84d8192b}
/addlast
#
这个只是为了将增加的启动项放到其他启动项的后面。
注意:也可以用
/boo
tsequence 选项,具体可以去百度再了解一下,我就不具体列举了。
7)
、
最后可以用
bcdedit /enum
查看一下,会看到执行上述命令后产生的启动项配
置。
实模式启动扇区
———————
标识符
{dadaa27d-c9f1-11df-a802-ce8c84d8192b}
device partition=C:
path \grldr.mbr
description GRUB4DOS
这样就完成了在
WIN7
启动菜单添加
GRUB
的选择项了,只要你在
C
盘根目录下写一
个正确的
menu.lst
文件就可以引导硬盘安装
LINUX
啦。
5、 书写正确的 menu.lst 文件
回到我们的 C 根目录下从 GRUB4DOS 中拷贝出来的 menu.lst 文件,里面有一些书写说 明,不过是英文的,我略微说一下我们要用到的内容。首先将里面的说明都删掉,写下内容如下:
default 0
timeout 0
title ubuntu
10.10
install
rootnoverify (hd0,0)
kernel /vmlinuz boot=casper iso-scan/filename=/ubuntu-
10
.
10
-desktop-i386.iso ro quiet
splash
locale=zh_CN.UTF-8
initrd /initrd.gz
title Windows
7
rootnoverify (hd0,1)
chainloader +1
不懂?没事也不需要太了解,具体的 menu.lst 写法可以参考网上的教程,我记得比如: http://www.360doc.com/content/09/0817/19/74585_4997923.shtml 很不错的简单介绍。
6、 接下来,就是重启,安装 ubuntu 了,很简单也许在分区那边会遇到一些问题。我的建议 是用手动指定分区然后把你在 STEP2 中空出的盘选择 ext4, 挂载在 / 上(注意剩下 2G 空间),剩下的 2G 可以用作 swap 分区,关于分区方面的知识建议阅读《鸟哥的私房菜》, 现在已经是第三版了,强烈推荐通读此书,写的很好,很基本。
7、
安装完成后她会要求你重启,这时大多数人发现在开机的
GNU GRUB
中没有
win7
系统
的选项只能进入
ubuntu
,请往下翻页至——从
ubuntu
中修复
win7
开机引导 就教你解决这个问题
三、 A2B1 用户
拥有两块硬盘,那么注定你在安装上没有什么问题,但是在系统引导上肯定会出现问题。我的建议是,一定要搞清楚你的硬盘状况,比如每一个分区是什么 ?你的 win7Loader 在哪里?……
1 、不要被吓唬住了!先通过 LiveCD 安装 ubuntu 吧,不管怎样都是要装的。
在引导程序的安装位置上,我建议就装在 / 目录所在的分区,这样重启后你会进入 win7 就像我当初一下,直接进入 win7 ,就像没装过 ubuntu 一样。别急,用 LiveCD 引导进入 ubuntu 。
2、
这时 就是通过脚本
script
,完整了解你的系统情况的时候了,感谢
ubuntu
社区的
onshoestring
他向我提供了这个脚本,
http://sourceforge.net/projects/bootinfoscript/
把文件先复制到桌面,
在
终端运行:
sudo bash ~/
桌面
/boot_info_script055.sh
生成的
RESULTS.txt
文件
中有详细的信息
3、 你这时了解你的硬盘了吗?呵呵,下面可以通过
——从 ubuntu 中修复 win7 开机引导(利用 Ubuntu-GRUB2 来引导)
——从 win7 中修复 ubuntu 开机引导(利用 BCDedit 来引导)
来自由选择你的引导程序是通过 Ubuntu-grub2 进入 win7 还是通过 win7-BCD 来调用 Grub2 以进入 ubuntu
四、 A2B2 用户
你选择了一条最艰巨的路,先把 A1B2 的执行一遍以安装 ubuntu ,再选择
——从 ubuntu 中修复 win7 开机引导(利用 Ubuntu-GRUB2 来引导)
——从 win7 中修复 ubuntu 开机引导(利用 BCDedit 来引导)
来自由选择你的引导程序是通过 Ubuntu-grub2 进入 win7 还是通过 win7-BCD 来调用 Grub2 以进入 ubuntu ,呵呵。
——从 ubuntu 中修复 win7 开机引导(利用 Ubuntu-GRUB2 来引导)
既然是从 ubuntu 修复 win7 的启动项,那就必须进入 ubuntu ,对于那些只能进入 win7 却无法进入 ubuntu 的用户,可以用 LiveCD 引导进入(就是最开始选择试用 Ubuntu , LiveCD 的作用终于体现出来了)。当然对于 B2 而且无法进入 ubuntu 的情况,我们还有下面的教程——从 win7 中修复 ubuntu 开机引导。好,废话不多说,进入正题。
进入 ubuntu 后,请打开终端输入:
1、
sudo fdisk -l
(
注意是小写的
L
,不是数字的
1
,此步用于确定电脑中安装
Ubuntu10.
10
的所在分区的位置,输入以后会输出类似如下信息,找到
system
为
Linux
的那行,记住
/dev/sdaX
的情况,比如本人的电脑是
/dev /sda7
,以下就以此为例,你自己的请加以更改
)
2、 s udo -i (此步用于得到 root 权限,无需输入密码,方便以下操作)
3、 mount /dev/sda7 /mnt ( 注意, sdaX 是第一步查到的 / 目录所安装的盘)
4、 mount /dev/sda7 /mnt/boot ( 如果 boot 是单独分区装的话才需要这一步,……总之把其他单独分区安装的目录都挂上去,例如 /home 、 /var 等 )
5、 mount --bind /dev /mnt/dev ( 重要,一定要挂)
6、 mount --bind /proc /mnt/proc ( 重要,一定要挂)
7、 chroot /mnt (chroot 挂好的 ubuntu)
8、 grub-install /dev/sda ( 双硬盘的用户注意,此处的 sda 是由 win7loader 所在位置所决定的,就是说,如果你的 win7 和 ubuntu 假如都安装在 sdb, 但 win7loader 却在 sda 的话,也只能写 sda ,具体怎样查看 win7loader 在哪里,我在 A2B1 中有所讲解 )
Ps: 这一步执行后会有几行代码出现,总体来说就是成功的,用 liveCD 引导进入的用户可能会遇到 cannot find ***prition 等字样,无视他,没关系的,重启后你就会发现终于可以进入 ubuntu 了,然后再按照这个步骤执行一遍。 关于这个问题的记载我在一个英文的叫做:小石头工作室的网页上找到的……很遗憾,网址没记录下来,遗失了,还是感谢他们!
9、 update-grub (重装 grub2 )
感谢 ubuntu 社区的 foxman997 在他的帖子中我才正确
知道为什么吗?好好 阅读 ubuntu 社区 smallapple 所整理的 grub2 基础教程 , http://forum.ubuntu.org.cn/viewtopic.php?f=139&t=229387 这是帖子的地址,下载他整理的 pdf 文档。
——从
win7
中修复
ubuntu
开机引导(利用
BCDedit
来引导)
前
4
步的流程和
二、
A1B2
用户 中的
win7
下如何使用
GRUB4DOS
来引导硬盘安装
LINUX
系统
步骤一样,区别就在第
5
步,
书写正确的
menu.lst
文件
文件如下:
Timeout 0
Default 0
Title grub2
Find --set-root /boot/grub/core.img
Kernel /boot/grub/core.img
Boot
( 当然,若果 /boot 单独分区的话,改为
Find --set-root /grub/core.img
Kernel /grub/core.img)
这个方法在 ubuntu 社区 smallapple 所整理的 grub2 基础教程 记载, <="" iv="">