Клонирование системы подручными средствами (без dd)

Опубликовано ivul - ср, 16.01.2008 - 11:54

Условие задачи

  • Имеется:

     

  • Класс из 10-и одинаковых компьютеров
  • Дистрибутив Ubuntu Linux 7.10
  • Knoppix LiveCD 5.1.1
  • Локальная сеть
  • ADSL-модем, он же DHCP-сервер
  • Требуется:

     

  • Установить Ubuntu Linux на все компьютеры

Решение

  1. Загружаемся с Knoppix LiveCD. На жестком диске создаем и форматируем 3 раздела: sda1 (корневой, ext3), sda2 (/home, ext3) и sda3 (swap).
  2. Если еще нет рабочий ОС, то устанавливаем на одном компьютере Ubuntu Linux стандартным способом.
    Первого пользователя я назвал user1 и доустановил необходимое ПО. Кроме этого установил и настроил vsftpd (архивы системных файлов я перетаскивал по ftp).

     

    В консоли под root-ом в разделе /home создаем папку tmp, в которой создаем еще одну папку sda1.
    В папку /home/tmp/sda1 копируем содержимое корневого (/dev/sda1) раздела следующим образом:

    $ cd /
    $ find . -xdev | cpio -pm /home/tmp/sda1

    Затем создаем tar-файл, содержащий /home/tmp/sda1 :

    $ cd /home/tmp/sda1
    $ tar cf ../sda1.tar *

    Не считая папки /home/tmp, в разделе /home имеются папки user1 и ftp. Их так же копируем в tar-файл:

    $ cd /home
    $ tar cf tmp/sda2.tar user1 ftp

    Tar-файлы переносим в /home/ftp/pub (папка для анонимного доступа по ftp по-умолчанию). Когда вся работа будет закончена, их можно будет удалить.

  3. На втором компьютере грузимся с Knoppix LiveCD (он работает чуток быстрее, чем Ubuntu LiveCD).
    Я использовал Knoppix 5.1.1, после загрузки которого в папке /media уже существуют прописанные в fstab папки sda1 и sda2 (а в /mnt - ссылки на них).
    Монтируем разделы:

     

    $ mount /media/sda1
    $ mount /media/sda2

    и забираем tar-файлы с первого компьютера

    $ cd /media/sda2
    $ wget -v ftp://IP_первого_компьютера/pub/sda1.tar
    $ wget -v ftp://IP_первого_компьютера/pub/sda2.tar

    Далее распаковываем архивы

    $ cd /media/sda1
    $ tar xpf /media/sda2/sda1.tar
    $ cd /media/sda2
    $ tar xpf /media/sda2/sda2.tar

  4. Команда blkid покажет значения UUID разделов на жестком диске. Ее вывод будет примерно таким:

    $ blkid
    /dev/sda1: UUID="145fece0-736c-43c7-b53f-d01e161debc5" SEC_TYPE="ext2" TYPE="ext3"
    /dev/sda5: TYPE="swap" UUID="3e5dad5c-b0b6-4a3c-b88c-26b5cc066b46"
    /dev/sda6: UUID="1a13a6fe-9d3b-4fd7-a4c3-a3b738e27085" SEC_TYPE="ext2" TYPE="ext3"

    В файлах /etc/fstab и /boot/grub/menu.lst надо записать новые значения UUID для соответствующих разделов.

    Кроме этого нужно внести изменения в файлы /etc/hostname и /etc/hosts, указав новое имя хоста. Если IP-адреса назначаются вручную, то необходимо внести соответствующие изменения. Я с IP-адресами не возился, т.к. в сети работает DHCP-сервер.

  5. Для установки grub в главную загрузочную запись жесткого диска надо выполнить следующие команды:

    $ mount -o bind /proc /media/sda1/proc
    $ mount -o bind /sys /media/sda1/sys
    $ mount -o bind /dev /media/sda1/dev
    $ chroot /media/sda1
    # grub-install /dev/sda

  6. Перезагружаем компьютер. Убираем Knoppix LiveCD.
  7. Повторяем перечисленные выше пункты на каждом компьютере.