Ich möchte ein firmeninternes Raspberry Pi-Image auf Basis von Raspbian Lite erstellen, das bereits mit dem richtigen Gebietsschema, der richtigen Zeitzone usw. konfiguriert ist. Leider ändern aktuelle Versionen von Raspbian-Images automatisch die Größe des Dateisystems und starten dann neu.
Ich möchte den Ärger der Verkleinerung des Dateisystems vermeiden, indem verhindert wird, dass die Größe jemals geändert wird. Wie bearbeite ich das Image nach dem Brennen, um die automatische Größenänderung des Dateisystems vorübergehend zu deaktivieren?
Zur Verdeutlichung bearbeitete Effekte sollten reversibel sein; Das heißt, ich möchte, dass mein angepasstes Image beim ersten Start erweitert wird.
raspbian
raspi-config
patricktokeeffe
quelle
quelle
raspi-config
erfolgt, das beim ersten Start ausgeführt wird und leicht zu deaktivieren wäre. Ich kann nachsehen, aber ich muss ein neues Bild herunterladen, das letzte, das ich habe, ist von Mai. Versuchen Sie es in ein paar Stunden noch einmal.Antworten:
Es gibt einen zweiteiligen Mechanismus, der bei Raspbian die Verantwortung dafür übernimmt. wahrscheinlich ist die beste Idee, sich um beide Teile zu kümmern, wenn sie aktiviert sind.
Das erste ist, dass das Original dies
/boot/cmdline.txt
beinhaltet:Verweisen auf ein Skript mit diesem Pfad auf der Root-Partition, das beim Booten als Init- Prozess verwendet wird. Ohne dieses Bit würde standardmäßig ein Wert in den Kernel eingebaut,
/sbin/init
. Dies ist in Raspbian eine symbolische Verknüpfung zu/lib/systemd/systemd
.Durch Entfernen dieses Teils von
cmdline.txt
sollte das System normal starten.Das Skript ändert die Größe der Partition auf der SD-Karte. Dies unterscheidet sich von der Größenänderung des Dateisystems in der Partition. 1 , das ist das, was als nächstes passiert.
Dies geschieht, indem das System sofort normal neu gestartet wird (dh über systemd) und ein
init.d
Skript so eingestellt wird, dass es frühzeitig ausgelöst wird. Dieses Skript sollte aus der zweiten Partition entfernt werden:Und die symbolische Verknüpfung dazu, die ebenfalls entfernt werden sollte:
Sie können eine Kopie für eine spätere Verwendung aufbewahren
raspi-config
, sie jedoch erneut erstellen (eingebettet in dasraspi-config
Shell-Skript). Wenn es tatsächlich ausgeführt wird, löscht es sich selbst, sodass es nicht noch einmal vorkommt.Außerdem wird die Größe des Dateisystems in der Partition geändert, deren Größe geändert wurde.
Es sollte kein Schaden angerichtet werden, wenn nur der eine oder andere Teil passiert. Im ersten Fall haben Sie ein Dateisystem, das die vergrößerte Partition nicht ausfüllt, im zweiten Fall passiert nichts, da das Dateisystem die Partition bereits ausfüllt.
Wenn Sie
raspi-config
das Dateisystem später vergrößern, ändert sich die Größe der Partition sofort und das Init-Skript wird eingerichtet (wie bereits erwähnt).Das Bearbeiten
cmdline.txt
der ersten Partition ist auf jedem Computer einfach, da es sich um eine VFAT-Partition handelt. Zum Entfernen derinit.d
Datei ist ein System erforderlich, das auf ext4-Dateisysteme zugreifen und diese bearbeiten kann.Beide Aufgaben können stattdessen vor dem Brennen der Karte an der Image-Datei selbst ausgeführt werden. Informationen zum Mounten und Ändern eines Raspbian-Images auf einem GNU / Linux-System finden Sie hier . Für Windows gibt es parallele Fragen und Antworten .
Dies ist auch umkehrbar, aber Sie müssen beide Teile des Mechanismus, wie gerade beschrieben, zurücksetzen, da der erste nicht automatisch den zweiten inszeniert.
quelle
init=/usr/lib/raspi-config/init_resize.sh
von/boot/cmdline.txt
Arbeiten an Ubuntu Kumpel auch und scheint genug für sich. Ich habe ein 4 GB Ubuntu Mate-Image auf eine 32 GB SD-Karte geflasht und es hält die Partitionsgrößen auf der ursprünglichen Bildgröße. Auch/etc/init.d/resizefs_once
und/etc/rc3.d/S01resizefs_once
existieren nicht nach dem ersten Booten auf Ubuntu Mate.cmdline.txt
undinit.d
sowie vonrc3.d
Datei und Link, dass der nächste Start die Größe von selbst ändert, oder muss ichraspi-config
ihn manuell ausführen und ausführen?cmdline.txt
. Ich habe das Raspbian-Image mit gebootetsystemd-nspawn
und immer noch Fehlerprotokolle erhalten, die versucht haben, die Größe zu ändern, nachdem ich dascmdline.txt
Ding entfernt habe.