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-upgrade-and-install-software-before-flashing-an-image/856#856
 (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

Antwort per Email an