Рейтинг:0

Никакая команда не выполняется, когда я удалил /lib64

флаг au

я выполнил команду рм -рф * Когда я был в lib64 или каталог внутри него.

(Из-за комментариев/ответов проблема в том, что я удалил ld-linux-x86-64.so.2 и у меня нет временного внутри /var/lib64)

(у меня бизибокс)

Тогда я не могу выполнить большинство команд bash, например лс,бить. Когда я пытаюсь их выполнить, я вижу:

bash: /usr/bin/bash: нет такого файла или каталога

или же

bash: /usr/bin/ls: нет такого файла или каталога

Но ряд команд работает правильно, например эхо, CD

И ряд команд работает, но не так, как который которые показывают следующую ошибку:

bash: /usr/bin/который: /bin/sh: плохой интерпретатор: нет такого файла или каталога

Когда я иду в /USR/бен через CD а затем выполнить команду компакт-диск $ файл выдает ошибку. например, когда я выполняю компакт-диск /USR/бен/лс это показывает мне:

bash: cd: /usr/bin/ls: не каталог

или же

bash: cd: /usr/bin/bash: не каталог

когда я выполнил «cd /usr/bin/bash»

и когда я открываю терминал, я показываю следующее сообщение:

Произошла ошибка при создании дочернего процесса для этого терминала
Не удалось выполнить дочерний процесс «/bin/bash» (нет такого файла или каталога)

(с двумя вариантами: настройки, перезапуск)

Мой $ПУТЬ является /home/$me/.sdkman/candidates/springboot/current/bin:/home/$me/.cargo/bin:/home/$me/.local/bin:/usr/local/sbin:/usr/local /bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/grade/gradle-7.0.2/bin:/ opt/apache-maven-3.8.1/bin:/home/$me/v8/depot_tools:/home/$me/.config/composer/vendor/bin Я могу использовать браузер и/или ранее запущенные программы. Но я не могу запустить их снова.

У меня есть одна открытая вкладка терминала с рядом ранее упомянутых команд, а также браузер и программа для чтения документов. Они работают, но их нельзя запустить снова.

Что не может понять, так это ошибка ниже:

