View Full Version : Multi boot su USB con multi partizioni
Salve.
Ho una chiavetta USB da 32GB, che ho diviso in 7 partizioni, ed in ogni partizione ho messo un sistema operativo(d'installazione), in questo modo se ho bisogno di installare qualche sistema operativo mi basta una chiavetta USB a portata di mano, con tutti gli OS che mi servono.
Partizione Primaria F --> Vuota
Partizione Logica G --> Windows 8
Partizione Logica H --> Windows 7
Partizione Logica I --> Windows XP
Partizione Logica J --> Ubuntu 13.04
Partizione Logica K --> Kaspersky Rescue Disk 10
Partizione Logica L --> Gparted
Il problema è che quando inserisco la chiavetta USB e dal BIOS cerco di fare il boot della chiavetta questa non parte, in quanto il BIOS mi va a cercare il boot loader nella prima partizione(almeno credo) quella primaria(F), quindi vi chiedo esiste un modo per creare un boot loader, in modo tale che quando faccio il boot della chiavetta mi venga fuori una lista dalla quale scegliere quale sistema operativo avviare.
Grazie in anticipo.
pabloski
30-09-2013, 22:53
In primo luogo stiamo parlando di bios/mbr o di uefi? Lo chiedo perchè sono due bestie completamente differenti.
Suppongo che si tratta di un normale bios e di un sistema di partizionamento mbr. In questo caso, il bios va a leggere il primo settore della chiavetta ( il master boot record ) e manda in esecuzione il codice che vi è contenuto. Tale codice è il boot loader di livello 0, il quale ( dipende da quale boot manager hai installato ) va a pescare altri boot loader di livello maggiore e/o immagini del kernel da eseguire.
Windows è un discorso ancora diverso, in quanto non è compatibile con le specifiche multiboot e quindi contiene il suo boot loader di livello 1 nel primo settore della sua partizione. Per bootarlo tramite grub, lilo, syslinux, ecc... bisogna effettuare il chainloading.
Esempio con grub2
menuentry "Windows" {
insmod chain
insmod ntfs
set root=(hd0,1)
chainloader +1
}
Per i sistemi linux è invece possibile dare al boot manager tutte le informazioni per fargli caricare ed eseguire il kernel.
Dunque, che boot manager stai usando?
Innanzitutto grazie per la riposta pabloski.
Si tratta di un normale bios e di un sistema di partizionamento mbr, il problema non ho installato alcun boot loader, suppongo che il bootloader vada installato nella partizione primaria(F), nel settore 0, però no so quale bootloader installare e soprattutto come installarlo, ho letto varie guide su internet ma senza riuscire a risolvere il problema.
Quindi confido in un aiutone di qualcuno=).
Grazie.
quando hai installato linux non hai installato anche il bootloader?
magari nel MBR del usb
p.s.
forse ti puo interessare:
http://www.pendrivelinux.com/boot-from-usb-without-bios-support-via-plop-cd/
http://www.pcprofessionale.it/2011/01/18/easybcd-gestisce-il-bootloader/
http://www.geekissimo.com/2009/06/30/guida-creare-una-penna-usb-multi-boot-per-il-pronto-soccorso-del-pc/
pabloski
01-10-2013, 17:13
Innanzitutto grazie per la riposta pabloski.
Si tratta di un normale bios e di un sistema di partizionamento mbr, il problema non ho installato alcun boot loader, suppongo che il bootloader vada installato nella partizione primaria(F), nel settore 0, però no so quale bootloader installare e soprattutto come installarlo, ho letto varie guide su internet ma senza riuscire a risolvere il problema.
Quindi confido in un aiutone di qualcuno=).
Grazie.
No, il bootloader va installato nel primo settore dell'unità di storage. Ci sono boot manager che installano una catena di loader, il primo nel MBR, il secondo nel primo settore della partizione, ecc...
Se hai installato il boot loader di linux nel primo settore della sua partizione, o lo reinstalli nel mbr o installi nel mbr un altro loader ( syslinux ad esempio ).
@sacarde avevo letto queste guide solo che a me interessa avere un sistema operativo per ogni partizione(per non avere problemi).
@pabloski no, io ho sempicemente partizionato la chiavetta e messo in ogni partizione un sistema operativo, con l'ausiglio di tools che si trovano in giro per internet.
Sicuramente in ogni partizione(nel settore 0 di ogni partizione immagino) è stato installato un boot loader per poter avviare l'installazione del sistema operativo contenuto nella partizione stessa.
Ovviamente quando io cerco di fare il boot della chiavetta da BIOS, questo fallisce, in quanto come mi ha fatto notare il BIOS va a cercare il bootloader nel primo settore dell'unità di storage, ed in questo settore ovviamente non c'è un bootloader.
Quindi devo trovare un modo per poter installare un bootloader nel settore 0 dell'unità di storage, ovviamente questo bootloader deve farmi vedere una lista da cui scegliere quale sistema operativo installare.
Immagino che questo bootloader che devo installare dovrà farmi saltare ai diversi bootloader delle varie partizioni.
Quindi come posso fare?
Grazie.
pabloski
01-10-2013, 18:31
In primo luogo devi riuscire a far partire un qualsiasi sistema operativo ( ovviamente ).
Poi installi extlinux.
Poi individui la letterà di unità ( se stai su windows ) o il mount point in cui è stata montata o la partizione di ubuntu o quella di gparted. Le partizioni windows non vanno bene, perchè syslinux non supporta il filesystem ntfs.
Infine installi extlinux ( comando: extlinux --install /partizione-in-cui-installare ) e trasferisci il file mbr.bin ( viene installato con extlinux ) sul mbr dell'unità ( sotto linux è qualcosa tipo /dev/sda, sotto windows è un path molto molto lungo e visibile solo dal gestore dischi ).
Se sei sotto linux, la cosa si semplifica e viene così
sudo fdisk -l --> ti dà l'elenco di tutti i dispositivi di storage connessi e ti permette di individuare la partizione che ti serve
sudo mount /dev/sdXn /media --> X è la lettera associata alla chiavetta, n è il numero della partizione ubuntu in cui vuoi installare extlinux
sudo extlinux --install /dev/sdXn
sudo cat /usr/lib/syslinux/mbr.bin > /dev/sdX --> nel mio caso mbr.bin si trova nella cartella /usr/lib/syslinux, ma a te potrebbe essere altrove
L'ultima cosa che resta da fare è creare il file extlinux.conf ( sempre in /dev/sdXn ) e metterci dentro la configurazione.
Una configurazione di esempio
PROMPT 1
TIMEOUT 100
DEFAULT ubuntu
LABEL ubuntu
COM32 chain.c32
APPEND hdX n
LABEL windows
COM32 chain.c32
APPEND hdX n+1
occhio che il file chain.c32 va copiato nella partizione dopo hai nstallato extlinux
inoltre hdX è il nome assegnato dal bios alla chiavetta ( in giro l'hard disk interno è hd0, le altre unità sono hd1, hd2, ecc.... )
infine n e n+1 vanno sostituiti con i numeri delle partizioni in cui sta il sistema da far partire ( le partizioni logiche cominciano da 5, quindi avresti che G=5, H=6, ecc... )
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.