Как перенести Ubuntu Server на другой жёсткий диск с помощью утилиты dd?
Так получилось, что свой первый сервер я разворачивал на жёстком диске маленького объёма (что-то около 64 ГБ), и в последующем, когда рос масштаб проекта мне (ему) перестало хватать доступного места. Варианты решения этой задачи у меня были следующими: добавить дополнительный жёсткий диск или заменить текущий более вместительным и мигрировать (перенести сервер) на него. Второй вариант мне почему-то показался проще, что по факту, наверное, так и вышло. Рассказываю, что делал, что в конечном итоге решило стоявшую передо мной задачу (перенос локального Ubuntu Server на другой жёсткий диск).
Как и во многих других подобных задачах, рекомендую вам сделать бэкап (сохранить все данные с диска во избежание их потери) в случае непредвиденных ошибок, возникших в процессе работы.
Первое, что вам необходимо сделать – это подключить новый жёсткий диск к компьютеру (старый при этом остаётся на своём месте). С диском я предварительно ничего не делал (не форматировал, как минимум), но вам я, пожалуй, порекомендую это (форматирование) сделать. Подключение диска через SATA, не по USB. Просто уточняю, а то мало ли, как говорится. Хотя при чтении документации к утилите, которую будем использовать для копирования (переноса) сервера, можно подключить диск и по USB, но я не проверял этот момент. Если же пробовали вы – поделитесь, пожалуйста, опытом в комментариях под данным постом. Интересно узнать результат.
Далее запускаем сервер, подключаемся к нему (я использую для этого PuTTY) и авторизовываемся по логину и паролю.
После этого проверяем, какие диски сейчас подключены к машине (серверу) с помощью команды:
sudo fdisk -l
В списке вы должны увидеть ваш основной жёсткий диск и новый. Ориентируйтесь по размеру и запомните (запишите) название каждого из них. У меня старый диск имеет название /dev/sda, новый – /dev/sdb.
Всё, что нам по большей части остаётся сделать – это воспользоваться командой dd:
sudo dd if=/dev/sda of=/dev/sdb status=progress
Здесь /dev/sda, напоминаю, это мой исходный (старый) диск, /dev/sdb – новый. Дожидаемся копирования данных на новый диск (если мне не изменяет память, у меня это заняло порядка 15 - 20 минут). По окончании (у меня) перенеслась вся структура диска (он был поделен на несколько разделов), все файлы и символические ссылки. В общем, всё, что было на первом (старом) диске.
После этого выключаем сервер с помощью команды:
sudo shutdown -h now
Далее отключаем старый жёсткий диск и на его место подключаем новый. Запускаем сервер и проверяем его работу. В целом, на этом перенос сервера Ubuntu Server на другой жёсткий диск окончен.
Единственный момент, который обнаружил случайно я (и, вероятно, вы) – это то, что новый диск стал по объёму таким же, как и старый. Исправить это можно, как именно – читайте в этом посте. В остальном же система готова к работе.