LINUX.ORG.RU

Chroot НЕ РАБОТАЕТ!


0

0

Здравствуйте.

Подскажите почему может не работать chroot?

гружусь с Slax live. На HDD пробую записать загрузчик. Но сначало пробую сменить root.

Делаю chroot /mnt/sda1 он пишет что не может найти /bin/bash

при этом он там есть. Права даны. диск смонтирован как exec

где какие грабли??????

памагитя

И, да, ТЫ СЛОМАЛ CHROOT!

t184256 ★★★★★
()

Кто может дать дельный совет? кто-нить тут шарит вобще?

зы: школота и флудеры идут лесом

scriptes
() автор топика
Ответ на: комментарий от scriptes

Если правильно все помню, делал chroot в arm-окружение на i686 компе. Естественно, без бубна в виде qemu не заработало. Скопировал qemu-user-static в arm-chroot/usr/bin, поплясал с бубном вокруг binfmt и вуаля - стало можно чрутиться в arm-чруты и прозрачно исполнять arm-бинарники на i686-машине.

Только я от всей души тебе желаю, чтобы это был не твой случай.

t184256 ★★★★★
()

тебе написали, что могут не совпадать архитекуры. live cd имеет ядро amd64 а чрутишся в x86 или наоборот

xscrew ★★
()
Ответ на: комментарий от xscrew

Я как-то в генте случайно с 86_64 live cd чрутнулся в x86 установку, нничего, нормально так. Правда потом непонятные косяки при компиляции появились. Но /bin/bash найти это не помешало.

ostin ★★★★★
()
Ответ на: комментарий от dexpl

> pivot_root, нет?
Нет. Хотя бы потому, что после pivot_root надо всё равно выполнять chroot.

Nao ★★★★★
()
Ответ на: комментарий от ostin

Я как-то в генте случайно с 86_64 live cd чрутнулся в x86 установку, нничего, нормально так.

Итак, Правила Chroot'а +):

  • Сhroot'нуться в 64х-разрядную (amd64) систему можно только если ядро так же собрано под amd64. При этом весь юзерспейс может быть 32х-разрядным (x86).
  • Сhroot'нуться в 32х-разрядную (x86) систему можно если:
    • Ядро собрано под x86
    • Ядро собрано под amd64, но со включенной поддержкой 32х-разрядных бинарников, юзерспейс при этом может быть 64х-разрядным

Правда потом непонятные косяки при компиляции появились.

Скрипты сборки некоторых программ определяют целевую архитектуру не по параметрам компилятора, а по информации от работающего ядра. Так что сборка таких программ может обломиться при работе в 32х-разрядном окружении под 64х-разрядным ядром.

Deleted
()

Что выдают команды

uname -a
file /mnt/sda1/bin/bash
?

Deleted
()

Спасибо за советы.. но все же, если другая архитектура, то как так? нигде больше нету никаких глюков. И странно, неужели в линухе так все запущено? неужели нельзя проверять архитектуру перед запуском ядра. Ну или предупреждать раз это может наложить такие косяки.

И все же что-то подсказывает что архитектура тут не причем.

ДА! И самое главное для чего я это делал. Я собрал свое ядро и хотел его на голый винт залить, сделать загрузчик ну и собирать свою систему потиху. Другой вопрос, тогда, - как залить загрузчик?

зы: chroot делался для правильной работы lilo (он пишет, мап.. и т.п. - чтобы изменить /boot)

scriptes
() автор топика

Кстати, по chroot

у меня голый винт, только создал fs на нем. залил туда /bin/bash... сделал /boot

и причем тут архитектуры?... просвятите

scriptes
() автор топика
Ответ на: комментарий от scriptes

Мда.... Читай-ка ты маны. Всякие, разные. libc ты поставил? Или по-твоему баш должен сам работать, без libc

anonymous
()
Ответ на: комментарий от anonymous

Да и возможно не только libc

ldd /bin/bash
	linux-gate.so.1 =>  (0x00d4f000)
	libncurses.so.5 => /lib/libncurses.so.5 (0x00717000)
	libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x00b59000)
	libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x00457000)
	/lib/ld-linux.so.2 (0x0096d000)

anonymous
()
Ответ на: комментарий от anonymous

Читаю, любезный )

если баш не нашел библиотеку(и какую именно) то он наверное про нее скажет, а не будет ругацца «Не найден /bin/bash»? ВСе зависимости востановить это второй вопрос. Надо чтоб было для чего востанавливать. НО Если он не находится вобще.. о каких либах речь

scriptes
() автор топика

так кто даст конструктивный совет по заливке конфиге и загрузчика в mbr? может это как-то иначе делается.. гм..

scriptes
() автор топика
Ответ на: комментарий от scriptes

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

anonymous
()
Ответ на: комментарий от anonymous

Ты хоть пробовал библиотеки залить? Или типа из общих соображений - библиотеки не нужны.

anonymous
()
Ответ на: комментарий от anonymous

Если хочется без библиотек - собери статический шелл какой-нибудь. busybox вот собирается так. Про баш - не знаю.

anonymous
()

все же что-то мне подсказывает что все иначе решается. пишет он англицким по черному что «chroot: ....... /bin/bash: not found dir or filename» что то такое (точно не скажу, не дома ща). НО ОНА ТАМ, НА НОВОМ РУТЕ ЕСТЬ! списаная с лив-цд. Если бы баш падал или вис там.. или еще какие траблы были - поверил бы что архитектура не та (хотя причем тут, когда баш с этой же загрузочной темы и все работает - через него же эти команды ввожу) или либы отсутствуют. Но тут... тут че-то другое. Перевернул пол нета. И как всегда собсно ничего путного кроме «кури гугл» гЫЫЫЫыыыы (а что это? :D) Были у людей траблы с такими командами. Есть на форумах. Но кто диск монтировал как noexec, у кого-то прав не было на папку и т.п. - но все это децкий сад. Все понятно. В моем же случае - все есть, смонтировано правильно, я не черутюсь на какой-то другой дистриб или еще что. Пробую перечерутить на пустой винт и всего-то создать БУТ!! - найн! не работает. И ман по чруту и лило в частности перекурил и статьи различные - все должно работать, но не работает.

ЗЫ: Все это затеяно только ради того чтобы собрать свою систему. От загрузчика и далее. Начать с ядра, потом баш. Потом потиху дособрать то что надо мне. а не кучу барахла как в дистрибах, да на 5 гигов.

В нете есть маны приимущественно как установить там дебиан, как установить мандриву, как скомпилить ядро(а дальше то что??) и так далее а вот как просто установить linux - нету! вот не хочу я мандриву и все. А хочу свой линукс. Хочу собрать свое ядро и только с теми модулями и пакетами что именно мне надо. Понять все механизмы.

Такое ощущение что без инсталятора линь не поставить ни в жисть. Ну или может быть 98% работающих под линем работают в нем как в форточках(и ставили нажимая «Далее»), и мало задумываясь о том, что там на самом деле внутри происходит. Зато «пантова» (с) ))) linux-оиды типа. Я же хочу разобраться. Эстетический и практический интерес.

а вот 2 процента действительно профессионалов из всей массы днем с огнем не сыскать. Потому наверное и статей (во всяком случае на русском языке, предпочтительно) нету. О том как сделать все пошагово и какие грабли могут встречаться. Научусь - обязательно напишу статью в помощь начинающим. :)

зызы: линь потому и так слабо воспринимается и распространяется, что казалосьбы простые вещи делаются через «одно отверстие» кароч. Маны на англицком и только " о главном" так сказать. А вот на русском.. с вариантами.. ничего нету. Жаль.

ых.............

иль мот кто полезных ссылок кинет? Последняя надежда

scriptes
() автор топика
Ответ на: комментарий от scriptes

> что-то мне подсказывает что все иначе решается

Ага. Я тебе даже подскажу:

школота и флудеры идут лесом

школота идут лесом


идут лесом


ИДУТ ЛЕСОМ

LamerOk ★★★★★
()
Ответ на: комментарий от scriptes

Да скопируй ты либы, все ж объяснили тебе уже.

anonymous
()
Ответ на: комментарий от scriptes

>chroot: ....... /bin/bash: not found dir or filename

Он так и пишет, когда архитектура не та

Все это затеяно только ради того чтобы собрать свою систему.


LFS во все поля.

madgnu ★★★★★
()
Ответ на: комментарий от Deleted

> Правила Chroot'а

Скорее заморочки полутора самых популярных архитектур.

t184256 ★★★★★
()

Сегодня приду домой.. попробую-таки либы закинуть.

Всем спс за советы. Отпишусь если че о решении

scriptes
() автор топика

LFS очень интересный проект, на работе уже льецца образ :)

scriptes
() автор топика
Ответ на: комментарий от scriptes

Всегда пожалуйста. Следующий раз слушай, что тебе говорят, потому что мне уже не сильно хотелось продолжать тебе все рассказывать с таким отношением. И да, пометь как «Решено».

anonymous
()
Ответ на: комментарий от scriptes

Ну бывает. Насчет док всяких-разных я тебе не просто так говорил. Вот тебе из доки по chroot

$info coreutils 'chroot invocation'

If you want to use a dynamically linked executable, say `bash', then first run `ldd bash' to see what shared objects it needs. Then, in addition to copying the actual binary, also copy the listed files to the required positions under your intended new root directory. Finally, if the executable requires any other files (e.g., data, state, device files), copy them into place, too.

Твой случай. Один в один.

anonymous
()
Ответ на: комментарий от scriptes

У lilo есть опция -r, то есть если у вас на новом винте есть /etc/lilo.conf, есть /boot и т.д., то можно c liveCD запускать lilo -r /dev/sda1. В этом случае lilo запускается с liveCD, с него же загружаются все необходимые библиотеки, а потом уже работающий lilo делает chroot(), то есть на новом винте для инсталяции туда загрузчика не нужен bash + библиотеки.

mky ★★★★★
()
Ответ на: комментарий от scriptes

>Спасибо за советы.. но все же, если другая архитектура, то как так? нигде больше нету никаких глюков. И странно, неужели в линухе так все запущено? неужели нельзя проверять архитектуру перед запуском ядра. Ну или предупреждать раз это может наложить такие косяки.

Вещества? Ты сам должен думать в какой чрут пихаешь своё ядро :D

ДА! И самое главное для чего я это делал. Я собрал свое ядро и хотел его на голый винт залить, сделать загрузчик ну и собирать свою систему потиху. Другой вопрос, тогда, - как залить загрузчик?


google://LFS

tensai_cirno ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.