Основная идея такова:
Предположим что два наших диска определились как sda и sdb.
Диск sda разобъем на два раздела:
Диск sdb разобъем на шесть разделов:
Разделы sda1 и sdb1 объединим в RAID1 и назовем его md0. На нем будет жить корневая ФС.
Форматируем разделы в XFS и монтируем их следующим образом:
Устанавливаем систему как обычно.
При установке загрузчика может вылезти окошко с багой про какие-то там хеши, это приведет к следующим неприятностям:
Эта бага появляется при установке на SATA (через libata). Бага стабильная, у меня она вылезла уже на четырех инсталляциях.
Если не получается загрузится в первый раз (обычно при этом нет образа initrd), то загружаетесь с болванки в режиме rescue и с помощью chroot /mnt попадаете в систему.
Создаем /etc/lilo.conf со следующим содержимым:
Затем тестируем конфигурацию:
И устанавливаем загрузчик:
Внимание
Для XFS загрузчик прописывается только в MBR, иначе убьем ФС. У XFS с самого начала раздела лежит суперблок, загрузчик писать некуда.
Создаем /etc/raidtab со следующим содержимым:
Внимание
Раздела sdb2 еще нет (на его месте лежат временные разделы), поэтому md1 будет создан в виде половинки зеркала. failed-disk нужен для правильного создания md1.
Создаем md1 в виде половинки зеркала:
Делаем неактивными две строки в /etc/raidtab:
Проверяем состояние md0 и md1 следующим образом:
Зеркало на md0 должно быть целым, а на md1 в виде половинки.
Может случится так, что при установке не был сгенерирован initrd. Да и лишний раз не помешает его пересоздать вручную, так спокойнее будет.
В нашем случае структура linuxrc внутри initrd должна быть следующей:
При создании initrd есть возможность залесть во внутрь образа и что-нибудь в нем поправить. Для этого существует ключ --pause у mkinitrd.
Создаем initrd следующим образом:
Берем из backports пакет startup (надо не забыть его туда положить) и обновляем существующий в системе.
Почему так? Причины просты:
Перезагружаемся в режиме single. Для этого в промпте lilo говорим следующее:
Заходим в систему рутом и приступаем к созданию LVM.
Исходные данные следующие:
Сначала проинициализируем lvm:
Затем создадим PV:
Создаём том lvm0 (вообще-то это группа томов aka VG, но так короче):
Теперь lvm0 необходимо распилить на кусочки.
Нам надо перенести инфу с временных разделов на lvm0.
Я делаю так (для серверов достаточно):
Распиливаем lvm0:
Создаем на получившихся разделах ФС (у меня XFS):
Для переноса необходимо смонтировать наши новые разделы куда-нибудь. Пусть это будет /root/fake-root:
Теперь перенесем нужное. Переносим с помощью cpio. Примерно так:
Правим права на /tmp и /var/tmp
Отмонтируем разделы:
Если всё нормально, то меняем ///etc/fstab/:
С sdb сносим все разделы кроме sdb1*. Затем на освободившемся месте создаем sdb2 равный по объему sda2. Тип раздела sda2** устанавливаем в FD.
Всё это можно сделать с помощью fdisk.
После чего будет предложено перезагрузится для перечитывания таблицы разделов на sdb.
Перезагружаемся обратно в single.
Убираем комментарии у двух строк в /etc/raidtab:
Запускаем ресинхронизацию на /dev/md1 и ждем:
В процессе синхронизации, sdb2 будет виден как spare disk. По окончанию синхронизации он перейдет в online.
Процесс синхронизации можно посмотреть несколькими способами: