Hallo,
ich habe mehrere Raspberry Pi, die ich aktualisieren möchte. Meine Idee war, vorher ein Image von der Karte zu ziehen, eine Kopie per loop-mount auf meinem Laptop einzuhängen, chroot auf des Image, aktualisieren und dann das aktualisierte Image auf die Karte zurückzuspielen. Sowas habe ich noch nie gemacht, aber Übung macht den Meister :-).
Für dieses Prozedere habe ich mich an folgende Anleitung gehalten: https://raspberrypi.stackexchange.com/questions/855/is-it-possible-to-update... (nur Ubuntu-Teil). Zunächst habe ich das mit einem frischen Raspbian Stretch Lite probiert. Das hat auch gut funktioniert. Allerdings klappte das Aushängen nicht wie erwarten.
In der Anleitung steht, dass ich alles wieder umounten muss, was für mich auch logisch ist. Ein umount /mnt sagte mir allerdings, dass das Gerät noch beschäftigt sei. Ein lsof /dev/sda7 gab mir die parallel geöffneten Programme wie einen Editor für meine Notizen wieder. Diese hatten mit dem Rapsberry nichts zu tun. Das diese angezeigt werden hat bestimmt mit diesem Teil der Anleitung zu tun:
All host systems We also need to provide access to certain other parts of the system.
$ sudo mount --rbind /dev /mnt/dev $ sudo mount -t proc none /mnt/proc $ sudo mount -o bind /sys /mnt/sys
Allerdings wurden diese Einhängepunkte von mount nicht angezeigt. Wie kann ich nun das Image sauber ohne mount -l trennen? Bei umount /mnt/dev oder umount /mnt/proc kam genau die selbe Nachricht.
Weiterhin habe ich ein Image der SD-Karte gemacht, die ich probeweise aktualisieren möchte. Als ich mit fdisk nachsah, waren nicht 2 oder 3 images vorhanden, sondern derer 5:
falk@voyager:~/Projekte/Raspberry/images$ fdisk -l ./sd-card-copy.img Festplatte ./sd-card-copy.img: 14,9 GiB, 15931539456 Bytes, 31116288 Sektoren Einheiten: Sektoren von 1 * 512 = 512 Bytes Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes Festplattenbezeichnungstyp: dos Festplattenbezeichner: 0x28cf0b0e
Gerät Boot Anfang Ende Sektoren Größe Kn Typ ./sd-card-copy.img1 8192 137215 129024 63M e W95 FAT16 (LBA) ./sd-card-copy.img2 137216 31116287 30979072 14,8G 5 Erweiterte ./sd-card-copy.img5 139264 204797 65534 32M 83 Linux ./sd-card-copy.img6 204800 339967 135168 66M c W95 FAT32 (LBA) ./sd-card-copy.img7 344064 31116287 30772224 14,7G 83 Linux
Die erste Partition könnte das Noobs-Zeugs sein. img7 könnte die eigentliche Linux-Partition sein und img6 /boot. Liege ich mit meiner Vermutung richtig?
Da ich wenig Erfahrungen mit diesem loop-mounten habe gehen mir einige Fragen durch den Kopf:
Kann ich beim mounten und umounten irgendwas an meinem Laptop-Linux kaputt machen? Was passiert wenn ich die img falsch mounte (bspw. einen falschen Offset nehme)? Gibt es eine bessere Möglichkeit für dev, proc und sys, als diese vom Laptop nach /mnt zu mounten? Gibt es sonst irgendwas bei diesem Vorgehen zu beachten?
Ich danke euch für eure Hinweise.
Viele Grüße,
Falk