[Linuxtrent] [RISOLTO] Ubuntu 14.04 con HD da 4TB: No Boot Device Found

  • From: Emanuele Olivetti <emanuele@xxxxxxxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Wed, 01 Apr 2015 10:19:33 +0200

Salve a tutti,

nei giorni scorsi, dopo altre priorità e l'influenza, ho ripreso in mano
il problema di installare Ubuntu 14.04 sul desktop Dell Precision T5810
con dischi da 4TB, di cui vi ho scritto il 19 Marzo. Ho trovato una
soluzione (workaround) al problema, che è dovuto a un bug, o nel
firmware della motherboard, oppure nell'utility efibootmgr, o in entrambe.
Gli indizi indicano che la prima delle tre è la più probabile.

Una digressione: i dischi >2TB richiedono che non si usi il vecchio BIOS ma
il nuovo UEFI. UEFI richiede una piccola (200-500Mb) partizione bootable
FAT32 di tipo "EFI Partition System" all'inizio del disco, dove risiede il file
del
bootloader (quello che ha estensione ".efi", tipo grubx64.efi, shimx64.efi
ecc.). UEFI, al boot, deve essere istruito su dove trovare il file ".efi" e sa
leggere le partizioni FAT32. Quindi gli serve sapere quale disco/partizione,
quale cartella e quale nome del file. Il bootmanager di ubuntu, GRUB
(grub-efi), ha tale file in EFI/ubuntu/grubx64.efi. Altri bootmanager, es.
rEFInd, utilizzano altre directory e file. L'utility efibootmgr, che si usa da
riga di comando, parla con UEFI e gli dice il disco, la partizione, la directory
e il nome del file .efi da utilizzare come boot manager.

Il problema: sebbene tutti i passaggi fatti da me e suggeriti da voi fossero
corretti, al reboot UEFI non trovava il boot manager (cioè il file .efi) e
rispondeva "No Boot Device Found". Con efibootmgr ho provato, anche
manualmente, a istruire UEFI che il file .efi è EFI/ubuntu/grubx64.efi in
/dev/sda1. Per controprova ho poi chiesto a UEFI dove cercava il file e,
correttamente, mi ha sempre risposto EFI/ubuntu/grubx64.efi in /dev/sda1.
Putroppo UEFI poi IGNORA questa informazione e, indipendentemente da
dove gli viene indicato essere il file .efi, lui cerca sempre e solo:
EFI/BOOT/BOOTX64.EFI su /dev/sda1
(!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)
Potete capire quindi che non c'è verso di fare il boot con questo bug...

La soluzione - per ora temporanea - è stata quindi
cp -a EFI/ubuntu EFI/BOOT
mv EFI/BOOT/grubx64.efi EFI/BOOT/BOOTX64.EFI
...e poi tutto ha funzionato.

Il problema sembra essere specifico del Dell Precision T5810 e forse di alcuni
altri DELL, dalle poche sparse informazioni che sono riuscito a raccogliere
sul web. E, più in generale, problemi simili a questo sono attribuiti a
firmware bacati. Dell ha pubblicato alcuni aggiornamenti del firmware, che
ho utilizzato, ma il problema rimane.

In sintesi, il problema non era legato a Ubuntu, o ai dischi da 4TB ma solo
a UEFI su questa particolare macchina. Ora ho un'installazione funzionante
di Ubuntu 14.04.2, pure con RAID1 (software) con 2 dischi da 4TB, che funziona
bene come sempre.

Evito di riportarvi tutte le maledizioni che ho lanciato al Dell Precision
T5810 quando ho scorperto l'origine del problema...

Grazie a tutti per la collaborazione.


Emanuele


PS: il bug descritto sopra spiega perché rEFInd funzionava da chiavetta USB
ma non più quando installato in /dev/sda1. Inoltre devo correggere quanto
ho scritto in precedenza: Ubuntu 14.10 non ha mai funzionato, al pari della
14.04. Quando ho scritto che in un caso faceva il boot corretto, mi sono
sbagliato. Non sono riuscito a riprodurre la cosa. Probabilmente avevo lasciato
la chiavetta USB di rEFInd inserita - situazione in cui il boot ha sempre
funzionato.

--
Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: