NetBSD LiveCD

12 мая 2014 2868 admin

NetBSD LiveCD.


ПРИМЕЧАНИЕ:
Все действия будут производиться из каталога /LiveCD, если не указано обратное.
В конце будет скрипт, по которому можно будет более подробно разобраться.


Общая схема создания NetBSD LiveCD такая:

1. Ставим саму систему. LiveCD надо делать в своем окружении.
2. Ставим пакеты: cdrtools и mklivecd.
3. Нужны будут исходники ядра и бинарники базовой системы.

Делать будем на версии NetBSD 6.1.3

mklivecd


Порядок выполнения команд mklivecd такой:
mklivecd config

В домашнем каталоге появляется конфиг ~/.mklivecd/mklivecd.conf
Редактируем его.

Далее копируем конфиг ядра:
cp /usr/src/sys/arch/i386/conf/GENERIC ~/.mklivecd/

в файле ~/.mklivecd/GENERIC

находим:
config netbsd root on ? type ?

меняем на:
config netbsd root on cd0a type cd9660 dumps on none

Нужно присвоить переменной BOOTKERN значение, например GENERIC

Собираем ядро:
mklivecd kernel

Потом:
mklivecd base

Далее в chroot:
mklivecd chroot
тут можно добавлять новые пакеты и т.д.

Выход из chroot:
exit

Делаем ISO:
mklivecd iso

Потом прожигаем:
mklivecd burn

P.S.
При выполнении прожига, если неправильно настроен привод в конф-файле, образ может не записаться.
В таком случае можно записать такой командой средствами cdrtools:
cdrecord -v dev=/dev/rcd0d data.iso

Откуда что брать, и куда их класть.


При установке из образа(естественно, записанного на болванку) ставятся только бинарники.
Поэтому исходников там нет.
А нам для создание netbsd livecd понадобятся исходники ядра и бинарники базовой системы.

Исходники ядра называются syssrc.tgz находятся по адресу:
http://ftp.netbsd.org/pub/NetBSD/NetBSD-6.1.3/source/sets/syssrc.tgz для версии 6.1.3.

Здесь находятся исходники ядра для всех архитектур. Нам понадобятся архитектура i386. Или другая ;)
Их нужно положить/распаковать в папку /usr/src/
В итоге, у вас там будет три каталога:
1. /usr/src/common
2. /usr/src/sys
3. /usr/src/usr.bin

P.S.
Если нету папки src в /usr(а ее не будет ;)), то создаем. Например, midnight commander'ом.

Или, автоматом, командой:
tar xvzpf /LiveCD/syssrc.tgz

Теперь нам понадобятся бинарники базовой системы.
Находятся они по адресу(для версии 6.1.3):
http://ftp.netbsd.org/pub/NetBSD/NetBSD-6.1.3/i386/binary/sets/

Откуда нам понадобятся:
1. etc.tgz
2. base.tgz
3. comp.tgz
4. text.tgz
Если мы будет ставить только в консоли, без X-сервера;

и еще:
1. xbase.tgz
2. xcomp.tgz
3. xfont.tgz
4. xserver.tgz
если мы будем ставить еще X-сервер.

Примечание:
Бинарники базовой системы можно еще найти на диске, откуда вы ставили NetBSD.
Весят они немало, поэтому, если инет слабый, можно скатать оттуда.

mklivecd.conf


Вот содержимое mklivecd.conf
# --*-sh-*--    
#
# mklivecd - configuration file
# See mklivecd(8) for a detailed description of each variable.
#
# Generated automatically on Tue Apr 8 20:10:40 UTC 2014.

# Base directories/options
BASEDIR="/root/livecd"
BASE_SETS="etc.tgz base.tgz comp.tgz text.tgz"
BASE_SETS_DIR="/LiveCD"
CHROOT_SHELL="/bin/ksh"
FETCH_SETS="no"
ISODIR="/root/livecd/iso"
MOUNT_PACKAGES_DIR="no"
MOUNT_PKGSRCDIST_DIR="no"
MOUNT_PKGSRC_DIR="no"
PACKAGESDIR="/usr/pkgsrc/packages"
PKGSRCDIR="/usr/pkgsrc"
PKGSRCDISTDIR="/usr/pkgsrc/distfiles"
REMOTE_SETS_URL="ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-6.1.3/i386/binary/sets"
SHAREDIR="/usr/pkg/share/mklivecd"
SOURCEDIR="/usr/src"
WORKDIR="/root/livecd/work"
X11_SETS="xbase.tgz xcomp.tgz xfont.tgz xserver.tgz"
X11_SETS_DIR="/LiveCD"

# kernel options
KERNEL_CONFIG="GENERIC"
KERNEL_NAME="MKLIVECD"
MULTIPLE_KERNELS="no"

# MULTIPLE_KERNELS example:
#
# MULTIPLE_KERNELS="ACPI APM"
# KERNEL_CONFIG_ACPI="KERN_ACPI"
# KERNEL_NAME_ACPI="LIVECD_ACPI"
# KERNEL_CONFIG_APM="KERN_APM"
# KERNEL_NAME_APM="LIVECD_APM"

# Miscellaneous options
BLANK_BEFORE_BURN="no"
CDRECORD_ARGS="-v"
CDRECORD_BIN="/usr/pkg/bin/cdrecord"
CDROM_DEVICE="15,1,0"
ENABLE_X11="yes"
GRUB_FILES_DIR="/usr/pkg/lib/grub/i386-"
HOSTNAME="PhoeniX@NetBSD"
IMAGE_NAME="NetBSD-LiveCD"
MKISOFS_ARGS="-J -R -v"
MKISOFS_BIN="/usr/pkg/bin/mkisofs"
PERSONAL_CONFIG="no"
PKG_SYSCONFDIR="usr/pkg/etc"
REMOVE_DIRS="altroot usr/share/info"
USE_GNU_GRUB="yes"
VND_COMPRESSION="yes"

# Mount arguments
MNT_RAMFS_ARGS="-s 512m swap"
MNT_RAMFS_CMD="mount_mfs"

Собственно, настроить правильный mklivecd.conf - это самое главное в этом деле))

И, наконец, небольшой скрипт, который автоматизирует всё это дело.
Написано было по причине того, что то экспериментировал, то разные версии системы смотрел, то на разных машинах, включая VMWare.. Надоело каждый раз одни и те же действия делать))
В общем, admin-way ))
обозвал скрипт livecd.sh, естесно, исполняемый.
ПРИМЕЧАНИЕ: повторюсь, все действия - из папки /LiveCD
Вот код:
#// installing utilites
pkg_add http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/i386/6.1.3/All/wget-1.14nb3.tgz
pkg_add http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/i386/6.1.3/All/cdrtools-3.01alpha19.tgz
pkg_add http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/i386/6.1.3/All/mklivecd-0.17.tgz
pkg_add http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/i386/6.1.3/All/qemu-1.6.1nb1.tgz

cd /
mkdir LiveCD
cp livecd.sh /LiveCD/

#// downloading kernel sources
wget -P /LiveCD -nc http://ftp.netbsd.org/pub/NetBSD/NetBSD-6.1.3/source/sets/syssrc.tgz

#// unpacking kernel sources
cd /
tar xvzpf /LiveCD/syssrc.tgz

#// downloadinf for console only
wget -P /LiveCD -nc http://ftp.netbsd.org/pub/NetBSD/NetBSD-6.1.3/i386/binary/sets/etc.tgz
wget -P /LiveCD -nc http://ftp.netbsd.org/pub/NetBSD/NetBSD-6.1.3/i386/binary/sets/base.tgz
wget -P /LiveCD -nc http://ftp.netbsd.org/pub/NetBSD/NetBSD-6.1.3/i386/binary/sets/comp.tgz
wget -P /LiveCD -nc http://ftp.netbsd.org/pub/NetBSD/NetBSD-6.1.3/i386/binary/sets/text.tgz

#// downloading for X version
wget -P /LiveCD -nc http://ftp.netbsd.org/pub/NetBSD/NetBSD-6.1.3/i386/binary/sets/xbase.tgz
wget -P /LiveCD -nc http://ftp.netbsd.org/pub/NetBSD/NetBSD-6.1.3/i386/binary/sets/xcomp.tgz
wget -P /LiveCD -nc http://ftp.netbsd.org/pub/NetBSD/NetBSD-6.1.3/i386/binary/sets/xfont.tgz
wget -P /LiveCD -nc http://ftp.netbsd.org/pub/NetBSD/NetBSD-6.1.3/i386/binary/sets/xserver.tgz

#// mklivecd
cd /root
mklivecd config
cp /LiveCD/GENERIC /root/.mklivecd/
cp /LiveCD/mklivecd.conf /root/.mklivecd/
cp /usr/include/termcap.h /usr/share/misc/
mklivecd kernel
mklivecd base
mklivecd chroot
#exit
mklivecd iso

qemu-system-i386 -cdrom /root/livecd/NetBSD-LiveCD.iso

После запуска livecd.sh будет скачано, установлено, настроено, скомпилировано и запущено в QEMU NetBSD-LiveCD.iso ))

Скачайте http://freeserver.su/Soft/NetBSD/LiveCD/6.1.3/LiveCD.tgz и распакуйте в /LiveCD
И запустите livecd.sh

В архиве 3 файлика:
GENERIC - подготовленное ядро
mklivecd.conf - конфиг-файл
livecd.sh - небольшой скрипт для упрощения

В mklivecd.conf не настроено только одно - пути к бинаринкам, для установки из chroot.
Обновлю как будет время.

спасибо товарищам из runetbsd.ru :)

Ну и, собстно, сам образчик: http://freeserver.su/Soft/NetBSD/LiveCD/NetBSD-LiveCD-v0.1.iso
  • 0

Другие новости по теме:

Другие новости по теме:

    Добавление комментария

    Имя:
    Пароль:
    Email:
    Код:
    captcha
    Введите код:

    Последнии комментарии
    Обновление NetBSD до STABLE
    Автор www3 (14.06.2024)
    Много кто пользуется, но народ не очень словоохотл...
    Обновление NetBSD до STABLE
    Автор www2 (14.06.2024)
    anon, я пользуюсь.
    Как конвертировать LSD в DSL
    Автор testforasong (28.01.2024)
    Здравствуйте, не нахожу байт за номером 5A9DD. Ест...
    Как сменить версию php через .htacces
    Автор anon (19.09.2022)
    Спасибо!
    Хоть у кого-то подробное объяснение!
    Обновление NetBSD до STABLE
    Автор anon (12.09.2022)
    Кто-то еще пользуется этой системой?)
    FreeSWITCH on NetBSD
    Автор admin (27.11.2020)
    2default
    круто! хоть какой-то свежак)
    да, netb...
    FreeSWITCH on NetBSD
    Автор default (24.11.2020)
    admin, Собрал, запустил, таки 1.8.7. С ним вполне ...
    FreeSWITCH on NetBSD
    Автор admin (20.11.2020)
    Пробуем последнюю отсюда: https://files.freeswitch...
    FreeSWITCH on NetBSD
    Автор default (20.11.2020)
    admin, Давай скооперируемся. И мне нужен. На FreeB...
    i3lock
    Автор admin (20.11.2020)
    аха, спасибо. Исправили)
     Популярные
       
    Календарь
    « Апрель »
    Пн Вт Ср Чт Пт Сб Вс
    1 2 3 4 5 6
    7 8 9 10 11 12 13
    14 15 16 17 18 19 20
    21 22 23 24 25 26 27
    28 29 30
    Облако тегов