Если диск начал грязно ругаться в 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 системы уже молчу).
Вот и весь процесс. Выключаемся, ставим новый диск на место старого — и грузим систему.