Mi sono creato una chiavetta USB (ma penso funzioni anche con una qualsiasi memoria a stato solido) avviabile.
Che c’è di strano? Nulla solo che all’avvio viene mostrato un menù di Grub2 il quale permette l’avvio delle immagini ISO presenti nella chiavetta stessa.
In questo modo posso avviare un’installazione di linux( Ubuntu, Mint, ecc.), un disco di ripristino tipo SystemRescueCD ed altri sistemi linux based. Purtroppo non funziona con le iso di Windows o almeno non ci sono riuscito io.
Per ora accontentatevi di Linux. 
Eccovi la procedura ovviamente da eseguire in Linux:
Iniziamo installando Grub su una chiavetta:
Per prima cosa bisogna lavorare come root ed individuare la chiavetta sul vostro sistema con questo comando:
sudo su
fdisk -l
Dopo di che bisogna partizionarla in questa maniera:
fdisk /dev/sdx (sostituendo x con la lettera della chiavetta che vogliamo partizionare)
Questi sono i comandi da dare a fdisk:
d ( per cancellare la partizione esistente )
n ( per creare una nuova partizione )
p ( per indicare che vogliamo creare una partizione primaria )
1 ( per indicare che vogliamo creare la prima partizione )
Invio ( per usare il primo cilindro )
Invio ( per indicare l'ultimo cilindro disponibile )
1 ( per indicare che la partizione è "bootable" )
w ( per scrivere le modifiche ed uscire da fdisk )
Dopo ciò va formattata la chiavetta:
umount /dev/sdx1
mkfs.vfat -F 32 -n MULTIBOOT /dev/sdx1 ( per formattare in fat32 )
Ora installiamo Grub2:
mkdir /media/MULTIBOOT ( creiamo il mountpoint per la chiavetta )
mount /dev/sdx1 /media/MULTIBOOT
grub-install --force --no-floppy --root-directory=/media/MULTIBOOT /dev/sdx ( per installare Grub2)
A questo punto dobbiamo configurare Grub2 per dirgli di cosa fare il boot.
Di norma Grub2 richiede che il file di configurazione sia presente in /MULTIBOOT/boot/grub ma essendo scomodo da ricordare noi invece creeremo un file in /MULTIBOOT/boot/grub di nome grub.conf che contiene:
configfile /grub.conf
A questo punto creiamo nella root della chiavetta il vero file grub.conf.
Qui sotto trovate un esempio di quello che ho io. Non rimane altro che copiare le iso nella root della chiavetta.
set default=0
menuentry "Avvio da primo disco fisso" {
insmod chain
insmod ntfs
set root=(hd1)
chainloader +1
}
menuentry "Ubuntu 11.10 alternate 386" {
#Nome del file iso dal avviare, lasciare lo "/" all'inizio del file
set isofile="/ubuntu-11.10-alternate-i386.iso"
#Non modificare
loopback loop $isofile
#Controllare il percorso del file vmlinuz all'interno del file iso
linux (loop)/install/vmlinuz boot=casper iso-scan/filename=$isofile noeject noprompt splash --
#Controllare il percorso del file initrd.* all'interno del file iso
initrd (loop)/install/initrd.gz
}
menuentry "Ubuntu 11.10 alternate x64" {
set isofile="/ubuntu-11.10-alternate-amd64.iso"
loopback loop $isofile
linux (loop)/install/vmlinuz boot=casper iso-scan/filename=$isofile noeject noprompt splash --
initrd (loop)/install/initrd.gz
}
menuentry "Ubuntu 11.10 desktop x64" {
set isofile="/ubuntu-10.04.3-desktop-amd64.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noeject noprompt splash --
initrd (loop)/casper/initrd.lz
}
menuentry "Linux Mint 12 386" {
set isofile="/linuxmint-12-gnome-dvd-32bit.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz file=/cdrom/preseed/mint.seed boot=casper initrd=/casper/initrd.lz iso-scan/filename=$isofile noeject noprompt splash --
initrd (loop)/casper/initrd.lz
}
menuentry "Linux Mint 12 x64" {
set isofile="/linuxmint-12-gnome-dvd-64bit.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz file=/cdrom/preseed/mint.seed boot=casper initrd=/casper/initrd.lz iso-scan/filename=$isofile noeject noprompt splash --
initrd (loop)/casper/initrd.lz
}
menuentry "DBan" {
set isofile="/dban-2.2.6_i586.iso"
loopback loop $isofile
linux (loop)/DBAN.BZI nuke="dwipe" iso-scan/filename=$isofile silent --
}
menuentry "Memtest 86+" {
linux16 /memtest86+-4.10.bin
}
menuentry "SystemRescueCd" {
set isofile="/systemrescuecd-x86-2.4.0.iso"
loopback loop $isofile
linux (loop)/isolinux/rescuecd isoloop=$isofile setkmap=us docache dostartx
initrd (loop)/isolinux/initram.igz
}
menuentry "Plop Boot Manager" {
linux16 /plpbt.bin
}
menuentry "Clonezilla" {
set isofile="/iso/clonezilla-live-1.2.11-23-i486.iso"
loopback loop $isofile
linux (loop)/live/vmlinuz boot=live live-config noswap nolocales edd=on nomodeset ocs_live_run=\"ocs-live-general\" ocs_live_extra_param=\"\" ocs_live_keymap=\"\" ocs_live_batch=\"no\" ocs_lang=\"\" vga=788 ip=frommedia nosplash toram=filesystem.squashfs findiso=$isofile
initrd (loop)/live/initrd.img
}
menuentry "GParted" {
set isofile="/iso/gparted-live-0.10.0-3.iso"
loopback loop $isofile
gfxpayload=800x600x16
linux (loop)/live/vmlinuz boot=live config union=aufs noswap noprompt ip=frommedia toram=filesystem.squashfs findiso=$isofile
initrd (loop)/live/initrd.img
}
menuentry "Spegni"{
halt
}
menuentry "Riavvia"{
reboot
}Riferimenti:
http://www.panticz.de/MultiBootUSB
http://www.pendrivelinux.com/boot-multiple-iso-from-usb-via-grub2-using-linux/
Commenti recenti