Ben de bu hatayı alıyorum ve bir chroot içinde olduğunu sanmıyorum.
Arka fon
Sanırım bu bir dizinde takılı olduğu için systemd yolu bulamıyor. Bu nedenle, fark, sürücüler de dahil olmak üzere, donanıma erişimi önceden yapılandırdığınız bir chroot ayarlamanızdır.
Bu erişimi Systemd içinde yapılandırabilmenize rağmen, bu sürücüler için izinleri aynı şekilde yapılandırabileceğiniz anlamına gelmez.
Örneğin, bu dosyayı oluşturdum:
/etc/systemd/system/systemd-nspawn@.service.d/override.conf
Ve bu ayarları içerir:
[Service]
DeviceAllow=char-usb_device rwm
DeviceAllow=char-usb
[Files]
Bind=/var/cache/apt/pkgcache.bin
Bind=/var/cache/apt/srcpkgcache.bin
Debian Stretch ile açılmış Pi'de bir USB için grub-install /dev/sda
veya update-grub
USB için kullanılırken bu hala çalışmaz . Grub-uboot ve grub-efi-arm kullanarak bile grub-probe
, kanonik yolu bulamayan hata var .
Sadece bu değil update-grub
, aynı zamanda işletim sistemlerinin ne olduğunu görecek ve bilecek, ancak ilginç bir grub-install
şekilde Debian işletim sisteminin USB'de olduğunu tanımıyor.
Misal
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#
İlginçtir, bir chroot oluşturup çalıştırabildiğimde update-grub
, USB'nin kendisine açtığım işletim sisteminde olmama rağmen kendi işletim sistemini görmüyor!
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:/#
Sadece Raspbian'ı görür. Bu yalnızca GRUB'u kabın içine kurmaya ve güncellemeye çalışırken, ancak kroottan çıktığımda olur.
Şimdi nasıl çalıştığını izleyin çünkü chroot dizinlerinin bağlantısını kesmedim:
/dev dev/
/sys sys/
/proc proc/
/dev/pts dev/pts
Konteyner dışından aklınızda, ben bu komutu grub-uboot
Raspbian yüklü ve ben debootstrapped Debian içeren USB üzerinde Grub ile çalıştırıyorum .
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#
Bu, Debian ARM için gayri resmi olarak mevcut görüntülerden biri kullanılarak gerçekleşmez , ancak açıkçası bu hala debootstrapping için mevcut olmayan bir özelleştirmedir.
Sorun giderme
Gerçekten sadece bir yol oluşturmanın daha iyi olduğu zamanlar vardır. Bir sonraki olasılık (ve muhtemel bir olasılık) basitçe GRUB yazmaktır. Ve bunun için sadece bu sayfada okuyacağım.
https://www.dedoimedo.com/computers/grub-2.html
Bu konuda paylaşmak istediğim bir diğer şey de işe yarayabilecek bir çözüm, ancak microSD kartların çok hassas olduğunu fark etmek. Kendi Linux görüntülerimi oluşturdum ve bunu hızlı öğrendim. Yapılacak en iyi şey, mümkün olduğunca Qemu kullanmaktır, ancak eski bir bölüm tablosunu temizlemeye çalışmak sgdisk --zap-all
için sürücüde çalışmayı deneyebilirsiniz .
sgdisk --zap-all /dev/sdd
Aslında, bazen ilk kez hata veriyorsa ve salt okunur bir hata değilse , tekrar çalıştırabilirsiniz ve sonunda tüm bölüm tabloları yeni veya eski olur.
Ve yapabilirsiniz Ahududu Pi taklit etmek QEMU kullanmak standart bir AMD / Intel tabanlı PC'de. Öneririm. Bu orijinal yazı ile ilgili daha fazla bilgi olduğunu biliyorum, ama bence bu hata türetilmiştir. Kap yaşı.
sda6
mu? Buradaki cevabım yardımcı oluyor mu?