Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> OpenBSD —> Настройка —> Upgrading OpenBSD

Обновление OpenBSD

Автор: Raven2000.


   Сегодня мы поговорим об обновление системы. Систему необходимо поддерживать в актуальном виде  и следить, чтобы все работало, как часы и все дырки были залатаны до прихода врага. И никогда не понтоватся большим аптаймом это значит, что сисоп забил буй на систему, и она работает сама по себе (что иногда для нее лучше) и администратор давно не занимался ей и тем более не обновлял. Так что это минус администратору. Ну да ладно, отвлекся сегодня, мы будем обновляться с 4.3 на 4.4 как раз время подошло и настроение есть.

Содержание:

  • Обновление
  • Обновление c CD
  • Получение исходного кода
         Common CVS tips
         Сборка ядра
         Сборка окружения
  • Обновление при переходах на вышестоящую версию
  • Проблемы
  • Литература

  • Обновление
    Обновление системы можно производить с cd, disk, ftp и http и т.п. Рассмотрим основные способы обновления.

  • Обновление c CD
    Загрузившись с загрузочного диска OpenBSD спрашивает о необходимых действиях:
    erase ^?, werase ^W, kill ^U, intr ^C, status ^T
    (I)nstall, (U)pgrade or (S)hell? u


    Мы выбираем "(U)pgrade" далее OpenBSD спрашивает следующее:
    Welcome to the OpenBSD/i386 4.4 upgrade program.

    This program will help you upgrade OpenBSD. At any prompt except password prompts you can escape to a shell by typing '!'. Default answers are shown in []'s and are selected by pressing RETUN. At any time you can exit this program by pressing Control—C, but exiting during an upgrade can leave your system in an inconsistent state.

    Terminal type? [vt220]
    kbd(8) mapping? ('L' for list) [none] ru
    kbd: keyboard mapping set to ru

    "Terminal type" - выбор типа терминала (можете оставить по умолчанию, но если вы
    используете для установки последовательный порт, введите необходимое значение)
    "kbd" - раскладка клавиатуры (по умолчанию [us]) просмотр всего списка L из него выберем ru. И на будущнее ответы по умолчанию показываются в квадратных скобках и выбираются

    IS YOUR DATA BACKED UP? As with anything that modifies disk contents, this program can cause SIGNIFICANT data loss.

    NOTE: once your system has been upgraded, you must manually merge any changes to files in the 'etc' set into the files already on your systeM.

    Proceed with upgrade? [no] y

    Нас предупредили про необходимость сохранения данных и, что при входе в переборку откачайте надежду на возвращение, и мы соглашаемся продолжить. :)

    Cool! Let’s get to it.
    Available disks are: wd0.
    Which one is the root disk? (or ‘done’) [wdOl
    Root filesystem? [wd0a]
    Checking root filesystem (fsck —fp /deu/wd0a) ... OK.
    Mounting root filesystem...done.

    На данном этапе мы выбрали диск и fsck прошлись по корневому каталогу.

    Далее OpenBSD спрашивает о включении используемых сетевых настройках и при необходимости их можно изменить вручную. Если вы обновляетесь с FTP, HTTP и т.п. то вам необходимо это включить.
    Enable network using configuration stored on root filesystem? [yes]
    Internet6:
    Destination Gateway Flags Refs
    ~~~~~~~~~~

    Resolver enabled.

    Указав "yes" вы можете скорректировать ваши сетевые настройки на необходимые для обновления.
    Do you want to do any manual network configuration? [no]


    Установщик показывает нам содержимое fstab. Нам необходимо убедится, что в fstab все в порядке и необходимые разделы указанны (при необходимости измените). Так же говорится, что все изменения fstab, что вы внесете, будут только во время обновления т.к. это копия и все изменение не запишутся на оригинальный файл fstab. Все файловые системы будут автоматически подключены, если они указанны в fstab, а также, если нет флага у ФС "noauto". Также если подключаемая ФС не ffs например FAT32 или ext2fs то она будет подключена только для чтения.
    The fstab is configured as follows:

    /dev/wd0a / ffs rw 1 1
    /dev/wd0h /home ffs rw,nodev,nosuid 1 2
    /dev/wd0d /tmp ffs rw,nodev,nosuid 1 2
    /dev/wd0g /usr ffs rw,nodev 1 2
    /dev/wd0e /var ffs rw,nodev,nosuid 1 2

    For the upgrade, filesystems in the fstab will be automatically mounted if the ‘noauto’ option is absent, and /sbin/mount_<fstype> is found, and the fstype is not nfs. Non—ffs filesystems will be mounted read—only.

    You can edit the fstab now, before it is used, but the edited fstab will only be used during the upgrade. It will not be copied back to disk.
    Edit fstab with ed? [no]


    Так же проверим остальные ФС и укажем, откуда будем ставить обновление:
    Force checking of non—root filesystems? [yes]
    fsck —fp /dev/wd0h. . . OK.
    fsck —fp /dev/wd0d. . . OK.
    fsck —fp /dev/wd0g. . . OK.
    fsck —fp /dev/wd0e. . . OK.
    /dev/wd0a on /mnt type ffs (rw, local, ctime=Wed Oct 8 21:54:45 2008)
    /dev/wd0h on /mnt/home type ffs (rw, local, nodev, nosuid, ctimeWed Oct 8 21:54:45 2008)
    /dev/wd0d on /mnt/tmp type ffs (rw, local, nodev, nosuid, ctimeflled Oct 8 21:54:45 2008)
    /dev/wd0g on /mnt/usr type ffs (rw, local, nodev, ctimeWed Oct 8 21:54:45 2008
    /dev/wd0e on /mnt/var type ffs (rw, local, nodev, nosuid, ctime=Wed Oct 8 21:54:46 2008)

    Let’s upgrade the sets!
    Location of sets? (cd disk ftp http or ‘done’) [cd]


    Небольшие нюансы:
    Available CD—ROMs are: cd0.
    Which one contains the upgrade media? (or ‘done’) [cd0]
    Pathname to the sets? (or ‘done’) [4.4/i386]

    Select sets by entering a set name, a file name pattern or ‘all’. De—select sets by prepending a ‘—‘ to the set name, file name pattern or ‘all’. Selected sets are labelled ‘[X]’.

    [X] bsd
    [X] bsd.rd
    [ ] bsd.mp
    [X] base44.tgz
    [X] misc44.tgz
    [X] comp44.tgz
    [X] man44.tgz
    [X] game44.tgz
    [ ] xbase44.tgz
    [ ] xshare44.tgz
    [ ] xfont44.tgz
    [ ] xserv44.tgz

    Set name? (or ‘done’) [bsd.mp] done


    Выбираем "YES" и начинаем обновляться.
    Ready to upgrade sets? [yes]
    Getting bsd ...
    100% | ************************************************** | 6700 KB 00:00
    Getting bsd.rd ...
    100% | ************************************************** | 5404 KB 00:00
    Getting base44.tgz ...
    100% | ************************************************** | 42904 KB 00:42
    Getting misc44.tgz ...
    100% | ************************************************** | 2866 KB 00:03
    Getting comp44.tgz ...
    100% | ************************************************** | 78575 KB 00:44
    Getting man44.tgz ...
    100% | ************************************************** | 7552 KB 00:13
    Getting game44.tgz ...
    100% | ************************************************** | 2552 KB 00:01
    Location of sets? (cd disk ftp http or ‘done’) [done]
    Making all device nodes...done.
    Installing boot block...
    boot: /mnt/boot
    proto: /usr/mdec/biosboot
    device: /dev/rwd0c
    /usr/mdec/biosboot: entry point 0
    proto bootblock size 512
    /mnt/boot is 3 blocks x 16384 bytes
    fs block shift 2; part offset 63; inode block 120, offset 4264
    using MBA partition 3: type 166 (Oxa6) offset 63 (Ox3f)
    done.

    CONGRATULATIONS! Your OpenBSB upgrade has been successfully completed!
    To boot the new system, enter halt at the command prompt. Once the
    system has halted, reset the Machine and boot from the disk.
    # reboot

    Вот и все теперь выдави стекло, вынь диск и в reboot с дальнейшим рассмотрением dmesg.

  • Получение исходного кода
    У меня есть статья о Работа с портами и исходниками, но я немного дополню. Я буду описывать обновление до Stable версии. Есть нюанса при получении исходных кодов это полностью скачать их, обновить с FTP или с CD.
    Скачиваем с сервера:
    # cd /usr
    # export CVSROOT=anoncvs@anoncvs.example.org:/cvs
    # cvs -d$CVSROOT checkout -rOPENBSD_4_4 -P src 
    

    Разумеется, вы должны подставить вместо anoncvs@anoncvs.example.org необходимый анонимный CVS, который ближе всего нахотится к вам. Весь список можно посмотреть тут Anonymous CVS в разделе Available Anonymous CVS Servers

    Обновляем текущий src:
    # cd /usr/src
    # export CVSROOT=anoncvs@anoncvs.example.org:/cvs
    # cvs -d$CVSROOT up -rOPENBSD_4_4 -Pd
    


    После обновления src вы должны так же обновить "xenocara" и "ports"
    # export CVSROOT=anoncvs@anoncvs.example.org:/cvs
    # cd /usr
    # cvs -d$CVSROOT checkout -rOPENBSD_4_4 -P src ports xenocara
    


    Обновление портов см здесь Работа с портами и исходниками.

    Обновляем с CD:
    # cd /usr/src; tar xzf /mnt/src.tar.gz
    # cd /usr; tar xzf /mnt/xenocara.tar.gz
    # cd /usr; tar xzf /mnt/ports.tar.gz
    


    Обновляем с FTP:
    Делаем то же что и с CD но предварительно скачиваем с сервера OpenBSD исходные коды нужной ветки:
    Небольшое отступление src разделен на два файла src.tar.gz и sys.tar.gz в комментариях создателей это сделано специально, чтобы пользователям было удобнее закачивать по частям и чтобы было при необходимости можно было работать только с одной частью дерева.
    # cd /usr/src
    # fetch ftp://ftp.openbsd.org/pub/OpenBSD/4.4/src.tar.gz
    # fetch ftp://ftp.openbsd.org/pub/OpenBSD/4.4/sys.tar.gz
    # tar xzf sys.tar.gz
    # tar xzf src.tar.gz
    


    Продолжаем обновление:
    # cd /usr
    # fetch ftp://ftp.openbsd.org/pub/OpenBSD/4.4/xenocara.tar.gz
    # fetch ftp://ftp.openbsd.org/pub/OpenBSD/4.4/ports.tar.gz
    # tar xzf xenocara.tar.gz
    # tar xzf ports.tar.gz
    


    Common CVS tips
    Для будущих обновлений мы сделаем файл .cvsrc. Он необходим чтобы обновления корректировались корректно и с проверкой и всякие пустые папки и тп удалялись в исходном дереве, а так же была исключена возможность ошибки сборки из-за мусорного кода/пустыми директориями. Но на будущее не забывайте про этот файл т.к. он управляет напрямую cvs и при изысканных маневрах с cvs вам может встретиться, что команда, которую вы отдали cvs не работает, а на самом деле cvs использует настройки этого файла.
    # touch ~/.cvsrc
    # more ~/.cvsrc
    


    Содержание .cvsrc:
    # Список серверов см http://www.openbsd.org/anoncvs.html#CVSROOT
    # Пример: cvs -q -danoncvs@anoncvs.de.openbsd.org:/cvs
    cvs -q -danoncvs@anoncvs.example.org:/cvs
    diff -up
    update -Pd
    checkout -P
    


    Сборка ядра
    В статье я использовал архитектуру i386 соответственно у вас она может быть другой и вам необходимо указать правильный путь до исходных кодов своей платформы.
    Создаем и конфигурируем ядро. Саму конфигурацию ядра я опишу в следующей статье =)

    Сохраняем текущий kernel:
    # cp /bsd /bsd.old
    


    Приступаем:
    # cd /usr/src/sys/arch/i386/conf
    # config GENERIC
    Don't forget to run "make depend"
    # cd ../compile/GENERIC
    # make clean && make depend && make && make install
        [...Давным-давно в далекой галактике...]
    


    Сборка окружения
    Очистим /usr/obj директории и пересоберем символические ссылки:
    # rm -rf /usr/obj/*
    # cd /usr/src
    # make obj
    


    Удостоверимся, что все необходимые директории созданы:
    # cd /usr/src/etc && env DESTDIR=/ make distrib-dirs
    


    Собираем систему и перезагружаемся:
    # cd /usr/src
    # make build
    # reboot
    


    После перезагрузки проверяем:
    # uname -a
    OpenBSD openbsd.ampul.local 4.4 GENERIC#0 i386
    

    Вот и все поздравляю, вы обновили систему.

  • Обновление при переходах на вышестоящую версию
    Существует еще так называемый Upgrade Guide, в котором подробно описывается пошаговый переход от предыдущей версии системы к текущей. В шапке указанные версии и до какой версии идет обновление. Возьмем, например Upgrade Guide: 4.3 to 4.4. При необходимости я опишу его, но на данный момент не думаю о целесообразности этого.

  • Проблемы
    В) Не загружается собранное новое ядро.
    О) Необходимо перезагрузится и указать старое сохраненное ядро:
    Using drive 0, partition 3.
    Loading...
    probing : pc0 com1 apm mem[634K 256M 1024 a20=on]
    disk: fd0 hd0+
    >> OpenBSD/i386 BOOT 3.01
    boot>


    Укажем предыдущее работающее ядро и продолжаем штатно загружаться:
    Using drive 0, partition 3.
    Loading...
    probing : pc0 com1 apm mem[634K 256M 1024 a20=on]
    disk: fd0 hd0+
    >> OpenBSD/i386 BOOT 3.01
    boot> bsd.old


  • Литература
    1) Absolute OpenBSD - Unix For The Practical Paranoid (2003)
    2) 5.3 - Building OpenBSD from source
    3) Upgrade Guide: 4.3 to 4.4



    размещено: 2008-11-11,
    последнее обновление: 2008-11-19,
    автор: Raven2000


    mgyk, 2008-11-11 в 13:44:39

    Переход допустим с 4.0 -> 4.4 можно осуществить по подобной схеме? или нужно 4.0->4.1->4.2->4.3->4.4

    Raven2000, 2008-11-11 в 13:52:07

    В Upgrade Guide (Обновление при переходах на вышестоящую версию) описан только последовательный переход.
    4.0->4.1->4.2->4.3->4.4
    Если нужен 4.0 -> 4.4 то обновите систему с помощью CD или из исходников

    Raven2000, 2008-11-12 в 11:21:43

    И так господа всю туфтологию удаляю. Кому есть что сказать по поводу тех. стороны статью велком ту форум. А также там решаются все остальные вопросы. Пустобрехов я не люблю тк они не помогают, а мешают и создают троллинг и флейминг =)

    ElDeRone, 2009-05-27 в 9:05:08

    пропущен важный шаг - перезагрузка после сборки ядра.
    везде в оригинальной документации рекомендуется собирать пользовательское окружение на новом ядре.



  •  

      Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
      Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

    © lissyara 2006-10-24 08:47 MSK

    Время генерации страницы 0.0404 секунд
    Из них PHP: 27%; SQL: 73%; Число SQL-запросов: 61 шт.
    Исходный размер: 41870; Сжатая: 10208