ℐstruzioni per rendere una chiavetta di memoria usb (usb flash drive)
bootabile, in modo che si avvii il DOS (freedos). Tutto tramite una
installazione Linux (linux box).
Per chi vuole le cose facili basta il programma UNetbootin, spesso si trova nei repository ma qui si spiegherà il metodo manuale, in modo che ogni passo sia compreso e si possano risolvere eventuali problemi con la propria competenza.
A cosa serve una simile chiavetta? Si può avviare il dos al boot e quindi si possono eseguire operazioni come l'aggiornamento del BIOS. Per esempio molti produttori di schede madri offrono programmi per "flashare" il bios che sono eseguibili sotto DOS, la INTEL è una di questa.
In tal caso si trasferiscono i file eseguibili (.exe) per flashare il bios nella root della chiavetta e si fa il boot dalla usb key, quindi si può aggiornare il BIOS.
In linea generale si tratta di formattare la chiavetta, di copiare alcuni files, di installare grub e di fare in modo che avvii il DOS.
Formattare la chiavetta
La vostra linux box senz'altro ha un programma per formattare e partizionare gli HD tipo il programma gParted: usatelo per formattare con filesystem FAT16 (una unica partizione primaria, così la procedura è più semplice) la usb key. La partizione creata ha dei Flag, vistate il flag boot in modo da renderla bootabile.
Ho notato che con il filesystem FAT16 si riescono a fare solo partizioni da 4 GByte e non di più, mentre con FAT 32 si va oltre e si arriva a fare una partizione di 8 GB.
Il programma per la formattazione fa vedere a che device corrisponde la partizione, nel mio caso /dev/sdc1 e quindi a che device corrisponde la chiavetta (/dev/sdc).
Files da copiare
Nella root della chiavetta create la cartella grub, usate mkdir, dolphin o quello che volete. Copiate (1) memdisk nella root della memory key e copiate tutti i files della cartella (2) nella cartella grub della chiavetta.
(1): memdisk si trova tipicamente in /usr/share/syslinux/memdisk oppure in /usr/lib/syslinux/memdisk, cercate un po'.
(2): la cartella è tipicamente /lib/grub/<your-arch>/ cioè /usr/lib/grub/i386-pc oppure /lib/grub e contiene files di questo tipo:
Creiamo il file menu.lst dentro la cartella grub della chiavetta che è il file di configurazione di grub, inseriamo dentro menu.lst le righe:
L'unica nota è il riferimento alla partizione della usb memory key (hd0,0) dove si trovano i file memdisk e balder10.img, se la partizione fosse la seconda e non la prima si dovrebbe usare (hd0,1), ecc.
Installare grub
Per installare grub nell'MBR della chiavetta di memoria usiamo il comando da root #grub. Prima occorre essere sicuri del nome del device della chiavetta. In precedenza abbiamo visto che si tratta (nel mio caso) della /dev/sdc, se nel vostro caso è differente modificate. Grub potrebbe modificare l'MBR del vostro HD e la linux box non partire più: fate attenzione. Ecco i comandi da dare:
#grub
grub> device (hd5) /dev/sdc
grub> root (hd5,0)
grub> setup (hd5)
grub> quit
Conclusioni
Smontate la chiavetta e quindi fate il boot dalla chiavetta (settate opportunamente il BIOS in modo che sia avviato il boot da USB). Partirà il DOS. Scegliete la versione del dos che fa al caso vostro, non tutte funzioneranno, dipenderà dal vostro hardware.
Per vedere la chiavetta digitate C:. Se avete una utility per flashare il BIOS potete avviarla digitando il nome.
Appendice
Nel caso di vecchie schede madri Intel come la D865Perl è fornito dalla Intel un programma DOS che formatta il floppy e che installa i vari files per flashare il BIOS. In tal caso usare un emulatore DOS come DOSBox per eseguire il programma e per avere i file da inserire nella usb memory key.
La soluzione che ho testato con la motherboard D865Perl e il file della Intel RL...EXE è stata quella di avviare l'eseguibile tramite l'emulatore DOS (vengono estratti vari file), quindi il file RUN.BAT mostra che bisogna:
Ringraziamenti
Linerd: howto. Gentoo-wiki: howto.
Per chi vuole le cose facili basta il programma UNetbootin, spesso si trova nei repository ma qui si spiegherà il metodo manuale, in modo che ogni passo sia compreso e si possano risolvere eventuali problemi con la propria competenza.
A cosa serve una simile chiavetta? Si può avviare il dos al boot e quindi si possono eseguire operazioni come l'aggiornamento del BIOS. Per esempio molti produttori di schede madri offrono programmi per "flashare" il bios che sono eseguibili sotto DOS, la INTEL è una di questa.
In tal caso si trasferiscono i file eseguibili (.exe) per flashare il bios nella root della chiavetta e si fa il boot dalla usb key, quindi si può aggiornare il BIOS.
In linea generale si tratta di formattare la chiavetta, di copiare alcuni files, di installare grub e di fare in modo che avvii il DOS.
Formattare la chiavetta
La vostra linux box senz'altro ha un programma per formattare e partizionare gli HD tipo il programma gParted: usatelo per formattare con filesystem FAT16 (una unica partizione primaria, così la procedura è più semplice) la usb key. La partizione creata ha dei Flag, vistate il flag boot in modo da renderla bootabile.
Ho notato che con il filesystem FAT16 si riescono a fare solo partizioni da 4 GByte e non di più, mentre con FAT 32 si va oltre e si arriva a fare una partizione di 8 GB.
Il programma per la formattazione fa vedere a che device corrisponde la partizione, nel mio caso /dev/sdc1 e quindi a che device corrisponde la chiavetta (/dev/sdc).
Files da copiare
Nella root della chiavetta create la cartella grub, usate mkdir, dolphin o quello che volete. Copiate (1) memdisk nella root della memory key e copiate tutti i files della cartella (2) nella cartella grub della chiavetta.
(1): memdisk si trova tipicamente in /usr/share/syslinux/memdisk oppure in /usr/lib/syslinux/memdisk, cercate un po'.
(2): la cartella è tipicamente /lib/grub/<your-arch>/ cioè /usr/lib/grub/i386-pc oppure /lib/grub e contiene files di questo tipo:
e2fs_stage1_5
iso9660_stage1_5 reiserfs_stage1_5 stage2_eltorito
xfs_stage1_5
fat_stage1_5 jfs_stage1_5 stage1 ufs2_stage1_5
ffs_stage1_5 minix_stage1_5 stage2 vstafs_stage1_5
fat_stage1_5 jfs_stage1_5 stage1 ufs2_stage1_5
ffs_stage1_5 minix_stage1_5 stage2 vstafs_stage1_5
Kensan.it
Adesso copiamo una immagine virtuale di un floppy disk bootable DOS basata su FreeDOS 1.0 di nome Balder. Scarichiamo balder10.img (1.44 MB) da una di queste fonti: 1, 2. Sarà il nostro sistema operativo e lo copiamo nella root della chiavetta.Creiamo il file menu.lst dentro la cartella grub della chiavetta che è il file di configurazione di grub, inseriamo dentro menu.lst le righe:
default=0
timeout=10
root=(hd0,0)
title FreeDOS
kernel /memdisk
initrd /balder10.img
timeout=10
root=(hd0,0)
title FreeDOS
kernel /memdisk
initrd /balder10.img
L'unica nota è il riferimento alla partizione della usb memory key (hd0,0) dove si trovano i file memdisk e balder10.img, se la partizione fosse la seconda e non la prima si dovrebbe usare (hd0,1), ecc.
Installare grub
Per installare grub nell'MBR della chiavetta di memoria usiamo il comando da root #grub. Prima occorre essere sicuri del nome del device della chiavetta. In precedenza abbiamo visto che si tratta (nel mio caso) della /dev/sdc, se nel vostro caso è differente modificate. Grub potrebbe modificare l'MBR del vostro HD e la linux box non partire più: fate attenzione. Ecco i comandi da dare:
#grub
grub> device (hd5) /dev/sdc
grub> root (hd5,0)
grub> setup (hd5)
grub> quit
Conclusioni
Smontate la chiavetta e quindi fate il boot dalla chiavetta (settate opportunamente il BIOS in modo che sia avviato il boot da USB). Partirà il DOS. Scegliete la versione del dos che fa al caso vostro, non tutte funzioneranno, dipenderà dal vostro hardware.
Per vedere la chiavetta digitate C:. Se avete una utility per flashare il BIOS potete avviarla digitando il nome.
Appendice
Nel caso di vecchie schede madri Intel come la D865Perl è fornito dalla Intel un programma DOS che formatta il floppy e che installa i vari files per flashare il BIOS. In tal caso usare un emulatore DOS come DOSBox per eseguire il programma e per avere i file da inserire nella usb memory key.
La soluzione che ho testato con la motherboard D865Perl e il file della Intel RL...EXE è stata quella di avviare l'eseguibile tramite l'emulatore DOS (vengono estratti vari file), quindi il file RUN.BAT mostra che bisogna:
- copiare l'immagine del DOS (disk.img) su un floppy formattato: dd if=DISK.IMG of=/media/floppy (dd è un comando equivalente a RAWRITE.EXE)
- copiare nel floppy i seguenti file: AUTOEXEC.BAT CONFIG.SYS ERR_LEV.BAT FDXXMS.SYS FINDRAMD.EXE P21-0089.ITK SW.EXE TDSK.EXE
Ringraziamenti
Linerd: howto. Gentoo-wiki: howto.