ОК, первая лекция:
Не шутите с бинарники системы
Чтонибудь в/bin
,/sbin
и/rescue
на FreeBSD следует оставитьпокое. Даже если вы знаете, что делаете (если вы знаете, что делаете, вы также знаете, что их следует оставить в покое. Они действительно важны - все они!)
НЕ удаляйте/bin/sh
. КОГДА-ЛИБО. В любой системе * NIX, которая имеет это.
В самом деле. Не делай этого. LOT сценариев полагаться на/bin/sh
будучи Bourne Shell. Это ломает вселенную.
Если вы действительно хотите, товероятноможет безопасно заменить его копию наbash
как Adam Z предложил, но если вы собираетесь делатьчто вы можете статически , что копияbash
- это тянет много библиотек, и вы может не иметь их, пока система не/usr/local
будет установленаисмонтирована.
Теперь, как исправить беспорядок? Два варианта:
Вариант 1. Довольно болезненно.
Зайдите на http://www.freesbie.org/ (или на FreeBSD LiveCD по вашему выбору - вы можете даже использоватьдля этогокомпакт-диск восстановления с http://www.freebsd.org ). Возьмите LiveCD, запишите его и загрузите.
Как только вы окажетесь в среде LiveCD, смонтируйте корневой раздел отключенной системы, скопируйте его /bin/sh
с LiveCD на компьютер и перезагрузите компьютер.
Это должно вернуть вас в рабочее состояние - вы можете следовать инструкциям по восстановлению «World» или хотя бы пересобрать /bin/sh
из дерева исходных текстов, которое соответствует вашей работающей системе.
Вариант 2: Менее болезненный, нет LiveCD
Если у вас есть еще одна коробка FreeBSD, которую вы можете отключить (или каким-либо другим способом получить представление о копии/bin/sh
, переведите свою машину FreeBSD в однопользовательский режим. Настройте сеть (или подключите какой бы носитель не имел заменяющую оболочку на нем), и скопируйте его туда, где он должен быть.
Перезагрузитесь, и у вас все будет в порядке - те же предостережения, что и на LiveCD, хотя, если /bin/sh
вы берете его не с достаточно близкой к идентичной машине.