Назад | Перейти на главную страницу

Как сделать клон HD с помощью RHEL 5.4?

Мы используем RHEL 5.4 и нам нужно клонировать несколько жестких дисков. Что было бы хорошим (или «правильным») способом сделать это? Я бы по возможности избегал использования dd, так как это несколько медленно. (Однако если это единственный выбор, пусть так и будет.)

Несколько предостережений:

1) Использование других дистрибутивов невозможно, включая live CD, поскольку у нас очень строгий процесс утверждения и единственный дистрибутив, который мы можем использовать, - это RHEL.

2) Если возможно, нам нужно использовать программное обеспечение, входящее в состав пакетов RHEL. Рекомендации другого программного обеспечения по-прежнему приветствуются, но если мы сможем использовать что-то, что уже является частью RHEL, это сэкономит нам много документов.

Я понимаю, что мне кажется, что я пытаюсь усложнить работу, чем она должна быть, но такова природа корпоративных правил.

Спасибо за любую помощь!

Насколько точный клон вам нужен? Например, если есть LVM, должны ли совпадать идентификаторы? ext2 (и 3, и, вероятно, действительно большинство файловых систем Linux) имеет универсальный уникальный идентификатор (UUID) для каждой файловой системы; они должны совпадать между оригиналом и клоном?

Другими словами, зачем вам клон?

Нет ничего быстрее, чем dd для создания точного клона диска.

Некоторые альтернативы dd

  1. Используйте fdisk (или parted, или cfdisk или что-то еще), чтобы продублировать разбиение на разделы. lv tools при необходимости. Создавайте файловые системы, используйте rsync или (cd /origmount ; tar cf) | (cd /newmount; tar xf -) или cp для копирования данных - файлы будут размещены в совершенно другом расположении блоков, но будут выглядеть идентично. Или не монтируйте исходные файловые системы и используйте что-то вроде dump -level0 -f - /dev/sda1 | (cd /mnt/sdb1; restore -f - -rf)
  2. Осторожно используйте программные инструменты RAID (md), чтобы создать ухудшенный RAID1 из исходных разделов, добавить новые разделы, дождаться завершения синхронизации и затем сломать RAID. Это, вероятно, будет медленнее, чем dd, но большую часть работы можно выполнить во время работы машины, поэтому для некоторых определений этого слова он может быть «быстрее».

Это шаги, которые я записал для перехода с большого управляемого LVM диска с установленной CentOS 5.5 на меньший диск (очевидно, что используемое пространство на большом диске было меньше, чем размер меньшего диска). Я уверен, что есть способы сделать это лучше, но этот метод оказался удачным. Некоторые шаги могут быть специфичными для нашей ситуации, при необходимости измените их.

Требуется:

  • Установить CD
  • Новый диск

Шаги:

  • Подключите новый диск

  • Загрузитесь с компакт-диска, в командной строке введите «linux rescue», чтобы перейти в режим восстановления. Он спросит, хотите ли вы продолжить или пропустить монтирование, вы должны продолжить (он будет монтироваться на /mnt/sysimage). Не форматируйте новый диск, если он просит.

  • Проверить предыдущую геометрию с помощью fdisk -l. Скорее всего, у вас будет /dev/sda1 и /dev/sda2 в обычной конфигурации LVM. sda1 будет вашим / загрузочным разделом, который существует вне LVM. Его размер должен быть 1-13, а остальная часть диска предназначена для LVM.

.

# fdisk -l
...
/dev/sda1 * 1 13 ... 83 Linux
/dev/sda2  14 ...    8e Linux LVM
# fdisk /dev/sdb
>Command...:
n
>Command action
>e extended
>p primary partition (1-4)
p
>Partition number (1-4):
1
>First cylinder ...:
<default>
>Last cylinder ...:
13 (value from /dev/sda1, the original /boot)
>Command...:
n
>Command action
>e extended
>p primary partition (1-4)
p
>Partition number (1-4):
2
>First cylinder ...:
<default>
>Last cylinder ...:
<default (end of disk)>
>Command...:
t
>Partition...:
1
>Hex code...:
83
>Command...:
t
>Partition...:
2
>Hex code...:
8e
>Command...:
a
>Partition...:
1
>Command...:
w
  • Создайте файловую систему для / boot на / dev / sdb1

