Na naszym serwerze symboliczny link do libc.so.6
został usunięty. Teraz żaden z plików binarnych w systemie nie działa. Aby rozwiązać ten problem, próbowałem:Jak odzyskać po usunięciu dowiązania symbolicznego libc.so.6?
/bin/ln -s /lib/libc-2.11.3.so /lib/libc.so.6
które, zgodnie z oczekiwaniami, daje mi:
Próbowałem również:
/lib/ld-linux-x86-64.so.2 --inhibit-rpath /lib/libc.so.6 \
--library-path /lib/libc-2.11.3.so \
/bin/ln -s /lib/libc-2.11.3.so /lib/libc.so.6
z takim samym skutkiem. Dalsze nieudane próby obejmują cp, mv, cat.
Jestem podłączony przez ssh i uważam, że nie będę mógł otworzyć kolejnej sesji po zamknięciu tego. Czy istnieje sposób naprawienia tego systemu (prawdopodobnie przy użyciu wbudowanych bash)?
[edit] Zrobiłem:
while read line; do echo $line; done < /lib/libc-2.11.3.so > libc.so.6
skopiować plik i próbował z:
/lib/ld-linux-x86-64.so.2 --inhibit-rpath libc.so.6 --library-path . \
/bin/ln -s /lib/libc-2.11.3.so /lib/libc.so.6
i otrzymała:
/bin/ln: error while loading shared libraries: ./libc.so.6: ELF file OS ABI invalid
Możesz użyć statycznego pliku binarnego, np.statycznie połączoną powłokę "sash" (którą instalowałbyś wcześniej), która zawiera wbudowaną komendę 'cp' -inne –
Twoje' echo' potrzebuje '-nE' lub doda nowe linie do wyjścia, którego nie masz chce i może interpretować ucieczki – Hasturkun
kopiowanie plików z read/echo nie czyni go wykonalnym ... –