Мы только что обновили выделенный сервер с Debian Lenny (5.0) до Debian Squeeze (6.0). В процессе обновления grub не удалось. Я (возможно, по глупости) последовал совету в https://askubuntu.com/a/39697/41567, и grub успешно удален и больше не устанавливается. Ошибка:
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#
Я отправил электронное письмо нашей службе технической поддержки на Hetzner.de, и они сказали, что это проблема программного обеспечения, и поэтому я смогу решить ее. Однако в системе используется RAID, и я не уверен, как должны быть настроены разделы (и даже если я могу изменить их соответствующим образом. Таким образом, разделы будут:
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#
Я действительно не знаю, что с этим делать. http://ubuntuforums.org/showthread.php?t=1539205 предлагаю изменить флаги разделов, но я не думаю, что смогу сделать это при работающем сервере? В настоящее время я застрял с не загружаемым сервером (к счастью, он все еще работает). Кто-нибудь знает решение этой проблемы?
Наше решение заключалось в том, чтобы удалить /dev/md0
и соответствующие разделы подкачки (/dev/sda1/
, /dev/sdb1
), а затем повторно добавьте их, освободив 8 МБ в начале (рекомендуемый минимум 1 МБ, но в последних версиях Linux используется 2 МБ; мы не пропустим лишние 6 МБ), и установите grub в свободное место на начать с grub-install /dev/sda; grub-install /dev/sdb; update-grub
.
У нас действительно были проблемы с удалением /dev/md0
, и поэтому просто удалил, установил grub поверх и перезагрузился с md0
отсутствует (так что подкачки нет). Это нормально, если у вас достаточно барана. Затем мы воссоздали его и снова перезагрузили. Все это было сделано внутри системы, а не с liveCD (мы на другом континенте) или системы спасения.
Это, вероятно, один из лучших руководств по модификации RAID-массивов mdadm для наших целей: http://notes.benv.junerules.com/linux-software-raid-disk-upgrades/