Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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 http://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?

share|improve this question

1 Answer 1

up vote 0 down vote accepted

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/

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.