.

# mkfs.ext3 /dev/sdb1
  • Настройте новый физический том, группу томов и логические тома и их файловые системы на / dev / sdb2. Заменить ?G с нужным размером. LogVol00 должен быть размером раздела LVM за вычетом необходимого размера тома подкачки, LogVol01 должен быть размером вашего подкачки.

.

# pvcreate /dev/sdb2
# vgcreate VolGroup01 /dev/sdb2
# lvcreate --name LogVol00 --size ?G VolGroup01
# lvcreate --name LogVol01 --size ?G VolGroup01
# mkfs.ext3 /dev/VolGroup01/LogVol00
# mkswap /dev/VolGroup01/LogVol01
  • Смонтируйте новый диск и скопируйте на него содержимое старого диска с помощью cp -ax. Избегайте копирования /dev, /proc, /sys, /boot, /lost+found и /mnt

.

# mkdir /mnt/newdisk
# mount /dev/VolGroup01/LogVol00 /mnt/newdisk
# cd /mnt/sysimage
# for i in $(ls -1 | grep -v '\(dev\|proc\|sys\|mnt\|boot\|lost\)'); do echo $i; cp -ax /mnt/sysimage/$i /mnt/newdisk; done
# cd /mnt/newdisk
# mkdir {dev,proc,sys,mnt,boot}
  • Установите новый /boot и скопируйте на него содержимое со старого диска, затем размонтируйте его

.

# mkdir /mnt/{boot,newboot}
# mount /dev/sda1 /mnt/boot
# mount /dev/sdb1 /mnt/newboot
# cp -ax /mnt/boot/* /mnt/newboot
# umount /mnt/newboot
  • Установите grub на новый диск

.

# mount -o bind /dev /mnt/newdisk/dev
# mount /dev/sdb1 /mnt/newdisk/boot
# chroot /mnt/newdisk
# grub
> root (hd1,0)
> setup (hd1)
> quit
  • Исправьте свой /boot/grub/grub.conf

.

# vi /boot/grub/grub.conf
:%s/VolGroup00/VolGroup01/g
:wq
  • Повторите свои initrds

.

# cd /boot
# for i in $(ls -1 initrd* | grep -v bak); do mv $i{,-bak}; ver=$(echo $i | sed 's/initrd-//;s/\.img//;'); mkinitrd /boot/$i $ver; done
  • Выход из chroot

.

# exit
#
  • Исправьте свой /etc/fstab

.

# vi /mnt/newdisk/etc/fstab
:%s/VolGroup00/VolGroup01/g
:wq
  • На этом этапе выключите и удалите старый диск. Снова загрузитесь в режим восстановления. /dev/sdb сейчас будет /dev/sda и установить на /mnt/sysimage

  • метка /boot

.

# e2label /dev/sda1 /boot
  • Удалите компакт-диск, и на этом этапе вы сможете загрузиться с диска с измененным размером.

Для создания образов копий ваших дисков вы можете попробовать Ghost, Fog, Clonezilla и т. Д. (Даже VMware Converter и т. Д.).

Для копии файловой системы я бы рекомендовал rsync и тому подобное.

Какова цель клонирования диска? Чтобы быстро установить несколько систем? Затем создайте файл кикстарта с сервера, который нужно клонировать, и используйте его для установки других машин.

Что ж, если вы избегаете использования 'dd' и любого другого инструмента, не предоставляемого RHEL, тогда вы застряли с дублированием файловых систем и копированием содержимого (с помощью выбранного вами инструмента, cpio, tar, rsync и т. Д.) И установка GRUB на новый диск (и). Лучше всего это делать с остановленными дисками (возможно, загруженными в режим восстановления RHEL).