[Comm] Клонирование HDD

Michael A. Kangin =?iso-8859-1?q?mak_=CE=C1_rsmu=2Eru?=
Сб Ноя 8 11:11:01 MSK 2008


On Saturday 08 November 2008 09:06:04 Olga Sorokina wrote:

> Школа закупила 11 компьютеров для нового компьютерного класса. Нужно
> быстро и качественно установить на них Windows + ALT Linux (Junior).
> Поискала в Интернете. Нашла простой вариант клонирования:
> на клиенте # nc -l -p 9000| dd of=/dev/sda
> на эталоне # dd if=/dev/sda | nc <ip-адрес> 9000

Минусы использования dd(cat) - должны быть идентичны винчестеры (или 
копировать с меньшего на больший) и очень долго - оно копирует и все 
неиспользуемые участки диска.

Я пользовался таким алгоритмом 
- на эталонной машине перед установкой операционных систем забиваем диск 
нулями;
- устанавливаем/настраиваем ОС;
- загружаем эталонную машину с live и усылаем сжатый образ диска на сервер:
cat /dev/hda | gzip -c |ssh my-server "cat > /home/ethalon.img"
- загружаем каждую из клон-машин с live-системы и разжимаем образ с сервера на 
диск:
ssh my-server "cat /home/ethalon.img" |gunzip -dc >/dev/hda
- перезагружаем клон-машину (желательно с отключенной сетью) и кастомизируем 
её (у Виндуса возможно придётся UID'ы менять, google:/sysprep)

Если диски очень большие, и ждать нету сил, целесообразнее воспользоваться 
Акронисом.

> Порядок действий видится таким:
> 1. Установить две ОС+приложения на эталонный компьютер.
>
> 2. На клиентском ПК:
> а) загрузиться с liveCD;
> б) назначить IP-адрес (ifconfig?);
> в) # nc -l -p 9000| dd of=/dev/sda.
>
> 3. На эталонном ПК: # dd if=/dev/sda | nc <IP-адрес> 9000

Эталонный лучше тоже загрузить с live.

>
> Сразу возникли вопросы.
> 1. При загрузке с liveCD вход в root не требует пароля. Это полноценный
> режим работы под root'ом, или нужно ещё что-то сделать?

Полноценный.

>
> 2. Чтобы назначить IP-адрес, достаточно # ifconfig eth0 192.168.1.2?

Да, если машина сама не получает адреса с помощью DHCP. Возможно, придётся 
озаботиться еще резолвингом.
И в современных дистрибутивах лучше использовать /sbin/ip вместо ifconfig.

> 3. Порепетировала с netcat на установленном Junior'e. Получила:
> # rpm -qa|grep netcat
> netcat-4.0.20061122-alt1
>
> # nc -l -p 9000| dd of=dev/sda
> -bash: nc: command not found

which netcat

> dd: opening `dev/sda': No such file or directory

"/dev/sda".

Кстати, не стоит на установленной системе делать "of=ваш жесткий диск". Можете 
систему погубить. Очень рекомендую сначала прочесть man на все используемые 
команды, чтобы понимать, что вы делаете. И озаботиться резервной копией.

> # netcat -l -p 9000|dd of=/dev/sda
> usage: netcat [-46DdhklnrStUuvz] [-e cmd] [-i interval] [-p source_port]
> [-s source_ip_address] [-w timeout] [-X proxy_version]
> [-x proxy_address[:port]] [hostname] [port[s]]
> 0+0 records in
> 0+0 records out
> 0 bytes (0 B) copied, 2.348e-05 seconds, 0.0 kB/s
>
> Как я поняла, утилита netcat установлена. Почему "-bash: nc: command not
> found"?  Что можете посоветовать? В чем я ошибаюсь?

Потому что оно netcat, а не nc. :)




-- 
wbr, Michael A. Kangin


Подробная информация о списке рассылки community