Comment 6 for bug 551965

Revision history for this message
Mathieu Mitchell (mat128) wrote :

More updates...

Copying the first 446 bytes (GRUB 2 in the MBR) onto a fresh disk passes the BIOS.
Copying the first 512 bytes (GRUB 2 + partition table) onto a fresh disk makes it hang.

The problem is related to the partition table.
Here's the output for my partition recipe on Ubuntu 8.04 vs 10.04:

8.04:
root@ubuntu:~# fdisk -l

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0003990a

   Device Boot Start End Blocks Id System
/dev/sda1 * 1 24 192748+ 83 Linux
/dev/sda2 25 19457 156095572+ 5 Extended
/dev/sda5 25 273 2000061 82 Linux swap / Solaris
/dev/sda6 274 522 2000061 83 Linux
/dev/sda7 523 19457 152095356 83 Linux

10.04:
root@ubuntu:~# fdisk -l

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0007a9aa

   Device Boot Start End Blocks Id System
/dev/sda1 * 1 25 194560 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 25 19458 156093441 5 Extended
/dev/sda5 25 274 1998848 82 Linux swap / Solaris
/dev/sda6 274 523 1998848 83 Linux
/dev/sda7 523 19458 152093696 83 Linux

And sfdisk:
8.04:
root@ubuntu:~# sfdisk -l

Disk /dev/sda: 19457 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start End #cyls #blocks Id System
/dev/sda1 * 0+ 23 24- 192748+ 83 Linux
/dev/sda2 24 19456 19433 156095572+ 5 Extended
/dev/sda3 0 - 0 0 0 Empty
/dev/sda4 0 - 0 0 0 Empty
/dev/sda5 24+ 272 249- 2000061 82 Linux swap / Solaris
/dev/sda6 273+ 521 249- 2000061 83 Linux
/dev/sda7 522+ 19456 18935- 152095356 83 Linux

10.04:
root@ubuntu:~# sfdisk -l

Disk /dev/sda: 19457 cylinders, 255 heads, 63 sectors/track
Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start End #cyls #blocks Id System
/dev/sda1 * 0+ 24- 25- 194560 83 Linux
/dev/sda2 24+ 19457- 19433- 156093441 5 Extended
/dev/sda3 0 - 0 0 0 Empty
/dev/sda4 0 - 0 0 0 Empty
/dev/sda5 24+ 273- 249- 1998848 82 Linux swap / Solaris
/dev/sda6 273+ 522- 249- 1998848 83 Linux
/dev/sda7 522+ 19457- 18935- 152093696 83 Linux