GRUB
- История. Почему оно такое?
- Архитектура:
- первичный загрузчик, полуторный, «большой»
- модули, root device
- командная строка
- конфиг
- меню
- генератор конфигов в linux-системе
сборка образа: grub-mkimage, grub-rescue, …, каталоги /usr/lib/grub/*
- Возможности: ФС, …
loopback — файл в качестве устройства
- Сеть:
- в GRUB2 нет драйверов сетевых карт
- только после того, как загружен по PXE, доступны всякие сетевые команды
если PXE настроен, но GRUB загружен не через него, сети всё равно не видно
- В grub, загружаемый по сети, должны входить не только модули, но и шрифты, например
- Проект прошивки:
- PXE на карточке всегда включено, но на сервере ничего, кроме настроек IP, не раздаётся
- В нормальном случае GRUB загружается с диска
Он выбирает образ с плеером (это ISO или каталог с vmlinuz/initrd/squashfs) и загружает оттуда систему, передавая ей правильные параметры
- Система сама должна по этим параметрам понять, где у неё root
- В случае чего, на сервере включается bootp/tftp и отдаётся новый grub с новыми конфигами
вариант: это тот же самый GRUB, и тот же самый конфиг в котором только перебит default boot.
- при этом все образы плееров называются одинаково (например, 1,2,3,4), и мы сами их перетасовываем плеером в момент торрентования
- вариант: конфиг может быть другими, тогда что хотим, то туда и пишем
возникает обратная зависимость по загрузке: пока не запустим в плеере grub-mkconfig, не получим нового варианта загрузки
- Бывают «спецплееры» для тех, кому кровь из носу нужно на нативной системе работать
под них можно зарезервировать вообще отдельный grub-izvrat.cfg, рулить им из базового плеера и грузить с помощью configfile grub-izvrat.cfg
Стенд на Ы14
В каталоге /home/vmuser/grubs
- Запуск загрузки по PXE для KVM (заодно с доступом по VNC):
$ kvm -m 4G -hda grubs.qcow2 -net nic -boot n -net user,bootfile=/grub.pxe,tftp=`pwd` -display vnc=0.0.0.0:10
конфиг-файл /etc/grub.d/40_custom для загрузки ядра и initrd из исошника дистибутивов ALT, плюс параметры ядра для того, чтобы оно оттуда заработало:
exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. menuentry 'JEOS' { loopback iso (hd0,msdos5)/jeos.iso linux (iso)/syslinux/alt0/vmlinuz ro stagename=altinst automatic=method:disk,disk:sda,partition:sda5,directory:/jeos.iso ramdisk_size=640000 showopts vga=0x314 verbose initrd (iso)/syslinux/alt0/full.cz } menuentry 'XFCE' { loopback iso (hd0,msdos5)/xfce.iso linux (iso)/syslinux/alt0/vmlinuz fastboot ro stagename=live automatic=method:disk,disk:sda,partition:sda5,directory:/xfce.iso ramdisk_size=640000 showopts verbose initrd (iso)/syslinux/alt0/full.cz
- Сборка загружаемого по pxe варианта GRUB (отфильтрованы некоторые модули, потому что слишком большой получается)
grub-mkimage -O i386-pc-pxe -o grub.pxe `ls -sSr /usr/lib64/grub/i386-pc/*.module | egrep -v 'regexp|gcry|efiemu|zfs' | sed 's@.*/\(.*\).module@\1@'`
TODO
TODO есть PXE для VBox, только из коммандлайна
TODO проверить, можно ли у GRUB, загруженного по PXE, поменять root на hda, чтобы savedefaults происходил туда
сформировать работающий GRBU-pxe со шрифтами и всем
выдержка из telegram
FrBrGeorge: а я по грубу хотел что-то вроде конспекта. это по горячему надо делать, так как-то неинтересно
ArsenyMaslennikov: туда тоже неплохо. у нас была вялая дискуссия, что в грубе, потом демки до упаду.
FrBrGeorge: ну эт да, странно, что в тлгрм нафлутдили и сдулись
ArsenyMaslennikov: демки: доказательство существования прошивки, configfile затирает предыдущую конфигурацию, показан процесс модификации и пересбора прошивки.
FrBrGeorge: вотвотвот, что-то ещё было
ArsenyMaslennikov: на основании док-ва спроектировали рабочий вариант прошивки (вот это-то самое важное). хотели посмотреть, как в грубе реализованы подменюшки
FrBrGeorge: а, как всё скопом загрузить, вот что не сделали, то лапы ноют, то фонт отваливается
ArsenyMaslennikov: да, было уже время позднее.
FrBrGeorge: и ещё можно ли root перебить, чтобы на него дефолт записывался
ArsenyMaslennikov: предположили, что всё можно зашить в образ груба, SergeyKorobkov не хотел фонты зашивать (мол, тяжеловато).
Category762