Установка GRUB-EFI перестала работать при установке Kali Linux во внешнем жестком диске

[1184061]После того, как Вы покопались немного больше, я нашел тонну системной информации в [1184425]/proc[1184426], которая доступна для просмотр при выполнении раздела [1184427]%pre[1184428] в [1184429]ks.cfg[1184430]. Проверьте дмидекод и файлы в /proc, чтобы получить всю необходимую информацию. Вот что мне помогло:

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

Обновил это с дополнительной информацией.... Вы также можете сделать следующее для информации о диске в разделе %pre:

2
22.11.2017, 23:12
3 ответа
Так как у вас есть трудности с загрузкой устройства в EFI интерфейсе, вы можете использовать существующий загрузчик windows.

Есть 2 вещи, которые нужно сделать [11808]. 1. Установите Linux OS (Kali) как обычно, но на шаге установки GRUB выберите корневой раздел для установки GRUB вместо всего диска. Т.е. sda7 не sda (если предположить, что sda7 - это раздел, выбранный в качестве корневого для установки )[11809]. 2. Скачайте [11810]grub2win[11811] и скопируйте в корень windows OS.[11812]. 3. Сделайте запись Linux в системном загрузчике windows, с помощью Chainload в корневой раздел из grub. Чтобы сделать open[11813] grub2win -> управлять -> добавлять новые -> os -> ubuntu -> chainload -> partition

ALSASound[snd_, "WAV"] := Module[{playCmd = "aplay", soundFileName},
  soundFileName = "/dev/shm/" <> ToString[Unique["MmaSound"]] <> ".wav";
  playCmd = playCmd <> " " <> soundFileName;
  Export[soundFileName, snd, "WAV"];
  Run["(" <> playCmd <> ";" <> "/bin/rm -f " <> soundFileName <> ")&"];]

Change[11814] Убунту в вашу операционную систему, если необходимо.[11815] Раздел для исправления номера раздела (помните sda7)[11816]. Сохранить изменения, перезагрузить. Теперь вы можете выбрать GRUB из загрузчика windows, а затем Linux.

0
27.01.2020, 22:22

Вероятно, вам не нужен grub . Дело в том, что ваша прошивка UEFI - это ваш системный загрузчик - он уже есть. Когда вы загружаетесь через grub, то на самом деле загрузчики chainload - это ненужная избыточность. Я использую rEFInd - это только boot manager - он просто позволяет выбрать, что загружать, а затем перенаправляет обратно в прошивку и прошивка делает загрузку. Это не более чем меню.

Это хорошо, потому что ядро linux само по себе EFI исполняемый двоичный файл - вы можете загрузить linux без какого-либо менеджера загрузки/загрузчика, просто выполнив его из прошивки. Я бы тоже порекомендовал эту опцию, но она не так гибка, как промежуточный менеджер меню вроде rEFInd, потому что вы должны полагаться на разработчиков микропрограмм для обеспечения такого интерфейса - и это может быть не так уж и просто. Но если вам интересно заглянуть в интерфейс efibootmgr - это потребует установки постоянных переменных прошивки.

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

Для того, чтобы таблица разделов была полностью ясна перед началом, вы должны записать на этот диск несколько очень ранних блоков:

dd ibs=4M count=1 if=/dev/zero of=/dev/${USB_DISK}

Теперь мы попадаем в gdisk. Замените все, что /dev/.... файл устройства, на котором находится ваш usb диск для /dev/${USB_DISK}:

gdisk /dev/${USB_DISK}
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present
Creating new GPT entries.
Command (? for help): ?

Используйте ?, чтобы меню сначала просмотрело все опции, но сначала нужно записать чистую таблицу разделов GPT: o:

...
Proceed? (Y/N): y

Далее вам понадобится EFI-системный раздел. Используйте команду n для создания new раздела. В нижеприведенных подсказках, где вы не видите введенного ключа, я просто нажал ENTER, чтобы согласиться со значением по умолчанию:

Command (? for help): n
Partition number (1-128, default 1):
First sector (34-1331166, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-1331166, default = 1331166) or {+-}size{KMGTP}: 500M
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): ef00

Если вы нажмете L в последнем приглашении выше, вы получите список всех доступных типов разделов, но что вам нужно, так это ввести ef00 для efi системного раздела. Сделайте n снова столько раз, сколько нужно для создания других разделов, которые могут понадобиться для / или подкачки, или чего угодно. Опять же, используйте L для просмотра различных типов, но по умолчанию 8300 должен работать для всех, кроме swap.

Взгляните на новую таблицу разделов с помощью p, затем следуйте за ней с помощью w, если вам нравится, чтобы она выглядела так, чтобы записать ожидаемые изменения:

...
Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y

Теперь создайте толстую файловую систему на вашем EFI-разделе. -n называет раздел. Я люблю использовать ESP:

mkfs.vfat -n ESP /dev/${USB_DISK}1
mkfs.fat 3.0.26 (2014-03-07)

Используйте mkfs.${желаемый_файл_системы}. /dev/${USB_DISK}[num] для всех остальных разделов, которые вам могут понадобиться. Лучше всего, если вы используете эту файловую систему --help, чтобы узнать, как указать метку GPT для раздела.

Получите refind.bin.*.zip и найдите здесь , затем распакуйте его на диск и установите системный загрузчик:

mkdir /tmp/refind
unzip ~/Downloads/refind-bin-0.7.9.zip -d $_  
...
$_/ref*/install.sh --usedefault /dev/${USB_DISK}
Not running as root; attempting to elevate privileges via sudo....
Installing rEFInd on Linux....
UnmountEsp = 1
Copied rEFInd binary files
Copying sample configuration file as refind.conf; edit this file to configure
...

Теперь у вас есть системный загрузчик. После установки linux-системы на диск вам нужно будет сделать следующее:

mkdir -p /mnt/bootdisk/
mount /dev/${USB_DISK}1 /mnt/bootdisk
mkdir -p /mnt/bootdisk/EFI/kali_linux/
cp ${kali_root}/boot/vmlinuz-* \
    /mnt/bootdisk/EFI/kali_linux/
cp ${kali_root}/boot/initrd-* \
    /mnt/bootdisk/EFI/kali_linux/

printf %s\\n "LABEL=${GPT_LABEL} /esp vfat defaults 0 1" \
             "/esp/EFI/kali_linux /boot none bind,defaults 0 0" \
      | sudo tee -a /etc/fstab
mkdir /esp
mount -a

Это почти готово. Вам нужно будет немного настроить rEFInd. Замените метку GPT вашей корневой файловой системы на ${GPT_LABEL} ниже:

echo '"Kali" "root=LABEL=${GPT_LABEL} rootwait"'\
    >/mnt/bootdisk/EFI/kali_linux/refind_linux.conf

Это должно дать вам загрузочную систему. Пожалуйста, просмотрите главный refind.conf в .../BOOT - он очень хорошо прокомментирован и сам по себе довольно много документов. Вы также захотите зайти на rodsbooks.com и прочитать там документы.

1
27.01.2020, 22:22

На данный момент я установил grub-pc на флеш-накопитель с разделами MBR. Установлен Kali Linux на внешний жесткий диск с разделами GPT. Каждый раз, когда я хочу использовать Kali Linux, я переключаю настройки BIOS на Legacy и вставляю флешку для загрузки. Цепочка GRUB загружает его на мой жесткий диск, где установлен Linux, и на данный момент у меня все работает нормально. Но это альтернативный метод, и я все еще жду решения моей проблемы.

0
27.01.2020, 22:22

Теги

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