Инструменты пользователя

Инструменты сайта


it:xen_-_pvgrub

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
it:xen_-_pvgrub [2020/05/18 18:17] puse_vivatit:xen_-_pvgrub [2020/05/18 19:23] (текущий) puse_vivat
Строка 1: Строка 1:
 ====== XEN - pvgrub ====== ====== XEN - pvgrub ======
  
-PVGrub - вариант загрузчика grub, собираемый из исходных кодов оригинального grub для загрузки на архитектуре Xen. Никаких BIOS, UEFI и тому подобного - только PV, только хардкор. Не хотел бы я быть на месте этого загрузчика - каково это, очнуться и понять, что ты существуешь где-то, но у этого где-то нет никаких привычных свойств...+По мотивам [[https://wiki.xenproject.org/wiki/PvGrub2|умной статьи]]
  
-Тот факт, что pvgrub выполняется внутри гостя, гарантирует большее соблюдение стандартов безопасности, особенно по сравнению с pygrub, который мало того, что написан на python, но ещё и выполняется в dom0 и, соответственно, полностью подчинён админу или зловредам.+PVGrub - вариант загрузчика grub, собираемый из исходных кодов оригинального grub для загрузки на архитектуре Xen-PV. Никаких BIOS, UEFI и тому подобного - только PV, только хардкор. Не хотел бы я быть на месте этого загрузчика: какого это, очнуться и понять, что ты существуешь где-то, но у этого где-то нет никаких привычных свойств, формы, цвета, направлений...\\ 
 + 
 +---- 
 + 
 +Земля же бе невидима и неустроена, и тма верху бeздны, и дух бжій ношaшеся верху воды. (Бытие 1:2)\\ 
 +«и Дух Божий носился…» В объяснении этих слов толковники довольно сильно расходятся между собою: одни видят здесь простое указание на обыкновенный ветер, ниспосланный Богом для осушения земли (Тертуллиан, Ефрем Сирин, Феодорит, Абен-Езра, Розенмюллер), другие — на Ангела, или особую умную силу, назначенную для той же цели (Златоуст, Кайзетан и др.), третьи, наконец, — на Ипостасного Духа Божия (Василий Великий, Афанасий, Иероним и большинство прочих экзегетов). Последнее толкование предпочтительнее прочих: оно указывает на участие в деле творения и третьего лица Святой ТроицыДуха Божия, являющего Собой ту зиждительно-промыслительную силу, которая, по обще-библейскому воззрению, обусловливает происхождение и существование всего мира, не исключая и человека (Быт.2:7; Пс.32:6; Иов.27:3; Ис.34:16; Деян.17:29 и др.). Самое действие Святого Духа на хаос уподобляется здесь действию птицы, сидящей в гнезде на яйцах и согревающей их своей теплотой для пробуждения в них жизни (Втор.32:11). 
 + 
 +---- 
 + 
 +Тот факт, что <del>особая умная сила</del>pvgrub выполняется внутри гостя, гарантирует большее соблюдение стандартов безопасности, особенно по сравнению с pygrub, который мало того, что написан на python, так ещё и выполняется в dom0 и, соответственно, полностью подчинён админу или зловредам.
  
 Несколько фактов о pvgrub: Несколько фактов о pvgrub:
   * пакет, называющийся как-то типа xen-pvgrub есть в gentoo, но нет в centos   * пакет, называющийся как-то типа xen-pvgrub есть в gentoo, но нет в centos
-  * пакет этот даже в генте абсолютно лишён смысля, так как поставляет пресобранный grub-0.97, сегодня мало кому нужный+  * пакет этот даже в генте абсолютно лишён смысла, так как поставляет пресобранный pvgrub-0.97, сегодня мало кому нужный
   * лучший способ получить нужный pvgrub - собрать его с помощью команды grub-mkimage (или grub2-mkimage, в зависимости от дистрибутива)   * лучший способ получить нужный pvgrub - собрать его с помощью команды grub-mkimage (или grub2-mkimage, в зависимости от дистрибутива)
-  * так как pvgrub - плоть от плоти полноценного grub, то наследует все его свойства и нововведения. Следовательночтобы pvgrub начал поддерживать изменившийся формат конфигов grub версии 2.04, достаточно собрать pvgrub с помощью grub2-mkimage из grub версии 2.04. И всё )+  * так как pvgrub - плоть от плоти полноценного grub, то наследует все его свойства и нововведения. К сожалениюэто не относится к новому конфигу grub 2.04
  
-Однако, есть и "особенность". К примеру, в centos пакет grub не содержит архитектуру xen, так что собрать загрузчик под арзитектуру xen не представляется возможным.+Однако, есть и "особенность". К примеру, в centos пакет grub собран без поддержки архитектуры xen, так что собрать загрузчик под архитектуру xen не представляется возможным.
  
-Как всегдана помощь приходит gentoo )+Памятуя про проблему изменившегося формата конфига между версиями 2.02 и 2.04 отключаем формирование нового типа конфига в centos 8: 
 +  * убеждаемся, что в /etc/default/grub есть строка "GRUB_ENABLE_BLSCFG=false" 
 +  * перегенерируем конфиг - "grub2-mkconfig -o /boot/grub2/grub.cfg"
  
