An Hybrid UEFI GPT + BIOS GPT/MBR boot USB disk is a disk that works on both UEFI and BIOS PCs


  • A working Linux installation with the following packages: grub2, grub2-efi, gdisk (on Ubuntu: grub-pc-bin, grub-efi, grub-efi-amd64, gdisk)

  • An USB drive
  • Some Linux ISO.

Step 1: get the right /dev

From now on we will use a root shell because almost all commands we will use require it.

root@buntu:~# fdisk -l


Disk /dev/sdb: 14.9 GiB, 16005464064 bytes, 31260672 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x70707573

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1           2 31260671 31260670 14.9G af HPFS / NTFS / exFAT

Find the right dev (ie: mine was /dev/sdb and I WILL USE IT IN THE GUIDE, you have to use your dev).

Step 2: make GUID partition table and partitions

root@buntu:~# gdisk /dev/sdb
And then we are in gdisk prompt; from now on just give the commands in bold and the press enter.

GPT fdisk (gdisk) version 0.8.10

Partition table scan:

  • MBR: MBR only
    BSD: not present
    APM: not present
    GPT: not present

Found invalid GPT and valid MBR; converting MBR to GPT format
typing 'q' if you don't want to convert your MBR partitions
to GPT format!

Warning! Main partition table overlaps the first partition by 32 blocks!
You will need to delete this partition or resize it in another utility.

Warning! Secondary partition table overlaps the last partition by
33 blocks!
You will need to delete this partition or resize it in another utility.

Command (? for help): o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): y

Command (? for help): n Partition number (1-128, default 1): 
First sector (34-31260638, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-31260638, default = 31260638) or {+-}size{KMGTP}: +1M
Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): EF02
Changed type of partition to 'BIOS boot partition'

Command (? for help): n
Partition number (2-128, default 2):
First sector (34-31260638, default = 4096) or {+-}size{KMGTP}:
Last sector (4096-31260638, default = 31260638) or {+-}size{KMGTP}: +50M
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): EF00
Changed type of partition to 'EFI System'

Command (? for help): n
Partition number (3-128, default 3):
First sector (34-31260638, default = 106496) or {+-}size{KMGTP}:
Last sector (106496-31260638, default = 31260638) or {+-}size{KMGTP}: 
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 0700
Changed type of partition to 'Microsoft basic data'

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.
Now gdisk will quit, it’s ok.

Step 3: make hybrid GUID/MBR

root@buntu:~# gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.10

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): r

Recovery/transformation command (? for help): h

WARNING! Hybrid MBRs are flaky and dangerous! If you decide not to use one,
just hit the Enter key at the below prompt and your MBR partition table will
be untouched.

Type from one to three GPT partition numbers, separated by spaces, to be
added to the hybrid MBR, in sequence: 1 2 3
Place EFI GPT (0xEE) partition first in MBR (good for GRUB)? (Y/N): n

Creating entry for GPT partition #1 (MBR partition #1)
Enter an MBR hex code (default EF): EF02
Set the bootable flag? (Y/N): n

Creating entry for GPT partition #2 (MBR partition #2)
Enter an MBR hex code (default EF): EF00
Set the bootable flag? (Y/N): n

Creating entry for GPT partition #3 (MBR partition #3)
Enter an MBR hex code (default 07): 0700
Set the bootable flag? (Y/N): y

Recovery/transformation command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.
gdisk will quit (again) and it’s ok.

Step 4: format the partitons

We have to format in FAT32 two of the three partitions, /dev/sdb2 and /dev/sdb3. Umount the partitions if mounted and then:

root@buntu:~# mkfs.fat -F32 -n GRUB2EFI /dev/sdb2
mkfs.fat 3.0.27 (2014-11-12)

root@buntu:~# mkfs.fat -F32 -n DATA /dev/sdb3
mkfs.fat 3.0.27 (2014-11-12)

Now the partitons are ready, we will mount /devsdb2 to /mnt/efi and /dev/sdb3 to /mnt/data.

