FAQ FreeBSD - Перенос системы на другой диск
ОГЛАВЛЕНИЕ
7.33. Как перенести систему на большой новый диск?
Самый лучший способ заключается в переустановке ОС на новый диск и последующем
переносе данных пользователей. Это очень рекомендуется делать, если вы следов
али ветке -stable в течение более одного релиза или обновляли релиз, а не
устанавливали новый. Вы можете установить программу booteasy на оба диска с
помощью команды boot0cfg(8) и выполнять загрузку с любого из них до тех пор,
пока не будете удовлетворены новой конфигурацией системы. Пропустите следующий
абзац, чтобы перейти к вопросу переноса данных после этой операции.
Если вы решили не делать новой установки, то вам нужно разбить на разделы и
разметить новый диск с помощью /stand/sysinstall или fdisk(8) и disklabel(8). В
ы также должны установить на оба диска программу booteasy с помощью boot0cfg(8)
, чтобы иметь возможность выполнять загрузку как старой, так и новой системы
после выполнения копирования. Обратитесь к руководству по форматированию
носителей за подробным описанием этого процесса.
Итак, после подготовки диск, вы можете переносить данные. К сожалению, вы не
можете просто скопировать данные. Такие вещи, как файлы устройств (в каталоге /
dev) и символические ссылки будут этому мешать. Вам нужно использовать
инструменты, которые работают с такими случаями, а именно dump(8) и tar(1). Я
рекомендую выполнять перенос данных в однопользовательском режиме, но это не
обязательно.
Вы не должны использовать ничего, кроме dump(8) и restore(8) для переноса корне
вой файловой системы. Команда tar(1) может сработать, а может и не сработать.
Также вы должны использовать dump(8) и restore(8) при переносе одного раздела в
другой пустой раздел. Последовательность шагов при использовании программы dump
для переноса данных раздела в новый раздел такова:
1. выполните команду newfs над новым разделом.
2. смонтируйте его во временный каталог.
3. перейдите в этот каталог.
4. Выполните команду dump над старым разделом, направив вывод в новый раздел.
Например, если вы собираетесь перенести корневую файловую систему на устройство
/dev/ad1s1a с использованием каталога /mnt в качестве временной точки монтиров
ания, то это делается так:
# newfs /dev/ad1s1a
# mount /dev/ad1s1a
# cd /mnt
# dump 0uaf - / | restore xf -
Если вы собираетесь изменить размещение ваших разделов - скажем, разбив один из
разделов на два или объединив два раздела в один, вы можете обнаружить
необходимость в переносе всего в один подкаталог на новое место. Так как
программа dump(8) работает с файловыми системами, она этого сделать не сможет.
Поэтому воспользуйтесь программой tar(1). Команда общего вида для переноса /old
в /new в случае tar(1) имеет такой вид:
# (cd /old; tar cf - .) | (cd /new; tar xpf -)
Если в каталог /old смонтированы файловые системы, и вы не хотите перемещать
данные или размонтировать их, то просто добавьте флаг 'l' к первому упоминанию
tar(1):
# (cd /old; tar clf - .) | (cd /new; tar xpf -).
Вы можете предпочесть cpio(1), pax(1) или cpdup (из ports/sysutils/cpdup) в
место tar.