Home | Syndication | Delicious | Douban | Twitter | FriendFeed

Using NTLDR to dual boot Windows and Ubuntu

以 ThinkPad T42p 为例,介绍了如何安装 Ubuntu 6.10,并与 Windows XP 共存,使用 NTLDR 来进行双引导。

1 基本硬件
2 目标与约定
3 下载
4 安装
5 配置双引导
6 安装后的基本配置

1 基本硬件

CPU:Intel Pentium M 1.8GHz
内存:2G memory
硬盘:56G hard drive

2 目标与约定

我的 ThinkPad T42p 原先的系统 Windows XP 要保留,且使用 Windows boot loader (NTLDR) 来引导机器,而不是 Linux GRUB,即,GRUB 不可以安装到 MBR 区,而是安装到 Ubuntu 自己使用的第一个分区。

这台机器的硬盘共 56G,Windows XP 使用了 44G,依次分为 C区 ( /dev/hda1 ),D区 ( /dev/hda2 )。剩余的 12G 将由 Ubuntu 使用,将分成两个分区,其中 /dev/hda3 为根区 ( / ),/dev/hda4 为交换区 (swap)。

Linux GRUB 将安装到 /dev/hda3 上。

3 下载

Ubuntu 的每一个发布都提供有三种安装介质,分别为 Desktop CD,Server CD,Alternate CD。

其中 Desktop CD 应该是用的最多的介质了,它是一种 live CD,提供了完整的预览能力,的确很酷。启动完成后,双击桌面上的 Install 图标即可启动安装向导,此安装向导也是完全图形界面的,非常易用。

顾名思义,Server CD 就是用来构建服务器的,不在俺的关心范围内。注意,此介质不包含 GUI。嘿嘿,又一次说明了易用性往往是安全性的“敌人”,明白为什么 IBM 的 S390,AS400 都那么难用了。

Desktop CD 确实很棒,但是为了突出易用性,它将大多数安装过程中的选项都缺省化了,用户无法进行干预。比如,我想把 Linux GRUB 安装到非 MBR 区,还比如,我个人比较喜欢用文本模式安装 Linux,等等。这时我们就需要用 Alternate CD 了,这个安装介质给予用户更多的干预能力。

Ubuntu 6.10 (Edgy Eft) 的下载站:官方站中国镜像站

4 安装

安装过程就不用在此详述了,按照屏幕提示操作即可。我觉得有三个地方需要稍微留意一下:

  • 如果安装时选择中文作为系统默认语言,在安装后期向导将会提示是否下载语言包。根据网络速度状况,这个过程会花费半小时到1小时不等。当然,也可以不在安装时下载,待安装结束后再下载。
  • 对于键盘的选择,别让向导执行自动检测,而是直接选择 US English 就对了。可能这是 v6.10 的一个 bug,因为我在 v6.06 中没有碰见这样的问题。
  • 向导提示安装 GRUB 时,需要注意,不要将 Linux GRUB 安装默认位置 MBR 区,而是 /dev/hda3 区。

让人印象深刻的是,除了显卡的 3D 加速能力,几乎所有的硬件都得到了良好的驱动。关于如何驱动这张 ATI 显卡的 3D 加速能力,请参看另外一篇文章。

5 配置双引导

使用 NTLDR 双引导的基本思路就是将 Ubuntu 的启动所需信息写入到 Windows XP 的 boot.ini 文件中,这需要我们能进入刚才新安装的 Ubuntu 系统,并导出其启动所需信息到一个文件中。有两种办法可以用来实现启动 Ubuntu 。

方法一,使用 MS fdisk 重置 active partition

安装完成,退出 CD,使用一张可引导的光盘或软盘(比如 WIN98 bootable CD)来启动机器,运行 fdisk 指令,将 Linux GRUB 所在的分区设为 active ,在本文中就是 /dev/hda3 。然后重启机器,这时机器就会启动进入新安装的 Ubuntu 了。使用下面的指令创建一个启动文件:

$ sudo dd if=/dev/hda3 of=ubuntu.bin bs=512 count=1

这会把相应的启动信息写入一个名为 ubuntu.bin 的文件中,将此文件复制到 Windows XP 的 C分区根下。

再用可引导的光盘或软盘来启动机器,再运行 fdisk 指令,重新将 /dev/hda1 设为 active 状态,重启机器,这样机器就重新回到由 Windows XP 引导了。

打开一个命令行窗口,运行下面的指令消除 boot.ini 的隐藏、只读等属性,以便编辑:

C:\> attrib -s -h -r boot.ini

打开 boot.ini 文件,在文件最后加一行(若是使用的方法二,编辑刚才加入的行):

C:\ubuntu.bin="Ubuntu Linux 6.10 Edgy Eft"

保存,退出。再用指令 attrib 将 boot.ini 和 ubuntu.bin 保护起来:

C:\> attrib +s +h +r boot.ini
C:\> attrib +s +h +r ubuntu.bin

好了,现在重启机器就可以看到 Ubuntu 出现在了 Windows XP 的启动菜单中了。

方法二,使用 GRUB for DOS

GRUB for DOS 官方站上下载二进制包,最新版本是 0.4.2。下载后解开包,只需要将 grldr 和 menu.lst 两个文件复制到 C:\ ,并在 menu.lst 尾部加入刚才新安装的 Ubuntu 分区信息:

title my ubuntu first bootup
root (hd0,2)
kernel /vmlinuz root=/dev/hda3
initrd /initrd.img

然后编辑 boot.ini ,在文件尾部加入以下一行:

C:\grldr="Ubuntu Linux 6.10"

好了,重启机器,在启动菜单中选择新加入的 "Ubuntu Linux 6.10" ,然后会出现刚才建立的 menu.lst 内容列表,选择 "my ubuntu first bootup" ,就可以进入 Ubuntu 了。

进入系统后依然是使用指令 dd 来创建一个 ubuntu.bin 文件并复制到 C:\ 备用。然后重启机器进入 Windows XP.

再次打开 boot.ini ,将尾行的 grldr 修改为 ubuntu.bin 即可。记得删除临时使用的 grldr, menu.lst 文件。

好了,完成!

6 安装后的基本配置

这里只列举几个我觉得比较基本的安装后配置。

6.1 软件源

打开 系统 -> 系统管理 -> 软件源 ,选中全部选项:universe, main, multiverse, restricted, source code.

我觉得 Ubuntu CD 选项没什么用处,推荐去掉此项,否则以后随便安装点什么包,都会要求你插入 Ubuntu 的安装光盘。

源服务器方面,选择主服务器或者China服务器,都可以,反正我觉得它们的速度差不了多少。

6.2 语言支持

打开 系统 -> 系统管理 -> 语言支持 ,按照提示操作即可。

6.3 更新系统

安装结束后记得更新一下系统,应该有很多可用的更新:

$ sudo apt-get update
$ sudo apt-get dist-upgrade

6.4 使用 BASH 作为缺省 SHELL

Ubuntu 6.10 的一个变化就是不再使用 BASH 作为缺省 SHELL,而是使用 DASH 。DASH 源自 Debian ,比 BASH 更小、更轻巧。但是我习惯了使用 BASH ,而且 BASH 也是用的最广泛的 SHELL 。

$ sudo dpkg-reconfigure dash

当屏幕提示是否 Install dash as /bin/sh 时,选择 NO,这样系统就会使用 BASH 作为缺省了。

This entry was posted on Monday, December 18th, 2006 at 22:15 and is filed under TechNotes. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Leave a Reply