Клонирование диска с системой

Вроде как процедура несложная и при желании можно нарыть в сети, но все же оставлю это здесь, может кому-то пригодится.

Начальные условия
Два ноутбука взаимодействующие по локальной сети.
Жесткий диск принимающего больше или равен диску передающего.

Цель
С нетбук-1 полностью перенести систему и данные на нетбук-2.

Решение
Нам понадобятся две флешки на которых записаны официальные образа Арча.
Далее загружаем оба нетбука с этих флешек.

Принимающая сторона (нетбук-2)

nc -l -p 10001 | pv -bpt > /dev/sda
здесь мы говорим утилите nc(netcat) прослушивать(-l) порт(-p) 10001 на предмет входящих данных по протоколу TCP и в случае их получения записывать их прямо на диск /dev/sda.
Так же поступающие данные будут обрабатывается утилитой pv которая отобразит в консоли прогресс передачи(-p), объем(-b) и время(-t).

при желании, в другом терминале(Alt + F2), с помощью netstat, можно убедится что netcat слушает указанный порт:
netstat -ntpl

Передающая сторона (нетбук-1)

nc -c 192.168.1.4 10001 < /dev/sda
здесь мы говорим утилите netcat что нужно прочитать диск /dev/sda и передать эти данные на указанный адрес(192.168.1.4) и порт(10001), а после окончания завершить работу(-c).

По окончании передачи вы получите идентичную систему, и единственно что останется это запилить дрова если в системе для данной платформы их вдруг не оказалась.

На этом всё.
Единственное хотелось добавить, что скорость передачи будет в основном зависеть от сети, а передача больших объёмов может затянутся на часы.

ps
чтобы использовать pv, её сначала нужно установить
pacman -Sy pv
ещё бы неплохо убедиться, что диски не смонтированы. ну на всякий случай.
такие дела.
Да как бы тут не об этом. Ну всё равно зачем флэшки? да ещё и две? Если у вас есть сеть, и два ноутбука?))
Ошибки в тексте-неповторимый стиль автора©
cucullus
ещё бы неплохо убедиться, что диски не смонтированы. ну на всякий случай.
ну если загрузился с офф. live системы Арча то диски точно не будут смонтированы, ну разве что их самому не смонтировать.

indeviral
Да как бы тут не об этом. Ну всё равно зачем флэшки? да ещё и две? Если у вас есть сеть, и два ноутбука?))
это просто один из способов
Прикидываем. Допустим, два винчестера по 250ГБ, и сеть 100Мбит/с.
250000*8/100/60/60 = 5.5... часов.

И хорошо ещё, если оба диска одинаковые.
Если первый меньше, то после клонирования вам придётся как-то "расширять" таблицу разделов на весь диск.
Если первый БОЛЬШЕ – он вообще не поместится на втором.

Допустим, мы копируем разделы, а не целый диск. Тогда надо позаботиться о том, чтобы размер чистого раздела был такой же, как у исходного, или, в крайнем случае, больше исходного, чтобы можно было расширить ФС на нём. Конечно, если эта ФС вообще позволяет себя расширить.

Ну и наконец – свободное место на раздёлах будет копироваться наравне с занятым. По сети.
Конечно, тут могло бы помочь сжатие "на лету" каким-нибудь gzip , но это только при условии, что свободное место заполнено нулями. Но освобождённые блоки ФС на разделах не заполняются нулями, в них остаётся мусор из старых данных, так что сжатие тоже не панацея.

Короче говоря, клонирование дисков, тем более по сети – не та задача, которую удобно решать "подручными средствами", тут нужно что-то более приспособленное :)
Natrio
Короче говоря, клонирование дисков, тем более по сети – не та задача, которую удобно решать "подручными средствами", тут нужно что-то более приспособленное :)
Скажи-ка, дядя, ведь не таром?..
Копировать пораздельно, копируемый раздел смонтировать, на передающей стороне запустить что-то в таком роде:
cd точка-монитирования
tar -c --one-file-system * 2> /dev/null | pv -bpt | gzip -9 -c | nc ...
На приёмной стороне раздел создать и отформатировать, воспроизвести UUID исходного раздела (если лень вводить руками, можно использовать тот же nc), и запустить аналогичный конвейер в обратном направлении.
А что, rsync не справится?
FSArchiver самая крутая утилита которой я пользовался, rsync медлителен, tar и медлителен и туп.
передача по сети не его дело, но с архивированием раздела/папки справляется лучше всех, быстрее и меньше размер архива, сохраняет атрибуты как раздела так и файлов.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
Natrio
Прикидываем. Допустим, два винчестера по 250ГБ, и сеть 100Мбит/с.
250000*8/100/60/60 = 5.5... часов.
Прикидывать можно по разному, например так: допустим, два винта SSD по 250ГБ, и сеть 1Гбит/с. В итоге выйдет около часа, а если со сжатием то и того меньше.
В моём случае осуществлялся перенос 160 --> 320. Если нужно было бы клонировать 320 гиговый диск и больше, то скорее всего я бы выбрал другой способ.

Natrio
И хорошо ещё, если оба диска одинаковые.
Если первый меньше, то после клонирования вам придётся как-то "расширять" таблицу разделов на весь диск.
Если первый БОЛЬШЕ – он вообще не поместится на втором.

Допустим, мы копируем разделы, а не целый диск. Тогда надо позаботиться о том, чтобы размер чистого раздела был такой же, как у исходного, или, в крайнем случае, больше исходного, чтобы можно было расширить ФС на нём. Конечно, если эта ФС вообще позволяет себя расширить.
Про соотношения размеров дисков писал в условиях поставленной задачи. Расширением раздела можно заняться когда дойдут руки, главное что с системой после переноса можно уже полноценно работать.
В моём случае используется gpt и ext4, размер раздела увеличивается в три команды, можно проделать сразу после копирования с livesd:

# parted /dev/sda resizepart 2 100%
# e2fsck -f /dev/sda2
# resize2fs /dev/sda2

В любом случае я не пытался найти серебряную пулю, просто воспользовался простым, как по мне, способом, в той ситуации. Много есть на свете решений хороших и разных.
red
Много есть на свете решений хороших и разных.
разных то много, а вот хороших единицы ;)
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
 
Зарегистрироваться или войдите чтобы оставить сообщение.