Как переименовать libc.a обратно
Я работаю над AIX 6.1 и случайно переименован /usr/lib/libc.a в usr/lib/libc.a_ Как только я переименовал, я осознал свою глупую ошибку. Почти все команды mv, cp, ftp и т. д. (кроме cd) перестали работать.
Как мне переименовать libc.a назад. Без этого система вряд ли функционирует разумно:(
5 ответов
Большинство двоичных файлов зависят от использования 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");'
Загрузитесь с аварийного диска, смонтируйте файловую систему, сделайте переименование.