个人工具

UbuntuHelp:WindowsDualBoot

来自Ubuntu中文

Wikibot讨论 | 贡献2010年5月20日 (四) 01:01的版本

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航, 搜索
  1. title Dual Boot Ubuntu and Windows

Introduction

This page describes how to set up your computer in order to dual boot Ubuntu and Windows.

Back Up Your Data

Although this may seem obvious, it is important to | backup your data files to an external backup medium before attempting a dual-boot install (or any other hard drive manipulation), in case your hard drive becomes corrupted during the process. External hard drives, USB flash drives, and multiple DVDs or CDs are useful as external backup media.

Have a Windows recovery CD/DVD available

Many computer manufacturers that pre-install Windows provide a Windows recovery/re-installation CD or DVD with the computer. However, many companies no longer ship a physical disk but instead create a hidden partition on the hard drive in which the recovery-disk information is stored. A utility is then usually provided which allows the user to burn a recovery/re-installation CD or DVD from it. If you are buying a new computer and intent on dual-booting, make sure you have (or can make) a physical Windows recovery/re-installation CD or DVD. If neither a CD/DVD nor a recovery partition/burning utility is provided by your computer manufacturer, you may need to telephone your vendor and ask for a CD or DVD (to which you are normally entitled under the Windows EULA). It is very important to have such a physical recovery/re-installation CD/DVD prior to changing your hard drive, in case your hard drive becomes corrupted in the process (and the recovery partition thereby becomes unavailable for use). Once you have created a physical backup disk from a restore-image partition on the hard-drive, the restore-image partition can either be removed or left in place. Ubuntu can be installed with it intact without problems.

Getting Recovery Media

You may need to request a physical recovery/re-installation CD or DVD directly from your computer manufacturer. Here are some resources:

Install Ubuntu after Windows

In general, a Windows OS should be installed first, because its bootloader is very particular and because Windows installers tend to overwrite the entire hard drive (potentially wiping out any other data stored on it). If Windows isn't already installed, install it first. If you are able to partition the drive prior to installing Windows, leave space for Ubuntu during the initial partitioning process. Then you won't have to resize your NTFS partition to make room for Ubuntu later (saving a bit of time). When a Windows installation already occupies the entire hard drive, its partition needs to be shrunk, creating free space for the Ubuntu partition. See How to Resize Windows Partitions to learn how to do this. This can be done through Control Panel -> Administrative tools -> Computer Management -> Disk Management. You can then use the partition manager to shrink the partitions. As a side note, you can only create free space to the right of a partition. If you have resized the windows 7 /vista partitions and cannot boot up windows, you can use the instructions from Windows Vista / 7 Partitions|WindowsRecovery to fix it. Once free space has been created on the hard drive, it is easy to install Ubuntu as the second operating system (and it is done automatically) from the Ubuntu LiveCD. Allow the Ubuntu LiveCD to install to "largest available free space" (if you have left unallocated free space), or manually into a partition that you have already created for Ubuntu.

Install Ubuntu

  • Download an Ubuntu LiveCD image (.iso) from Ubuntu Downloads and burn an Ubuntu LiveCD (see BurningIsoHowto).
  • Insert the LiveCD into your CD-ROM drive and reboot your PC.
  • If the computer does not boot from the CD (eg. Windows starts again instead), check your BIOS settings and adjust them so that booting from the CD is allowed.
  • Proceed with installation until you are asked this question: "How do you want to partition the disk ?".

Resizing Partitions Using the Ubuntu Installer

Automatic partition resizing
  • Choose the First Option (It should be something like: "Resize IDE1 master, partition #1 (hda1) and use freed space").
  • Specify the size of the new partition as a percentage of your entire hard disk.
  • Click on "Forward".
  • Continue to Finishing|Ubuntu Installation
