Клонирование системы FreeBSD

В данной инструкции описывается процесс переноса системы FreeBSD с одного жёсткого диска на другой. Этот способ поможет сэкономить время на настройку системы, учётных записей, установленного ПО и серверных служб и т.д.

Данный способ будет полезен в тех случаях, когда размера старого жёсткого диска не хватает, либо он по каким-нибудь причинам становится непригодным для дальнейшего использования.

Будьте предельно осторожны. Данный метод может привести к безвозвратной потере данных.

Задача следующая:

Имеется сервер, работающий на FreeBSD 13.0, с жёстким диском 16 ГБ и таблицей разделов GPT с тремя разделами: загрузочный ada0p1 — freebsd-boot, корневой ada0p2 — freebsd-ufs и swap-раздел ada0p3 — freebsd-swap. Необходимо полностью перенести всю информацию на другой жёсткий диск 40 ГБ, и подключить его вместо старого, а также увеличить размер корневого раздела.

Клонирование жёсткого диска

В первую очередь необходимо проверить, существует ли новый жёсткий диск в системе. Новый жёсткий диск в системе появится как ada1 — без разделов. Это можно посмотреть командой

# ls /dev

Если в списке появился ada1 — идём дальше.

Запускаем клонирование утилитой dd

# dd if=/dev/ada0 of=/dev/ada1

Придётся некоторое время подождать, так как процесс не быстрый.

По окончанию в консоли должно отобразиться такое:

После этого выключаем машину

# shutdown -p now

вставляем новый жёсткий диск на место старого и запускаем машину снова.

Сервер должен загрузиться с нового жёсткого диска.

Проверяем структуру разделов с помощью утилиты gpart

# gpart show ada0

В свойствах жёсткого диска в квадратных скобках можем увидеть предупреждение: [CORRUPT]. Исправим это командой

# gpart recover ada0

и снова проверяем структуру разделов

# gpart show ada0

Теперь увидим, что предупреждение исчезло. Значит всё окей.

Изменение размера жёсткого диска

Посмотрим информацию о разделе подкачки

# swapinfo

и увидим, что раздел подкачки у нас — это ada0p3

Отключаем его

# swapoff /dev/ada0p3

удаляем

# gpart delete -i 3 ada0

и смотрим структуру разделов

# gpart show ada0

На всякий случай отключим функцию безопасности GEOM

# sysctl kern.geom.debugflags=16

и запустим команду изменения размера корневого раздела на 39 ГБ

# gpart resize -i 2 -s 39G -a 4k ada0

После завершения снова проверим структуру разделов

# gpart show ada0

и видим, что раздел freebsd-ufs теперь 39 ГБ

Далее возвращаем раздел подкачки

# gpart add -t freebsd-swap -a 4k ada0

и проверим структуру разделов

Если всё нормально, подключаем раздел swap

# swapon /dev/ada0p3

После этого увеличим размер файловой системы UFS для использования нового размера раздела утилитой growfs

# growfs /dev/ada0p2

Затем перезагрузимся

# shutdown -r now

и проверим размер корневого раздела командой

# df -h

в столбце Size уже должен отображаться новый размер.

Исправление возможных ошибок UFS

Вполне вероятно, что последующие перезагрузки системы могут вызвать ошибку с таким предупреждением:

WARNING: / was not properly dismounted

и далее попросит ввести полный путь к шеллу:

Enter full pathname of shell or RETURN for /bin/sh:

Исправим это.

Введём: /rescue/tcsh

и вовзращаемся в стандартный шелл

Чтобы исправить ошибку, необходимо воспользоваться утилитой fsck

# fsck -f -y -t ufs

После проверки файловой системы появится сообщение, что она всё ещё DIRTY (то есть неисправна).

Вводим команду

# fsck

и после этого всё должно быть нормально:

Проверяем командами

# df -h

и

# gpart show ada0

Теперь точно всё в порядке.

Один комментарий к “Клонирование системы FreeBSD”

  1. эх, а ведь был ещё способ клонировать работающую систему с помощью dump/restore из livecd frenzy! вот только ufs, не zfs.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *