Pro bios-bootable flash (tj. ne-UEFI) je potřeba mít na flashdisku partition tabulku, flashdisky často mívají jen filesystém přes celou svojí velikost bez PT (tj. filesystém je přímo přes /dev/sdX a není žádné /dev/sdX1) a tam není kam dát zavaděč (ten se kromě samotného mbr instaluje i do místa mezi koncem partition table a začátkem první partition, což je minimálně 31kB, které na zavaděč stačí)
Momentálně jsem uspěl následujícím postupem [host machine: x86_64-efi booted, arch linux]
### data na flashdisku se samozřejmě tímto postupem ztratí ###
- pomocí fdisku
# fdisk /dev/sdX
jsem vytvořil novou DOS p.t. (o), poté jednu partition (n), její typ (t) nastavit na c - FAT32 (LBA)
- pak je potřeba vytvořit filesystém, následně ho přimountovat
# mkfs.vfat /dev/sdX1
# mkdir /mnt/foobar
# mount /dev/sdX1 /mnt/foobar
- grub pro boot v bios-módu na i386 systémech lze pak nainstalovat (klasicky) na počátek disku /dev/sdX
# grub-install /dev/sdX --target=i386-pc --recheck --boot-directory=/mnt/foobar/
- bootování v x86_64-efi módu lze zprovoznit takto
# grub-install /dev/sdX --target=x86_64-efi --root-directory=/mnt/foobar/
Jednou je "--boot-directory", podruhé "--root-directory". Při instalaci x86_64-efi měl grub-install nějaké výhrady ohledně GPT tabulky (??), ale nainstaloval se.
S takto připravenou flash se mi podařilo nabootovat do GRUB command promptu jak na starším netbooku (tj. i386-pc funguje), tak na novější desce s UEFI (tj. x86_64-efi také funguje).
Pro multiboot zbývá dopsat [/mnt/foobar]/boot/grub/grub.cfg
PS: Pokud postup nahoře nebude fungovat, tak: v jednu chvíli jsem přepsal prvních několik MB na flashdisku nulami - ovšem byla to asi zbytečnost, chyba byla myslím způsobená prohozením "--boot-directory" za "--root-directory"