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:
init=/usr/lib/raspi-config/init_resize.sh
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:
/etc/init.d/resizefs_once
Und die symbolische Verknüpfung dazu, die ebenfalls entfernt werden sollte:
/etc/rc3.d/S01resizefs_once
Sie können eine Kopie für eine spätere Verwendung aufbewahren raspi-config
, sie jedoch erneut erstellen (eingebettet in das raspi-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 der init.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.
- Obwohl eine Fehlermeldung aus diesem Skript diese Begriffe möglicherweise durch die Behauptung verwirrt, dass die Größe des Root- Dateisystems nicht geändert werden konnte, ist die Größe der Partition, auf der sich das Root-Dateisystem befindet, nicht wirklich zu ändern . Das eine zu tun, führt nicht automatisch zum anderen.