Мой дневник

18.10.2016

GRUB2 на USB флешке, часть 2

Filed under: Uncategorized — sae762 @ 16:47

После прочтения предыдущей статьи вы можете спросить, “зачем grub2 если есть syslinux или unetbootin?”

А вот зачем:

I. grub2 умеет загружать системы из iso-образов! это означает, что можно просто скачать на флешку свежий образ системы, немного поправить grub.cfg –  и можно пробовать!  Ложкой дегтя здесь является то, что образ iso не является полной эмуляцией cdrom, так что загружаемая система должна уметь найти себя в iso-образе. Точно умеют это делать Ubuntu и SystemRescueCD (см параметры ядра в примерах), про остальные надо гуглить.

для Ubuntu/Xubuntu/итп:

set iso=”/xubuntu-16.10-desktop-linuxium.iso”
loopback loop $iso
set root=(loop)

menuentry “Try Xubuntu without installing” {
set gfxpayload=keep
linux /casper/vmlinuz.efi iso-scan/filename=$iso file=/cdrom/preseed/xubuntu.seed boot=casper zswap.enabled=1 zswap.compressor=lz4 splash —
initrd /casper/initrd.lz
}

для SystemRescueCD:

set loop1=”/systemrescuecd-x86-4.8.2-beta001.iso”
insmod loopback
loopback loop $loop1
set root=(loop)
set kernel32=”/isolinux/rescue32 scandelay=3 isoloop=$loop1
set kernel64=”/isolinux/rescue64 scandelay=3 isoloop=$loop1
set initrd=”/isolinux/initram.igz”

menuentry “SystemRescueCd (64bit, default boot options)” {
linux    $kernel64
initrd    $initrd
}

… другие опции из файла isolinux.cfg (там наиболее полный список)

II. Единый /grub.cfg для всех вариантов загрузки – существенно упрощает жизнь

III. Grub2 понимает не только fat, но и другие системы. Значит, можно загружать системы, файлы которых расположены не на usb, а на жестком диске компьютера. Например, можно сложить все файлы RemixOS прямо на диск C: (где windows), и загружать remix из меню нашей флешки:

#на диске с windows создаем папку C:/RemixOS, сливаем туда файлы и добавляем пустой файлик remix-hd для удобства поиска. Data.img будет создан в той же папке /RemixOS. DEBUG добавлен на этапе тестирования.

menuentry ‘HD mode ‘  {
insmod ntfs
insmod part_msdos
search –file –no-floppy –set=root /RemixOS/remix-hd
linux /RemixOS/kernel root=/dev/ram0 androidboot.selinux=permissive SERIAL=random logo.showlogo=1 DATA=/data.img USB_DATA_PARTITION=1 CREATE_DATA_IMG=1 SRC=/RemixOS DEBUG=1
initrd /RemixOS/initrd.img
}

IV. Наконец, зная grub, вам не придется забивать голову другими загрузчиками )

Хотел написать отдельный пост о Remix под NTFS, но в пункте III собственно все и сказано.

ЗЫ: не делайте submenu в grub.cfg: submenu не наследует переменных! (баг или фича сложно сказать)

Advertisements

Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: