mv: невозможно открыть файл общих объектов & ldquo; libstdc ++. so.6 & rdquo ;: слишком большое вложение символических ссылок

Загрузите и установите Boot Repair, средство автоматического восстановления, которое обычно решает эти проблемы.

0
задан 18 June 2017 в 01:50

3 ответа

[Я должен признать, что я немного озадачен, почему основные утилиты, такие как mv или cp, будут разбиты из-за libstdc++.so.6, однако, полагая, что это причина, вот что я хотел бы попробовать]

[d2 ] Ваш выход busybox ls указывает, что вам удалось рекурсивно связать /usr/lib/x86_64-linux-gnu/libstdc++.so.6 с самим собой. К счастью, похоже, что вы не удалили или не перезаписали фактическую библиотеку /usr/lib/x86_64-linux-gnu/libstdc++.so.6.19. Таким образом, вы сможете восстановить, заново создав символическую ссылку.

Полученная будет, если либо sudo или ln, либо оба полагаются на библиотеку libstdc++. (Предположительно bash этого не делает, поскольку вы можете войти в систему с помощью оболочки на виртуальном терминале Ctrl + Alt + F3.)

Если sudo сломан, тогда вы все равно сможете загрузитесь в корневую оболочку из режима восстановления, как описано в разделе «Как загрузиться в корневую оболочку?». Затем вам нужно будет переустановить корневую файловую систему в режиме чтения-записи

mount -o remount,rw /

. После этого вы можете попытаться исправить неработающую ссылку

ln -sf libstdc++.so.6.19 /usr/lib/x86_64-linux-gnu/libstdc++.so.6

(это должно создать [Должен признаться, я немного озадачен, почему основные утилиты, такие как mv или cp, будут разбиты из-за libstdc++.so.6, однако, полагая, что это причина, вот что я попробую] , что разрешен относительно целевого пути /usr/lib/x86_64-linux-gnu/, аналогично вашей .old ссылке.

Предполагая, что это не удается, потому что ln зависит от libstdc++.so, вы можете попробовать снова, используя статически связанную busybox ], который имеет встроенный ln:

/bin/busybox ln -sf libstdc++.so.6.19 /usr/lib/x86_64-linux-gnu/libstdc++.so.6

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

0
ответ дан 22 May 2018 в 21:26
  • 1
    Но команда sudo отлично работает. Судо, похоже, не полагается на libstdc ++. Должен ли я по-прежнему загружаться в корневую оболочку? – Kokos34 18 June 2017 в 17:50
  • 2
    ln -sf libstdc ++. so.6.19 /usr/lib/x86_64-linux-gnu/libstdc++.so.6 приводит к той же ошибке. / bin / busybox ln -sf libstdc ++. so.6.19 /usr/lib/x86_64-linux-gnu/libstdc++.so.6 говорит: ln: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: Файл существует – Kokos34 18 June 2017 в 17:57
  • 3
    @ Kokos34 хм ... ты определенно сделал ln -sf не только ln -s? нужно будет подумать об этом – steeldriver 18 June 2017 в 19:51
  • 4
    Да, я уверен. Проверено еще раз. Может быть, сначала я должен удалить файл? Флаг -f означает «сила». или "папка"? – Kokos34 18 June 2017 в 21:50
  • 5
    Да -f означает силу - в любом случае попробуйте удалить сначала (при необходимости busybox rm) - просто убедитесь, что вы удалили неработающую ссылку (/usr/lib/x86_64-linux-gnu/libstdc++.so.6), а не действительный файл (/usr/lib/x86_64-linux-gnu/libstdc++.so.6.19). Кроме того, как только вы удалили неработающую ссылку, вы можете просто использовать busybox mv, чтобы переименовать ссылку /usr/lib/x86_64-linux-gnu/libstdc++.so.6.old на /usr/lib/x86_64-linux-gnu/libstdc++.so.6 – steeldriver 18 June 2017 в 22:19

[Я должен признать, что я немного озадачен, почему основные утилиты, такие как mv или cp, будут разбиты из-за libstdc++.so.6, однако, полагая, что это причина, вот что я хотел бы попробовать]

Ваш выход busybox ls указывает, что вам удалось рекурсивно связать /usr/lib/x86_64-linux-gnu/libstdc++.so.6 с самим собой. К счастью, похоже, что вы не удалили или не перезаписали фактическую библиотеку /usr/lib/x86_64-linux-gnu/libstdc++.so.6.19. Таким образом, вы сможете восстановить, заново создав символическую ссылку.

Полученная будет, если либо sudo или ln, либо оба полагаются на библиотеку libstdc++. (Предположительно bash этого не делает, поскольку вы можете войти в систему с помощью оболочки на виртуальном терминале Ctrl + Alt + F3.)

Если sudo сломан, тогда вы все равно сможете загрузитесь в корневую оболочку из режима восстановления, как описано в разделе «Как загрузиться в корневую оболочку?». Затем вам нужно будет переустановить корневую файловую систему в режиме чтения-записи

mount -o remount,rw /

. После этого вы можете попытаться исправить неработающую ссылку

ln -sf libstdc++.so.6.19 /usr/lib/x86_64-linux-gnu/libstdc++.so.6

(это должно создать [dолжен признаться, я немного озадачен, почему основные утилиты, такие как mv или cp, будут разбиты из-за libstdc++.so.6, однако, полагая, что это причина, вот что я попробую] , что разрешен относительно целевого пути /usr/lib/x86_64-linux-gnu/, аналогично вашей .old ссылке.

Предполагая, что это не удается, потому что ln зависит от libstdc++.so, вы можете попробовать снова, используя статически связанную busybox ], который имеет встроенный ln:

/bin/busybox ln -sf libstdc++.so.6.19 /usr/lib/x86_64-linux-gnu/libstdc++.so.6

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

0
ответ дан 18 July 2018 в 11:29

[Я должен признать, что я немного озадачен, почему основные утилиты, такие как mv или cp, будут разбиты из-за libstdc++.so.6, однако, полагая, что это причина, вот что я хотел бы попробовать]

Ваш выход busybox ls указывает, что вам удалось рекурсивно связать /usr/lib/x86_64-linux-gnu/libstdc++.so.6 с самим собой. К счастью, похоже, что вы не удалили или не перезаписали фактическую библиотеку /usr/lib/x86_64-linux-gnu/libstdc++.so.6.19. Таким образом, вы сможете восстановить, заново создав символическую ссылку.

Полученная будет, если либо sudo или ln, либо оба полагаются на библиотеку libstdc++. (Предположительно bash этого не делает, поскольку вы можете войти в систему с помощью оболочки на виртуальном терминале Ctrl + Alt + F3.)

Если sudo сломан, тогда вы все равно сможете загрузитесь в корневую оболочку из режима восстановления, как описано в разделе «Как загрузиться в корневую оболочку?». Затем вам нужно будет переустановить корневую файловую систему в режиме чтения-записи

mount -o remount,rw /

. После этого вы можете попытаться исправить неработающую ссылку

ln -sf libstdc++.so.6.19 /usr/lib/x86_64-linux-gnu/libstdc++.so.6

(это должно создать [dолжен признаться, я немного озадачен, почему основные утилиты, такие как mv или cp, будут разбиты из-за libstdc++.so.6, однако, полагая, что это причина, вот что я попробую] , что разрешен относительно целевого пути /usr/lib/x86_64-linux-gnu/, аналогично вашей .old ссылке.

Предполагая, что это не удается, потому что ln зависит от libstdc++.so, вы можете попробовать снова, используя статически связанную busybox ], который имеет встроенный ln:

/bin/busybox ln -sf libstdc++.so.6.19 /usr/lib/x86_64-linux-gnu/libstdc++.so.6

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

0
ответ дан 24 July 2018 в 19:48

Другие вопросы по тегам:

Похожие вопросы: