Ricevo anche questo errore e non penso che accada in un chroot.
sfondo
Penso che sia quando systemd non riesce a trovare il percorso perché è montato in una directory. Quindi, la differenza è quando si configura un chroot che si configura già l'accesso all'hardware, comprese le unità.
Sebbene sia possibile configurare questo accesso all'interno di Systemd ciò non significa che è possibile configurare le autorizzazioni per tali unità allo stesso modo.
Ad esempio, ho creato questo file:
/etc/systemd/system/systemd-nspawn@.service.d/override.conf
E contiene queste impostazioni:
[Service]
DeviceAllow=char-usb_device rwm
DeviceAllow=char-usb
[Files]
Bind=/var/cache/apt/pkgcache.bin
Bind=/var/cache/apt/srcpkgcache.bin
Questo non funziona ancora quando si usa grub-install /dev/sda
o update-grub
per un USB su Pi debootstrapped con Debian Stretch. Anche usando grub-uboot e grub-efi-arm c'è ancora quell'errore che grub-probe
non riesce a trovare il percorso canonico.
Non solo, ma update-grub
vedrà e saprà quali sono i sistemi operativi, ma interessante grub-install
non riconosce il sistema operativo Debian su USB.
Esempio
root@raspixmc:/home/pi# grub-install /dev/sda
Installing for arm-uboot platform.
grub-install: warning: no hints available for your platform. Expect
reduced performance.
grub-install: warning: WARNING: no platform-specific install was
performed.
Installation finished. No error reported.
root@raspixmc:/home/pi#
Interessante, quando creo un chroot e posso eseguirlo update-grub
, anche se sono sul sistema operativo che ho debootstrapped sull'USB stesso, non vede il suo sistema operativo!
root@raspixmc:/home/pi# mount /dev/sda1 /mnt
root@raspixmc:/home/pi# cd /mnt
root@raspixmc:/mnt# mount --bind /dev dev/
root@raspixmc:/mnt# mount --bind /sys sys/
root@raspixmc:/mnt# mount --bind /proc proc/
root@raspixmc:/mnt# mount --bind /dev/pts dev/pts
root@raspixmc:/mnt# chroot . bin/bash
root@raspixmc:/# update-grub
Generating grub configuration file ...
Found Raspbian GNU/Linux 9 (stretch) on /dev/mmcblk0p2
done
root@raspixmc:/#
Vede solo Raspbian. Questo accade solo quando si tenta di installare e aggiornare GRUB all'interno del contenitore, ma quando esco dal chroot.
Guarda come funziona ora perché non ho smontato le directory chroot:
/dev dev/
/sys sys/
/proc proc/
/dev/pts dev/pts
Dall'esterno del contenitore, attenzione, sto eseguendo questo comando con grub-uboot
installato su Raspbian e senza Grub su USB contenente Debian debootstrapped.
root@raspixmc:/mnt# update-grub
Generating grub configuration file ...
Found Raspbian GNU/Linux 9 (stretch) on /dev/mmcblk0p2
Found Debian GNU/Linux 9 (stretch) on /dev/sda1
done
root@raspixmc:/mnt#
Questo non accade usando una delle immagini non ufficiali disponibili per Debian ARM , ma ovviamente questa è ancora una personalizzazione non ancora disponibile per il debootstrapping.
Risoluzione dei problemi
Davvero ci sono momenti in cui è meglio solo creare un percorso. L'unica possibilità successiva (e una probabile) è semplicemente scrivere GRUB. E per questo ho intenzione di leggere in questa pagina.
https://www.dedoimedo.com/computers/grub-2.html
Un'altra cosa che voglio condividere su questo problema è una soluzione che potrebbe funzionare, ma realizzare che le schede microSD sono molto sensibili. Ho creato le mie immagini Linux e l'ho imparato velocemente. La cosa migliore da fare è usare Qemu ogni volta che puoi, ma per tentare di cancellare una vecchia tabella delle partizioni potresti provare a correre sgdisk --zap-all
sull'unità.
sgdisk --zap-all /dev/sdd
In realtà, a volte se si dà un errore la prima volta ed è non è un errore di sola lettura, è possibile eseguire di nuovo e lo farà, infine, tutte le tabelle di partizione nuova o vecchia.
E puoi usare Qemu per emulare Raspberry Pi su un PC standard basato su AMD / Intel. Lo consiglierei So che si tratta di più informazioni di quelle relative al post originale, ma penso che sia probabile come questo errore sia derivato. È l'età del contenitore.
sda6
? La mia risposta qui aiuta?