Как переименовать 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");'
Загрузитесь с аварийного диска, смонтируйте файловую систему, сделайте переименование.