bash: /usr/bin/который: /bin/sh: плохой интерпретатор: нет такого файла или каталога
guiverc avatar
флаг cn
Вы не предоставили информацию об ОС и выпуске; но вам нужно будет восстановить этот каталог из ваших резервных копий. Если вы удалите файл, который уже открыт; существующая запущенная программа все еще может читать содержимое (поскольку индексные дескрипторы не освобождаются до тех пор, пока их никто не использует — Ubuntu или GNU/Linux — это многопользовательская ОС), но программы, которым нужны эти библиотеки, не будут доступны, поскольку они были удалены , поэтому не может быть выполнен. При перезагрузке (или выходе из системы вы увидите больше эффектов) вы увидите полный эффект вашей команды. Вы также можете переустановить, если у вас нет резервных копий.
muru avatar
флаг us
Вы, вероятно, удалили `ld-linux.so`, который необходим для запуска любого динамически связанного исполняемого файла.
Someone avatar
флаг my
@muru вам не кажется [этот вопрос] (https://unix.stackexchange.com/q/123353/495805) [и этот ответ] (https://unix.stackexchange.com/a/123358/495805) решает эту проблему
PooiaFerdowsi avatar
флаг au
@muru @algnis именно этот файл я и удалил. но в каталоге `/var/lib64` нет временного файла ld-linux. лучше: в моем каталоге `var` нет каталога `lib64` внутри.
bac0n avatar
флаг cn
`/usr/bin/busybox ash` (вам нужно указать полный путь) должен дать вам рабочее приглашение. теперь вы сможете воссоздать отсутствующую ссылку `ln -sf /lib/x86_64-linux-gnu/ld-2.33.so ld-linux-x86-64.so.2`, обратите внимание на ld-linux версия.
bac0n avatar
флаг cn
вы можете сделать то же самое из меню grub, `e` отредактируйте любой из пунктов меню, добавьте `break` к строке *linux* и нажмите *ctrl+x*, это должно вызвать приглашение `(initramfs)`, вы можете затем смонтируйте корневой раздел, что-то вроде `mount /dev/sda1/root`, `cd /root/lib64`, на этот раз вам нужно использовать относительный путь `ln -sf ../lib/x86_64-linux-gnu/ ld-2.33.so ld-linux-x86-64.so.2`
Рейтинг:3
флаг cn

/usr/bin/который это шеллскрипт:

~$ кошка /usr/bin/который
#! /бин/ш
установить -эф

если тест -n "$KSH_VERSION"; тогда
        ставит () {
                напечатать -r -- "$*"
        }
еще
        ставит () {
                printf '%s\n' "$*"
        }
фи
...
...
...

Это только первые строчки скрипта, он гораздо длиннее. Но нам просто нужно взглянуть на самую первую строку, которая

#! /бин/ш

/бин имеет символическую ссылку на /USR/бен, так /бин/ш указывает на /USR/бен/ш.

Похоже, вы удалили важные системные файлы, поэтому команды у вас не работают. CD и эхо это не команды, а встроенные в оболочку, поэтому они все еще работают.

Мы не можем сказать вам, какие файлы вы удалили, так как мы не знаем, в каком каталоге вы создали рм -рф *-команда. Возможно, можно скопировать файлы из живого сеанса и вернуть систему к работе, но вам придется самостоятельно выяснить, каких файлов не хватает. В противном случае переустановите.

Подсказка: в моей системе есть только один файл в /lib64:

~$ ~$ ~$ ls -la /lib64/
всего 8
drwxr-xr-x 2 root root 4096 13 окт 03:37 .
drwxr-xr-x 14 root root 4096 13 окт 03:37 ..
lrwxrwxrwx 1 root root 42 28 сентября 08:38 ld-linux-x86-64.so.2 -> /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2

Это символическая ссылка, просто воссоздать символическую ссылку должно быть достаточно, но, поскольку команды больше не работают, вам придется делать это из живого сеанса.

muru avatar
флаг us
Вы должны попробовать `ls -la /lib64/`, так как похоже, что OP вошел в каталог, прежде чем удалить все в нем.
mook765 avatar
флаг cn
@muru Я не вижу никакой разницы между `ls -la /lib64` и `ls -la /lib64/`.
muru avatar
флаг us
Это довольно странно. Второй вариант должен отображать содержимое целевого каталога символической ссылки (содержимое, которое OP в этом случае удалил). `ls -laH /lib64/`, тогда, если ваш `ls` может быть псевдонимом, у которого есть опция, нарушающая это поведение.
mook765 avatar
флаг cn
@muru Да, теперь я вижу это, ты прав. Потому что `/lib64` - это не папка, а символическая ссылка... отредактировано...
Рейтинг:1
флаг in

Каталог /lib64 содержит общие библиотеки, необходимые для динамически подключаемых исполняемых файлов. Они используют общий код в разделяемых библиотеках, а не копируют его в каждый исполняемый файл. Такие вещи, как сценарии оболочки, вероятно, также не будут работать, поскольку те команды запуска, которые могут быть нарушены.

Работающие команды либо встроены в вашу оболочку (например, CD и эхо) или статически связаны. Команда busybox по своему дизайну статически связана и содержит сокращенные версии многих встроенных команд.

Повреждение системных каталогов, таких как /lib64, почти фатально для системы unix. Для восстановления работоспособности необходимо восстановить недостающие файлы. Варианты для этого включают:

  • восстановить из резервной копии
  • переустановка файлов deb, из которых они были получены
  • копирование файлов из другой идентичной системы с той же версией операционной системы
  • загрузитесь с живого установочного диска и используйте инструменты на живом диске для замены отсутствующих файлов
  • полностью переустановите операционную систему (сначала сделайте резервную копию данных)

Возможно, можно выполнить частичное восстановление, а затем использовать что-то вроде дпкг -V чтобы получить список вещей, которые отличаются или отсутствуют в стандартных файлах, и переустановите некоторые из поврежденных пакетов с помощью меткая установка --переустановить. К сожалению, dpkg и инструменты, которые он использует, полагаются на разделяемые библиотеки, так что по крайней мере критические из них должны быть там, прежде чем это поможет.

К сожалению, в подобных ситуациях часто бывает быстрее и проще переустановить с нуля, чем устранять повреждения.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.