0

We just upgraded out dedicated server from Debian Lenny (5.0) to Debian Squeeze (6.0). In the process, the grub upgrade failed. I (perhaps foolishly) followed the advice at https://askubuntu.com/a/39697/41567, and grub successfully uninstalled, and now won't re-install. The error is:

root@gaia:naught101#  grub-install /dev/sda
/usr/sbin/grub-setup: warn: This msdos-style partition label has no
post-MBR gap; embedding won't be possible!.
/usr/sbin/grub-setup: error: embedding is not possible, but this is
required when the root device is on a RAID array or LVM volume.
root@gaia:naught101#  grub-install --recheck /dev/sda
/usr/sbin/grub-setup: warn: This msdos-style partition label has no
post-MBR gap; embedding won't be possible!.
/usr/sbin/grub-setup: error: embedding is not possible, but this is
required when the root device is on a RAID array or LVM volume.
root@gaia:naught101# update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.26-2-amd64
Found initrd image: /boot/initrd.img-2.6.26-2-amd64
Found linux image: /boot/vmlinuz-2.6.26-1-amd64
Found initrd image: /boot/initrd.img-2.6.26-1-amd64
     No volume groups found
done
root@gaia:naught101#

I emailed our server tech support at Hetzner.de, and they said that this is a software problem, and so I should be able to sort it out. However, the system uses a RAID set up, and I'm not sure how the partitions should be set up (nor even if it's possible for me to change them appropriatedly. The partitions are thus:

root@gaia:naught101# parted -l
Model: ATA SAMSUNG HD403LJ (scsi)
Disk /dev/sda: 400GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
   1      512B    2155MB  2155MB  primary  linux-swap(v1)  raid
   2      2155MB  400GB   398GB   primary  ext3            raid


Model: ATA SAMSUNG HD403LJ (scsi)
Disk /dev/sdb: 400GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
   1      512B    2155MB  2155MB  primary  linux-swap(v1)  raid
   2      2155MB  400GB   398GB   primary  ext3            raid


fModel: Linux Software RAID Array (md)
Disk /dev/md0: 2155MB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system     Flags
   1      0.00B  2155MB  2155MB  linux-swap(v1)


Model: Linux Software RAID Array (md)
Disk /dev/md1: 398GB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End    Size   File system  Flags
   1      0.00B  398GB  398GB  ext3


root@gaia:naught101# fdisk -l

Disk /dev/sda: 400.1 GB, 400088457216 bytes
255 heads, 63 sectors/track, 48641 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: 0x00012254

     Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         262     2104514+  fd  Linux raid
autodetect
/dev/sda2             263       48641   388604317+  fd  Linux raid
autodetect

Disk /dev/sdb: 400.1 GB, 400088457216 bytes
255 heads, 63 sectors/track, 48641 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: 0x000e7f04

     Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104514+  fd  Linux raid
autodetect
/dev/sdb2             263       48641   388604317+  fd  Linux raid
autodetect

Disk /dev/md0: 2154 MB, 2154954752 bytes
2 heads, 4 sectors/track, 526112 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/md0 doesn't contain a valid partition table

Disk /dev/md1: 397.9 GB, 397930725376 bytes
2 heads, 4 sectors/track, 97151056 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/md1 doesn't contain a valid partition table
root@gaia:naught101#

I don't really know what to do with that. http://ubuntuforums.org/showthread.php?t=1539205 suggest modifying the partition flags, but I don't think I can do that with the server running? I'm currently stuck with an unbootable server (that is still up, thankfully). Anyone know a solution for this problem?

naught101
  • 873
  • 8
  • 11

1 Answers1

0

Our solution was basically to remove /dev/md0 and the corresponding swap partitions (/dev/sda1/, /dev/sdb1), and then re-add them with 8Mb free at the start (1Mb is the recommended minimum, but recent versions of linux use 2Mb; We're not going to miss the extra 6Mb), and install grub in the free space at the start, with grub-install /dev/sda; grub-install /dev/sdb; update-grub.

We actually had problems removing /dev/md0, and so just deleted in, and installed grub over the top, and rebooted with md0 missing (so, no swap). This is fine if you have enough ram. We then re-created it, and rebooted again. All this was done from within the system, not from a liveCD (we're on a different continent), or rescue system.

This is probably one of the better tutorials on modifying mdadm RAID arrays, for our purposes: http://notes.benv.junerules.com/linux-software-raid-disk-upgrades/

naught101
  • 873
  • 8
  • 11