С картинками получается долго, буду без картинок. Все действия проводятся на виртуальной машине с 2 жёсткими дисками. Для простоты экспериментов существует только 2 раздела
/
swap
Итак, что я делаю:
1. Текущее состояние дисков fdisk -l
Консоль
Disk /dev/sdb: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders, всего 62914560 секторов
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0a28ccf3Устр-во Загр Начало Конец Блоки Id Система
/dev/sdb1 * 0 0 0 0 Пустой
/dev/sdb2 * 0 0 0 0 Пустой
/dev/sdb3 * 0 0 0 0 Пустой
/dev/sdb4 * 0 0 0 0 Пустой
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders, всего 62914560 секторов
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x42f48a3a
Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 * 2048 55343924 27670938+ 83 Linux
/dev/sda2 55347138 62910539 3781701 5 Расширенный
/dev/sda5 55347200 62910539 3781670 82 Linux своп / Solaris
2. Копирую таблицу разделов на второй диск sfdisk -d /dev/sda | sfdisk /dev/sdb
Консоль
Проверяется, чтобы сейчас никто не использовал этот диск...
sfdisk: Предупреждение: расширенный раздел не начинается на границе раздела.
DOS и Linux будут интерпретировать содержимое по-своему.ОК
Диск /dev/sdb: 3916 цилиндров, 255 головок, 63 секторов/дорожку
Старая ситуация:
Единицы = цилиндры по 8225280 байт, блоки по 1024 байт, начиная с 0
Устр-во Загр Нач Конец #цил #блоки Id Система
/dev/sdb1 * 0 - 0 0 0 Пустой
/dev/sdb2 * 0 - 0 0 0 Пустой
/dev/sdb3 * 0 - 0 0 0 Пустой
/dev/sdb4 * 0 - 0 0 0 Пустой
Новая ситуация:
Единицы = секторы по 512 байт, начиная с 0
Устр-во Загр Начало Конец #секторы Id Система
/dev/sdb1 * 2048 55343924 55341877 83 Linux
/dev/sdb2 55347138 62910539 7563402 5 Расширенный
/dev/sdb3 0 - 0 0 Пустой
/dev/sdb4 0 - 0 0 Пустой
/dev/sdb5 55347200 62910539 7563340 82 Linux своп / Solaris
Предупреждение: раздел 2 не начинается на границе цилиндра
Новая таблица разделов успешно записана
Перечитывается таблица разделов...
Если вы создали или изменили раздел DOS, скажем, /dev/foo7, используйте затем dd(1),
чтобы обнулить первые 512 байт: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(См. fdisk(8).)
3. Смотрим что получилось fdisk -l
Консоль
Disk /dev/sdb: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders, всего 62914560 секторов
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0a28ccf3Устр-во Загр Начало Конец Блоки Id Система
/dev/sdb1 * 2048 55343924 27670938+ 83 Linux
/dev/sdb2 55347138 62910539 3781701 5 Расширенный
/dev/sdb5 55347200 62910539 3781670 82 Linux своп / Solaris
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders, всего 62914560 секторов
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x42f48a3a
Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 * 2048 55343924 27670938+ 83 Linux
/dev/sda2 55347138 62910539 3781701 5 Расширенный
/dev/sda5 55347200 62910539 3781670 82 Linux своп / Solaris
Disk /dev/md0: 12.9 GB, 12895068160 bytes
2 heads, 4 sectors/track, 3148210 cylinders, всего 25185680 секторов
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
4. Изменяем тип таблицы на втором диске fdisk /dev/sdb
Консоль
t
1
fd
t
5
fd
w
5. Смотрим что получилось fdisk -l
Консоль
Disk /dev/sdb: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders, всего 62914560 секторов
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0a28ccf3Устр-во Загр Начало Конец Блоки Id Система
/dev/sdb1 * 2048 55343924 27670938+ fd Автоопределение Linux raid
/dev/sdb2 55347138 62910539 3781701 5 Расширенный
/dev/sdb5 55347200 62910539 3781670 fd Автоопределение Linux raid
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders, всего 62914560 секторов
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x42f48a3a
Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 * 2048 55343924 27670938+ 83 Linux
/dev/sda2 55347138 62910539 3781701 5 Расширенный
/dev/sda5 55347200 62910539 3781670 82 Linux своп / Solaris
Disk /dev/md0: 12.9 GB, 12895068160 bytes
2 heads, 4 sectors/track, 3148210 cylinders, всего 25185680 секторов
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
6. Переводим разделы второго диска в RAID
mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1
Консоль
mdadm: /dev/sdb1 appears to contain an ext2fs file system
size=12593856K mtime=Tue Jan 8 21:04:07 2013
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid1 devices=2 ctime=Tue Jan 8 21:57:34 2013
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb5
Консоль
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
7. Просмотрим наши масссивы cat /proc/mdstat
Консоль
Personalities : [raid1]
md1 : active raid1 sdb5[1]
3780634 blocks super 1.2 [2/1] [_U]
md0 : active raid1 sdb1[1]
27669842 blocks super 1.2 [2/1] [_U]
unused devices: <none>
8. Форматируем массивы
mkfs.ext4 /dev/md0
Консоль
mke2fs 1.42.2 (27-Mar-2012)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1729920 inodes, 6917460 blocks
345873 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
212 block groups
32768 blocks per group, 32768 fragments per group
8160 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
mkswap /dev/md1
Консоль
mkswap: /dev/md1: warning: don't erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version 1, size = 3780628 KiB
без метки, UUID=5f9a1ca0-cfe5-40df-9027-238ea9177381
8. создадим директорию для монтирования первого массива и смонтируем его туда:
Консоль
mkdir /mnt/md0
mount /dev/md0 /mnt/md0/
9. Создаем файл конфигурации mdadm - /etc/mdadm.conf
nano -w /etc/mdadm.conf
И вносим в него такую строку: DEVICE partitions
10. Теперь заносим информацию о RAID массивах в файл конфигурации mdadm:
mdadm --detail --scan >> /etc/mdadm.conf
11. Теперь правим файл /etc/fstab:
nano -w /etc/fstab
и приводим в соответствие с этим изображением
У меня получилось вот так:
Консоль
# Entry for /dev/sda1 :
/dev/md0 / ext4 acl,relatime 1 1
none /proc proc defaults 0 0
# Entry for /dev/sda5 :
/dev/md1 swap swap defaults 0 0
12.Теперь необходимо отредактировать конфигурационный файл загрузчика GRUB
nano -w /boot/grub/menu.lst
У меня получилось вот так:
Консоль
timeout 10
color black/cyan yellow/cyan
gfxmenu (hd0,0)/boot/gfxmenu
default 0title RAID 1 sda
kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=linux root=/dev/md0
initrd (hd0,0)/boot/initrd-raid1.img
title RAID 1 sdb
kernel (hd1,0)/boot/vmlinuz BOOT_IMAGE=linux root=/dev/md0
initrd (hd1,0)/boot/initrd-raid1.img
title linux
kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=linux root=UUID=f41c8195-da5c-4809-9e10-$
initrd (hd0,0)/boot/initrd.img
title linux-nonfb
kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=linux-nonfb root=UUID=f41c8195-da5c-4809$
initrd (hd0,0)/boot/initrd.img
title failsafe
kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=failsafe root=UUID=f41c8195-da5c-4809-9e$
13. Создаем новый образ initrd
mkinitrd /boot/initrd-`uname -r`-raid1.img `uname -r`
Консоль
I: *** Including module: dash ***
I: *** Including module: i18n ***
I: *** Including module: rpmversion ***
I: *** Including module: plymouth ***
I: *** Including module: kernel-modules ***
I: *** Including module: resume ***
I: *** Including module: rootfs-block ***
I: *** Including module: terminfo ***
I: *** Including module: udev-rules ***
I: Skipping udev rule: 50-udev.rules
I: Skipping udev rule: 95-late.rules
I: Skipping udev rule: 50-firmware.rules
I: *** Including module: usrmount ***
I: *** Including module: base ***
I: *** Including module: fs-lib ***
I: *** Including module: shutdown ***
I: Skipping program kexec as it cannot be found and is flagged to be optional
I: *** Including modules done ***
I: Wrote /boot/initrd-3.3.6-desktop-2.mga2-raid1.img:
I: -rw-r--r-- 1 root root 6199173 янв. 9 10:28 /boot/initrd-3.3.6-desktop-2.mga2-raid1.img
cd /boot
mv initrd-3.3.6-desktop-2.mga2-raid1.img initrd-raid1.img
14. Теперь переносим данные нашей системы на массив
cp -dpRx / /mnt/md0/
15. Теперь настроим загрузчик на второй диск, введя команду grub
Консоль
Probing devices to guess BIOS drives. This may take a long time.
GNU GRUB version 0.97 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename. ]
grub> root (hd0,0)
Консоль
Filesystem type is ext2fs, partition type 0x83
grub> setup (hd0)
Консоль
setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 17 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+17 p (hd0,0)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded
Done.
grub> root (hd1,0)
Консоль
Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd1)
Консоль
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... noError 2: Bad file or directory type
Почему так произошло не могу понять
grub> quit
Перезагрузка reboot
И конечно с sdb ничего не грузится, хотя раньше вроде бы делал тоже самое...
С sda грузится и доходит до ошибки dracut
Что мне делать? Что я делаю не так или не делаю? Я уже отчаился! Кто-нибудь пробовал настроить RAID 1 на Mageia при установке или на работающей системе?
P.S.
Информацию брал отсюда:
http://pomka.blogspot.ru/2008/07/raid-1.html
http://www.howtoforge.com/software-raid … iva-2008.0
http://www.alsigned.ru/?p=2644
http://dojuk.livejournal.com/6417.html