Top News Search Software X Window System Documentation Support Home

FreeBSD: Миграция с 3.X на 4.X

1) Что описывает этот документ?
2) Кому и почему следует сделать это?
3) Описание процесса перехода
   3.0) Предварительные меры
   3.1) Компиляция новой системы
   3.2) Компиляция и установка нового ядра
   3.3) Создание новых устройств в каталоге /dev
   3.4) Установка новой системы
4) Полезные ссылки

1) Что описывает этот документ?
Документ описывает каким образом можно мигрировать с FreeBSD-3.X на FreeBSD-4.X.

2) Кому и почему следует сделать это?
Всем, кто использует FreeBSD и собирается в дальнейшем использовать FreeBSD.
Данная операция производится один раз. Этой операцией сдедует воспользоваться потому, что поддержка версий 3.X скоро будет закончена, а вы, скорее всего, захотите воспользоваться новым программным обеспечением, таким как новый компилятор gcc-2.95.2 или программным обеспечением, поставляемым в виде портов (aka ports).

3) Описание процесса перехода.
3.0) Предварительные меры
Настоятельно рекомендуем осуществить резервное копирование!

Итак, мы с помощью CVSup "накатили" исходные тексты системы 3.X, расположенные в /usr/src.

3.1) Компиляция новой системы

Очистите /usr/obj:

# cd /usr/obj
# chflags -R noschg *
# rm -rf *
Проверьте количество свободного пространства:
# df -k
........
БУДЬТЕ ОСТОРОЖНЫ! Обратите внимание на количество свободного места тома /usr!!!
Для миграции с 3.X до 4.X понадобится около 300MB свободного места.

(синтаксис csh)
# cd /usr/src
# make buildworld |& tee build.log
Данная операция займет несколько часов. После её окончания следует заглянуть в build.log и проверить наличие ошибок. Если ошибок нет - можно продолжать.

3.2) Компиляция и установка нового ядра

# cd /sys/i386/conf
Следует рассмотреть ядро LINT. Некоторые драйверы поменяли свои название, а некоторые и вовсе были исключены.
Например: драйверы IDE-устройств были переписаны и название устройств изменены. Директива controller заменена на device

Итак, после исправлений в вашем ядре (предположим, что оно называется MY_KERNEL):

# cd /usr/src
# make buildkernel KERNEL=MY_KERNEL
Если компиляция ядра завершилась успешно - установим новоё ядро.
# cd /usr/src
# make installkernel KERNEL=MY_KERNEL
3.3) Создание новых устройств в каталоге /dev
Для создания новых устройств следует воспользоваться новой версией утилиты mknod.
# cd /usr/src/sbin/mknod
# make install
Сохраним умеющийся у нас MAKEDEV и установим его новую версию.
# cp /dev/MAKEDEV /dev/MAKEDEV.3S
# cp /usr/src/etc/MAKEDEV /dev/MAKEDEV
# cd /dev
# ./MAKEDEV all
Если вы используете ATAPI-устройства, то необходимо создать новые описания для каждого IDE-диска, а также для каждого slice и partition на этом диске. Например, ранее разделы (partitions) назывались: wd0s1a, wd0s1b, wd0s1e, wd0s1f.
# cd /dev
# ./MAKEDEV ad0s1
# ./MAKEDEV ad0s1a
# ./MAKEDEV ad0s1b
# ./MAKEDEV ad0s1c
# ./MAKEDEV ad0s1d
# ./MAKEDEV ad0s1e
# ./MAKEDEV ad0s1f
# cp /etc/fstab /etc/fstab.3S
# vi fstab
Изменим все вхождения ATAPI-устройств с wdXsXX на adXsXX и перезагрузим систему.
# reboot
3.4) Установка новой системы
Загрузим систему в single-user mode.

Когда loader загрузит ядро, следует предотвратить автоматическую загрузку системы, нажав клавишу Space и написать boot -s.

Смонтируем файловые системы:

# mount /usr
# mount /var
# mount /
# swapon -a
Проведём устновку новой системы:
# cd gnu/usr.bin/texinfo/install-info
# make install
# cd ../../../..
# ldconfig -R /usr/obj/usr/src/lib/libc
# make installworld
Всё должно пройти успешно.

После установки следует запустить mergemaster. Предварительно прочитайте man этой команды.

Узнаем название загрузочного диска (например:ad0);

# cat /etc/fstab 
и установим новый загрузчик:
# disklabel -B ad0
Система установлена. Перезагружаем компьютер.

ВНИМАНИЕ! В версии 4.1.1 появились новые возможности. Проверьте наличие ssh и openssl в /var/db/pkg. Скорее всего они вам уже не нужны, потому что новая версия FreeBSD их уже содержит в себе.

4) Полезные ссылки
Making the world your own