The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Запуск linux программ на FreeBSD без полного комплекта linux_base (linux freebsd)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: linux, freebsd,  (найти похожие документы)
From: Bad_UID <zhecka@gmail.com.> Newsgroups: email Date: Mon, 5 Oct 2006 14:31:37 +0000 (UTC) Subject: Запуск linux программ на FreeBSD без полного комплекта linux_base Введение -------- Те кто когда-то использовал для бекапирования Veritas Backup Exec знают, что агенты бекапирования есть для всего кроме *BSD. После некоторых мучений был найден способ запуска данного агента в режиме эмуляции linux, но без полного комплекта linux_base. Способ подходит для большинства системных(и не только) утилит использующих штатные библиотеки linux. Описание метода Для обеспечения запуска линуксовых программ вам необходим кусок любого linux_base дистрибутива, а именно папка /compat/linux/lib. Установите linux_base-fc4(к примеру), скопируйте /compat/linux/lib куданибудь в другое место и можете смело сносить linux_base-fc4, он Вам не понадобится. Основной проблемой запуска linux программ является то, что программы запускаются в chroot окружении эмулятора. Т.е. запуск программы приводит к полной изоляции её от корня системы. Таким образом бекапирование системных директорий недоступно. Итак начнем. Во первых уберем ссылку на linux эмулятор из корня системы. #rm -rf /compat Делаем symlink linux на наш / #ln -s / linux На всякий пожарный делаем. #kldunload linux #kldload linux Специфика использования для различных версий FreeBSD FreeBSD 4.X, 5.X - просто копируем заранее скопированное содержимое /compat/linux/lib в /lib. Предварительно желательно визуально сравнить обе директории на предмет одинаковых файлов, но у меня проблем не было. FreeBSD 4.X,5.X используют libc.so.5, linux эмулятор - libc.so.6 поэтому пересечения библиотек нет. Запуск линуксовой программы производится обычным способом, agent.linux24 от Veritas Backup Exec сразу видит всю систему не ограничивая себя ни в чом. FreeBSD 6.X,7.X - здесь всё намного сложнее. В этом случае получаем пересекающиеся библиотеки libc.so.6, но выход есть. Ставим hexedit. #cd /usr/ports/editors/hexedit #make install clean Копируем в /lib все файлы от эмулятора кроме libc.so.6, переименовываем libc.so.6 в libc.so.1(точно ни с чем не пересечется в будущем). Копируем libc.so.1 в /lib. Обновляем список библиотек. #ldconfig -rRm Теперь наступает время hexedit. Попытка запустить программу слинкованную на линуксовый libc.so.6 приведет к ошибке на FreeBSD 6.X,7.X Берем hexedit <имя программы>, ищем вхождение libc.so.6 и меняем на libc.so.1, жмем F2, CTRL+X. Пробуем запустить. Скорее всего программа запустится, если не запустилась, делаем ktrace <программа>, потом смотрим kdump и смотрим на чом спотыкается. Возможно не хватает каких-то библиотек которые можно взять из того-же linux_base. Зачем всё так сложно ? Во первых, вы получаете полноценный доступ эмулируемой программы к ресурсам системы. Во вторых, экономите дисковое место, 9МБ(библиотеки) против 125+МБ(linux_base). Заключение Данный способ использовался мной для запуска Linux Veritas Backup Exec Agent и hlds_l CS 1.6 сервера на различных FreeBSD платформах. На 6.X проблема решается именно бинарным хаком исполняемых программ. На 4.X,5.X проблем никогда не возникало. Ссылки - Библиотеки от linux_base для тех, кто не хочет ставить linux_base.

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, keyhell (??), 17:07, 05/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мдя...
    И эти люди обвиняют меня в фашизме (с)

    Сейчас 2006 год. 125 метров? - да тьфу, копейки.

    Решение, вероятно, работает, но делать такое - ересь.

     
     
  • 2.2, Bad_UID (?), 17:16, 05/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    А попробуй ради интереса запустить динамически слинкованный бинарник от linux 2.4 на FreeBSD 6.1. И чтоб он имел корректный доступ к /etc.

    А насчет 125 метров это конечно не криминал, но зачем держать на машине ненужное барахло ?

     
     
  • 3.11, GateKeeper (??), 11:09, 06/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    /compat/etc ?
    если нет, то давно ли системы конфигов по фряхе и всем-версиям-дистрибуции-линуха стали едиными?
     
     
  • 4.12, Bad_UID (?), 11:16, 06/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    речь не о полной эмуляции linux shell, а о запуске бинарников.
    А доступ нужен именно к /etc ибо /compat/linux/etc/ нафиг никому не нужен.
     
     
  • 5.14, kordv (?), 13:51, 06/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    В BSD есть что-то вроде mount --rbind /etc /compat/linux/etc ?
     
  • 5.16, GateKeeper (??), 14:24, 06/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    не подскажете в чем принципиальная разница для линух-приложения между /etc и /compat/linux/etc, рассмотрев это с учётом упоминавшегося уже тут mount_unionfs(8) или же mount_nullfs(8)?
     

  • 1.3, prox (?), 17:49, 05/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Извините за оффтоп, но может кто-то уже имел опыт запуска openMosix кластера на FreeBSD-машинках?
    Животрепещущая, я бы сказал, тема...

    MPI-кластер поднял уже, но на нём удобнее решать громоздкие задачищи типа John the ripper или make -j64 buildworld
    А вот скажем, поиметь его для OpenOffice.Org к примеру пока не удавалось...
    Почитал по бордам - openMosix такое позволяет но только под линуксами... И везде оговорки что он работает на уровне ядра...
    так вот, как бы под BSD что-то подобное поиметь...
    если есть чем поделиться - милости прошу в мыло.

     
     
  • 2.4, Bad_UID (?), 17:58, 05/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Если патчи на уровне ядра, то врядли. Если только в BSD напишут эмуляцию этих системных вызовов.
     
  • 2.19, chip (ok), 16:38, 10/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >> Извините за оффтоп, но может кто-то уже имел опыт запуска openMosix кластера на FreeBSD-машинках?

    Разве openMosix еще жив? То что есть на 2.6.x он стабильно не живёт судя по отзывам.

     

  • 1.5, просто Гость потрясенный этим... (?), 18:16, 05/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хм. Это статья?? Это не статья, а просто решение.
    Достаточно просто бинарников из тех же портов.
     
  • 1.6, Alexey (??), 20:00, 05/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А такими строчками в /etc/libmap.conf

    [/path/to/linux_binary/binary_executedfile]              
    libc.so.6           libc.so.1

    Вместо hexedit не прокатывает?

     
     
  • 2.7, Bad_UID (?), 22:07, 05/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >А такими строчками в /etc/libmap.conf
    >
    >[/path/to/linux_binary/binary_executedfile]
    >libc.so.6           libc.so.1
    >
    >
    >Вместо hexedit не прокатывает?

    В эту сторону не смотрел к сожалению. Посмотрю на досуге. Спасибо.
    Но всё-таки две libc.so.6 в системе не есть гут :(

     
     
  • 3.13, Alexey (??), 13:30, 06/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Это не две libc.so.6.
    Это способо заставить бинарник использовать другую so-ку
    без hexedit.
     
     
  • 4.15, Bad_UID (?), 14:11, 06/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    это я понял. спасиба.
    я про две libc.so.6 в эмуляторе и в системе.
     

  • 1.8, nuclight (?), 22:09, 05/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А нахрена нужен этот веритас, если есть другие решения для бэкапа? :)
     
     
  • 2.9, Bad_UID (?), 22:26, 05/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Например ?

    Набор бекапируемых систем:
    Solaris 9 + Oracle
    SunOs 5.9 + Oracle
    25 серверов Win2000, Win2003 на половине которых стоит MSSQL.
    5 серверов FreeBSD под разные задачи.
    2 аппаратных Firewall от ISS на Линуксе 2.4.18.
    Exchange и прочая шняга.

    Из бекапного оборудования 2 двухприводные библиотеки DELL 132T.

    При условии того, что Arcserve эти библиотеки в упор не видит, NTBackup просто напросто в них заблудится.

    из задач бекапирования: snapshot файловой системы с открытыми файлами, snapshot systemstate, snapshot MSSQL + Oracle, файловые шары в огромном количестве и прочая фигня типа шифрованных данных.

    Подскажете решение ? Может есть что-то, что лучше справится с этой задачей ?
    Я пока не нашел.

     
     
  • 3.10, Jet (??), 01:33, 06/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    просто  nuclight не с курсе какие бывают проблемы с бэкапом :)
     
  • 3.17, McUrex (??), 23:49, 06/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Эти задачи решит bacula.
     
     
  • 4.18, Bad_UID (?), 20:25, 07/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    почитал про неё, слишком много но...
     
  • 3.20, chip (ok), 16:42, 10/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    > Solaris 9 + Oracle
    > SunOs 5.9 + Oracle
    > 25 серверов Win2000, Win2003 на половине которых стоит MSSQL.
    > 5 серверов FreeBSD под разные задачи.
    > 2 аппаратных Firewall от ISS на Линуксе 2.4.18.
    > Exchange и прочая шняга.

    > Из бекапного оборудования 2 двухприводные библиотеки DELL 132T.

    На правах offtopic'a: еду в холодильниках бэкапить не пробовали ;)? Это я к чему, почему такой зоопарк?

     
     
  • 4.21, Bad_UID (ok), 17:42, 10/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Зоопарк ?
    Это еще не зоопарк, когда я пришел была еще куча NT 4.0 и 2000.
    Что-то покупалось под спец задачи, типа Соляры с Ораклом.
    Что-то было выбрано как удобоваримый вариант для FW (ISS Proventia)
    BSD сервера выполняют роль почтовых шлюзов и бекапных роутеров.
    сервера W2k и W2k3(домен + сервера баз данных)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру