Я удалил/bin/rm. Как я восстанавливаю его?

Я пытался получить Гостевые Дополнения VB, установленные на CentOS 6.3, и добирался, та же ошибка "Конфигурация ядра недопустима". Я нашел решение, которое работало на меня. Я не должен был создавать символьную ссылку как показано выше. Вдобавок к вкусной установке gcc заголовки ядрa ядра-devel dkms, выполненная конфетка groupinstall "Средства разработки"
Это решило проблему для меня. Гостевые Дополнения не установят без него.

168
21.05.2017, 02:04
5 ответов
sudo touch /bin/rm && sudo chmod +x /bin/rm
apt-get download coreutils
sudo dpkg --unpack coreutils*

И больше никогда.


Почему вы не использовали sudo с apt-get?

Потому что команда download не требует этого:

download
download загрузит заданный бинарный пакет в текущий каталог.

Таким образом, если вы не находитесь в каком-то каталоге, в который нельзя писать, вам не нужно использовать sudo, и это может стать проблематичным позже, поскольку вам понадобятся root права для удаления/перемещения пакета.

194
27.01.2020, 19:28

В случае, если [11686]apt-get[11687] или [11688]dpkg[11689] нуждается в [11690]rm[11691] и без [11692]rm[11693] переустановка невозможна, то можно эмулировать [11694]rm[11695] с помощью [11696]perl[11697]: [12109]
28
27.01.2020, 19:28

Я бы попытался получить правильный двоичный файл [11636]rm[11637] с другой машины, а затем, используя [11638]scp[11639] или что-то в этом роде, скопировать его на пи. Это, конечно, работает только в том случае, если [11640]scp[11641] уже установлен...[12101] Если [11642]scp[11643] недоступен, то [11644]nc[11645] (также известный как netcat) на стороне отправителя и bash с перенаправлением [11646]/dev/tcp/HOST/PORT[11647] на стороне получателя также может работать.[12102]Если у вас нет другой Raspbian машины, вы можете получить пакет [11648]coreutils [11649] (получите [11650]. deb[11651] для нужной версии) и распаковать его с помощью [11652]dpkg-deb[11653] (в Debian/Ubuntu/Mint/..., даже если его нет на Pi): [12103] Если у вас нет другой машины с dpkg, вы можете извлечь файл с помощью [11654]ar[11655] (из средств разработки binutils) и tar:[12104]
14
27.01.2020, 19:28
[12110]debian[11699] и его производные (и, вероятно, большинство других дистрибутивов) поставляются с [11700]busybox[11701], который используется в [11702]initramfs[11703]. [12111]busybox[11705] объединяет большинство утилит командной строки в один исполняемый файл.[12112] Вы можете временно синхронизировать [11706]/bin/rm[11707] с [11708]/bin/busybox[11709]:[12113]Чтобы получить работающую [11710]rm[11711] (после чего вы можете сделать вашу [11712]apt-get install --reinstall coreutils[11713]).[12114] Этот же метод можно использовать для всех других утилит, которые включены в [11714] busybox [11715]. Этот список варьируется от одной установки к другой. Получить список можно с помощью [11716]busybox --list[11717].[12115]Обратите внимание, однако, что это ограниченные версии соответствующих утилит. Иногда они поддерживают расширения GNU, но обычно нет, а некоторые из них даже не поддерживают все стандартные возможности/POSIX (некоторые возможности могут быть включены/выключены во время компиляции). [12116]В качестве альтернативы вы можете использовать [11718]zsh[11719]'s builtin rm: [12117] Модуль [11720]zsh/files[11721] предоставляет несколько дополнительных команд builtin ([11722]rm[11723], [11724]mv[11725], [11726]ln[11727], [11728]mkdir[11729], [11730]rmdir[11731], [11732]chown[11733], [11734]chmod[11735], [11736]sync[11737]). Это полезно в таких ситуациях, или когда нельзя вскрыть больше процессов, но запущен интерактивный [11738]zsh[11739]. [12118]ksh93[11741] также имеет ряд дополнительных/операционных команд buitin, но не [11742]rm[11743] среди них ([11744]basename[11745], [11746]chmod[11747], [11748]dirname[11749], [11750]getconf[11751], [11752] голова [11753], [11754]мкдир [11755], [11756] логнейм [11757], [11758] кот [11759], [11760] cmp [11761], [11762] cut [11763], [11764] uname [11765], [11766] wc[11767], [11768] синхронизация [11769])). Вы можете вызвать их с помощью:[12119] в скрипте [11770]ksh93[11771]..
106
27.01.2020, 19:28

Так как это debian (или ubuntu), то есть простой способ получить файлы:

watch 'dmesg >> /var/log/dmesg.log | tail -1'

Это работает, потому что apt-get загрузил coreutils. deb перед попыткой установки, и dpkg-deb гарантированно существует в системе, основанной на debian.

Не извлекайте напрямую в /tmp, это изменяет права доступа в родительском каталоге.

Если вы собираетесь поиграть, то, возможно, захотите установить пакет busybox-static, который работает, даже если вы сломаете всё остальное.

.

13
27.01.2020, 19:28

Теги

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