Клонирование Ubuntu по сети
Я хочу перейти с моей 12.04 на другую машину. Я нашел способ с дд и надеюсь, что он будет работать для меня. Дело в том, что мне нужно как-то соединить оба диска, чтобы выполнить клонирование. Я пытаюсь NFS. Когда я пишу в /etc/exports
:
/dev/sda1 10.42.0.16(rw,async,subtree_check)
и вызвать exportfs -a
Я получаю следующую ошибку:
exportfs: /dev/sda1 is neither a directory nor a file. Remote access will fail
Любые подсказки, как я могу преодолеть проблему? Это вопрос конфигурации или NFS - тупик, и я должен использовать что-то другое?
2 ответа
На стороне получателя:
nc -l 5678 | sudo dd if=/dev/stdin of=/dev/sda
Затем на конце отправителя:
sudo dd if=/dev/sda of=/dev/stdout | nc 1.2.3.4 5678
Это копии sda
с одного компьютера на другой по сети на IP 1.2.3.4 и порт 5678. Обязательно установите один из nc
пакеты (просто запустите nc
в терминале, и вы получите предложение, если еще не установлено.)
Также убедитесь, что ни на одном из sda
На дисководах смонтирована файловая система, поэтому запустите live CD с обоих концов, если вы не уверены.
Я не могу комментировать, но я хотел бы добавить к ответу @gertvdijk, который вы можете использовать | pv |
показывать отчет о проделанной работе и также целесообразно добавить явный размер буфера bs=8M
(например), чтобы ускорить процесс (по умолчанию 512 байт, что довольно мало). Размер зависит от вашего оборудования и от того, клонируется ли вы в локальной гигабитной сети или на более медленном соединении. Последняя команда на принимающей стороне может выглядеть следующим образом (при необходимости добавьте sudo):
nc -l 5678 | dd if=/dev/stdin | pv | of=/dev/sda bs=8M
[редактировать]
Просто заметил, что начиная с версии 2.1, dd имеет отображение статуса. Просто добавь status=progress
:
- 1. Приемник nc -l 5678 | dd if=/dev/stdin of=/dev/sda bs=8M status=progress
- 2. Отправитель dd if=/dev/sda of=/dev/stdout bs=8M | nc 1.2.3.4 5678
Я только что клонировал диск 8 ТБ по локальной сети 1 Гбит за 37 часов (60 Мбит / с) с помощью приведенных выше команд.