Сегодня 8 мая, среда ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7272
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
use Catalyst;
use Catalyst;
Голосов: 1
Адрес блога: http://xeim.blogspot.com/
Добавлен: 2008-02-19 12:50:23 блограйдером Lurk
 

Перенос установленной Slackware на программный raid1-массив

2010-02-08 05:30:00 (читать в оригинале)

 

Описание задачи

Условия:

  • Имеется два одинаковых по размеру, пустых диска /dev/sda и /dev/sdb соответственно.
  • Имеется третий диск, например /dev/sdc, с установленной операционной системой slackware.

На основе /dev/sda и /dev/sdb создать raid-массив первого уровня /dev/md0. Затем перенести на /dev/md0 операционную систему и настроить ее загрузку.

Дополнительные условия:

  • На рабочем диске существует два раздела — корневой и подкачка.
  • В качестве корневой файловой системы используется reiserfs.
  • Предполагается, что используется стандартное ядро для slackware версии 2.6.xx, т.е. минимальная версия — Slackware 12. Однако, если очень хочется, существует возможность установки ядра из стандартных пакетов от новых версий slackware на более старые версии этой операционной системы.

Перед началом необходимо убедиться, что в рабочей slackware установлена утилита mdadm для управления программными raid-массивами. При ее отстутствии нужно установить пакет mdadm, который включется в состав дистрибутива начиная с Slackware 10.

 

Решение задачи

Шаг 1. Загрузка с внешнего носителя.

Загружаемся с SystemResсueCD или c Slax или чего-нибудь еще, чтобы получить полный доступ ко всем дискам и ни один из них не был бы текущим загрузочным.

Шаг 2. Создание таблицы разделов.

Сначала, с помощью команды:

cfdisk /dev/sda

создаем следующие разделы на первом пустом диске:

  • /dev/sda1 — Раздел под raid-массив. Отводим под него большую часть диска. Установить признак «загрузочный». Задать тип раздела «Linux raid autodetect» (код fd).
  • /dev/sda2 — Раздел под подкачку. Отводим под него половину от необходимого размера подкачки. Задать тип раздела «Linux swap» (код 82).

Обращаю внимание, что нельзя полностью заполнять разделами все доступное пространство диска. Т.к., несмортя на указанный одинаковый размер дисков, фактический их размер у разных производителей может не совпадать.

Пример того, что получилось:

# fdisk -l /dev/sda
   Device  Boot   Start     End      Blocks  Id  System
/dev/sda1  *          1  115498  927737653+  fd  Linux raid autodetect
/dev/sda2        115499  116471    7815622+  82  Linux swap

Затем копируем таблицу разделов с первого диска на второй:

sfdisk -d /dev/sda | sfdisk /dev/sdb

Убеждаемся, что таблицы разделов на дисках /dev/sda и /dev/sdb идентичны:

# fdisk -l /dev/sda /dev/sdb
   Device  Boot   Start     End      Blocks  Id  System
/dev/sda1  *          1  115498  927737653+  fd  Linux raid autodetect
/dev/sda2        115499  116471    7815622+  82  Linux swap

   Device  Boot   Start     End      Blocks  Id  System
/dev/sdb1  *          1  115498  927737653+  fd  Linux raid autodetect
/dev/sdb2        115499  116471    7815622+  82  Linux swap

Шаг 3. Создание raid-массива.

Сначала, на всякий случай, очищаем из разделов возможные следы предыдущих raid-массивов:

mdadm --zero-superblock /dev/sda1
mdadm --zero-superblock /dev/sdb1

Теперь, собственно, создаем raid-массив:

mdadm --create /dev/md0 --level=1 --raid-disks=2 /dev/sda1 /dev/sdb1

Здесь запустится процесс синхронизации двух дисков, входящих в массив, который можно отслеживать с помощью команды:

cat /proc/mdstat

Этот процесс никак не ограничивает работу с уже созданным массивом. Т.е. блочное устройство /dev/md0 уже доступно и с ним можно работать. Можно даже перезагружать компьютер. Но, конечно, в полноценную работу raid-массив встанет самостоятельно, когда синхронизация будет завершена.

Шаг 4. Копирование операционной системы.

Форматируем разделы:

mkfs.reiserfs /dev/md0
mkswap /dev/sda2
mkswap /dev/sdb2

Монтируем raid-массив:

mkdir /mnt/md0
mount /dev/md0 /mnt/md0

Монтируем раздел с рабочей системой:

mkdir /mnt/sdc1
mount /dev/sdc1 /mnt/sdc1

Копируем содержимое рабочей системы на raid-массив:

cp -aT /mnt/sdc1 /mnt/md0

Шаг 5. Настройка скопированной системы.

Сохраняем конфигурацию raid-массива:

mdadm -D --scan >> /mnt/md0/etc/mdadm.conf

Редактируем в файле /mnt/md0/etc/fstab строчки монтирования корневого раздела и раздела подкачки:

/dev/md0   /     reiserfs  defaults        1 1
/dev/sda2  swap  swap      pri=1,defaults  0 0
/dev/sdb2  swap  swap      pri=1,defaults  0 0

Шаг 6. Настройка загрузки с raid-массива.

Редактируем /mnt/md0/etc/lilo.conf, заменяем строчку:

boot = /dev/XXXN

на:

boot = /dev/md0

И добавляем строчку:

raid-extra-boot=mbr

Далее действуем в зависимости от типа стандартного ядра slackware.

Шаг 6.1. Используется huge ядро.

В /mnt/md0/etc/lilo.conf добавляем строки:

image = /boot/vmlinuz-huge-smp-2.6.27.7-smp
  root  = /dev/md0
  label = gener-raid
  read-only

Версия ядра может быть другой, в зависимости от используемой версии slackware.

Запускаем установку загрузчика lilo на оба диска в raid-массиве:

chroot /mnt/md0 /sbin/lilo

Шаг 6.2. Используется generic ядро.

Создаем файл /mnt/md0/etc/mkinitrd.conf, содержащий строки:

CLEAR_TREE="1"
OUTPUT_IMAGE="/boot/initrd-generic-2.6.27.7-smp-raid.gz"
KERNEL_VERSION="2.6.27.7-smp"
MODULE_LIST="reiserfs"
ROOTDEV="/dev/md0"
RAID="1"

Генерируем initrd-файл:

chroot /mnt/md0 /sbin/mkinitrd -F

В /mnt/md0/etc/lilo.conf добавляем строки:

image = /boot/vmlinuz-generic-smp-2.6.27.7-smp
  initrd = /boot/initrd-generic-2.6.27.7-smp-raid.gz
  root   = /dev/md0
  label  = gener-raid
  read-only

Запускаем установку загрузчика lilo на оба диска в raid-массиве:

chroot /mnt/md0 /sbin/lilo

Шаг 7. Проверка.

Выключаем компьютер. Отсоединяем теперь уже не нужный диск /dev/sdc. Включаем компьютер и убеждаемся что загрузка операционной системы происходит нормально с любого диска из raid-массива.


Тэги: raid, slackware

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по сумме баллов (758) в категории «Истории»
Изменения рейтинга
Категория «Авто/Мото»
Взлеты Топ 5
+265
299
MicheL1102
+238
257
Темы_дня
+230
258
Bisdiv.com
+220
259
Дневник
+177
284
Пофигист
Падения Топ 5


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.