Требуется создать журналируемую файловую систему UFS2 объемом более 1 Гб на FreeBSD 6.1-STABLE.
Для начала необходимо обновить дерево исходных текстов (/usr/src) до стабильной версии. После чего переходим в каталог /usr/src и создаем там необходимые директории:
#cd /usr/src #mkdir {sbin/geom/class/journal,sys/geom/journal,sys/modules/geom/geom_journal}
Теперь качаем сам патч:
#fetch http://people.freebsd.org/~pjd/patches/gjournal6.patch
Накладываем его на исходные тексты:
#patch < gjournal6.patch
Далее есть два пути - пересобрать весь “мир” (см. файл /usr/src/UPDATING), либо пересобрать только то, что было модифицировано. Предпочтительней первый путь, однако можно обойтись и без него. Для этого пересоберите следующие утилиты (зайдя в нижеперечисленные каталоги и выполнив в каждом из них 'make; make install; make clean'):
/usr/src/include/ /usr/src/sbin/geom/class/ /usr/src/sbin/mount/
После чего добавляем в конфиг ядра строчку:
options UFS_GJOURNAL
Компилируем ядро, ставим, перезагружаемся…
После перезагрузки подгружаем необходимый модуль командой
#gjournal load
либо:
#kldload geom_journal.ko
(команды эквивалентны)
Далее нам необходимо размонтировать раздел, на который мы собираемся поставить журнал. Пусть это будет '/dev/ad0s3d' и точка монтирования '/mnt/work':
#umount -f /mnt/work
Теперь собстенно “прикручиваем” журнал:
#gjournal label /dev/ad0s3d
Монтируем командой:
#mount -o async,gjournal /dev/ad0s3.journal /mnt/work
NB! префикс '.journal' появляется при наличии в памяти модуля geom_journal.ko. Поэтому, если вы захотите чтобы система автоматически монтировала раздел с поддержкой журнала: пропишите в файл /boot/loader.conf строчку:
geom_journal_load=“YES”
и соответствующую запись в fstab. Для данного примера она будет выглядеть так:
/dev/ad0s3.journal /mnt/work ufs rw,async,gjournal 2 2
Все, готово!