root@buntu:~# mkdir /mnt/efi
root@buntu:~# mkdir /mnt/data
root@buntu:~# mount /dev/sdb2 /mnt/efi/
root@buntu:~# mount /dev/sdb3 /mnt/data/

Step 5: install grub

In this step we will install grub in EFI partition (mounted in /mnt/efi) and in MBR.

root@buntu:~# grub-install –target=x86_64-efi –efi-directory=/mnt/efi –boot-directory=/mnt/data/boot –removable –recheck
Installing for x86_64-efi platform.
Installation finished. No error reported.

root@buntu:~# grub-install –target=i386-pc –recheck –boot-directory=/mnt/data/boot /dev/sdb
Installing for i386-pc platform.
Installation finished. No error reported.

Step 6: create folders for ISOs

In /mnt/data we should now have only one directory, boot; let’s create a directory for the ISOs.

root@buntu:~# mkdir /mnt/data/iso
In /mnt/data we should now have
– – – – – – – /boot/
– – – – – – – – – – – /grub/
– – – – – – – /iso/
Now we add 2 folders in /iso, one for the other ISOs and one for Debian (this is a workaround for a known bug).
root@buntu:~# mkdir /mnt/data/iso/debian
root@dbuntu:~# mkdir /mnt/data/iso/others

Let’s download some ISOs, here i will explain ho to configure grub to boot Debian XFCE amd64 Installer and Tails i386; here there are instructions for other distros.



And put these files into /mnt/data/debian/


Download the iso torrent. Then create a folder for tails and copy there the iso.

root@buntu:~# mkdir /mnt/data/others/tails

In /mnt/data we should now have
– – – – – – – /boot/
– – – – – – – – – – – /grub/
– – – – – – – /iso/
– – – – – – – – – – – /debian/
– – – – – – – – – – – – – – – – debian-8.5.0-amd64-xfce-CD-1.iso
– – – – – – – – – – – – – – – – vmlinuz
– – – – – – – – – – – – – – – – initrd.gz
– – – – – – – – – – – /others/
– – – – – – – – – – – – – – – – /tails/
– – – – – – – – – – – – – – – – – – – – tails-i386-2.5.iso

Step 7: configure grub

Now we need to configure grub; grub at boot reads its config from a config file (grub.conf). Create a grub.conf file with the following content and copy it into /mnt/data/boot/grub/:

# path to the partition holding ISO images (using UUID)
probe -u $root --set=rootuuid
set imgdevpath="/dev/disk/by-uuid/$rootuuid"

insmod exfat

# Setup video
if [ "$grub_platform" = "efi" ]
    insmod efi_gop
    insmod efi_uga

if [ "$grub_platform" = "pc" ]
    insmod vbe

# Setup font
insmod font

if loadfont ${prefix}/fonts/unicode.pf2
    insmod gfxterm
    set gfxmode=auto
    set gfxpayload=keep
    terminal_output gfxterm

# Setup GRUB Screen
insmod jpeg
if background_image /boot/grub/grub_bg.jpg ; then
    set color_normal=white/black
    set color_highlight=white/green
    set menu_color_normal=white/black
    set menu_color_highlight=black/light-gray

