env в coreutils >= v8.31 будет иметь эту функциональность
env --default-signal your_prog
Что сработало для меня в OSX, так это сочетание ответа Даниэля Саймона и комментария ddburrjr.
У меня была аналогичная проблема, когда я пытался загрузить созданный вручную образ grub (с помощью команды grub -mkimage )после обновления моей установки GRUB в ArchLinux. В моем случае переустановка GRUB в раздел /boot решила проблему.
Поскольку вся ваша ОС не загружается, я бы порекомендовал вам загрузить живой образ Kali и переустановить загрузчик оттуда, предварительно сделав резервную копию текущей установки загрузчика (, например. чтобы сохранить исходный файл конфигурации ).
Возможной причиной возникновения проблемы может быть то, что модули, которые пытался загрузить GRUB, относятся к предыдущей версии GRUB, а образ — нет.
Инструкции:
1. Загрузите свежий образ с официальной веб-страницы Kali Linux.
2. Запустите VirtualBox и откройте настройки виртуальной машины Kali Linux.
2.1 Добавьте загруженный образ iso на «страницу хранения» в виде виртуального компакт-диска.
2.2 Измените порядок загрузки на вкладке «Система», чтобы виртуальная машина сначала загружалась с оптического диска.
3. Загрузите виртуальную машину и запустите образ в режиме реального времени. 4. Смонтируйте загрузочный раздел в папку (, например. /mnt )и скопируйте папку grub в другое место. Если загрузочного раздела нет, файлы должны находиться в вашем основном разделе внутри загрузочной папки. В этом случае смонтируйте основной раздел и пропустите шаги 5 и 6.
5. Снова размонтируйте загрузочный раздел и смонтируйте основной раздел (с папками /home, /etc, /boot,... )до этой точки.
6. Снова смонтируйте загрузочный раздел в папку /boot под вашей точкой монтирования основного раздела. Структура должна выглядеть так:
/mnt/ (mount folder of main partition)
etc/
home/
boot/ (mount folder of boot partition)
grub/
(other boot files)
(other folders)
chroot
. grub-install /dev/sdX
, где X — это дескриптор вашего устройства, на котором установлена Kali Linux.Вам не нужно указывать параметр --boot-directory
, потому что вы изменили свой корень на установленную ОС. Если вам нужно указать другой параметр, взгляните на справочную страницу команды установки grub -. grub-mkconfig -o /boot/grub/grub.cfg
, чтобы создать новый файл конфигурации для grub. Эта команда должна обнаружить установку Kali Linux. Если команда не установлена или не найдена, попробуйте сначала выполнить ее с помощью sudo
, а если ее все еще нет, попробуйте установить ее с помощью apt-get install [name]
.
Важное примечание:
В настоящее время я использую ArchLinux (, как я уже сказал выше ), и поэтому сложно предоставить подробное руководство о том, как переустановить grub с другим дистрибутивом на неизвестной установке.
Я бы порекомендовал вам немного узнать об используемых командах, прежде чем выполнять их, чтобы убедиться, что они хорошо сочетаются с вашей настройкой.
В дополнение к этому, поскольку вы используете виртуальную машину, я бы рекомендовал вам создать моментальный снимок, прежде чем следовать этим инструкциям.
Извините, я не могу комментировать, поэтому в моем случае ответ Дэниела Саймона работает! но с некоторым дополнительным монтированием. Мой дистрибутив был Ububtu Server, и после обновления с 18.04 до 20.04 он выдает ту же ошибку.
мой VPS имеет режим восстановления (это похоже на запуск с другого диска (или USB в других случаях ))затем я следую шагам (, а не шагам 5 и 6 ), потому что мой загрузочный раздел находился внутри основного раздела. И перед шагом 7 (chroot )я должен был смонтировать /dev, /sys и /proc следующим образом :(первое монтирование основного раздела)
# mount /dev/vdb1 /mnt (in my case the main partition to mnt dir)
# mount --bind /dev /mnt/dev
# mount --bind /proc /mnt/proc
# mount --bind /sys /mnt/sys
после этого перейдите к шагу 7.. chroot