LINUX.ORG.RU
решено ФорумAdmin

Случайно переименовал /lib


0

1

Все доброго времени суток, так случилось что папка /lib была переименована , следовательно при попытке сменить обратно -bash: /bin/mv: No such file or directory . Так понимаю это реально сделать с помощью livecd, но там крутится много сервисов, есть ли какай способ? За ранее спасибо.


export LD_PRELOAD=/lib_renamed
/lib_renamed/ld-linux.so.2 /bin/mv /lib_renamed /lib

Как-то так

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

Чисто ради интереса попробовал на Убунтовском livecd. С прелоадом работать отказывается (или я что-то не так делаю), но если действовать вот так, то вроде бы всё нормально:

export LD_LIBRARY_PATH=/lib_renamed/i386-linux-gnu:/lib_renamed
/lib_renamed/ld-linux.so.2 /bin/mv /lib_renamed /lib

С sudo мне справиться не удалось, но, надеюсь, у ТС был открыт рутовый сеанс. /lib_renamed/i386-linux-gnu нужен для загрузки libselinux.so.1.

P.S. Спасибо за новые знания, я и не предполагал, что так можно :)

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

export LD_LIBRARY_PATH=/iu/ld-linux.so.2
Проходит нормально
/bin/mv /iu/ /lib
-bash: /bin/mv: No such file or directory
хотя все остальные директории не повреждены

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

Такого я никогда не писал. Посмотрите на мой пример ещё раз, внимательно.

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

А если внимательно прочитать?

export LD_LIBRARY_PATH=/iu
/iu/ld-linux.so.2 /bin/mv /iu /lib

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

Проблема в том, что по умолчанию busybox зачастую слинкован динамически. Зачем — непонятно :)

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

Ubuntu raring(13.04):

note:~$ ldd `which busybox`
	not a dynamic executable
Странно динамически ликовать busybox. Тянуть что ли вмести с ним в initrd все нужные библиотеки?

selivan ★★★ ()
Последнее исправление: selivan (всего исправлений: 2)
Ответ на: комментарий от selivan

Ну вот в Debian пакет busybox именно динамический. И есть busybox-static.

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

Посмотрел, в ubuntu по-умолчанию именно он поставился. И ещё какой-то busybox-initramfs, типа специально для initrd O_o.

selivan ★★★ ()
Ответ на: комментарий от arson
ldd /bin/busybox 
linux-vdso.so.1 =>  (0x00007fff337ff000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f38ab379000)
/lib64/ld-linux-x86-64.so.2 (0x00007f38ab712000)

не проканает

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

Огромнейшее спасибо! Все заработало! Только при рестарте squid
ERROR: ld.so: object '/iu' from LD_PRELOAD cannot be preloaded: ignored.
* Stopping squid ...
* Waiting for squid to shutdown
..... [ ok ]
* Starting squid ...
Как себя поведет система после ребута?

zema ()
Ответ на: комментарий от IvanR
ldd /sbin/busybox 
не является динамическим исполняемым файлом

«Не правильный» у тебя busubox :)

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

Зер гут. Пометь топик как решённый, пригодится ещё кому.

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

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

В этом топике про это уже все разжевали, почитай выше.

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