menuentry "Tails 2.5 i386" {
    set isofile='/iso/others/tails/tails-i386-2.5.iso'
    loopback loop $isofile
    linux (loop)/live/vmlinuz2 boot=live config findiso=${isofile} live-media=removable apparmor=1 security=apparmor nopersistent noprompt timezone=Etc/UTC block.events_dfl_poll_msecs=1000 noautologin module=Tails i2p
    initrd (loop)/live/initrd2.img

menuentry 'Debian 8.5.0 amd64 CD 1 XFCE' {
        set isofile='/iso/debian/debian-8.5.0-amd64-xfce-CD-1.iso'
        set initrdfile='/iso/debian/initrd.gz'
        loopback loop $isofile
        linux (loop)/install.amd/vmlinuz iso-scan/ask_second_pass=true
        initrd $initrdfile
menuentry "Reboot" {
        echo "System rebooting..."

menuentry "Shutdown" {
        echo "System shutting down..."

It’s done! If you want to customize grub’s background copy a .jpg into /mnt/boot/grub/ and rename it grub_bg.jpg. Now unmount the USB drive and test it.
root@buntu:~# umount /mnt/efi
root@buntu:~# umount /mnt/data

Sources: arch linux wiki and many other sites like Ninux

Nel mondo GNU/Linux esistono numerosissimi programmi senza interfaccia grafica, e’ impossibile elencarli tutti. Ce ne sono per ogni utilizzo, dalla posta elettronica (mutt) alla navigazione su internet (w3c), dalla chat sul canale IRC (irssi) ai client ftp (ncftp), gli editor (nano), i filemanager (midnight commander), la grafica (imagemagick), la multimedialita’ (mplayer-nogui), i downloader (wget). Questi sono solo alcuni esempi, oggi scrivero’ a proposito di un potente downloader multi-protoccolo, aria2c.

Aria2c supporta vari protocolli tra i quali BitTorrent e Metalink

Aria2c supporta vari protocolli tra i quali BitTorrent e Metalink
Aria2c funziona da riga di comando, supporta il resume e riesce a gestire i seguenti protocolli: HTTP(S), FTP, BitTorrent e Metalink. Si, avete letto bene, potete usarlo per scaricare i torrent. In piu’ puo’ scaricare contemporaneamente da ftp e da bittorrent. Vediamo come funziona.

Prima di tutto dobbiamo installarlo:
# apt-get install aria2c

Cominciamo subito a farlo lavorare, facciamogli scaricare l’iso del CD di installazione di Debian stable:
$ aria2c

Di default aria2c usa massimo 5 connessioni per scaricare un file, per indicargliene di meno dobbiamo usare l’opzione -sN:
$ aria2c -s3 http://sito/file.iso
Se lo stesso file e’ presente anche in un altro sito, o comunque un mirror, possiamo indicarlo:
$ aria2c -s3 http://sito/file.iso http://mirror1/file.iso http://mirror2/file.iso
Possiamo specificare i mirror anche in questo modo:
$ aria2c -P http://{sito,mirror1,mirror2}/file.iso

Come ho scritto poco sopra, aria2c gestisce lo scaricamento di piu’ file da piu’ protocolli, ad esempio sia http sia ftp:
$ aria2c http://sito/file1 ftp://sito/file1
se pero’ i link non puntano allo stesso file dobbiamo usare l’opzione -Z:
$ aria2c -Z http://sito/file1 ftp://sito/file2
Se invece (ad esempio con torrent e metalink) usiamo file in locale, non dobbiamo specificare l’opzione -Z:
$ aria2c file1.torrent file2.metalink
Che invece va specificata se scarichiamo file sia dalla rete sia usando file.torrent (e/o file.metalink) presenti in locale sul nostro HD:
$ aria2c -Z http://sito/file1 ftp://sito/file2 file1.torrent file2.metalink

Se abbiamo l’elenco dei link all’interno di un file di testo, con l’opzione -i diamo il contenuto del file di testo in pasto ad aria2c:
$ aria2c -i lista.txt
possiamo specificare il numero massimo di download paralleli con l’opzione -j:
$ aria2c -i lista.txt -j3

Possiamo scaricare i file torrent sia usando BitTorrent remoti:
$ aria2c http://sito/file.torrent
sia locali:
$ aria2c /directory/file.torrent
Possiamo specificare i limiti di upload sia in K sia in M (0 se non vogliamo dare limiti, al posto di -uN possiamo usare –max-upload-limit=N):
$ aria2c -u100K /directory/file.torrent
E ovviamente possiamo scaricare piu’ file alla volta:
$ aria2c file1.torrent file2.torrent

Se vogliamo sapere il contenuto del file.torrent usiamo l’opzione -S:
$ aria2c -S file.torrent
possiamo specificare una porta TCP per il download:
$ aria2c –listen-port=25241 file.torrent
o anche un range di porte:
$ aria2c –listen-port=6881-6883 file.torrent
ovviamente assicuratevi che le porte siano aperte.

Possiamo anche specificare quando chiudere il programma:
$ aria2c –seed-time=60 file.torrent
per chiudere aria2c un minuto dopo aver concluso il download e
$ aria2c –seed-ratio=1.0 file.torrent
per chiudere aria2c quando il tasso di seed sara’ 1.0.

Per mandare in seed un file che abbiamo gia’ scaricato scriviamo:
$ aria2c -V -d/directory file.torrent
l’opzione -V verifichera’ l’hash del torrent.

Possiamo scaricare con aria2c passando attraverso un proxy:
$ aria2c –all-proxy=’http://proxy:8080′ http://sito/file
se il server proxy richiede l’autenticazione:
$ aria2c –all-proxy=’http://username:password@proxy:8080′ http://sito/file
Se conosciamo il protocollo del proxy al posto di all scriviamo il tipo di protocollo, dunque http, https o ftp (rispettivamente –http-proxy, –https-proxy e –ftp-proxy).

Possiamo anche caricare i cookie (per Firefox 3 al posto di cookies.txt ci sara’ cookies.sqlite):
$ aria2c –load-cookies=cookies.txt http://sito/file
e se abbiamo usato il nostro browser o un altro programma per cominciare un download, aria2c puo’ completarlo:
$ aria2c -c -s2 http://sito/file
ovviamente apriamo aria2c nella directory dove si trova il file parzialmente scaricato.

Per scaricare file in sequenza numerica:
$ aria2c -Z -P http://sito/file[000-100].png
o alfabetica:
$ aria2c -Z -P http://sito/file[A-Z].png
Per indicare un “passo” (ad esempio di 3):
$ aria2c -Z -P http://sito/file[000-100:3].png
$ aria2c -Z -P http://sito/file[A-Z:3].png

Infine l’opzione -R:
$ aria2c -R http://sito/file.iso
prende il timestamp dal file presente sul server e lo applica al file che abbiamo in locale.

Ovviamente questa non puo’ essere una guida esaustiva, per approfondire c’e’ sempre:
$ man aria2c

Piu’ i vari manuali e wiki presenti sul sito.

Avete mai avuto bisogno di prendere uno o due file dalla vostra partizione ext4? Forse hai bisogno di un backup di alcuni file importanti mentre sei in Windows. Ecco come sfogliare la partizione Linux da Windows usando uno strumento chiamato Ext2explore.

Come sfogliare la partizione di Linux mentre sei in Windows

La maggior parte delle distribuzioni Linux al giorno d’oggi usano la partizione ext4 di default, mentre ci sono alcuni strumenti con cui puoi leggere i vecchi ext2 ed ext3, Ext2explore è l’unico software che è in grado di leggere tutti e tre . Nello spirito di Linux, è anche open source.

È possibile scaricare il software da questa pagina, gira su Windows XP SP3, su Vista e su 7. Non bisogna installare nulla, quindi basta decomprimere il file. Ext2explore ha alcuni problemi di incompatibilità, quindi prima bisogna risolverli. Fai clic con il destro sul file. Exe e vai in Proprietà. Quindi fai clic sulla scheda Compatibilità. Alla voce “Modalità compatibilità” scegli Windows XP dal menu a discesa. Scegli la casella “Esegui questo programma come amministratore” e fai clic su OK.

Ora basta fare doppio clic sul programma per avviarlo. Il programma esegue automaticamente la scansione dei dischi con partizioni ext. Se non viene visualizzato nulla o si riceve un messaggio di errore che indica che non ci sono partizioni ext, verifica di aver eseguito il programma come amministratore.


Ciao a tutti, oggi parlerò di come si formattano chiavette USB, schede SD e tutti gli altri dispositivi.

Inserire il supporto da formattare (in questo caso per esempio una chiavetta usb) e controllare l’output di dmesg per essere sicuri che tutto è andato a buon fine e per sapere il nome del dispositivo (in questo caso /dev/sdb).

# cfdisk /dev/sdb
cancelliamo tutte le partizioni presenti, ne creiamo una o più, indichiamo il tipo di file system ed infine scriviamo le modifiche.

# mkfs.vfat /dev/sdb1 -n PennaUSB
# mkfs.ext3 /dev/sdb1 -L PennaUSB
# mkfs.ntfs /dev/sdb1 -L PennaUSB
formattiamo la partizione scelta con uno specifico file system assegnando come label “PennaUSB”

Ora la chiavetta è come nuova, suddivisa in quante partizioni vogliamo e con i nostri file system preferiti!

Il comando dd si trova in qualsiasi distribuzione di Linux. Però per clonare l’hard disk di un PC senza modificare alcun dato presente (quindi compresi anche i file cancellati), si consiglia di avviare una distro Linux da USB (ad esempio BackTrack, Puppylinux, DSLinux, ecc…)e collegare un HD esterno, su cui verrà scritto il clone, tramite la porta USB. Ovviamente l’hard disk esterno dovrà avere una capacità di memoria maggiore rispetto all’Hard disk che si vuole clonare.

I passi da seguire per la clonazione sono questi:

1.Dall’ambiente Linux aprire un terminale e digitare su

2.Inserire la password di superutente o utente root (nei Live CD di solito la password è root oppure toor oppure in alcuni nessuna password)

3.Digitare fdisk –l per vedere l’elenco degli hard disk riconosciuti. Solitamente l’hard disk interno si chiama hda mentre le chiavi USB e gli hard disk esterni collegati tramite USB vengono chiamati sda, sdb ecc.. Per essere sicuri basta vedere quanti byte sono grandi i vari hd elencati.

4.Supponendo che l’hard disk che vogliamo clonare sia hda e l’hard disk esterno su cui vogliamo fare la copia sia sda, digitare sul terminale questo comando: dd if=/dev/hda of=/dev/sda bs=32256

5.Se pensiamo che l’hard disk da clonare possa avere qualche errore allora il comando da digitare è: dd if=/dev/hda of=/dev/sda bs=32256 conv=noerror

6.Se invece vogliamo creare un file immagine dell’hard disk allora il comando è il seguente: dd if=/dev/hda of=/dev/sda/nome immagine.img bs=32256 conv=noerror (ATTENZIONE: se l’hard disk esterno è formattato FAT allora non potete scrivere file con dimensioni maggiori di 4 Giga Byte)

Stamattina ho provato a fare un controllo per vedere se ci fosse qualche aggiornamento su Archlinux, la distro che uso facendo
pacman -Syu
ma la risposta è stata questa :

[slivermetal@myhost ~]$ sudo pacman -Syu
:: Sincronizzazione dei database in corso…
errore: impossibile aggiornare core (errore inaspettato)
errore: impossibile aggiornare extra (errore inaspettato)
errore: impossibile aggiornare community (errore inaspettato)
errore: impossibile sincronizzare i database
Preso dallo sconforto ho chiesto qui , nel forum di Archlinux Italia
Fortunatamente mi hanno saputo aiutare!

E mentre la notte si avvicina…preparo un bel serverino linux da mettere in ufficio a lavoro!
Perchè Linux?Beh,ci sarebbero molti motivi ma mi limito a pochi:
1_E’ gratis e in una azienda è utilissmo usare programmi free che non abbiano problemi di licenze o enormi costi di gestione
2_E’ più leggero e stabile di window$
3_E’ più sicuro perchè non ci sono virus
ecc ecc…
Qui altri validi motivi che spiegano i motivi della mia scelta.
l’installazine procede e tra pochi minuti avrò tutto funzionante con solo una trentina di minuti di attenzione!

 [banner network=”adsense” type=”default”]