fix for dual boot CHS not working

Patrice Dumas pertusus at free.fr
Sun Jun 27 18:48:43 UTC 2004


Hi,

I have tried the solution posted on that mailing list to recover dual booting
with windows 2000 and it doesn't work. The computer is a Toshiba Portégé 
3480CT. Windows 2000 is on the first partition, in a FAT32. I first used a self
compiled parted to shrink the fat, the partition table was modified and 
windows 2000 was unbootable. Then I installed fedora core 2. The partition
table was remodified. I can do anything on that computer there is nothing
valuable on it. The fedora core 2 is up to date.

The windows friendly CHS is 2432,255,63.

Booting without hda=2432,255,63, I have:

-----------------------------------------------------------------------
[root at sissine root]# fdisk -l
 
Disk /dev/hda: 20.0 GB, 20003880960 bytes
16 heads, 63 sectors/track, 38760 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
 
   Device Boot      Start         End      Blocks   Id  System
/dev/hda1               1        8127     4095976+   c  W95 FAT32 (LBA)
Partition 1 does not end on cylinder boundary.
/dev/hda2   *        8129       22345     7164990   83  Linux
Partition 2 does not end on cylinder boundary.
/dev/hda3           22345       22950      305235   82  Linux swap
Partition 3 does not end on cylinder boundary.
/dev/hda4           22951       38760     7968240    f  W95 Ext'd (LBA)
Partition 4 does not end on cylinder boundary.
/dev/hda5           22951       38760     7968208+  83  Linux
[root at sissine root]# sfdisk -d /dev/hda
# partition table of /dev/hda
unit: sectors
 
/dev/hda1 : start=       63, size=  8191953, Id= c
/dev/hda2 : start=  8193150, size= 14329980, Id=83, bootable
/dev/hda3 : start= 22523130, size=   610470, Id=82
/dev/hda4 : start= 23133600, size= 15936480, Id= f
/dev/hda5 : start= 23133663, size= 15936417, Id=83

[root at sissine root]#
-----------------------------------------------------------------------

I try the solution proposed on the mailing list and I get:

-----------------------------------------------------------------------
[root at sissine root]# sfdisk -d /dev/hda | sfdisk --no-reread -H255 -C2432 /dev/hda
Warning: HDIO_GETGEO says that there are 16 heads
Warning: BLKGETSIZE/HDIO_GETGEO says that there are 38760 cylinders
 
Disk /dev/hda: 2432 cylinders, 255 heads, 63 sectors/track
Old situation:
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
 
   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/hda1          0+    509-    510-   4095976+   c  W95 FAT32 (LBA)
/dev/hda2   *    510    1401     892    7164990   83  Linux
/dev/hda3       1402    1439      38     305235   82  Linux swap
/dev/hda4       1440    2431     992    7968240    f  W95 Ext'd (LBA)
/dev/hda5       1440+   2431     992-   7968208+  83  Linux
New situation:
Units = sectors of 512 bytes, counting from 0
 
   Device Boot    Start       End   #sectors  Id  System
/dev/hda1            63   8192015    8191953   c  W95 FAT32 (LBA)
/dev/hda2   *   8193150  22523129   14329980  83  Linux
/dev/hda3      22523130  23133599     610470  82  Linux swap
/dev/hda4      23133600  39070079   15936480   f  W95 Ext'd (LBA)
/dev/hda5      23133663  39070079   15936417  83  Linux
Warning: partition 1 does not end at a cylinder boundary
 
sfdisk: I don't like these partitions - nothing changed.
(If you really want this, use the --force option.)
-----------------------------------------------------------------------

I try with --force:

-----------------------------------------------------------------------
[root at sissine root]# sfdisk -d /dev/hda | sfdisk --force --no-reread -H255 -C2432 /dev/hda
Warning: HDIO_GETGEO says that there are 16 heads
Warning: BLKGETSIZE/HDIO_GETGEO says that there are 38760 cylinders
 
Disk /dev/hda: 2432 cylinders, 255 heads, 63 sectors/track
Old situation:
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
 
   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/hda1          0+    509-    510-   4095976+   c  W95 FAT32 (LBA)
/dev/hda2   *    510    1401     892    7164990   83  Linux
/dev/hda3       1402    1439      38     305235   82  Linux swap
/dev/hda4       1440    2431     992    7968240    f  W95 Ext'd (LBA)
/dev/hda5       1440+   2431     992-   7968208+  83  Linux
New situation:
Units = sectors of 512 bytes, counting from 0
 
   Device Boot    Start       End   #sectors  Id  System
/dev/hda1            63   8192015    8191953   c  W95 FAT32 (LBA)
/dev/hda2   *   8193150  22523129   14329980  83  Linux
/dev/hda3      22523130  23133599     610470  82  Linux swap
/dev/hda4      23133600  39070079   15936480   f  W95 Ext'd (LBA)
/dev/hda5      23133663  39070079   15936417  83  Linux
Warning: partition 1 does not end at a cylinder boundary
Successfully wrote the new partition table
 
Re-reading the partition table ...
BLKRRPART: Device or resource busy
The command to re-read the partition table failed
Reboot your system now, before using mkfs
 
If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
-----------------------------------------------------------------------

It seems to have worked, but windows is still unbootable and nothing changed,
and fdisk -l is exactly the same.

I tried to boot with with hda=2432,255,63, and it isn't better:

-----------------------------------------------------------------------
[root at sissine root]# fdisk -l
                                                                                
Disk /dev/hda: 20.0 GB, 20003880960 bytes
255 heads, 63 sectors/track, 2432 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
                                                                                
   Device Boot      Start         End      Blocks   Id  System
/dev/hda1               1         510     4095976+   c  W95 FAT32 (LBA)
Partition 1 does not end on cylinder boundary.
/dev/hda2   *         511        1402     7164990   83  Linux
/dev/hda3            1403        1440      305235   82  Linux swap
/dev/hda4            1441        2432     7968240    f  W95 Ext'd (LBA)
/dev/hda5            1441        2432     7968208+  83  Linux
[root at sissine root]# sfdisk -d /dev/hda
# partition table of /dev/hda
unit: sectors
 
/dev/hda1 : start=       63, size=  8191953, Id= c
/dev/hda2 : start=  8193150, size= 14329980, Id=83, bootable
/dev/hda3 : start= 22523130, size=   610470, Id=82
/dev/hda4 : start= 23133600, size= 15936480, Id= f
/dev/hda5 : start= 23133663, size= 15936417, Id=83
[root at sissine root]# sfdisk -d /dev/hda | sfdisk --no-reread -H255 -C2432
/dev/hda
 
Disk /dev/hda: 2432 cylinders, 255 heads, 63 sectors/track
Old situation:
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
 
   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/hda1          0+    509-    510-   4095976+   c  W95 FAT32 (LBA)
/dev/hda2   *    510    1401     892    7164990   83  Linux
/dev/hda3       1402    1439      38     305235   82  Linux swap
/dev/hda4       1440    2431     992    7968240    f  W95 Ext'd (LBA)
/dev/hda5       1440+   2431     992-   7968208+  83  Linux
New situation:
Units = sectors of 512 bytes, counting from 0
 
   Device Boot    Start       End   #sectors  Id  System
/dev/hda1            63   8192015    8191953   c  W95 FAT32 (LBA)
/dev/hda2   *   8193150  22523129   14329980  83  Linux
/dev/hda3      22523130  23133599     610470  82  Linux swap
/dev/hda4      23133600  39070079   15936480   f  W95 Ext'd (LBA)
/dev/hda5      23133663  39070079   15936417  83  Linux
Warning: partition 1 does not end at a cylinder boundary
 
sfdisk: I don't like these partitions - nothing changed.
(If you really want this, use the --force option.)
[root at sissine root]# sfdisk -d /dev/hda | sfdisk --no-reread --force -H255
-C2432 /dev/hda
 
Disk /dev/hda: 2432 cylinders, 255 heads, 63 sectors/track
Old situation:
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
 
   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/hda1          0+    509-    510-   4095976+   c  W95 FAT32 (LBA)
/dev/hda2   *    510    1401     892    7164990   83  Linux
/dev/hda3       1402    1439      38     305235   82  Linux swap
/dev/hda4       1440    2431     992    7968240    f  W95 Ext'd (LBA)
/dev/hda5       1440+   2431     992-   7968208+  83  Linux
New situation:
Units = sectors of 512 bytes, counting from 0
 
   Device Boot    Start       End   #sectors  Id  System
/dev/hda1            63   8192015    8191953   c  W95 FAT32 (LBA)
/dev/hda2   *   8193150  22523129   14329980  83  Linux
/dev/hda3      22523130  23133599     610470  82  Linux swap
/dev/hda4      23133600  39070079   15936480   f  W95 Ext'd (LBA)
/dev/hda5      23133663  39070079   15936417  83  Linux
Warning: partition 1 does not end at a cylinder boundary
Successfully wrote the new partition table
 
Re-reading the partition table ...
BLKRRPART: Device or resource busy
The command to re-read the partition table failed
Reboot your system now, before using mkfs
 
If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
[root at sissine root]#
-----------------------------------------------------------------------

Still no boot of windows, nothing changed.

Any idea where the trouble is? I can give more informations, make some tests.

Pat





More information about the fedora-devel-list mailing list