Boot uefi legacy: В чем разница между UEFI и Legacy BIOS

PXE сервер для развертывания РЕД ОС с загрузкой в UEFI или Legacy

На нашем Youtube-канале вы можете подробнее ознакомиться с информацией по установке и настройке PXE-сервера, просмотрев видео Настройка PXE с аутентификацией и KICKSTART, а также найти много другой полезной информации.

1. Сначала установите необходимые пакеты на сервер. Для этого перейдите в сеанс пользователя root:

su - 

и выполните команду:

dnf install dhcp tftp-server syslinux httpd dnf-plugins-core -y

Здесь и далее команды будут выполняться с правами пользователя root, если не указано иное.

2. Создайте следующие каталоги:

mkdir /var/lib/tftpboot/pxelinux.cfg
mkdir /var/lib/tftpboot/uefi
mkdir -p /var/lib/tftpboot/images/REDOS

3. Следующей командой скопируйте файлы для запуска установки РЕД ОС в режиме legacy через PXE:

cp /usr/share/syslinux/{chain.c32,mboot.c32,memdisk,menu. c32,pxelinux.0,ldlinux.c32,libutil.c32} /var/lib/tftpboot/
chmod 777 /var/lib/tftpboot/pxelinux.0

4. Скопируйте файлы для UEFI режима установки РЕД ОС в каталог /var/lib/tftpboot/uefi.

Для этого выполните последовательность команд:

dnf download shim-x64 grub2-efi-x64 --downloaddir=/root/
cd /root/
rpm2cpio shim-x64-*.rpm | cpio -dimv
rpm2cpio grub2-efi-x64-*.rpm | cpio -dimv
cp ./boot/efi/EFI/BOOT/BOOTX64.EFI /var/lib/tftpboot/uefi
cp ./boot/efi/EFI/redos/grubx64.efi /var/lib/tftpboot/uefi

chmod 777 /var/lib/tftpboot/uefi/*.*

5. Подключите загрузочный USB-носитель с РЕД ОС 7.3 и скопируйте его содержимое в каталог /var/lib/tftpboot/images/REDOS:

cp -vR "/run/media/user/redos-MUROM-7.3.2 x86_64/." /var/lib/tftpboot/images/REDOS

Также возможен вариант копирования из iso-образа.

Смонтируйте образ:

mount -t iso9660 -o loop redos-MUROM-7.3.2-20221027.0-Everything-x86_64-DVD1. iso /mnt/

Скопируйте все содержимое в каталог /var/lib/tftpboot/images/REDOS/:

cp -vR /mnt/* /var/lib/tftpboot/images/REDOS/

Размонтируйте образ:

umount /mnt/

6. Конфигурирование DHCP-сервера.

В файле /etc/dhcp/dhcpd.conf укажите свои значение для вашей подсети, а именно шлюз и выдаваемый диапазон IP-адресов. Параметру next-server назначается IP-адрес DHCP-сервера.

Зеленым цветом выделены сетевые параметры для изменения под вашу конфигурацию сети.

nano /etc/dhcp/dhcpd.conf

non-authoritative;
allow bootp;
option space pxelinux;
option pxelinux.magic code 208 = string;
option pxelinux.configfile code 209 = text;
option pxelinux.pathprefix code 210 = text;
option pxelinux.reboottime code 211 = unsigned integer 32;
option architecture-type code 93 = unsigned integer 16;
subnet 192.168.2.0 netmask 255.255.255.0 {
option routers 192. 168.2.1;
range 192.168.2.70 192.168.2.80;
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 192.168.2.10;
if option architecture-type = 00:07 {
filename "uefi/grubx64.efi";
}
else {
filename "pxelinux.0";
}
}
}

Запустите службу dhcpd:

systemctl enable dhcpd --now

7.1 Создайте загрузочное меню для установки в режиме legacy с использованием PXE:

nano /var/lib/tftpboot/pxelinux.cfg/default

default menu.c32
PROMPT 0
TIMEOUT 150
MENU TITLE PXE Menu
LABEL REDOS 7.3
MENU LABEL REDOS 7.3
KERNEL images/REDOS/images/pxeboot/vmlinuz
APPEND initrd=images/REDOS/images/pxeboot/initrd.img ramdisk_size=128000 ip=dhcp inst.repo=http://192.168.2.10/images/REDOS/

7.2 Создайте загрузочное меню для установки в режиме UEFI с использованием PXE:

nano /var/lib/tftpboot/uefi/grub. cfg 

function load_video {
insmod efi_gop

insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod all_video
}
load_video
set gfxpayload=keep
insmod gzio
menuentry 'REDOS 7.3' {
linux images/REDOS/images/pxeboot/vmlinuz ip=dhcp inst.repo=http://192.168.2.10/images/REDOS/
initrd images/REDOS/images/pxeboot/initrd.img
}

8. Конфигурирование web-сервера httpd.

WEB-сервер используется для публикации файлов дистрибутива РЕД ОС в локальной сети.

Создайте файл:

nano /etc/httpd/conf.d/pxeboot.conf 

Alias /images /var/lib/tftpboot/images
<Directory /var/lib/tftpboot/images>
Options Indexes FollowSymLinks
Require ip 127.0.0.1 192.168.2.0/24
</Directory>

Запустите службу httpd:

systemctl enable httpd --now

9. Настройка и запуск службы tftp.

Откройте файл:

nano /usr/lib/systemd/system/tftp.service

и добавьте строку в секцию [Install]:

WantedBy=multi-user.target

Откройте файл:

nano /usr/lib/systemd/system/tftp.socket

измените строку ListenDatagram=69 на ListenDatagram=0.0.0.0:69, чтобы запустить tftp на 69 порту по IPv4-протоколу. По умолчанию порт публикуется на IPv6.

[Unit]
Description=Tftp Server Activation Socket

[Socket]
ListenDatagram=0.0.0.0:69

[Install]
WantedBy=sockets.target

После изменения модулей systemd их нужно инициализировать:

systemctl daemon-reload

Добавьте службу tftp в автозапуск:

systemctl enable tftp --now

Если selinux находится в статусе enforcing, то создайте модуль политики безопасности selinux, для разрешения доступа с клиентов к web-серверу, который участвует в установке РЕД ОС по сети.

ausearch -c 'httpd' --raw | audit2allow -M my-httpd
semodule -i my-httpd.pp

Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.

Автоматизация развертывания (kickstart)

linux — Как устаревший загрузчик UEFI узнает, где найти загрузчик второго этапа?

спросил

Изменено
6 лет, 7 месяцев назад

Просмотрено
3к раз

Большинство систем, с которыми я столкнулся, очень просто форматировали свои диски, используя только boot и разделы rootfs . У других также есть recovery (например, Windows) и swap , но я стараюсь не усложнять.

Я не читал ни одного стандарта, определяющего, в каком разделе должен находиться загрузчик. Я никогда ничего не читал о том, есть ли даже в качестве загрузочного раздела. Конечно, обозначение раздела как boot спорно; нам просто нужен какой-то раздел, который загружается в память и выполняется загрузчиком первого этапа (устаревший/UEFI).

Итак, мой вопрос: как загрузчик первой стадии находит загрузчик второй стадии? Это:

  • Ожидается таблица разделов?

  • Прочитать таблицу разделов с диска (или любого другого носителя, с которого вы загружаетесь) и проверить каждый на наличие загрузочного файла?

  • Ожидаете, что загрузчик второго этапа будет в первом разделе?

Я бы предположил второе из приведенного выше списка, но это результат только предположений. Я использую Linux в качестве основной ОС, но я полагаю, что этот процесс ранней загрузки не зависит от ОС.

  • linux
  • windows
  • загрузчик
  • uefi
  • биос

8

Нам нужно различать устаревшую систему (BIOS) и UEFI,
потому что они очень разные. На ПК без UEFI или ПК с UEFI
работает в устаревшем режиме, процесс загрузки выглядит следующим образом: сначала
BIOS загружает загрузочный сектор MBR в оперативную память и начинает выполнять загрузку
код. Поскольку загрузочный сектор имеет длину всего 512 байт и также содержит
таблицы разделов, загрузочный сектор не может содержать код, который
понимает внутренности даже самых простых файловых систем. GRUB
решает это установкой дополнительного кода в секторах 1-62 на жестком диске
водить машину. Этот участок дороги представляет собой более или менее «нейтральную зону» между
загрузочный сектор и начало первого раздела. Это так называемый
«Стадия 1.5» может читать файлы из файловой системы и загружает GRUB Stage.
2 и файлы конфигурации из каталога /boot.

Прошивка во флэш-памяти на материнской плате изменилась с момента
первые дни BIOS. В то время как BIOS может прочитать первый
сектор фиксированного набора устройств, тем более современные системы UEFI
понимать файловую систему FAT32 прямо в прошивке. Когда UEFI
загружается система, она сначала ищет системный раздел EFI. Диск
содержащий системный раздел, должен иметь таблицу разделов GUID
(GPT), а системный раздел распознается по фиксированному GUID. Система
раздел должен быть разделом FAT32, из которого читается прошивка
и выполняет загрузчик. Как вариант, первая программа
load также может быть менеджером загрузки, который позволяет пользователю выбирать
какой загрузчик (и, следовательно, какая операционная система) должен быть
казнен. UEFI также можно настроить с помощью переменных,
хранятся в энергонезависимой памяти на материнской плате.

2

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Требуется, но никогда не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie

.

двойная загрузка — Узнайте, являются ли Windows 10 UEFI или Legacy через терминал Linux

спросил

Изменено
1 год, 1 месяц назад

Просмотрено
719 раз

Я попытался установить Ubuntu 20.04, создав разделы efi, swap и файловой системы. В конце установки возникла ошибка, говорящая о том, что grub не может быть установлен, фатальная ошибка. Теперь я не могу загрузить ни Linux, ни Windows. Я могу загрузить ubuntu только с флешки. Мне интересно, возникает ли проблема из-за того, что Windows находится в устаревшем режиме. Есть ли какое-либо решение, чтобы проверить, находятся ли окна в устаревшем режиме через терминал?

  • двойная загрузка

2

Думаю проще просто поискать это в биосе.

Войдите в BIOS, нажав клавишу, указанную в руководстве к вашему ПК (или просто выполните поиск в Интернете), и найдите «режим совместимости» или что-то в этом роде, обычно в разделе «загрузка». Если опция существует, ваш компьютер определенно UEFI.

Еще один способ проверить это — найти его на веб-сайте производителя, например DELL. Например, мой ноутбук указан в технических характеристиках.

Редактировать:

Вы перезаписали раздел Windows? Потому что в этом случае вы не сможете проверить, как раньше загружалась Windows.

Еще один способ сделать это — создать загрузочную флешку Windows с помощью WoeUSB в live-сеансе Ubuntu, а затем использовать восстановление при загрузке для Windows 10/11.

16

Конечная проблема заключалась в том, что Windows была на Legacy , а установку Linux пытались реализовать в uefi , этого не может быть. Обе операционные системы должны быть установлены либо легаси, либо uefi.

Читайте также: