Загрузчик GRUB не отображается при запуске системы

Потому что так пишется ZSH. ZSH по умолчанию дублирует файловый дескриптор на fd 10 :

.
$ PS1='%% ' zsh -f
% lsof -p $$ | grep 10u
zsh     29192 jhqdoe   10u   CHR  136,0       0t0         3 /dev/pts/0
% 

И последующий код, связанный с fd -в вызовах Src/exec.cmovefd

/**/
static void
addfd(int forked, int *save, struct multio **mfds, int fd1, int fd2, int rflag,
      char *varid)
{
    int pipes[2];

    if (varid) {
        /* fd will be over 10, don't touch mfds */
        fd1 = movefd(fd2);
        if (fd1 == -1) {
            zerr("cannot moved fd %d: %e", fd2, errno);
            return;

что в Src/utils.cдублирует -по --следующее -доступное -выше -10 -которое -уже --] взято -по -по умолчанию -поэтому --первое -вы -увидите --11 штук:

movefd(int fd)
{
    if(fd != -1 && fd < 10) {
#ifdef F_DUPFD
        int fe = fcntl(fd, F_DUPFD, 10);
#else
        int fe = movefd(dup(fd));
#endif

Мой zshсогласно straceиспользует путь кода fcntl, хотя из комментариев я подозреваю, что либо fcntl(..., либо movefd(dup(...приведут к новому fd, начинающемуся с 11; 10 недоступен, так как zsh по умолчанию содержит дубликат с этим номером.

Все, что делает {somelabel}, — это получение наименьшего доступного файлового дескриптора больше 10; это может быть 11 или вместо этого может быть большее число в зависимости от того, что еще уже открыто в оболочке:

% exec {foo}>asdf
% echo $foo
11
% exec {quer}>asdf
% echo $quer
12
...
0
23.08.2019, 09:19
2 ответа

Убедитесь, что вы изменили загрузочную запись UEFI по умолчанию с Windows Boot Managerна kaliлибо навсегда в настройках загрузки BIOS. или вручную с помощью горячей клавиши BIOS, например F10 или F12(в зависимости от производителя )при запуске. С grubвы сможете загрузить обе ОС.

0
28.01.2020, 03:20

Если вы не знаете, как делать то, что хотите, Kali, скорее всего, не тот дистрибутив Linux, который вам нужен.

Обычно Kali используется как образ, хранящийся на внешнем устройстве, который вы используете для загрузки своей машины, или как виртуальная машина, которую вы запускаете из своей основной ОС (вы можете использовать Virtualbox, который является бесплатным ).

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

  • С какого из этих двух дисков загружается ваша система?
  • Установлен ли Grub на этом диске? Вы выбрали этот диск при установке kali?
  • Если это не так, вам придется установить его вручную на этот диск или снова установить Kali, выбрав правильный диск для установки Grub.
  • Вы выбрали правильный диск, но перепутали диск/раздел?

Не путайте разделы с дисками, Grub нужно устанавливать на диск (/dev/sda, например ), а не в раздел (/dev/sda1, /dev/sda2 и т. д.... ).

Одно дело — установить ОС (Kali в вашем случае ), а другое — установить Grub (, который -, как указано ранее -, должен находиться на загрузочном диске ).

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

Приложение:Как уже говорилось ранее, вы можете найти множество руководств/инструкций/руководств, введя простой поиск в свою поисковую систему google/duckduck/любую другую, поэтому я дам несколько основных рекомендаций.

Когда ваш компьютер запускается, именно BIOS вашего компьютера инициирует процесс загрузки, он выполняет базовую диагностику и прочее, а затем (в соответствии с конфигурацией, которую вы установили в своем BIOS ), выбираете, откуда загружаться.

Как только он находит устройство, с которого следует загрузиться, он передает управление фрагменту кода, содержащемуся в MBR/GPT, который является базовым кодом, который продолжается при инициализации. Это место, где должен быть установлен Grub. Если это не так, то ваш фрагмент кода Grub находится не в том месте.

Поскольку вы просили руководства, это Руководство по разделам Arch может представлять интерес, вы также можете проверить загрузочную статью Википедии .

Это результаты простого поиска, такого как «разбиение загрузочного диска Linux» или «процесс загрузки компьютера». Есть некоторые процессы, для объяснения которых требуются полные статьи, и их вряд ли можно описать здесь.

0
28.01.2020, 03:20

Теги

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