SDB:Windows No Longer Boots Following the Installation of SUSE LINUX 9.1

Şuraya atla: kullan, ara


Version: 9.1

Please note that this article applies to SUSE LINUX version 9.1 only and not to subsequent versions.

Symptom

Following the installation of SUSE LINUX 9.1, the Linux system can be booted, but the Windows system no longer boots. After selecting the Windows entry in the boot loader GRUB, a message such as the following is displayed:

root (hd 0,0)
Filesystem type unknown, partition type 0x7
chainloader +1

The computer stops at this point.

The Windows boot loader may also stop with an error message (if GRUB or LILO was *not* installed in the MBR during the installation and the Windows loader was retained).

The problem cannot be solved by restoring the original MBR with YaST or by writing a new MBR with Windows tools (with the command FIXMBR or with FIXBOOT from the Windows rescue console). Repairing the partition table with proprietary partitioning tools does not solve the problem and may even destroy the entire partition table. The problem cannot even be solved by uninstalling Linux or reinstalling Windows without deleting the entire hard disk.

Cause

The partitioning tool parted, which YaST uses during the installation, may write an incorrect partition table. The problem occurs if

  • the BIOS and Linux "see" different disk geometries AND
  • the Windows partition is larger than about 8 GB (more precisely: if the first hard disk partition ends on cylinder 1024 or beyond this point).

When the system is booted, Windows may use the values in the partition table, which causes a failure.

Currently, this problem also occurs on other Linux distributions using kernel 2.6.

Solution

One quick solution is to activate the LBA or large access mode under which the hard disk was previously addressed for the hard disks in the computer's BIOS. It is important that the hard disk values not be set to "AUTO".

If this does not help (or if your BIOS does not offer this option), you can repair the partition table with a driver update. To do this, proceed as follows: On our FTP server, find two images at [1] : one for creating a floppy disk and one for creating a CD.

Floppy Disk

To install the driver update from floppy disk, proceed as follows:

  • Download the file parted.img.gz and save it to a directory of your choice, for example, in /tmp.
  • Insert a floppy disk and use the following command to write the image to the medium:
gunzip -c parted.img.gz >/dev/fd0
Caution: The previous content of the floppy disk will be lost.
  • Insert the installation CD/DVD (important: if you use an AMD-64 system, insert the 32-bit side of the DVD). Boot the first installation CD or DVD up to the point where you can choose one of the different installation variants.
  • Press F6. A message asking you to keep the driver update ready will be displayed.
  • Use the arrow key to select the menu item "Installation".
  • Enter the boot parameter "fixpart=1" and press ENTER.
  • When the message "Please choose the Driver Update medium" is displayed, insert the driver update disk you created and press "OK".
  • In the following menu, select "floppy" and confirm with "OK".
  • After completing the driver update, press "Back".
  • The following dialog for repairing the partition table displays your hard disk (usually /dev/hda) and the status of the partition table (broken). Select the hard disk and click "OK" to repair the partition table.
  • After repairing the partition table, exit the menu with "Back". Press the key combination CTRL-ALT-DEL to reboot the computer and remove all media from the drives.

Now you should be able to boot both Windows and Linux.

CD-ROM

To install the driver update from CD-ROM, proceed as follows:

  • Download the file parted.iso.gz and save it to a directory of your choice, for example, in /tmp.
  • Use the following command to unpack the image:
gunzip /tmp/parted.iso.gz
  • Burn the file /tmp/parted.iso as an ISO image on a CD by either using a graphical burning program, such as k3b or xcdroast, or from the command line:
cdrecord -v -eject speed=2 dev=/dev/hdc /tmp/parted.iso
The parameter dev=/dev/hdc might have to be adjusted according to the burner device file.
  • Insert the installation CD/DVD (important: if you use an AMD-64 system, insert the 32-bit side of the DVD). Boot the first installation CD or DVD up to the point where you can choose one of the different installation variants.
  • Press F6. A message asking you to keep the driver update ready will be displayed.
  • Use the arrow key to select the menu item "Installation".
  • Enter the boot parameter "fixpart=1" and press ENTER.
  • When the message "Please choose the Driver Update medium" is displayed, insert the driver update CD you created and press "OK".
  • In the following menu, select "cdrom" and confirm with OK.
  • After completing the driver update, press "Back".
  • The following dialog for repairing the partition table displays your hard disk (usually /dev/hda) and the status of the partition table (broken). Select the hard disk and click "OK" to repair the partition table.
  • After repairing the partition table, exit the menu with "Back". Press the key combination CTRL-ALT-DEL to reboot the computer and remove all media from the drives.

Now you should be able to boot both Windows and Linux.

If Linux Is Not Yet Installed

If Linux is not yet installed, you can integrate the driver update to prevent any boot problems from the outset. Proceed as described above, but omit the parameter "fixpart=1" in the installation menu. Then follow the instructions. The update medium will be loaded and the installation will be performed with an updated libparted.

Creating Update Media with Windows

If you are not able to create an update driver medium with a Linux OS, proceed as follows to create it with Windows:

First decide whether to use a CD or a floppy disk as update medium. Then unpack the relevant file (parted.img.gz for floppy or parted.iso.gz for CD) with a Windows unpacking program. For this purpose, use the program untgz32.exe located in the directory /dosutils/untgz on SUSE's first installation CD or DVD. Copy the file untgz32.exe to the directory containing the downloaded file. Open a command prompt, change to the corresponding directory and start the program with:

untgz32 -d parted.img.gz parted.img

or

untgz32 -d parted.iso.gz parted.iso

Writing on floppy:

The directory /dosutils/rawrite/ on the first CD or DVD includes the program rawrite.exe that can be used to write the image to a floppy. Copy this program to the directory containing the unpacked file parted.img.

Insert a floppy in the drive and start rawrite.exe. Enter the file parted.img as source file and confirm with Enter. Then enter the name of the floppy drive (usually "A") as write medium. The image will be written to the floppy.

Writing on CD:

Burn the unpacked file parted.iso to a CD in Windows with a burning program of your choice. Make sure you do not create a data CD but write the file as an ISO image.

<keyword>windows,boot,grub,lilo,bootmanager,ntldr</keyword>