jail# cat update-all *default host=cvsupd.dc.beltelecom.by *default base=/var/db *default prefix=/usr *default tag=RELENG_8_2 *default release=cvs delete use-rel-suffix compress src-all #ports-allзапускаем и идем готовить чай))
jail# csup update-allЕсли csup закончил работу, то рекомендую под чаёк прочитать /usr/src/UPDATING.
Теперь очистим каталог obj для ускорения процесса сборки и избавления от лишнего геморроя :
jail# rm -Rf /usr/obj/*и запустим сборку мира
jail# cd /usr/src jail# make -j3 buildworldгде -j3 для сборки в 3 потока. Рекомендуется выбрать число от количества ядер процессора и добавить 1 (т.е. у меня двухядерник).
На всякий случай копирнем наше ядро... ну на всякий случай:
jail# cp -Rp /boot/kernel /boot/kernelOLDиз файла GENERIC создадим файл нашего нового ядра и отредактируем по своему вкусу:
jail# cp /usr/src/sys/i386/conf/GENERIC /usr/src/sys/i386/conf/KERNELIUS jail# ee /usr/src/sys/i386/conf/KERNELIUSИ теперь можно приступить к сборке нового ядра
jail# make -j3 buildkernel KERNCONF=KERNELIUSЕсли все прошло без ошибок, то
jail# make -j3 installkernel KERNCONF=KERNELIUSиначе смотрим файлы make.conf, src.conf(если их редактировали) и файл конфигурации ядра и гуглим-гуглим-гуглим )) Лучше начинающим сразу не экспериментировать с оптимизацией.
Следующим шагом будет перезагрузка и переход в single mode
Вариант 1Если у Вас usb-клавиатура, то возможно понадобиться вот эта заметка.jail# nextboot -o "-s" -k kernel jail# shutdown -r nowВариант 2jail# shutdown -r now --- и после перезагрузки в загрузочном меню выбрать пункт загрузки в однопользовательский режим
При загрузке в однопользовательский режим оставляем шелл предлагаемый по-умолчанию (/bin/sh).
На всякий случай запустить
# fsck -yа потом уже все смонтировать
# mount -a -t ufsТеперь рекомендую проверить время и зону :
# dateи если покажет неправильно, то необходимо скорректировать настройку местного часового пояса
# adjkerntz -iПришло время запустить полезную утилиту для правильной синхронизации системных конфигурационных файлов :
# mergemaster -pОписывать все ее особенности здесь я не буду... да и man mergemaster на это есть. Только скажу, что опция -p нужна для сравнения только тех файлов, которые понадобятся при запуске make installworld, (напр. /etc/make.conf) и кратко расскажу как сравнивать файлы, хотя там все должно быть понятно, но только на английском. В общем так.. если существует отличие при синхронизации конфига, то mergemaster сообщает об этом. Вверху экрана увидите имя старого файла, который не сходиться с новым, ниже - сами отличия.
- - - этими знаками помечаются строки для удаления.
- + - этими знаками помечаются строки для добавления.
- d - оставить полностью старый вариант
- i - полностью согласиться с новым вариантом
- m - построчное сравнение обеих варианта
- v - пересмотреть отличия заново
- l - использовать вариант с левой стороны
- r - использовать вариант с правой стороны
- и еще несколько опций
- i - оставить получившийся результат
- r - повторить операцию построчного сравнения снова
- v - просмотреть получившийся файл
# cd /usr/srcи устанавливаем мир
# make -j3 installworldСледующим шагом будет очередной запуск mergemaster , но с другими флагами
# mergemaster -iU
- i - автоматически установит конфигурационные файлы, которые отсутствуют в каталоге назначения
- U - попытается автоматически обновить конфигурационные файлы, которые не были изменены пользователем.
jail# uname -aВ заключении можно было бы очистить немного места на диске от старых каталогов, файлов, библиотек(make delete-old; yes | - для автоматизации процесса) и результатов сборки :
jail# cd /usr/src jail# yes | make delete-old jail# cd /usr/obj jail# chflags -R noschg * jail# rm -rf *
P.S.
после установки мира (make installworld) обдуманно делайте make delete-old или make delete-old-libs, т.к. это может удалить библиотеки, необходимые для запуска некоторых программ. Придется либо обновлять порт, либо собрать библиотеки нужной версии:
/usr/ports/misc/compat4x
/usr/ports/misc/compat5x
/usr/ports/misc/compat6x
/usr/ports/misc/compat7x
P.S.S.
если после сборки ядра система не грузится или не грузится и выдает ошибки, то не стоит отчаиваться. У нас же есть копии старого (и соответственно работоспособного) ядра. При загрузке системы необходимо выбрать в загрузочном меню пункт Escape to loader promt и в строке ввести команды:
# boot /boot/kernel.old/kernelтем самым загрузив копию старого ядра, которую автоматически сделала система при сборке нового. Или загрузить копию, которую сделали мы :
# boot /boot/kernelOLD/kernelПосле удачной загрузки со старым ядром Вы можете спокойно перепроверить Ваш конфигурационный файл, опираясь на сообщения из /var/log/messages, и пробовать еще раз собрать ядро.
Комментариев нет:
Отправить комментарий