Перенос Ubuntu с обычного диска на MD RAID

Несколько раз добавлял зеркало gmirror для единственного диска во FreeBSD. Даже данные не надо мигрировать – все достаточно просто и документировано.

А вот в Ubuntu 9.10 как то не заладилось, убил практически целый день. Из толковых инструкций, что удалось найти, понравилась вот эта. Многа букав! Инструкция в готовом виде, к сожалению, не подошла.

Основные моменты:

  • Я подключал два диска (основной с системой и чистый для зеркала) одновременно и грузился в Rescue Mode с CD.
  • Создавая массив, я указывал sdXY от чистого диска.
  • Данные копировались командой cd target; dump -0 -f – /dev/source| restore rf – (по привычке, но надо поставить пакет dump).
  • Во все конфигурационные файлы вписывалось /dev/mdX вместо /dev/sdXY.
  • Swap я тоже размещаю на зеркале.

В общем то, загрузившись в режим восстановления, создать массивы на чистом диске и скопирнуть туда данные относительно несложно. Далее нужно поправить /etc/fstab, /etc/mdadm/mdadm.conf, запустить grub и просетапиться в MBR.

Как всегда сложности начинаются при попытке загрузиться с этого диска. Меня все время загружало в grub>.

Находясь в grub> можно загрузить систему такими командами:

kernel /boot/vmli<tab-autocomplete> root=/dev/md0
initrd /boot/init<tab-autocomplete>
boot

Механизм работы grub на 9.10+ для меня до сих пор является загадкой. Совершенно не представляю откуда оно берет настройки, в частности имя загрузочного устройства (md0 vs sdb1).

Попав в шелл решил проблему таким способом.

apt-get purge grub-common grub-pc
apt-get install grub-common grub-pc

Оно само раздуплилось какой диск является корнем и правильно прописало его в /boot/grub/grub.cfg (который генерируется автоматически).

После этого старый диск был отключен, а диск с MD был сделан основным, старый же переразбит и добавлен как вторая часть зеркала (это есть в инструкции).

Так же в процессе экспериментов (по-моему в Rescue Mode) запускалась команда

apt-get install mdadm
update-initramfs -u

Без них, скорее всего, в initramfs не были бы добавлены модули поддержки MD RAID. Мрак, но заработало.

Windows Server 2003 мигающий курсор при запуске со второго диска зеркала

Столкнулся с интересной проблемой. Windows Server 2003, два диска в Software Raid Mirror. Первый диск (системный) помер и был вынут. Система продолжала себе работать пока не была перезагружена. Попытка загрузки со второго диска – то ради чего и было сделано зеркало – приводила к мигающему курсору после биоса и все. Диски, естественно, динамические. Были перепробованы разные варианты восстановления загрузки, которые не приводили ни к чему. Я так подозреваю именно из-за того, что диски были динамическими. В концов был найден метод, немного стремный, но рабочий:

  1. Загрузиться с Active@ Boot CD.
  2. Запустить Diskpart.
  3. Сконвертировать живую часть зеркала (динамическй диск) в Simple Disk.
  4. Убедиться, что разделы исчезли, нервно покурить.
  5. Запустить Active@ Partition Recovery, запустить быстрый поиск. Как только будет найден первый раздел, поиск можно останавливать. Восстановить раздел. Поставить его активным. Если на первом диске присутствовали другие разделы – повторить процедуру поиска и восстановления. Нужно будет снять галочку “создавать extended раздел”, если его не было (я никогда не создаю).
  6. Загрузиться с инсталляционного диска Windows Server 2008 или Windows 7, войти в Recovery режим. Выполнить bootrec /fixboot, bootrec /fixmbr. Скорее всего подойдет и режим восстановления от Windows 2003/XP – под рукой не было.
  7. Windows должна теперь запуститься.
  8. Вернуть второй диск после ремонта/замены, сконвертировать системный диск в динамический, добавить зеркало, синхронизироваться.