Перенос Jail на другую систему.

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
kharkov_max
капитан
Сообщения: 1859
Зарегистрирован: 2008-10-03 14:56:40

Перенос Jail на другую систему.

Непрочитанное сообщение kharkov_max » 2012-06-06 12:06:48

Наткнулся на проблему, прошу помощи.

Есть сервер freebsd 8.2 i386 с установленными клетками.
Нужно клетки перенести на freebsd 9.0 AMD64.

Для клеток используется порт ezjail, собственно сам переезд клетки произошел удачно.
Далее при попытке в клетеке на новой системе запустить, к примеру mc вываливается следующее.

Код: Выделить всё

Shared object "libncurses.so.8" not found, required by "mc"
Предполагаю что эта ошибка из за смены платформы.

Как доставить необходимые либы ?
Далее планирую полную пересборку всех портов в новой клетке ..

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: Перенос Jail на другую систему.

Непрочитанное сообщение manefesto » 2012-06-06 13:09:28

ln -s
рулит
я такой яростный шо аж пиздеЦ
Изображение

Аватара пользователя
kharkov_max
капитан
Сообщения: 1859
Зарегистрирован: 2008-10-03 14:56:40

Re: Перенос Jail на другую систему.

Непрочитанное сообщение kharkov_max » 2012-06-06 13:50:17

А установка compat не поможет ?

Аватара пользователя
kharkov_max
капитан
Сообщения: 1859
Зарегистрирован: 2008-10-03 14:56:40

Re: Перенос Jail на другую систему.

Непрочитанное сообщение kharkov_max » 2012-06-06 14:18:38

Уже как-то решал такой вопрос, но не помню как.

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: Перенос Jail на другую систему.

Непрочитанное сообщение Morty » 2012-06-06 15:58:53

Код: Выделить всё

ldd /usr/local/bin/mc
/usr/local/bin/mc:
	libslang.so.2 => /usr/local/lib/libslang.so.2 (0x2816f000)
	libncurses.so.8 => /lib/libncurses.so.8 (0x28274000)
	libglib-2.0.so.0 => /usr/local/lib/libglib-2.0.so.0 (0x282b4000)
	libintl.so.9 => /usr/local/lib/libintl.so.9 (0x28387000)
	libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x28390000)
	libpcre.so.1 => /usr/local/lib/libpcre.so.1 (0x28488000)
	libc.so.7 => /lib/libc.so.7 (0x284e0000)
	libm.so.5 => /lib/libm.so.5 (0x285ff000)
копируешь либы к себе в джейл, возможно будет работать . Скорее всего пересобирать все нада будет.....
или если все на одной машине , и на хосте остались рабочие либы можно попробовать сделать маунт путей где либы внутрь джейла

Аватара пользователя
kharkov_max
капитан
Сообщения: 1859
Зарегистрирован: 2008-10-03 14:56:40

Re: Перенос Jail на другую систему.

Непрочитанное сообщение kharkov_max » 2012-06-06 16:08:53

Да - либы скопировал в jail_root//usr/lib32 и все завелось...
Сейчас все порты пересобираю, скорее всего что после пересборки lib32 уже будет не нужен.

Но как-то это решение не совсем красивое.

Каталог /usr/lib32 в хост системе есть, почему ezjail-admin update -i -p не прилепил его к системе jail-ов х.з.
Почему колочусь, таких клеток у меня переезжать будет несколько, не хотелось бы таким образом включать либы.

Можно как-то решить глобально через ezjail, что б новая клетка автоматом создавалась с симлинком на lib32?

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: Перенос Jail на другую систему.

Непрочитанное сообщение Morty » 2012-06-06 16:28:18

пробуй монтировать lib32 в джейл

Аватара пользователя
kharkov_max
капитан
Сообщения: 1859
Зарегистрирован: 2008-10-03 14:56:40

Re: Перенос Jail на другую систему.

Непрочитанное сообщение kharkov_max » 2012-06-07 8:31:25

Прошу дальнейшей помощи ...

При полной пересборке портов, что то пересобралось нормально, а что то не захотело.
Через portupgrade в новой системе уже ни чего не пересобирается.

Решил попробовать руками, получаю вот такое (к примеру mc):

Код: Выделить всё

/usr/ports/misc/mc>>make reinstall BATCH=YES clean
===>  Building for mc-4.8.1.1_1
/usr/local/lib/libiconv.so.3: unsupported file layout*** Error code 1

Stop in /basejail/usr/ports/misc/mc.
*** Error code 1

Stop in /basejail/usr/ports/misc/mc
Если через portupgrade то так:

Код: Выделить всё

