O problema
O carregador de boot do YUMI UFD (Syslinux) parece ter informações codificadas para que ele não possa ser copiado para o MBR do disco virtual com:
dd if=/dev/sdb of=/dev/sda bs=446 count=1
A solução
Reinstale o Syslinux diretamente no MBR do disco virtual com:
syslinux --directory /multiboot --install /dev/sda1
--directory
é o diretório onde syslinux.cfg
e os outros arquivos de configuração do Syslinux estão localizados. Por simples inspecção do YUMI UFD entende-se que é multiboot
.
A solução com script
#!/bin/sh -xv
# Partition and Format fat32 first VM disk
if (mountpoint -q /vdk); then umount /vdk; fi
echo "1,,c,*" | sfdisk /dev/sda
mkdosfs -F 32 /dev/sda1
# Mount v-disk
mkdir -p /vdk
mount -t vfat /dev/sda1 /vdk
# Mount usb-disk
mkdir -p /usb
if (mountpoint -q /usb); then umount /usb; fi
mount -t vfat /dev/sdb1 /usb
#Copy files from UFD to v-disk
cp -a /usb/* /vdk
#Install Syslinux relative to YUMI config file directory
syslinux --directory /multiboot --install /dev/sda1
Observação YUMI passa para o Arch (via Syslinux) o parâmetro de inicialização archisolabel=MULTIBOOT
.
Atualmente, apesar de sda
não ser rotulado como MULTIBOOT
, o Arch será inicializado. De qualquer forma, você pode querer tornar o script mais robusto ao acrescentar:
mlabel -s -i /dev/sda1 ::MULTIBOOT
Mais Investigação
Outras investigações mostram se o YUMI ou o Syslinux MBR não são portáteis.