FreeBSD 8.2, удаленный/bin/sh, не может загрузиться

Кажется, что Вы забываете к NAT ПЕРЕДАВАТЬ трафик. Попытайтесь добавить следующее правило:

$IPT -t nat -A POSTROUTING -o eth0 -j SNAT -to-source $PUBLICIP

Это удостоверится что весь транспортный выход eth0 не пропустит внутренние IP-адреса и должен решить Вашу проблему.

Всего наилучшего,
João Miguel Neves

8
задан 16 December 2011 в 18:42
3 ответа

Вам нужно заменить / bin / sh на что-то ; это ключ. Если вы можете войти в загрузчик FreeBSD во время запуска (с приглашением «ok»), попробуйте что-нибудь вроде этого:

set init_shell=/bin/csh
unset init_script
unset init_path

Я получил эту информацию из загрузчика (8) со страниц руководства FreeBSD (онлайн). Я этого не делал, но это должно сработать (при условии, что / bin / csh присутствует и исполняется).

Если у вас есть сервер FreeBSD 8.2, работающий в другом месте, вы можете попробовать украсть / bin / sh с этого source и поместите его в систему, где это необходимо.

Или же получите статически построенный / bin / sh и вставьте его вместо него; со статически созданным двоичным файлом проблем с библиотекой не возникнет.

РЕДАКТИРОВАТЬ: Я должен был заметить: если вы загружаетесь в / bin / csh, вам все равно нужно что-то использовать вместо / bin / ш. Вы можете получить его через Интернет или скопировать с другого компакт-диска, пакета или чего-то подобного; использование / bin / csh для загрузки приведет вас к машине. Копирование по сети требует, чтобы вы подняли сеть; в противном случае скопируйте с CDROM.

Лучшие способы избежать этого в будущем:

  1. Не удаляйте из / bin! (это простая часть)
  2. Создайте статически / bin / sh, динамически не связанный.
  3. Создайте резервную копию sh, например /bin/sh.static.

Выполните все три.

8
ответ дан 2 December 2019 в 22:47

Хорошо, сначала лекция:

  1. НЕ БЕСПОКОИТЬ СИСТЕМУ БИНАРИИ
    Все, что находится в / bin , / sbin и / rescue во FreeBSD, следует оставить в покое. Даже если вы знаете, что делаете (если вы знаете, что делаете, вы также знаете, что их следует оставить в покое. Они действительно важны - все они!)

  2. НЕ delete / bin / sh . НИКОГДА. На любой * системе NIX, в которой он есть.
    В самом деле. Не делай этого. МНОЖЕСТВО сценариев полагается на то, что / bin / sh является оболочкой Борна. Он разбивает вселенную.
    Если вы ДЕЙСТВИТЕЛЬНО хотите, вы можете безопасно заменить его копией из bash , как предложил Адам Z, но если вы собираетесь это сделать, вы можете захотеть статически ссылка на эту копию bash - она ​​включает множество библиотек, и у вас их может не быть, пока система не будет запущена и не смонтирован / usr / local . 1230] Как исправить беспорядок? Два варианта:

    Вариант 1: Немного болезненно
    Зайдите на http://www.freesbie.org/ (или на FreeBSD LiveCD по вашему выбору - вы, вероятно, даже можете использовать восстановление CD с http://www.freebsd.org для этого). Возьмите LiveCD, запишите его и загрузите.

    Когда вы войдете в среду LiveCD, смонтируйте корневой раздел вашей заблокированной системы,

6
ответ дан 2 December 2019 в 22:47

Вместо символической ссылки скопируйте ваш bash в / bin / sh . Используйте команду ldd , чтобы найти любые библиотеки, которые могут находиться в файловых системах, отличных от rootfs, и скопировать их также в rootfs.

4
ответ дан 2 December 2019 в 22:47

Теги

Похожие вопросы