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

Requisites:

  • 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
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
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
PARTITIONS!!

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
PARTITIONS!!

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
/mnt/data/
– – – – – – – /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.

Debian

Download:

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

Tails

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
/mnt/data/
– – – – – – – /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.cfg). Create a grub.cfg 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" ]
then
    insmod efi_gop
    insmod efi_uga
fi

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

# Setup font
insmod font

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

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

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..."
        reboot
}

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

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

Fermato per un intervista dopo un evento sportivo, Dick Costolo, CEO di Twitter, alla domanda su cosa la sua società potesse fare meglio ha risposto :

twitter

twitter

“Quando ci sono eventi nel mondo, l’evento e la conversazione che lo circonda si svolge  su Twitter, la totalità dell’esperienza di tale evento può essere molto più ricca e coinvolgente e profonda su Twitter . La sfida è quando si tenta di mettere queste esperienze di eventi su Twitter di fronte a persone che hanno bisogno catturare tutti i migliori tweet, è il ruggito della folla che fa davvero Twitter impressionante.”

Costolo ha anche evidenziato due momenti fondamentali per il servizio: quando il Papa ha iniziato ad usare twitter e la sua personale esperienza di seguire Twitter per vedere cosa è successo durante la maratona di Boston al CEO di Foursquare Dennis Crowley

[banner align=”aligncenter”]

Dropbox, il famoso programma per la condivisione di files , ha rilasciato un update per i dispositivi android che rende ancora più semplice la possibilità di inviare foto e video ai contatti sul proprio telefono cellulare senza dover passare attraverso un app email

Dropbox rende più semplice la condivisione files

Dropbox rende più semplice la condivisione files

L’ultima versione di Dropbox per Android ha anche un nuovo feed notifiche per l’accesso rapido alla vostra attività recenti.

 

 

[banner align=”aligncenter”].

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”]