#mkdir /mnt/sdcСнимаем образ с диска с инфой
#mount /dev/sdc1 /mnt/sdc
#dd if=/dev/sda conv=sync,noerror bs=32M | gzip -9cf > /mnt/sdc/sda.dd-image.gzГде bs устанавливаем равную кэшу диска (в моём случае 32 Mb)
Разворачиваем образ из архива
#gunzip -c /mnt/sdc/sda.dd-image.gz | dd bs=32M of=/dev/sda(В моём случае 500 гигабайт - ~100 минут)
Прогресс смотрим следующим образом, в соседней консоли узнаем pid процесса dd:
#ps -A |grep ddЗатем смотрим сам прогресс:
#watch -n10 kill -USR1 `ps -o pid -C dd|tail -n1`------------------------------------------------------------------------------------------
#/dev/sda - диск с информациейЧто бы убрать с диска метадату аппаратного массива необходимо загрузившись с liveCD Выполнить следующие комманды:
#/dev/sdb - диск зеркало
#dmraid -r(покажет список дисков у которых присутствуют метаданные массива)
#dmraid -rE /dev/sda(собственно затирание метаданных)
Если есть остатки программного массива, их можно затереть следующим образом:
Для начала отмонтируйте и остановите массив:
# umount /dev/md0Затем необходимо затереть superblock каждого из составляющих массива:
# mdadm -S /dev/md0
# mdadm --zero-superblock /dev/sda1и так далее по всем разделам включенным в массивы
# mdadm --zero-superblock /dev/sda2
Если действие выше не помогло, то затираем так:
# dd if=/dev/zero of=/dev/sda1 bs=512 count=1Загружаемся с /dev/sda и устанавливаем grub2 в качестве загрузчика. И обновляенм ядро (при необходимости):
# dd if=/dev/zero of=/dev/sda2 bs=512 count=1
# yum install grub2Создаем через fdisk идентичные разделы, или копируем структуру первого диска /dev/sda:
# grub2-install /dev/sda
#yum erase kernel kernel-PAE grub
#yum install dracut dracut-tools kernel-PAE
#sfdisk -d /dev/sda | sfdisk --force /dev/sdbВ fdisk выставляем для всех разделов диска /dev/sdb тип fd ( raid autodetect)
#grub2-install /dev/sdb
Создаем массив для разделов, НЕ подключая туда пока раздел с информацией (sda). Если используется версия GRUB2 < 1.98, то дописываем в строку создания массива параметр --metadata=0.9 .
#mdadm --create /dev/md1 --level=1 --metadata=0.9 --raid-devices=2 missing /dev/sdb1 (это /boot)Проверяем как создались диски
#mdadm --create /dev/md2 --level=1 --metadata=0.9 --raid-devices=2 missing /dev/sdb2 (это /)
#mdadm --create /dev/md3 --level=1 --metadata=0.9 --raid-devices=2 missing /dev/sdb3 (swap)
#mdadm --create /dev/md4 --level=1 --metadata=0.9 --raid-devices=2 missing /dev/sdb4 (это /var)
#cat /proc/mdstatФорматируем свеже-созданные разделы
#mkfs.ext4 /dev/md1Правим файл mdadm.conf
#mkfs.ext4 /dev/md2
#mkswap -f /dev/md3
#mkfs.ext4 /dev/md4
#cp /usr/share/doc/mdadm-3.1.3/mdadm.conf-example /etc/mdadm.confУдаляем в содержимом файла /etc/sysconfig/grub ссылку на массив
#mdadm --examine --scan >> /etc/mdadm.conf
Удаляем файл /boot/grub2/device.mapИзменяем файл fstab
#rm /boot/grub2/device.map
для начала узнаем UUID дисков в массиве и для удобства копируем их в /etc/fstab
#blkid /dev/md1 >>/etc/fstabКопируем записи загрузки в fstab и комментируем старые записи.
#blkid /dev/md2 >>/etc/fstab
#blkid /dev/md3 >>/etc/fstab
#blkid /dev/md4 >>/etc/fstab
В незакомментированных записях правим параметры загрузки на UUID соответствующих дисков.
Должно получиться что-то вроде этого:
UUID=09e79cff-323b-4645-a8d4-630172cfedaf / ext4 defaults 1 1В файле /etc/mtab так же правим данные разделов на соответствующие /dev/md* .
UUID=0f316921-b794-492c-8fc2-8d71827145b5 /boot ext4 defaults 1 2
UUID=75ed9f59-a61c-4379-a124-af0b5dfd0a61 /var ext4 defaults 1 2
UUID=6f724829-50e2-4670-a939-747706b2d4d2 swap swap defaults 0 0
далее обновляем initamfs. Так как стандартный пакет не может автоматически собрать mdraid создаем свой собственный вариант initramfs`а
#dracut --modules mdraid --omit dmraid --mdadmconf --force /boot/dracut/mdraid.img версия_ядраВерсию ядра можно списать по аналогии результату команды uname -r , только для нового ядра. Так происходит, потому что мы находимся еще на старом,
а не на свеже установленном ядре. в моем случае версия ядра была 2.6.35.14-96.fc14.i686.PAE.
и объединяем его со стандартным
#dracut-catimages /boot/mdraidadv.img /boot/initramfs-2.6.35.14-96.fc14.i686.PAE.imgПо пути /etc/grub.d создаем файл 09_mdraid
#cp /etc/grub.d/40_custom /etc/grub.d/09_raidсо следующим содержимым:
menuentry "MDRAID and INITRAMFS" --class gnu-linux --class gnu --class os {Строка "KEYTABLE=ru SYSFONT=ter-k14n LANG=ru_RU.UTF-8" необходима для лечения квадратиков вместо русских букв. Для удобства её можно скопировать из результата команды dracut-gencmdline
set gfxpayload=keep
insmod mdraid
insmod ext2
set root='(md1)'
echo Loading Linux 2.6.35.14-96.fc14.i686.PAE ...
linux /vmlinuz-2.6.35.14-96.fc14.i686.PAE root=/dev/md2 ro quiet KEYTABLE=ru SYSFONT=ter-k14n LANG=ru_RU.UTF-8
echo Loading initial ramdisk ...
initrd /mdraidadv.img
}
Так же изменяем в файле /lib/udev/rules.d/10-console.rules строку
KERNEL=="tty0", RUN+="/lib/udev/console_init %k"на
KERNEL=="tty*", RUN+="/lib/udev/console_init %k"Далее смотрим в /boot/grub2/grub.conf
root в этой переменной указывается путь, где grub ищет сам себя:
set root = '(md1)'в строке search указываем путь до раздела загрузки меняя UUID, который ранее получили и прописали в fstab
search --no-floppy --fs-uuid --set 0f316921-b794-492c-8fc2-8d71827145b5Пересобираем конфиг GRUB`а 2
#grub2-mkconfig >> /boot/grub2/grub2.confНа всякий случай для отладки включаем шелл dracut`а. Для этого в файле /boot/grub2/grub.conf в конце строки загрузки ядра
можно дописать "console=tty0 rdshell" без кавычек.
------------------------------------------------------------------------------------------
Загружаемся с LiveCD
монтируем диск sda в /mnt/sda а массив md в /mnt/md
#mkdir /mnt/sdaКопируем данные с sda на md
#mkdir /mnt/md
#mount /dev/md2 /mnt/md
#mkdir /mnt/md/boot
#mkdir /mnt/md/var
#mount /dev/md1 /mnt/md/boot
#mount /dev/md4 /mnt/md/var
#mount /dev/sda2 /mnt/sda
#mount /dev/sda1 /mnt/sda/boot
#mount /dev/sda4 /mnt/sda/var
#cp -dpRx /mnt/sda/* /mnt/md(~30 минут)
------------------------------------------------------------------------------------------
Загружаемся с массива
#rebootВ fdisk выставляем для всех разделов диска /dev/sda тип fd ( raid autodetect)
подключаем диски устройства /dev/sda в массив
mdadm --add /dev/md1 /dev/sda1и напоследок ещё раз делаем
mdadm --add /dev/md2 /dev/sda2
mdadm --add /dev/md3 /dev/sda3
mdadm --add /dev/md4 /dev/sda4
#grub2-install /dev/sda
#grub2-install /dev/sdb
Комментариев нет:
Отправить комментарий