Manual partitioning
  • Choose "Manually edit partition table"
  • Listed will be your current partitions
  • Select the partition you want to resize and press Enter.
  • Select "Size:", press Enter.
  • Select Yes, press Enter.
  • Type in a new size in Gigabytes for your partition, it's recommended you free up AT LEAST 10 GB of free space for your Ubuntu install. Press Enter when happy with your changes. It may take some time to apply the changes.
  • Create a swap partition of at least your amount of RAM (if you don't know, 2000 MB is a good value).
  • Create a partition for your Ubuntu installation, at least 10 GB.
  • Select "Finish partitioning and write changes to disk".

Master Boot Record and Boot Manager

GNU/GRUB2 is the boot manager installed in Ubuntu by default. If you use the Alternate CD you can choose Lilo instead. GRUB2, GRUB and Lilo are good Open Source boot managers so the main parts of the boot loaders are installed inside Ubuntu. This means Ubuntu is independent and avoids any need for writing to other operating systems. To accomplish this, the only thing in your computer outside of Ubuntu that needs to be changed is a small code in the MBR (Master Boot Record) of the first hard disk. The MBR code is changed to point to the boot loader in Ubuntu. You will be presented with a list of operating systems and you can choose one to boot. If you do nothing Ubuntu will boot after a ten second countdown. If you select Windows then GRUB or Lilo will chain-load Windows for you at the Windows boot sector, which is the first sector of the Windows partition. If you have a problem with changing the MBR code, you might prefer to just install the code for pointing to GRUB to the first sector of your Ubuntu partition instead. If you do that during the Ubuntu installation process, then Ubuntu won't boot until you configure some other boot manager to point to Ubuntu's boot sector. Windows Vista no longer utilizes boot.ini, ntdetect.com, and ntldr when booting. Instead, Vista stores all data for its new boot manager in a boot folder. Windows Vista ships with an command line utility called bcdedit.exe, which requires administrator credentials to use. You may want to read [1] about it. Using a command line utility always has its learning curve, so a more productive and better job can be done with a free utility called EasyBCD, developed and mastered in during the times of Vista Beta already. EasyBCD is user friendly and many Vista users highly recommend EasyBCD.

Installing Windows After Ubuntu

Normally when Windows is installed after Ubuntu the "Master Boot Record", MBR, will be overwritten. You can bootup off a LiveCD and repair the MBR. However, there are 2 different approaches: <<Anchor(recovering-grub)>>

Recovering GRUB after reinstalling Windows

There are also these help guides

Which should help with any install of Ubuntu now. For some simple cases the advice below might help

Ubuntu 10.04 or 9.10

Sorry, definitely use this guide

Ubuntu 9.10 & earlier

The older Grub, sometimes called Grub-legacy or perhaps Grub1 was used up until Ubuntu 9.10. The default for 9.10 was initially Grub1 but installs would drift over to Grub2 without users really being aware of the change. With any current Ubuntu install it is wise to install, or re-install Grub2 as shown in the link above. If you run an older Ubuntu or had any trouble with Grub2 then Grub1 & Lilo are still available. To fix the MBR with an older LiveCD to access a Grub command-line: 1.#1 Boot into a [[UbuntuHelp: https://help.ubuntu.com/community/LiveCD | LiveCD ]] 1.#2 Open a terminal 1.#3 Open the GRUB Command-line utility by typing

sudo grub

1.#4 Find where Grub is. If this gives a few different answers then you will need to find the correct one, perhaps by trial-and-error.

find /boot/grub/stage1

1.#5 Tell GRUB which partition to tell the MBR your Grub is on by entering

root (hdA,B)

The coordinates A,B are where 'A' is the hard-drive number, starting at 0, and 'B' is the partition number, starting at 0. For example, if Ubuntu was installed on the second partition of the first hard-drive, the command should be

root (hd0,1)

1.#6 Tell GRUB which drive's MBR to fix

setup (hd0)

Replace 0 only in the extremely unlikely event that your bios does not use the first hard-drive as the boot device. Typically Ubuntu might be on any drive but the bios will almost always go to the first drive's MBR to find out where to find the boot-loader. 1.#7 Leave the GRUB Command line

quit

and reboot.

Master Boot Record backup and re-replacement

Back-up the existing MBR, install Windows, replace your backup overwriting the Windows boot code:

  1. Create an NTFS partition for windows (using fdisk, GPartEd or whatever tool you are familiar with)
  2. Backup the MBR e.g. dd if=/dev/sda of=/mbr.bin bs=446 count=1
  3. Install windows
  4. Boot into a [[UbuntuHelp: https://help.ubuntu.com/community/LiveCD | LiveCD ]]
  5. Mount your root partition in the LiveCD
  6. Restore the MBR e.g. dd if=/media/sda/mbr.bin of=/dev/sda bs=446 count=1
  7. Restart and Ubuntu will boot
  8. Setup grub to boot windows

Issues with Windows XP and NTFS

The Ubuntu installer has included support for resizing NTFS partitions since Ubuntu 5.10 (Breezy Badger) was released way back in 2005. Very few problems have been reported relative to the huge number of times that the installer has been used. If you tried the above procedure and have had no luck, it might be that there is a pre-existing problem either in the file system, in the partition table or the hard disk. First you should try running CHKDSK before trying again to resize the partition, and if you are using the Alternate CD, defragging might help. It is recommended that you run CHKDSK once again after resizing your NTFS partition. Also, try the following alternative methods:

Using QtParted from the System Rescue CD

  1. Boot into Windows and backup any valuable documents/photos etc onto removable media such as CD-R/DVD-R.
  2. Run the Windows disk check tool (Error-checking) on C: a couple of times (the results can be seen in the Administrative Tools > Event Viewer > Application under a "Winlogon" entry).
  3. Run the Windows defragmentation tool on C:
  4. Download the System Rescue CD ISO image (100 MB; has several very useful software tools).
  5. Burn the ISO image to a CD.
  6. Boot from the CD and hit Enter when you see the message "Boot:".
  7. When you get a command prompt, enter:
run_qtparted
  1. Select your disk on the graphical screen (most likely /dev/hda).
  2. Select your NTFS partition to be resized (most likely /dev/hda1).
  3. Right click with the mouse and choose Resize.
  4. Set the new partition size.
  5. Commit your changes in the File -> Commit menu. If your keyboard and mouse stop responding during resizing then please just be patient.
  6. Once your changes are saved, remove the System Rescue CD and insert your Ubuntu installation CD.
  7. Reboot and install Ubuntu into the free space.

Using GParted from UNetbootin-PartedMagic

Another approach to resizing partitions, which does not require a CD, is to load PartedMagic from Windows via the UNetbootin PartedMagic Loader:

  1. Download and install the Windows (.exe) file, then reboot.
  2. Select the UNetbootin-partedmagic entry after rebooting, and wait as PartedMagic boots up.
  3. Start the partition manager by clicking the GParted icon on the the panel.
  4. Select your disk (probably /dev/sda) via the drop-down menu on the top-right corner of the interface.
  5. Right-click the NTFS partition to be resized (probably /dev/sda1), and select the "resize" option.
  6. Drag the slider to specify the new size the NTFS partition should be resized to, then press OK.
  7. Press the "Apply" button to resize the disk, then reboot once done.
  8. Upon the next Windows boot, click OK when prompted to remove UNetbootin-partedmagic to remove its boot menu entry.

Also see

  • MultiOSBoot - How to boot more than two operating systems from a single hard drive.
  • [[UbuntuHelp:]]

External Links