На дворе 2025-й год и GRUB2 прочно занимает пальму лидерства среди загрузчиков различных линуксовых дистрибутивов. Несмотря на это, я до сих пор пользуюсь grub4dos в качестве первичного загрузчика на своих устройствах под управлением MS Windows. Да и на разных флешках тоже стоит grub4dos для организации мультизагрузки — уж очень мне нравится его возможность грузиться из ISO-образа. И, если с загрузкой всяких WinPE проблем нет в принципе, то с загрузкой линуксовых дистрибутивов в live-режиме уже есть нюансы. В рамках актуализации дистрибутивов я перепроверяю параметры загрузки через grub4dos.
Дистрибутивов у меня совсем немного, их я складываю в директорию ISO, она находится в корне относительно самого загрузчика grub4dos. Под номером 1 расположен Slax. Кстати, на текущей момент есть два вида дистрибутивов Slax — на базе Slackware и на базе Debian. Наш — тот, что на базе Slackware. Его конфигурация загрузки достаточно простая:
iftitle [if exist /ISO/slax-64bit-slackware-15.0.4.iso] [ISO] Slax Linux
set ISO=/ISO/slax-64bit-slackware-15.0.4.iso
map %ISO% (0xff) || map --mem %ISO% (0xff)
map --hook
kernel (0xff)/slax/boot/vmlinuz from=%ISO%
initrd (0xff)/slax/boot/initrfs.img
Дальше под номером 2 у меня дистрибутив Tails, он сделан на базе Debian. Тут уже интереснее: несмотря на то, что, как и Slax, этот дистрибутив был изначально сделан для загрузки в live-режиме, конфиг выглядит чуть сложнее, нужно передавать дополнительные параметры загрузки ядра:
iftitle [if exist /ISO/tails-amd64-6.10.iso] [ISO] Tails Linux
set ISO=/ISO/tails-amd64-6.10.iso
map %ISO% (0xff) || map --mem %ISO% (0xff)
map --hook
kernel (0xff)/live/vmlinuz boot=live config apparmor=1 security=apparmor nopersistent block.events_dfl_poll_msecs=1000 toram=filesystem.squashfs module=Tails
initrd (0xff)/live/initrd.img
Номер 3 временно занял дистрибутив Obscurix в качестве конкурента Tails. Сразу скажу, что на конкурента он пока что не тянет, все очень сыро и не очень стабильно. Этот дистрибутив основан на Arch и его загрузка самая проблемная — впрочем, как и у многих других дистрибутивов на базе Arch:
iftitle [if exist /ISO/Obscurix-0.3.1-x86_64.iso] [ISO] Obscurix Linux
set ISO=/ISO/Obscurix-0.3.1-x86_64.iso
map %ISO% (0xff)
map --hook
uuid () && call set UUID=%^?%
kernel (0xff)/arch/boot/x86_64/vmlinuz earlymodules=loop img_dev=/dev/disk/by-uuid/%?_UUID% img_loop=%ISO% archisodevice=/dev/loop0
initrd (0xff)/arch/boot/intel_ucode.img (0xff)/arch/boot/amd_ucode.img (0xff)/arch/boot/x86_64/archiso.img
Под номером 4 расположился Kali Linux, самый популярный дистрибутив у пейнтестеров и не только. Сделан на базе Debian, проблем с загрузкой нет:
iftitle [if exist /ISO/kali-linux-2024.4-live-amd64.iso] [ISO] Kali Linux
set ISO=/ISO/kali-linux-2024.4-live-amd64.iso
map %ISO% (0xff) || map --mem %ISO% (0xff)
map --hook
kernel (0xff)/live/vmlinuz boot=live findiso=%ISO% toram=filesystem.squashfs
initrd (0xff)/live/initrd.img
В большинстве дистрибутивов параметры загрузки можно подсмотреть разобрав загрузочную секцию GRUB2, как правило — все достаточно легко перекладывается на grub4dos.