2gusia (2gusia) wrote,
2gusia
2gusia

Category:

debian джейл на nas4free

Сегодня у нас в меню извращение уровня "хоккей на траве + балет на льду". На nas4free поднимем джейл с ядром FreeBSD и системой управления пакетами Debian. Встречаем Debian GNU/kFreeBSD

Сделано на основе поста alexey123, с незначительными изменениями и дополнениями.

Но в начале - зачем такое нужно? Во-первых, разнообразие deb пакетов не идёт ни в какое сравнение с разнообразием пакетов для FreeBSD, так что есть надежда поставить что-то, на FreeBSD не встающее. Надо, однако, понимать, но архитектура kFreeBSD-amd64 отличается от архитектуры amd. В результате, например, консольный клиент Яндекс я в полученный джейл поставить не смог, а исходными текстами, чтобы порыться, Яндекс пока не балует. А во-вторых такой кунштюк - это забавно.

Ставить джейл будем на nas4free, embedded, x64, актуальная 847 сборка. В ней появился редактор loader conf. Предполагаем, что у нас установлена актуальная версия TheBrig.

1) Идём в System|Advanced|loader.conf и задаём
fdescfs_load = "YES"
linprocfs_load = "YES"
linsysfs_load = "YES"
tmpfs_load = "YES"
Должно стать, как помечено галочками
koader4debian
Кстати, большинство остальных параметров - тюнинг моего NAS, описан подробнее тут.

2) Перегружаем nas4free, даём команду
kldstat
и убеждаемся, что все 4 модуля загружены.
Id Refs Address Size Name
1 40 0x80400000 1201b7c kernel
2 1 0x81602000 425c fdescfs.ko
3 1 0x81607000 94e4 linprocfs.ko
4 3 0x81611000 32068 linux.ko
5 1 0x81644000 3000 linsysfs.ko
6 1 0x81647000 195654 zfs.ko
7 2 0x817dd000 40a4 opensolaris.ko
8 1 0x817e2000 22d0 accf_http.ko
9 1 0x8e5e5000 11f48 isboot.ko
10 1 0x8e5f7000 a230 tmpfs.ko
11 1 0x95671000 4000 nullfs.ko
12 1 0x94b6c000 4000 ng_socket.ko
13 1 0x957cf000 b000 netgraph.ko

3) Создадим через TheBrig новый джейл, тип - Linux, имя debian
jaildebian

4) Как Jail start command ставим /etc/init.d/rc 3

5) Как User command stop ставим /etc/init.d/rc 0

6) Fstab:
linprocfs /mnt/Pool/Jail/debian/proc linprocfs rw 0 0
linsysfs /mnt/Pool/Jail/debian/sys linsysfs rw 0 0
tmpfs /mnt/Pool/Jail/debian/lib/init/rw tmpfs rw 0 0

7) Не обязательно, но удобно для вызова джейла по имени
Options ставим -l -U root -n debian

8) Теперь нам понадобится рабочий джейл, назовём его proto, тип - Full, создаём из архива, галочки ставим перед
- FreeBSD-amd64-9.1-RELEASE-base.txz
- FreeBSD-amd64-9.1-RELEASE-lib32.txz
- FreeBSD-amd64-9.1-RELEASE-src.txz

9) Запускаем proto, входим в него. Если в Options задать -l -U root -n proto
то можно по имени
jexec proto csh

10) Качаем дерево портов (чашечка кофе)
portsnap fetch update

11) Собираем и устанавливаем bootstrap (ещё чашечка)
cd /usr/ports/sysutils/debootstrap && make install clean

12) создаём папку и выходим
mkdir -p /jail/debian
exit


13) Дальнейшее в командной строке хоста nas4free
mount_nullfs /mnt/Pool/Jail/debian /mnt/Pool/Jail/proto/jail/debian
chroot /mnt/Pool/Jail/proto
debootstrap wheezy /jail/debian http://cdn.debian.net/debian


Прим - вместо указанных выставьте свои пути к командах
Прим - alexey123 ставил предыдущую версию Debian, squeeze. Но мне показалось правильным поставить актуальную = wheezy
Прим - процесс ещё на пару чашек кофе

12) По окончании даём команды
mkdir /jail/debian/usr/ports
cp /etc/master.passwd /jail/debian/etc/
/usr/sbin/pwd_mkdb -d /jail/debian/etc -p /jail/debian/etc/master.passwd
exit


13) Стартуем кнопкой в TheBrig джейл Debian, входим в него
jexec debian sh

14) Смотрим что получилось
uname -a

GNU/kFreeBSD debian.local 9.1-RELEASE-p5 FreeBSD 9.1-RELEASE-p5 #0 r254466M: Sat Aug 17 22:54:54 CEST 2013 root@dev.nas4free.org:/usr/obj/nas4free/usr/src/sys/NAS4FREE-amd64 x86_64 amd64 Intel(R) Pentium(R) CPU G2120 @ 3.10GHz GNU/kFreeBSD

15) Установка пустая, пакеты ругаются на отсутствие locale (языка и языковых параметров по умолчанию), добавим их
apt-get update
apt-get install locales
nano /etc/environment

в открывшийся пустой файл добавляем
LANG = "en_US.UTF-8"

nano /etc/locale.gen
убираем коммент перед
en_US.UTF-8 UTF-8

locale-gen

На этом у меня всё. На этом месте я сделал zfs снимок датасета Pool/Jail. alexey123 предлагает добавить sudo (aptitude install sudo), пользователя и пр - но меня пока устраивает полученная конструкция с root

Прим. Ставятся не все вообще пакеты, а только те, которые есть в репозитариях для архитектуры kFreeBSD-amd64
Например, davfs2 - не ставится за отсутствием таковых
# apt-get install davfs2
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package davfs2
Tags: jail, nas, nas4free, руками
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 18 comments