-Памятуя про проблему изменившегося формата конфига между версиями 2.02 и 2.04 ставим сначала версию 2.02, собираем pvgrubзатем ставим 2.04 и собираем ещё один pvgrub:+Теперь собираем pvgrubКак всегда, на помощь приходит gentoo ) :
  
-''GRUB_PLATFORMS="pc xen" emerge -av1 =sys-boot/grub-2.02-r4\\ +''GRUB_PLATFORMS="pc xen" emerge -av1 =sys-boot/grub-2.04-r1\\
-grub-mkimage -O x86_64-xen -c /root/grub.cfg -o grub-2.02-x86_64-xen.bin /usr/lib/grub/x86_64-xen/*.mod -p /usr\\ +
-GRUB_PLATFORMS="pc xen" emerge -av1 =sys-boot/grub-2.04-r1\\+
 grub-mkimage -O x86_64-xen -c /root/grub.cfg -o grub-2.04-x86_64-xen.bin /usr/lib/grub/x86_64-xen/*.mod -p /usr'' grub-mkimage -O x86_64-xen -c /root/grub.cfg -o grub-2.04-x86_64-xen.bin /usr/lib/grub/x86_64-xen/*.mod -p /usr''
  
Строка 28: Строка 37:
 ''normal (xen/xvda,msdos1)/boot/grub2/grub.cfg'' ''normal (xen/xvda,msdos1)/boot/grub2/grub.cfg''
  
-...что означает "загрузи в качестве конфига файл /boot/grub2/grub.cfg с файловой системы, расположенной на первом разделе ms-dos разметки блочного устройства xvda". По счастливой случайности на наших centos-гостях разметка разделов именно такая, так что шрузиться будет без проблем даже без дополнительной конфигурации.+...что означает "загрузи в качестве конфига файл /boot/grub2/grub.cfg с файловой системы, расположенной на первом разделе ms-dos разметки блочного устройства xvda". По счастливой случайности на наших centos-гостях разметка разделов именно такая, так что грузиться оные будут без проблем даже без дополнительной конфигурации.
  
 Так как мы собираем загрузчик исходя из требований универсальности, то включаем в него все доступные модули (поддержка ФС, накопителей и т.п.) - *.mod это как раз про это. Так как мы собираем загрузчик исходя из требований универсальности, то включаем в него все доступные модули (поддержка ФС, накопителей и т.п.) - *.mod это как раз про это.
  
-Прейикс /usr мы указываем, чтобы уточнить, где находятся файлы установленного grub, по образу которых мы и собираем нашего "узкого специалиста". Чтож, если используется не gentoo, то геморрой с ручной компиляцией нужного grub в "папочку" не баг, а фича )+Префикс /usr мы указываем, чтобы уточнить местонахождение файлов установленного grub, по образу которых мы и собираем нашего "узкого специалиста". Чтож, если используется не gentoo, то геморрой с ручной компиляцией нужного grub в "папочку" не баг, а фича ) Кстати, по ссылке в начале статьи описан именно он - желающие могут причаститься (если кратко, то "./configure --target=amd64 --with-platform=xen").
  
-Что жу происходит далее?+Что же далее?
  
 Берём сферический конфиг виртуалки в вакууме. Ну, к примеру, вот такой: Берём сферический конфиг виртуалки в вакууме. Ну, к примеру, вот такой:
Строка 59: Строка 68:
  
 ... и вместо строки bootloader... пишем: ... и вместо строки bootloader... пишем:
-''kernel = "/etc/xen/grub-2.02-x86_64-xen.bin"''\\ 
  
-Voila! Теперь при старте гостевой виртуальной машины внутрь загружается "ядро"-pvgrub, который, используя встроенный конфиг, лезет в xvda1, читает там grub.cfg и отображает привычное нам grub-меню и далее по тексту. Всё работает, можно начинать хейтить pygrub.+''kernel = "/etc/xen/grub-2.04-x86_64-xen.bin"''\\ 
 + 
 +и, если вдруг захочется, дополнительные параметры: 
 + 
 +''normal (xen/xvda,msdos1)/boot/grub2/grub.cfg'' 
 + 
 +Voila! Теперь при старте гостевой виртуальной машины внутрь загружается "ядро"-pvgrub, который, используя встроенный конфиг, лезет в xvda1, читает там grub.cfg и отображает привычное нам grub-меню, ну и далее по тексту ("...и отделил Бог свет от тьмы..."). Всё работает, можно начинать хейтить pygrub.
it/xen_-_pvgrub.txt · Последнее изменение: 2020/05/18 19:23 — puse_vivat