>portupgrade mc-4.7.5_1
.....
  File system:                Midnight Commander Virtual Filesystem
                              cpio, tar, sfs, extfs, ftp, fish, smb
  Screen library:             S-Lang library (installed on the system)
  Mouse support:              xterm only
  X11 events support:         no
  With subshell support:      yes
  With background operations: yes
  Internal editor:            yes
  Diff viewer:                yes
  Support for charset:        yes
  Search type:                glib-regexp

===>  Building for mc-4.8.1.1_1
/usr/local/lib/libiconv.so.3: unsupported file layout*** Error code 1

Stop in /basejail/usr/ports/misc/mc.
*** Error code 1

Stop in /basejail/usr/ports/misc/mc.
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade20120607-96                                                                             312-308icv-0 env UPGRADE_TOOL=portupgrade UPGRADE_PORT=mc-4.7.5_1 UPGRADE_PORT_V                                                                             ER=4.7.5_1 make
** Fix the problem and try again.
** Listing the failed packages (-:ignored / *:skipped / !:failed)
        ! misc/mc (mc-4.7.5_1)  (unknown build error)
Видимо просто скопировать lib32 недостаточно, нужно еще и с бубном поплясать ...

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: Перенос Jail на другую систему.

Непрочитанное сообщение Morty » 2012-06-07 10:55:08

поставь внутри джейла /usr/ports/misc/compat8x
и опятьже монтируй libы старые... судя по всему трабл в том что софт , его части , либы в 32бита, а на новой системе чтото уже пересобрано на 64 и конфликтует

Аватара пользователя
kharkov_max
капитан
Сообщения: 1859
Зарегистрирован: 2008-10-03 14:56:40

Re: Перенос Jail на другую систему.

Непрочитанное сообщение kharkov_max » 2012-06-07 11:09:27

И так.

1. Снес jail и удалил его каталог esjail-admin delete jail_name.
2. Обновил и пересобрал мир и ядро в основной системе, проинсталил мир и ядро.
3. Обновил ezjail update -i -p
4. Восстановил заново из бекапа клетку.
5. Установил compat8x
6. Скопировал из основной системы /usr/lib32 в jail

Далее делаю portupgrade -a, что то пересобирается а что то нет, ошибки аналогичные

Код: Выделить всё

/usr/ports/misc/mc>>make reinstall BATCH=YES clean
===>  Building for mc-4.8.1.1_1
/usr/local/lib/libiconv.so.3: unsupported file layout*** Error code 1

Stop in /basejail/usr/ports/misc/mc.
*** Error code 1

Stop in /basejail/usr/ports/misc/mc
Варианты ? :unknown:

Аватара пользователя
dmtr
ст. прапорщик
Сообщения: 545
Зарегистрирован: 2009-11-06 22:01:34
Откуда: с Ростова

Re: Перенос Jail на другую систему.

Непрочитанное сообщение dmtr » 2012-06-07 11:15:45

6. Скопировал из основной системы /usr/lib32 в jail
может поробовать:
6. Скопировал из СТАРОЙ системы /usr/lib в /usr/lib32 в jail

compat8x 64-bitные либы ж наверно ставит, небольшой помоШник?
This game has no name. It will never be the same.

Аватара пользователя
kharkov_max
капитан
Сообщения: 1859
Зарегистрирован: 2008-10-03 14:56:40

Re: Перенос Jail на другую систему.

Непрочитанное сообщение kharkov_max » 2012-06-07 11:53:12

dmtr писал(а):
6. Скопировал из основной системы /usr/lib32 в jail
может поробовать:
6. Скопировал из СТАРОЙ системы /usr/lib в /usr/lib32 в jail

compat8x 64-bitные либы ж наверно ставит, небольшой помоШник?

Попробовал - не работает (((.

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: Перенос Jail на другую систему.

Непрочитанное сообщение Morty » 2012-06-07 12:12:29

удали весь софт в клетке pkg_delete -a
и поставь все поновой ;)

ps: backup if need

Аватара пользователя
kharkov_max
капитан
Сообщения: 1859
Зарегистрирован: 2008-10-03 14:56:40

Re: Перенос Jail на другую систему.

Непрочитанное сообщение kharkov_max » 2012-06-07 12:28:28

Ну тогда лучше новую клетку поднять и все с нуля установить.

Идея была пернести клетку в новую ОС...

Аватара пользователя
dmtr
ст. прапорщик
Сообщения: 545
Зарегистрирован: 2009-11-06 22:01:34
Откуда: с Ростова

Re: Перенос Jail на другую систему.

Непрочитанное сообщение dmtr » 2012-06-07 12:35:26

можт после восстановления из бэкапа старой клетки обновить её на новой системе?
This game has no name. It will never be the same.

Аватара пользователя
kharkov_max
капитан
Сообщения: 1859
Зарегистрирован: 2008-10-03 14:56:40

Re: Перенос Jail на другую систему.

Непрочитанное сообщение kharkov_max » 2012-06-07 12:47:29

dmtr писал(а):можт после восстановления из бэкапа старой клетки обновить её на новой системе?
Как ?

Собственно я хотел порты собранные в i386 перекомпилить в AMD64.

Аватара пользователя
dmtr
ст. прапорщик
Сообщения: 545
Зарегистрирован: 2009-11-06 22:01:34
Откуда: с Ростова

Re: Перенос Jail на другую систему.

Непрочитанное сообщение dmtr » 2012-06-07 13:01:14

kharkov_max писал(а):
dmtr писал(а):можт после восстановления из бэкапа старой клетки обновить её на новой системе?
Как ?
так же как клетки обновляешь после обновления хост-системы?

Код: Выделить всё

ezjail-admin update [-s sourcetree] [-i] [-pP] jailname
с ezjail'ом знаком поверхностно, но можт все-таки это необходимая операция в данном случае? и еще - порты вместе с клеткой не перенеслись случайно из i386? или монтируются с хост-системы?
This game has no name. It will never be the same.

Аватара пользователя
kharkov_max
капитан
Сообщения: 1859
Зарегистрирован: 2008-10-03 14:56:40

Re: Перенос Jail на другую систему.

Непрочитанное сообщение kharkov_max » 2012-06-07 13:37:45

dmtr писал(а):
kharkov_max писал(а):
dmtr писал(а):можт после восстановления из бэкапа старой клетки обновить её на новой системе?
Как ?
так же как клетки обновляешь после обновления хост-системы?

Код: Выделить всё

ezjail-admin update [-s sourcetree] [-i] [-pP] jailname
с ezjail'ом знаком поверхностно, но можт все-таки это необходимая операция в данном случае? и еще - порты вместе с клеткой не перенеслись случайно из i386? или монтируются с хост-системы?
Тут нужно понимать как ezjail работает.
По сути обновлять систему отдельно для jail в ezjail не нужно.
Достаточно ezjail-admin update -i, обновится для всех клеток сразу (если конечно что то не крутили с настройками при настройке ezjail).
По умолчению ezjail-admin update -i для всех клеток.

Можно попробовать - но толку 100% не будет.
Порты с клеткой не перенеслись, т.е. порты из AMD64

Аватара пользователя
dmtr
ст. прапорщик
Сообщения: 545
Зарегистрирован: 2009-11-06 22:01:34
Откуда: с Ростова

Re: Перенос Jail на другую систему.

Непрочитанное сообщение dmtr » 2012-06-08 10:15:33

в "ezjail-admin update" функционал mermaster заложен? ведь ты производишь переход не только между архитектурами, но и между версиями 8->9. например куча системных конфигов в jail_dir/etc/, они ведь отдельно живут в каждой клетке?

таки не пробовал апдейт клетки сделать после восстановления?

и еще, 9.0 release или stable?
This game has no name. It will never be the same.

Аватара пользователя
kharkov_max
капитан
Сообщения: 1859
Зарегистрирован: 2008-10-03 14:56:40

Re: Перенос Jail на другую систему.

Непрочитанное сообщение kharkov_max » 2012-06-08 10:27:37

в "ezjail-admin update" функционал mermaster заложен?
По идее нет.
ведь ты производишь переход не только между архитектурами, но и между версиями 8->9. например куча системных конфигов в jail_dir/etc/, они ведь отдельно живут в каждой клетке?
На сколько я понимаю они хранятся в одном месте (basejail), для всех клеток.
таки не пробовал апдейт клетки сделать после восстановления?
Пока не пойму как ...
и еще, 9.0 release или stable?
9.0 release

Аватара пользователя
dmtr
ст. прапорщик
Сообщения: 545
Зарегистрирован: 2009-11-06 22:01:34
Откуда: с Ростова

Re: Перенос Jail на другую систему.

Непрочитанное сообщение dmtr » 2012-06-08 10:34:46

можт перемудрили вообще?
старые либы надо переносить в новую клетку для запуска старых 32bit программ, для пересборки портов-то они не нужны.
можт какие-то либы задублировались и используется не та?

у меня вот такой вывод и в хост-системе и в клетке (ezjail) (чистая система ничего не переносилось, все ставилось с нуля)

Код: Выделить всё

[root@sys2 /]# uname -m
8.2-RELEASE-p5 amd64
[root@sys2 /]# ldconfig -r|grep libiconv
        146:-liconv.3 => /usr/local/lib/libiconv.so.3
[root@sys2 /]# ldconfig -32 -r|grep libiconv
[root@sys2 /]#
проверь у себя
This game has no name. It will never be the same.

Аватара пользователя
kharkov_max
капитан
Сообщения: 1859
Зарегистрирован: 2008-10-03 14:56:40

Re: Перенос Jail на другую систему.

Непрочитанное сообщение kharkov_max » 2012-06-08 10:50:32

Код: Выделить всё

[10:44]report:/root>>uname -m
amd64
[10:47]report:/root>>ldconfig -r|grep libiconv
        110:-liconv.3 => /usr/local/lib/libiconv.so.3
[10:47]report:/root>>ldconfig -32 -r|grep libiconv
[10:47]report:/root>>exit
logout
[10:47]jails:/root>>uname -m
amd64
[10:47]jails:/root>>ldconfig -r|grep libiconv
        110:-liconv.3 => /usr/local/lib/libiconv.so.3
[10:48]jails:/root>>ldconfig -32 -r|grep libiconv
Собственно как и у тебя.
По идее ни чего не мудрил, установка 9.0, обновление мира, ядра, установка ezjail, обновление ezjail .
Ни каких системных настроек не менял, в ядре включил ipfw и все ...

Аватара пользователя
dmtr
ст. прапорщик
Сообщения: 545
Зарегистрирован: 2009-11-06 22:01:34
Откуда: с Ростова

Re: Перенос Jail на другую систему.

Непрочитанное сообщение dmtr » 2012-06-08 11:20:14

таки не пробовал апдейт клетки сделать после восстановления?
Пока не пойму как ...
я имел ввиду

Код: Выделить всё

# ezjail-admin restore jail
# ezjail-admin update -i
но, похоже ты прав

Код: Выделить всё

ezjail-admin update -i 
обновляет как раз basejail и дополнительный запуск update ничего не изменит...
ведь ты производишь переход не только между архитектурами, но и между версиями 8->9. например куча системных конфигов в jail_dir/etc/, они ведь отдельно живут в каждой клетке?
На сколько я понимаю они хранятся в одном месте (basejail), для всех клеток.
нет, "/etc" у всех клеток свои, в basejail нету etc

Код: Выделить всё

[root@sys2 /]# ls -l /usr/local/vhosts/basejail
total 18
drwxr-xr-x   2 root  wheel  1024 Dec 28 13:47 bin
drwxr-xr-x   7 root  wheel   512 Dec 28 13:47 boot
drwxr-xr-x   3 root  wheel  1536 Jan 19 16:43 lib
drwxr-xr-x   2 root  wheel   512 Dec 28 13:47 libexec
drwxr-xr-x   2 root  wheel  2560 Dec 28 13:47 rescue
drwxr-xr-x   2 root  wheel  2560 Dec 28 13:47 sbin
drwxr-xr-x  13 root  wheel   512 Oct 20  2011 usr
но это значит, что ты получаешь jail с бинарниками от 9.0, а /etc/* из 8.2
в частности /jail_dir/etc/make.conf. кстати что в нем?
This game has no name. It will never be the same.

Аватара пользователя
kharkov_max
капитан
Сообщения: 1859
Зарегистрирован: 2008-10-03 14:56:40

Re: Перенос Jail на другую систему.

Непрочитанное сообщение kharkov_max » 2012-06-08 12:54:40

Код: Выделить всё

>>cat /etc/make.conf
WRKDIRPREFIX=           /var/ports
DISTDIR=                /var/ports/distfiles
PACKAGES=               /var/ports/packages
INDEXDIR=               /var/ports
# added by use.perl 2011-08-25 14:22:46
PERL_VERSION=5.10.1
х.м ... а как тогда сам jail обновить ?

Аватара пользователя
dmtr
ст. прапорщик
Сообщения: 545
Зарегистрирован: 2009-11-06 22:01:34
Откуда: с Ростова

Re: Перенос Jail на другую систему.

Непрочитанное сообщение dmtr » 2012-06-08 13:18:48

получается ezjail-admin выполняет какбэ

Код: Выделить всё

# make installworld DESTDIR=/usr/local/vhosts/jail
надо руками походу выполнять еще

Код: Выделить всё

# mergemaster -i -U -D /usr/local/vhosts/jailname
поставить в jail compat соотвествующей версии и выполнить
# make delete-old DESTDIR=/usr/local/vhosts/jail
# make delete-old-libs DESTDIR=/usr/local/vhosts/jail
This game has no name. It will never be the same.