Domanda Errore Grub: no such device

System32ita

Utente Silver
12 Maggio 2017
55
12
18
54
Salve a tutti, come da titolo mi ritrovo con un bel problema.
Prima di tutto vi spiego la mia situazione: ho un fisso con diversi hard disk e due ssd, su cui sono installati Windows 10 (che uso tutti i giorni, il mio main system), Debian e un altro Windows 10 che non uso più (era il mio vecchio Os su hard disk prima di comprarmi un ssd).
I problemi sono cominciati ieri quando ho convertito il mio ssd con Windows 10 da MBR a GPT, questo penso che abbia comportato il cambiamento di alcune informazioni (tra cui l'UUID) quindi ora quando provo ad avviare Windows da Grub mi da il seguente errore:
error: no such device: 7C323F85323F4384.
error: no such partition.
error: no such partition.

Press any key to continue...

Fortunatamente se accedo al BIOS uefi, cambiando l'ordine di boot, posso avviare Windows, ma così facendo bypassa completamente grub, togliendomi la possibilità di scegliere comodamente quale sistema operativo far partire.
Ho provato a lanciare qualche comando dalla shell di grub e questi sono i risultati:
grub> ls
(proc) (hd0) (hd0,msdos5) (hd0,msdos1) (hd1) (hd2) (hd2,msdos2) (hd2,msdos1) (hd3)
grub> ls (hd0)
Device hd0: No known filesystem detected - Sector size 512B - Total size 234431064KiB

Sono abbastanza sicuro che (hd0) sia il mio main os poiché (hd0,msdos5) è debian (se lancio ls trovo le classiche cartelle di una distro linux), (hd2,msdos1) è il vecchio Windows su hard disk che non uso più (sempre lanciando ls ho visto che le cartelle al suo interno erano le sue) e le dimensioni di (hd0) corrispondono a quelle dell'ssd su cui è installato il main os Windows.

Io ho provato a modificare l'opzione di avvio da grub mettendoci l'UUID dell'ssd (anche se non sono sicuro di aver inserito quello giusto, non so come trovarlo) e di sostituire (hd0) quando leggevo l'ormai obsoleto (hd3,msdos1), ma mi da sempre lo stesso errore. Vi riporto lo schema di avvio:
setparams 'Windows 10 (su /dev/sdd1)'

insmod part_msdos
insmod ntfs
set root='hd3,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd3,msdos1 --hint-efi=hd3,msdos1 --hint-baremetal=ahci3,msdos1 7C323F85323F4384
else
search --no-floppy --fs-uuid --set=root 7C323F85323F4384
fi
parttool ${root} hidden-
drivemap -s (hd0) ${root}
chainloader +1

Non so se sia necessario reinstallare grub, se sapete come risolvere questo problema ve ne sarei estremamente grato.
Inoltre non so se può esservi d'aiuto ma ho convertito il disco da MBR a GPT per soddisfare i requisiti per l'installazione di Windows 11, quindi ho anche attivato il Secure boot e ho il firmware UEFI.
Grazie per l'attenzione

Link foto:
 
Fai partire debian ed esegui sudo update-grub.
lancio sudo update-grub ed ecco l'output:
Generazione file di configurazione GRUB...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Trovata immagine linux: /boot/vmlinuz-4.19.0-16-amd64
Trovata immagine initrd: /boot/initrd.img-4.19.0-16-amd64
Trovato Windows 10 su /dev/sdc1
Fatto

Non so cosa sia initrd ma il Windows 10 che trova è quello sul vecchio hard disk, quello che interessa a me (su SSD con GPT) non lo trova, infatti se riavvio il pc tra le voci di GRUB non c'è l'opzione per Windows 10 su ssd.

Documentandomi un po' ho visto che GRUB non riesce a leggere le partizioni GPT (forse è per questo che quando lancio dalla shell di grub ls (hd0) mi dice che non conosce il file system della partizione) e consigliano di installare GRUB2, ma quando provo a farlo (lanciando il comando sudo upgrade-from-grub-legacy) dpkg mi da questo errore:
dpkg-maintscript-helper: error: environment variable DPKG_MAINTSCRIPT_NAME is required

Non so più cosa fare, consigli?
 
Documentandomi un po' ho visto che GRUB non riesce a leggere le partizioni GPT (forse è per questo che quando lancio dalla shell di grub ls (hd0) mi dice che non conosce il file system della partizione) e consigliano di installare GRUB2, ma quando provo a farlo (lanciando il comando sudo upgrade-from-grub-legacy) dpkg mi da questo errore:
dpkg-maintscript-helper: error: environment variable DPKG_MAINTSCRIPT_NAME is required
Io ho dato per scontato che tu stai già usando GRUB2 perché ormai GRUB1 (legacy) non esiste più da anni. È da 13 anni che Debian è passato a GRUB2, quindi amenoché la tua installazione non sia veramente storica e tu non abbia mai aggiornato GRUB in oltre un decennio... io non mi preoccuperei di questo errore.

Prova a rifare update-grub con secure boot disattivato, almeno vediamo se è quello il problema. Magari posta l'output di sudo parted -l e prova anche lanciare update-grub dopo aver montato (sudo mount /dev/sdXY /mnt) la partizione del nuovo Windows 10.

Purtroppo mi sa che è uno di quei problemi che va risolto smanettando un po' e non so quanto riuscirò ad aiutarti.