Назад | Перейти на главную страницу

Как переименовать libc.a обратно

Я работаю над AIX 6.1 и случайно переименовал /usr/lib/libc.a к usr/lib/libc.a_ Как только я переименовал, я понял свою глупую ошибку. Почти все команды mv, cp, ftp и т.д. (кроме cd ) перестали работать.

Как мне переименовать libc.a назад. Без него система вряд ли нормально функционирует :(

Большинство двоичных файлов зависят от libc библиотека. Чтобы узнать, вы можете использовать ldd /path/to/binary Похоже, вам нужно загрузить другой образ или live CD. Затем вы можете смонтировать соответствующий раздел (/usr если он отделен или /) и переименуйте файл.

Просто разместите это на случай, если кто-то другой найдет эту проблему.

Начиная с версии AIX 5.3, IBM предоставляет оболочку восстановления. recsh как раз по этому вопросу.

Проверьте Документация IBM.

Пример использования: recsh; cp -p libc.a.new /usr/lib/libc.a; exit

Пытаться while read -r x; do echo $x >> libc.a; done < libc.a_ (Это предполагает оболочку в стиле Борна).

Если это не удается, и вам повезет, ed или sed статически связаны попробуйте:

sed libc.a_ > libc.a

или

ed libc.a_
w libc.a
q

также dd if=libc.a_ of=libc.a

я думаю ln тоже не может быть и речи?

ln -s usr/lib/libc.a_ usr/lib/libc.a

Или Perl?

perl -e 'symlink("usr/lib/libc.a_","usr/lib/libc.a");'

или

perl -MFile::Copy -e 'copy("usr/lib/libc.a_","usr/lib/libc.a");'

Загрузитесь с аварийного диска, смонтируйте файловую систему, переименуйте.