Перенос FreeBSD на другой диск

Если диск начал грязно ругаться в dmesg на ошибки чтения-записи, значит пора переезжать. Допустим у нас FreeBSD версии 7.0…

Выключаемся, вставляем новый диск (у меня он ad2). Он у меня немного поменьше, потому внимательно смотрим

$ df -m

- и думаем, какую файловую систему насколько можно ужать.
Подумали — можно приступать.

# sysinstall

идем в меню Configure->Fdisk, в нем удаляем существующие партиции и создаем одну новую на весь диск. Сложностей никаких. Есть тонкость — выходить нужно по Q, не нажимая W. (Если в задумчивости нажали, катастрофы нет — но перед следующей операцией придется перегружаться).

На вопрос про Boot Manager отвечаем Standard.

Переходим в пункт меню Label.

Здесь нас поджидает еще одна тонкость. Будущий корневой раздел должен быть создан с меткой ad2s1a, но sysinstall не позволяет задавать метку вручную, а при указании точки монтирования отличной от / автоматически присваеват имя ad2s1d. У меня сработала такая последовательность: сперва создал раздел с точкой монтирования / — и он получил правильную метку, а потом нажал M — и изменил точку монтирования на /tmp/root.

Далее без каких-либо сложностей создаются раздел подкачки ad2s1b и файловые системы с точками монтирования /tmp/usr и /tmp/var (соотношение меток и точек монтирования сверяйте с вашим /etc/fstab — если, конечно, у вас нет охоты переделать все по-новому).
Выход из Label нажатием W (появляется большое ругательное окно, с вопросом, понимаете ли вы, что творите. Нужно ответить Yes) и потом Q.

Выходим из sysinstall и смотрим на новые файловые системы:

$ mount

Теперь переносим на них содержимое старого диска:

# cd /
# find . -xdev -print | cpio -p -m /tmp/root
# cd /usr
# find . -xdev -print | cpio -p -m /tmp/usr
# cd /var
# find . -xdev -print | cpio -p -m /tmp/var

Чтобы веселее было ждать конца копирования, у cpio можно добавить опцию —verbose
(команда копирования может быть и такой:

pax -rw -X -pe . /tmp/root

— так короче, но вариант find+cpio просто привычнее — и переносимее — кто-нибудь видел pax напр. под Linux? — про другие unix-like системы уже молчу).
Вот и весь процесс. Выключаемся, ставим новый диск на место старого — и грузим систему.

Leave a comment

Please be polite and on topic. Your e-mail will never be published.

You must be logged in to post a comment.