Вопрос или проблема
У меня есть пользовательский установочный ISO образ RHEL7.8, который работает именно так, как и ожидалось, когда я записываю его на DVD и устанавливаю с этого диска с использованием UEFI. Теперь я пытаюсь обновить его, чтобы поддерживать установку с USB. Я могу создать ISO и выбрать его в качестве загрузочного устройства на своей тестовой системе, однако, когда я делаю свой выбор в меню grub, чтобы запустить установку, я получаю ошибку:
error: file '/images/pxeboot/vmlinuz' not found.
error: you need to load the kernel first.
Press any key to continue...
Что означает эта ошибка и как ее исправить?
Я обновил запись /EFI/BOOT/grub.conf
, чтобы указать, что носителем является USB, а не DVD
menuentry 'Option 1' --class fedora --class gnu-linux --class gnu --class os {
linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=MY_USB_LABEL quiet inst.ks=hd:LABEL=MY_USB_LABEL:/config/opt1/anaconda-ks-option1.cfg
initrdefi /images/pxeboot/initrd.img
}
а также скопировал обновленный grub.conf
в images/efiboot.img
.
mount images/efiboot.img /tmp/img
cp EFI/BOOT/grub.conf /tmp/img/EFI/BOOT/grub.conf
umount /tmp/img
Файл kickstart также обновлен для отражения USB носителя (и я могу использовать его успешно через Legacy Boot)
repo --name="USB Media" --baseurl=file:///mnt/install/repo # Добавлено для установки с USB, не уверен, что это необходимо
install
harddrive --partition=LABEL=MY_USB_LABEL --dir=/ # вместо cdrom для установки с DVD
Я генерирую сам ISO с помощью mkisofs
mkisofs -quiet -o test.iso \
-b isolinux/isolinux.bin \
-J -R -l \
-c isolinux/boot.cat \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-eltorito-alt-boot \
-e images/efiboot.img \
-no-emul-boot \
-graft-points \
-joliet-long \
-V MY_USB_LABEL iso_source/
isohybrid -uefi test.iso
implantisomd5 test.iso
а затем «записываю» его на USB устройство
dd if=test.iso of=/dev/sda
sync
Спасибо за любые идеи, мысли или другие отзывы!
Ответ или решение
Установка пользовательского ISO RHEL7 с поддержкой UEFI на USB накопитель: решение проблемы с загрузкой
Проблема, с которой вы столкнулись, связана с неправильной настройкой загрузки UEFI для вашего пользовательского ISO-образа RHEL7.8 на USB накопителе. Ошибка, которую вы видите — "error: file ‘/images/pxeboot/vmlinuz’ not found" — указывает на то, что загрузчик GRUB не может найти ядро системы, необходимое для загрузки. Давайте рассмотрим шаги для исправления данной ситуации.
1. Правильная структура ISO-образа
Первым делом убедитесь, что структура вашего ISO-образа соответствует требованиям UEFI. Основные моменты:
-
Проверьте наличие файлов: Убедитесь, что файлы ядра (
vmlinuz
) и инициализации (initrd.img
) действительно находятся в директорииimages/pxeboot/
. Вы можете сделать это, смонтировав ISO-образ и проверив его содержимое. -
Используйте правильные пути: Путь к файлам в конфигурации GRUB должен быть правильным. Если ваши файлы находятся в другом каталоге, обновите конфигурацию
grub.conf
в соответствии с фактическими путями.
2. Обновление grub.conf
Так как вы уже редактировали файл grub.conf
, убедитесь, что следующие строки правильно указывают на нужные файлы:
menuentry 'Option 1' --class fedora --class gnu-linux --class gnu --class os {
linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=MY_USB_LABEL quiet inst.ks=hd:LABEL=MY_USB_LABEL:/config/opt1/anaconda-ks-option1.cfg
initrdefi /images/pxeboot/initrd.img
}
Проверьте, что linuxefi
и initrdefi
указывают на существующие файлы, а inst.stage2
правильно указывает на метку USB.
3. Установка ISO на USB
Ваш процесс записи ISO на USB через dd
выглядит корректно, однако следует учесть следующие моменты:
-
Проверка устройства: Убедитесь, что
/dev/sda
является вашим USB-накопителем, и что там нет других активных разделов. Использование командыlsblk
может помочь вам проверить это. -
Использование
sync
: Обычно использование командыsync
послеdd
важно, чтобы записанные данные были полностью записаны на накопитель.
4. Создание эмуляции образа
Использование isohybrid
и implantisomd5
— это правильный шаг, но также убедитесь, что ваш ISO действительно совместим с UEFI. Иногда необходимо делать упор на использование системных утилит, таких как genisoimage
, если mkisofs
вызывает проблемы.
5. Убедитесь в совместимости BIOS/UEFI
Наконец, убедитесь, что ваш тестовый компьютер настроен на использование UEFI:
- Настройки BIOS: Проверьте, что режим UEFI активирован и режим Legacy отключен.
- Secure Boot: Возможно, вам нужно будет отключить Secure Boot в настройках UEFI, чтобы позволить загрузку пользовательских образов.
Заключение
После выполнения всех вышеперечисленных шагов, перезагрузите систему и попробуйте снова выполнить загрузку с USB. Важно также следить за тем, чтобы ваша конфигурация и структура соответствовали стандартам, так как даже небольшая ошибка может привести к сбоям загрузки. Если проблема не разрешится, попробуйте использовать другой USB-накопитель или даже другие утилиты для создания загрузочного носителя, такие как Rufus или UNetbootin, которые могут помочь создать оптимальный загрузочный USB-диск.