当前位置: 首页>>技术教程>>正文


双启动Ubuntu Linux和Windows 7

, ,

介绍

您需要Windows才能使用其用于工作的程序,您最喜欢的游戏仅在Windows上运行,或者您是从事某些cross-platform项目的开发人员。当然,您甚至都无法考虑放弃自己喜欢的操作系统。无论出于何种原因,您都需要Windows和虚拟机不会削减它,所以如果没有备用计算机,剩下的就是dual-boot。我通常建议不要使用multiple-boot机器,但是对于这种情况非常有用的情况,我不能提出异议。这就是本文的目的:确保您需要dual-boot系统,确认要求,并根据需要进行备份并继续。您应该具有安装Windows和Linux的经验,至少在这种情况下是Ubuntu,并且有一定的勇气。但是首先让我们弄清楚一些概念。

概念

我们不想骗你:任何涉及高级分区方案的任务都不是出于胆小。但这也不是火箭科学,我们在这里为您提供帮助。各种操作系统都有不同的分区方案,但是由于PC的分区概念是如此”smart”,因此您应该了解一些事情。我所知道的每个可在PC上安装的OS都需要一个主分区来引导。在这方面,Linux是最灵活的,因为您可以将其/boot或/放在逻辑分区上,但是我不确定您的BIOS是否可以从中引导。 Windows,Solaris和BSD绝对需要主分区,而Windows在这方面是最高的”oppressive”。因此,每当您安装涉及Windows的dual-boot系统时,请先安装它,因为它不会询问您并覆盖MBR。如果要使用dual-boot Linux和BSD或Solaris,请首先安装Linux。现在,我们解决了这一问题,如果目标磁盘上还有其他分区,并且仍然需要它们,我们将坚持要求您进行备份。我们的设置将从一个空白驱动器开始,我们将向您展示它是如何完成的。

安装Windows 7

如前所述,您需要先安装Windows,这不仅仅是一个建议,它也不仅仅适用于Windows 7。我们建议您不要尝试over-complicated的设置,因为这样可以使您的系统在适当的时间内实际启动并运行的机会迅速减少。请注意,本文不是有关安装Windows 7和/或Ubuntu的step-by-step how-to。我们将仅参考涉及分区的部分以获得成功的dual-boot体验。因此,当您进入Windows的分区屏幕时,下面的屏幕截图可让您了解一下:

Windows 7 partitioning

因此,由于Windows要求主分区的最小大小超过12 GB(!),所以我给了它,它auto-created是系统1,剩下的磁盘空着我。在成功完成安装之后,我已经准备好进行棘手的部分:安装Linux。不,我只是在开玩笑,这很简单。

安装Ubuntu

我们选择Ubuntu是因为它很受欢迎,但是关于发行版的想法是相同的:sda1和sda2是Windows,sda3是Linux /或/boot,标记为可引导(非常重要!),其余磁盘供您使用。你先请。这仅在使用Win7时适用,因为例如Windows XP不需要单独的系统分区,因此您还可以使用另一个主分区。另一个操作系统。也许有一种方法可以在Windows 7中不使用系统分区,但是我不是Windows专家,所以如果有人知道,请告诉我们。

因此,将您的Ubuntu 11.10 CD弹出驱动器并从中启动,请注意,本教程也适用于旧版本,例如我们的LTS版本的Ubuntu Lucid Lynx 10.04,只要它们提供GRUB 2。分区屏幕,它会让您知道它已经安装了另一个操作系统,因此选择“在旁边安装Ubuntu”,下一个屏幕应如下所示:

Ubuntu partitioner

因此,请使用”Add”创建我曾告诉您的可启动/boot或/分区,请不要忘记交换分区,并在需要时继续使用其他分区,但是请确保上述分区是主分区并标记为可启动。当您选择/dev /sda作为目标时,Ubuntu会将GRUB安装在MBR内(是的,此安装假设一台磁盘机),它将自动检测Windows引导代码并在其菜单中创建一个条目,如您所见下面:

Ubuntu GRUB screen

在尝试dual-booting Windows 7和Debian测试时,尽管安装程序在安装时告诉我它检测到Windows,但在第一次启动时没有输入。我要做的就是以root用户身份运行”update-grub”并解决了问题。这适用于使用GRUB 2的发行版,而GRUB 2如今已占大多数。在旧版GRUB上,只需在menu.lst中创建一个条目来指示GRUB连锁加载Windows,则应进行设置。这是一个示例条目,考虑到在我们的示例中Windows已安装在sda1上:

(1) Windows
title Windows 7 x86
rootnoverify (hd0,0)
makeactive
chainloader +1

与旧的和尝试过的LiLO一样,是的,它可以毫无问题地启动Windows。这是我作为lilo.conf示例找到的内容:

boot = /dev/sda
timeout = 10
prompt

default = Linux
vga = normal

read-only
map=/boot/map
install=/boot/boot.b
image = /boot/vmlinuz-2.6.32-20

label = Linux
initrd = /boot/initrd-2.6.32-20.img
root = /dev/sda3

other = /dev/sda1
label = Windows 7 

请记住在更改配置文件并重新启动后运行lilo。您将在此处找到Windows条目。

结论

如您所见,随着Linux发行版对新手越来越友好,dual-booting不再是过去的噩梦。但是,如果可以的话,请尝试将两个操作系统安装到单独的硬盘上(过去我曾经在Windows 7机器上工作,那东西像吃糖果的孩子一样占用了磁盘空间,相信我),甚至更好,分开系统。但是,如果您做不到,我们只是希望本文能帮助您无缝完成任务。

著名遗言

正如我已经注意到的,在某些情况下,无论您为邪恶的神灵做出何种咒骂或牺牲,GRUB 2都根本无法检测到Windows 7。您需要做的就是冷静下来,编写一个小的文本文件,更新GRUB并重新启动。与传统GRUB相反,GRUB 2与对分区和磁盘编号的不一致。虽然旧版GRUB从0开始编号,但分区和磁盘都一样,但是GRUB 2认为它更聪明,从0开始将磁盘编号,从1开始对分区进行编号(很好的结合)。因此,如果您查看旧版GRUB示例,则在该示例中Windows引导所在的第一个磁盘的第一个分区是(hd0,0)。在GRUB 2中为(hd0,1)。相信我,记住这一点将在早晨的凌晨帮助您。

让我们开始吧:在/etc/grub.d/中创建一个名为12_windows7的文件(仅计算数量,因为它将设置Windows在启动菜单中的顺序)并在其中写入:

#! /bin/sh -e
echo “Adding Windows” >&2
cat << EOF
menuentry “Windows 7″ {
set root=(hd0,1)
chainloader +1
}
EOF

保存文件并关闭编辑器,确保文件“ chmod a + x …”可执行,当然要运行”update-grub”并重新启动。瞧

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/10858.html,未经允许,请勿转载。