Я устанавливаю Кали Linux на моем компьютере. при установке install the grub boot loader on a hard disk
.
Я пытаюсь установить Kali Linux с Grub в качестве загрузчика, и этот шаг не выполняется.
Error: GRUB installation failed.
The 'grub-pc' package failed to install into /target/. Without the GRUB boot loader, the installed system will not boot.
Я использовал загрузочный Pendrive.
Сообщение об ошибке типа установки grub не удалось. что я должен делать ?
Я сделал rufus usb insatller с Кали Линукс. затем установить вручную, после установки системы, то я застрял в установке загрузки загрузчика grub
Grub installation failed
the grub-pc package failed to install into /target without the GRUB boot loader this installed system will not boot
Затем я выбираю выполнить оболочку,
mount --bind /dev /target/dev
mount --bind /dev/pts /target/dev/pts
mount --bind /proc /target/proc
mount --bind /sys /target/sys
chroot /target /bin/bash
root@kali:/# apt-get install grub-pc
reading package list done
building package list done
building dependency tree
reading state information done
packege grub-pc is not available ,but is reffered to by anther package this may mean that the package is missing, has been obsoloted or is only available from another source
вот более простое исправление:
1 — вернитесь в предыдущее окно, где вы выбрали «сетевое зеркало»
2 — изменить «да» на «нет»
3- проблема должна быть решена, и вы сможете продолжить процедуру установки.
Эта проблема возникает, когда ваш компьютер не подключен к Интернету во время установки. Установщик не сможет проверить существующие источники apt-get и отключит их.
В моем случае DNS-сервер не был установлен (поэтому проверка связи с любым доменом не будет работать), поэтому я сначала запустил sudo nano /etc/resolv.conf
и добавил несколько DNS-серверов:
nameserver 8.8.8.8
nameserver 8.8.4.4
ping
сервера теперь успешно.
Затем, чтобы включить источники apt-get, я запустил sudo nano /etc/apt/sources.list
и добавил катящиеся репозитории Kali (с http://docs.kali.org/general-use/kali-linux-sources -list-хранилища):
deb http://http.kali.org/kali Кали-Роллинг основной вклад не бесплатно
# Для доступа к исходному пакету раскомментируйте следующую строку
deb-src http://http.kali.org/kali Кали-Роллинг основной вклад не бесплатно
Закройте nano и выйдите из оболочки. Запустите apt-get update
, а затем apt-get install grub-pc
.
Они оба преуспели, и я вышел из оболочки, чтобы закончить установку GRUB через графический интерфейс.
Была такая же проблема при установке Kali Linux версии 2017.1.
Чтобы это исправить, ваш компьютер должен быть подключен к Интернету, поскольку программа установки извлекает некоторые файлы перед установкой GRUB, если ваш компьютер не подключен к Интернету, установка завершится неудачно.
ответ дан The one who seeks…11
это поможет мне исправить эту неудачную установку, перейдите к выполнению оболочки, введите эту команду и снова вернитесь к grub install для настройки дисков:
mount —bind /dev /target /dev
mount —bind /dev /pts /target /dev /pts
монтировать —bind /proc /target /proc
mount —bind /sys /target /sys
chroot /target /bin /bash
root @ kali:/# apt-get установить grub-pc
В моем случае проблема была с файлом .iso, который я использовал. Изменение, которое исправило все.
ответ дан Aayush Singla101
У меня была такая же проблема — пренебрежение настройкой зеркала …. Я вернулся через настройки / выбранное Сетевое зеркало и> Далее> Установленные пакеты и установил Brub без проблем.
Другая проблема заключалась в том, что не удалось смонтировать компакт-диск. изменение на sdb1 решено и не нужно использовать другие «обходные пути» …
Надеюсь это поможет
ответ дан Darren Meredith1
По некоторым причинам Linux не может правильно определить сетевое соединение, и, следовательно, grub не может быть установлен в конце установки.
Несмотря на то, что некоторые говорили выше, я не добился успеха, изменив основной сетевой интерфейс на другой проводной адаптер Ethernet, беспроводной адаптер и даже переключаясь между различными точками доступа для беспроводной связи, такими как персональная точка доступа на моем телефоне …
В моем случае я мог обойти эту проблему, нажав назад и перейти к диспетчеру пакетов и изменить сетевое зеркало с ДА на НЕТ. Затем щелкнул следующий далее, и он завершил установку отлично!
Однако после установки мне пришлось загрузить и снова включить сетевое зеркало, чтобы иметь возможность устанавливать приложения из онлайн-хранилищ. Просто введите следующие команды:
gedit /etc/apt/sources.list
и раскомментируйте deb http://http.kali.org/kali kali-rolling main contrib non-free
а затем введите
apt-get update
Надеюсь это поможет!
Попробуйте отключить UEFI Secure Boot.
Параметр «Безопасная загрузка» должен быть установлен на «Отключено» или «Отключено», чтобы обеспечить правильную загрузку с внешнего носителя.
Всех приветствую!
Недавно я переустановил Windows, после чего я решил поставить 2й системой Linux, на отдельный диск (раздел). Все установилось нормально, за исключением Grub загрузчика, после включения ноутбука у меня сразу же загружается Windows.
Далее, с LiveCD я попытался установить загрузчик вручную.
В первый раз я решил установить Grub на системный загрузчик Windows
sudo su
mount /dev/sda1 /mnt
grub-install --root-directory=/mnt /dev/sda1
Во второй раз попытался поставить на сам раздел с линуксом:
sudo su
mount /dev/sda4 /mnt
grub-install --root-directory=/mnt /dev/sda4
Так же я пробовал прописать такие же команды установки Grub, но из последнего значения я убирал цифру раздела (получалось: grub-install --root-directory=/mnt /dev/sda
)
Но в каждом из этих случаях вылезали ошибки:
WARNING: tempfile is deprecated; consider using mktemp instead.
WARNING: tempfile is deprecated; consider using mktemp instead.
The file /mnt/boot/grub/stage1 not read correctly.
Хотя, когда я монтирую диск с линуксом, в дирректории /mnt/boot/grub файл stage1 присутствует!
Можете помочь пожалуйста установить этот Grub загрузчик?
UPD: При установке, Linux не видит 2ю систему Windows.
Содержание
- Не удалось установить пакет grub
- При установке линукса, выдает ошибку не удалось установить GRUB
- Установка загрузчика Grub
- Немного теории
- Установка загрузчика Grub в MBR для BIOS
- Установка загрузчика Grub в GPT для BIOS
- Установка GRUB UEFI GPT
- Выводы
- установить загрузчик grub на жесткий диск не удалось на моем компьютере
- 9 ответов 9
- Статья Восстанавливаем GRUB в Kali Linux после обновления до Windows 10
Не удалось установить пакет grub
Решение: в настройках bios множество параметров выставил disabled и grub таки установился. Видимо отключил какой то параметр который отвечал за проверку «widows запускается или что то другое.
А как выглядит разметка диска?
Покажи вкладку Chipset.
Что выводит команда:
А что точно пишет apt при ошибке установки? Нужен весь выхлоп в консоль от команды:
Может у него 32-битный UEFI?
Может на вкладке Chipset (или ещё где) есть возможность из режима UEFI переключиться в режим BIOS? Все равно UEFI не имеет смысла, если диск менее 2 терабайт.
Кстати о птичках — сделай отдельные разделы под /, swap, /home — это сильно упростит жизнь, если решишь сменить дистрибутив, к примеру. Для / — гигов 16-32, для swap — сколько есть оперативной памяти минимум (чтобы сон был), /home — всё остальное.
Все равно UEFI не имеет смысла, пали диск менее 2 терабайт.
Ты путаешь с таблицей разделов GPT. Хотя и здесь спорно.
Не путаю. Просто BIOS плохо работает с GPT, а UEFI с MBR. В остальном они выполняют одну и ту же задачу — грузят ОС. Если одно решение отказывается работать, и предположительно есть возможность использовать другое, почему бы и не попробовать?
Ну надо подождать выхлоп apt хотя б, может там другая какая ругань вообще.
ничего не понял. У вас на картинке видно, что создались 2 раздела, как и должно быть при установке Ubuntu или Mint последних версий с автоматическим разбиением на разделы.
Хотя поиск в google по слову grub-efi-amd64 сразу дал ответ о причине неполадки (последнее сообщение в обсуждении):
Эээээ. Господи, куда катится этот мир.
И с отключённым и с включённым интернетом нет разницы.
ТСу не помогает этот метод. А баг эпичный.
Ааа, я по диагонали читал стартовый пост и отбросил этот эпик как неревантный чисто на автомате видать.
И вообще я тут ssh еще чинил паралельно, тогда апт ни при чём (как я теперь понимаю), надо смотреть ругань grub-install, но все равно ругань в консоль нужна. Эх.
Спасибо всем кто откликнулся. Тему поправил.
Источник
При установке линукса, выдает ошибку не удалось установить GRUB
Доброго времяни суток! Устанавливаю линукс на компьютер, установка почти проходит до конца, понимаю что система уже практически полностью загружается на диск компьютера, но в самом конце установки, выдает ошибку: Не удалось установить GRUB Не удалось установить пакет ‘grub-efi-amd64-signed’ в /target/. Без системного загрузчика GRUB установленная система не будет загружаться. Разбивку системного диска проводит сам линукс при попытке установки.
Загрузка дистрибутива проводилась с помощью unetbootin. Когда я смотрел эту ошибку в поисковике, нашел сообщение о том что нужно производить установку системы с выключенным интернетом, но я интернет и не подключал при установке. Known issues Grub fails to install grub-efi-amd64-signed In EFI mode, if the installer fails with the following error message: «The ‘grub-efi-amd64-signed’ package failed to install into /target/.» Reboot the live medium and disconnect the computer from the Internet before launching the installation. The installation should then proceed in offline mode and prevent this issue from happening.
Потом думаю а чем черт не шутит, и подцепил устройство к интернету, и система скачала пакет языков и что то ещё и установилась без каких либо ошибок, почему? Как можно установить систему не давая доступа к интернету? UEFI, Secure Boot: on, диск идет с разбивкой GPT
особый секретный дистрибутив который нельзя называть? У каждого дистра (ну не у каждого, у родственных может быть одинаковый) свой установщик.
Интернет/без интернета — дичь какая-то, как раз через сеть загрузились обновленные исправленные пакеты, как я понял, и всё прошло без проблем. Почти все дистрибутивы линукса могут ставиться с удаленного носителя, в том числе и из «интернета». Некоторые только «из интернета». Половина пользователей этого сайта только так и делают инсталяцию: так называемый ‘netinstall’.
mandala, спасибо за ответ! Дистрибутив был скачан с офф сайта, то есть последняя версия дистрибутива, зачем ему инет, что он скачивает оттуда для того что бы он работал? А если интернета нету, что, никак не получится его установить?
Источник
Установка загрузчика Grub
Для инициализации ядра и запуска операционной системы Linux используется загрузчик. Это программа, которая запускается после завершения проверки оборудования BIOS, подготавливает оборудование к работе, задает нужные параметры ядра и позволяет выбрать операционную систему. Основная задача загрузчика дать пользователю выбрать операционную систему для загрузки.
Раньше для загрузки Linux использовалось несколько загрузчиков, это isolinux, lilo, grub. Но сейчас чаще всего применяется Grub или полное его название GRand Unified Bootloader. В этой статье будет рассмотрена установка загрузчика Grub через терминал. Также мы поговорим как установить grub на компьютер с UEFI, тоже вручную.
Немного теории
В MBR вариантов немного, Grub записывается в область MBR на диске. Размер сектора MBR занимает первых 512 байт и этого вполне достаточно для того, чтобы установить туда загрузчик.
GPT предоставляет более широкие возможности. Во-первых, для совместимости в GPT эмулируется сектор MBR, и мы можем установить GRUB туда, но такой вариант очень ненадежный и не рекомендуемый. Во-вторых, теперь появилась возможность устанавливать Grub на раздел диска. Мы просто создаем раздел на диске размером 1 Мб и записываем туда то, что раньше записывалось в MBR, это делает установку загрузчика более надежной и защищенной от сбоев.
Для установки Grub будет использоваться команда grub-install, во всех случаях. Давайте кратко рассмотрим ее синтаксис и параметры. Синтаксис:
$ grub-install опции диск
Параметров здесь достаточно много, но нам будут нужны только некоторые:
Основу разобрали. Теперь перейдем к установке. Дальше я буду предполагать, что все действия выполняются из системы, для которой нужно установить загрузчик или из chroot окружения этой системы.
Установка загрузчика Grub в MBR для BIOS
Начнем с самого просто и привычного. Данная инструкция как установить загрузчик Grub подойдет для любого дистрибутива, поскольку команды везде почти одинаковые. Здесь не нужно устанавливать никаких дополнительных пакетов или создавать разделов. Установка Grub на жесткий диск выполняется командой:
sudo grub-install /dev/sda
sudo grub2-install /dev/sda
Готово. По поводу двойки здесь такое же замечание. Если вы хотите установить Grub на флешку в MBR, то тут тоже нет проблем просто примонтируйте флешку и выполните такую команду:
Установка загрузчика Grub в GPT для BIOS
Во-первых, мы можем ничего не менять и установить Grub так, как описано в предыдущем способе. Но тогда он будет установлен в область совместимости с MBR, а это не надежно. Поэтому рекомендуется установить grub так, как описано ниже, на отдельный раздел.
Нужный нам раздел можно создать в установщике любого дистрибутива, если вы выполняете установку в графическом интерфейсе или с помощью gparted. Нам нужен раздел размером 1 Мегабайт без файловой системы и с меткой grub_bios:
Дальше примените изменения, нажмите на разделе правой кнопкой, выберите manage flags и добавьте флаг grub_bios:
Готово. Если у вас нет под рукой доступа к графическому интерфейсу, вы можете создать такой раздел через терминал. Утилита fdisk не поддерживает работу с gpt, поэтому будем использовать gfdisk. Сначала запустите утилиту:
Чтобы создать новый раздел нажмите n и выберите номер раздела:
Соглашаемся с начальным сектором, будет использован первый же свободный:
Готово, осталось нажать w для записи изменений на диск:
Установка grub на жесткий диск дальше выполняется точно так же, как и в предыдущем способе:
sudo grub-install /dev/sda
Осталось создать конфигурационный файл grub:
Теперь переходим к самому сложному, как установить grub efi.
Установка GRUB UEFI GPT
Установка Grub UEFI чем-то похожа на установку в GPT, тут у нас тоже будет отдельный раздел, только на этот раз не для загрузчика, а раздел EFI. Если у вас уже установлена Windows, то, скорее всего, он уже существует. Этот раздел обычно занимает 100 Мб, имеет файловую систему fat32 и флаг ESP. Вот так он будет выглядеть:
Если же такого раздела нет, мы можем его создать с помощью gparted. Для этого создаем раздел с такими параметрами:
Размер 100 Мегабайт, имя раздела ESP, файловая система fat32. Дальше примените изменения и установите для раздела флаг ESP:
То же самое вы можете сделать в Gdisk, только на этот раз нужно устанавливать HEX Code раздела ef00. После того как раздел был создан, подключаем его к нашей файловой системе:
sudo mkdir /boot/efi
$ sudo mount /dev/sda2 /boot/efi
sudo apt install grub-efi efibootmgr
Дальше останется только установка grub efi. Система сама определит нужный раздел и скопирует туда все файлы:
Установка Grub efi на MBR все выглядит точно так же, только тут есть несколько ограничений. Раздел ESP нужно создавать только в начале диска. В режиме EFI тоже можно установить GRUB на флешку, и это не очень сложно. Для этого используется команда:
Выводы
Теперь установка Grub не вызовет у вас проблем. Мы разобрали не только как установить Grub2 в MBR но и в EFI. Кроме того, всю приведенную здесь информацию вы можете использовать для восстановления Grub. Так вы будете лучше понимать что происходит во время восстановления. А настройку параметров и ручное создание конфигурационного файла мы рассмотрим в одной из следующих статей.
Источник
установить загрузчик grub на жесткий диск не удалось на моем компьютере
Я использовал загрузочный Pendrive.
Я сделал rufus usb insatller с Кали Линукс. затем установить вручную, после установки системы, то я застрял в установке загрузки загрузчика grub
Затем я выбираю выполнить оболочку,
9 ответов 9
вот более простое исправление:
Эта проблема возникает, когда ваш компьютер не подключен к Интернету во время установки. Установщик не сможет проверить существующие источники apt-get и отключит их.
В моем случае DNS-сервер не был установлен (поэтому проверка связи с любым доменом не будет работать), поэтому я сначала запустил sudo nano /etc/resolv.conf и добавил несколько DNS-серверов:
ping сервера теперь успешно.
# Для доступа к исходному пакету раскомментируйте следующую строку
deb-src http://http.kali.org/kali Кали-Роллинг основной вклад не бесплатно
Была такая же проблема при установке Kali Linux версии 2017.1.
Чтобы это исправить, ваш компьютер должен быть подключен к Интернету, поскольку программа установки извлекает некоторые файлы перед установкой GRUB, если ваш компьютер не подключен к Интернету, установка завершится неудачно.
это поможет мне исправить эту неудачную установку, перейдите к выполнению оболочки, введите эту команду и снова вернитесь к grub install для настройки дисков:
chroot /target /bin /bash
root @ kali:/# apt-get установить grub-pc
Надеюсь это поможет 🙂
По некоторым причинам Linux не может правильно определить сетевое соединение, и, следовательно, grub не может быть установлен в конце установки.
В моем случае я мог обойти эту проблему, нажав назад и перейти к диспетчеру пакетов и изменить сетевое зеркало с ДА на НЕТ. Затем щелкнул следующий далее, и он завершил установку отлично! Однако после установки мне пришлось загрузить и снова включить сетевое зеркало, чтобы иметь возможность устанавливать приложения из онлайн-хранилищ. Просто введите следующие команды:
и раскомментируйте deb http://http.kali.org/kali kali-rolling main contrib non-free
Надеюсь это поможет!
Кали установка, это все о выборе.
-1. отформатируйте диск, используя систему PE, нам нужен чистый диск, или что-то пойдет не так
использовать refus сделать драйвер USB
просто чтобы быть в безопасности, используйте режим микширования на основе MBR
использовать режим dd для защиты отсутствующей прошивки Wi-Fi (iso файл принадлежит Windows, а Windows не подходит для драйверов)
если вы можете отключить безопасную загрузку, вы можете использовать UEFI при установке, иначе просто используйте BIOS
Источник
Статья Восстанавливаем GRUB в Kali Linux после обновления до Windows 10
Автор статьи: AndreyKravets, первоначально статья опубликована по адресу Відновлюємо GRUB в Kali Linux після оновлення Windows 10, другие статьи автора вы можете найти на сайте http://andrey.lviv.ua.
Привет всем! Недавно столкнулся с такой проблемой, как восстановление загрузчика GRUB на ноуте с двумя операционками – Windows 10 и Kali Linux. В интернете пришлось довольно долго искать необходимый мануал, поскольку с подобным мало кто сталкивается. В основном пишут о восстановлении GRUB в Ubuntu, а это не совсем подходит для Kali. Поэтому решил поделиться своим опытом – возможно кому-то пригодится.
Вообще-то две (а иногда и более) принципиально различных ОС на моих компьютерах уживаются уже несколько лет, ничего удивительного в этом нет. Главное сохранить правильную очередность при установке ОС. Сначала ставим винду, оставляя часть диска неразмеченным под Linux, а после уже устанавливаем и последнюю ОС. Загрузчик Linux-а при этом автоматически определяет, что установлена Windows или другая ОС и вам остается только выбирать при загрузке нужную систему.
Так было до последнего времени и на новом ноуте – стояла Windows 8.1 и Kali Linux. Все работало без проблем, пока не решил попробовать новую Windows 10 (инсайдер-версию) для теста. Ее установил на место старой 8.1 при этом хитрая форточка, как всегда, перезаписала загрузчик GRUB. Переустанавливать Kali Linux не хотелось, поскольку там было сделано достаточно много настроек и наработок. Поэтому пришлось искать другой выход.
Для восстановления загрузчика нам понадобится LiveCD версия линукс, установленная на оптический диск, или usb носитель. Загружаемся с нашего носителя в обычном режиме, открываем консоль. Если вы не помните на каком разделе у вас стоит Linux, следует сначала воспользоваться командой:
Далее можем выполнять следующие команды (обращайте внимание на каком разделе у вас стоит Linux, его и подставляете вместо sda1)
Все! Делаем reboot и наблюдаем знакомое меню выбора ОС. Если вдруг пункт Windows в нем отсутствует (что очень маловероятно), выполняем в консоли под root-ом еще одну команду:
должно помочь. Успехов вам!
MIRK
05.10.2015 в 18:40
Прошу помочь в таком вопросе, перерыл кучу всего в гугле, но там либо нечего нет, либо я не понимаю что и как, а вопрос собственно вот в чем при установки кали линукс с флешки вместо стандартной установки появляется консоль grub и все что делать далее я вообще не понимаю, прошу обратить внимание на то что до этого стояла кали я ее не правильно снес и хотел поставить эту сверху но не фига не получилось конечно же, поставил другой вообще винт который фиг знает как отфарматирован но раб 100% биос его видит и флешку тоже, что и как уставновить подскажите пожалуйста, аж самому интересно взять и сделать научиться как нужно))заранее спасибо)
DOCENT
05.10.2015 в 22:07
Я если честно запутался в этой истории ))) Поподробней, неспеша, с запятыми. Может чем подскажу.
ANDREY
15.11.2015 в 01:25
Здравствуйте,
Правильно ли я понял, что если у меня /boot отдельным разделом, то мне проделывать все эти операции там?
ANDREY
15.11.2015 в 02:01
Не хватило терпения дождаться) Попробовал проделать все с boot разделом – нет этих папок (dev, proc, sys)
Пробовал через раздел с Линуксом – grub2 не видит Кали, только Винда…
Вот мой список разделов:
SSD
/dev/sdb1 * Linux (/boot)
/dev/sdb2 Linux (основной)
HDD
/dev/sda1 Linux (swap)
/dev/sda2 Linux (/home)
/dev/sda3 * Windows
Как быть? Что делать?
ANDREY
15.11.2015 в 02:33
Сам спросил, сам отвечу.
Сначало смонтировал как советовал автор.
mount /dev/sdb2 /mnt
А потом отдельно папку boot
mount /dev/sdb1 /mnt/boot
Ну и соответственно grub инсталил на sdb
grub-install /dev/sdb
В конце при umount /mnt Система руганулась что папка занята. После ребута полёт нормальный.
Большое спасибо Автору статьи, она мне очень помогла.
РОМАН
25.11.2015 в 19:00
что делать если kali linux 2.0 не может распознать команду update-grub?
АЛЕКСАНДР
27.02.2016 в 14:00
у меня ноутбук asus k56cb. стоит widows 8.1, рядом поставил kali linux 2.0. Grub не появился, грузится только винда. Получилось сделать из этой статьи всё кроме последнего. У меня тоже не знает команды update-grub. Может в биосе что-то поменять, но я ничего не нашел
АЛЕКСАНДР
27.02.2016 в 15:32
а почему update-grub команду не распознает не знаете?
КОНСТАНТИН
07.03.2016 в 07:18
в ubuntu восстанавливал загрузчик без проблем, тут грузанулся с kali live cd пишу –bind и т.д. – а в ответ –bind command not found
как решить эту проблему? grub-install тоже самое пишет!
Источник
I am installing kali linux on my pc. while installing install the grub boot loader on a hard disk
.
I am trying to install kali linux with grub as your bootloader and that step is failing.
Error: GRUB installation failed.
The 'grub-pc' package failed to install into /target/. Without the GRUB boot loader, the installed system will not boot.
I used bootable pendrive.
An error message like grub installation failed . what should I do ?
I am made a rufus usb insatller with kali linux . then Install manually, after install the system then I’m stuck in installing the grub boot load
Grub installation failed
the grub-pc package failed to install into /target without the GRUB boot loader this installed system will not boot
Then I select execute a shell,
mount --bind /dev /target/dev
mount --bind /dev/pts /target/dev/pts
mount --bind /proc /target/proc
mount --bind /sys /target/sys
chroot /target /bin/bash
root@kali:/# apt-get install grub-pc
reading package list done
building package list done
building dependency tree
reading state information done
packege grub-pc is not available ,but is reffered to by anther package this may mean that the package is missing, has been obsoloted or is only available from another source
You probably don’t need grub
. The thing is — your UEFI firmware is your bootloader — it already is. When you boot through grub
you actually chainload bootloaders — this is unnecessary redundancy. I use rEFInd
— it’s a boot manager only — it just allows you to choose what to boot then relays that back to firmware and the firmware does the booting. It’s not much more than a menu.
This is a good thing because the linux kernel is an EFI-executable binary itself — you can boot linux without any boot-manager/loader at all just by execing it from firmware. I would recommend that option as well, but it’s not quite as flexible as an intervening menu manager like rEFInd
because you have to rely on the firmware developers to provide that interface — and that can be iffy. But if you’re interested look into the efibootmgr
interface — it will require setting persistent firmware variables.
The following is a tutorial on how to use first dd
then gdisk
to ensure you have a bootable EFI system partition.
Just to ensure the partition table is completely clear before starting, you should write over some very early blocks on that disk:
dd ibs=4M count=1 if=/dev/zero of=/dev/${USB_DISK}
Now we get into gdisk
. Substitute whatever /dev/...
device file your usb disk is on for /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): ?
Use ?
for the menu to view all options first, but the first one you need to write a clean GPT partition table is o
:
...
Proceed? (Y/N): y
Next you’ll need an EFI-system partition. Use the n
command to create a n
ew partition. At the below prompts where you don’t see the key entered it’s because I just hit ENTER
to agree to the default:
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
If you hit L
at the last prompt above you’ll get a list of all the available partition types but what you need is type ef00
for efi system partition. Do n
again as many times as you need to create any other partitions you might need for /
or swap or whatever. Again, use L
to view the different types, but the defaul 8300 should work for all but swap.
Have a look at your new partition table with p
then follow it up with w
if you like looks of it to write out your pending changes:
...
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
Now create a fat
filesystem on your EFI-system partition. -n
names the partition. I like to use ESP
:
mkfs.vfat -n ESP /dev/${USB_DISK}1
mkfs.fat 3.0.26 (2014-03-07)
Use mkfs.${desired_file_system} /dev/${USB_DISK}[num]
for all other partitions you might require. It would be best if you used that filesystem’s --help
to find out how to specify a GPT label for the partition as well.
Get the refind.bin.*.zip
you’ll find here then unpack it to your disk and then we’ll install your bootloader:
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
...
So now you’ve got a bootmanager. After installing your linux system to the disk you’re going to need to do the following:
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
That just about does it. You will need to setup rEFInd
a little bit. Substitute your root filesystem’s GPT label for ${GPT_LABEL}
below:
echo '"Kali" "root=LABEL=${GPT_LABEL} rootwait"'
>/mnt/bootdisk/EFI/kali_linux/refind_linux.conf
That should give you a bootable system. Please look through the main refind.conf
in ../BOOT
— it’s very well commented and pretty much documents itself. You’ll also want to head over to rodsbooks.com and read the docs there.