{"id":7847,"date":"2022-10-11T23:46:17","date_gmt":"2022-10-11T21:46:17","guid":{"rendered":"https:\/\/u-labs.de\/portal\/?p=7847"},"modified":"2022-10-11T23:47:36","modified_gmt":"2022-10-11T21:47:36","slug":"raspberry-pi-image-sicherung-auf-die-tatsaechliche-groesse-verkleinern-viel-ungenutzten-speicherplatz-sparen","status":"publish","type":"post","link":"https:\/\/u-labs.de\/portal\/raspberry-pi-image-sicherung-auf-die-tatsaechliche-groesse-verkleinern-viel-ungenutzten-speicherplatz-sparen\/","title":{"rendered":"Raspberry Pi Image Sicherung auf die tats\u00e4chliche Gr\u00f6\u00dfe verkleinern &#038; (viel) ungenutzten Speicherplatz sparen"},"content":{"rendered":"<p><a href=\"https:\/\/u-labs.de\/portal\/komplette-sd-karte-des-raspberry-pi-mit-einem-image-sichern-windows\/\">In einem vorherigen Beitrag habe ich gezeigt, wie man eine Image-Sicherung des Raspberry Pi erstellen kann<\/a>. Mithilfe eines solchen Abbildes l\u00e4sst sich der Pi komplett wiederherstellen. <a href=\"https:\/\/u-labs.de\/portal\/eigenes-raspberry-pi-os-image-erstellen-und-anpassen\/\" title=\"Eigenes Raspberry Pi OS Image erstellen und anpassen\">Ein anderer zeigt, wie man auf Basis des Raspberry Pi OS sein eigenes Betriebssystem-Abbild erstellen kann<\/a>. Eines der gr\u00f6\u00dften Nachteile in beiden F\u00e4llen: Das Abbild ist genau so gro\u00df wie die SD-Karte, auch wenn diese nur zu einem Bruchteil belegt ist. Hat man beispielsweise eine 32 GB gro\u00dfe Micro-SD Karte, wird das Image immer 32 GB gro\u00df sein. Vor allem mit gr\u00f6\u00dferen Speicherkarten verlangsamt dies die Wiederherstellung deutlich und kostet auf Dauer einiges an Speicherplatz. Heute schauen wir uns an, wie man ein Abbild auf die tats\u00e4chliche Gr\u00f6\u00dfe verkleinern und sogar komprimieren kann.<\/p>\n<p>Das funktioniert, in dem ein neues Image erstellt wird &#8211; aber nur mit dem belegten Speicherplatz. Der freie Speicher in dem ja keine Daten liegen, wird somit aus dem Abbild entfernt. Beim Start erweitert der Pi das Abbild wieder auf die volle Gr\u00f6\u00dfe der SD-Karte, sodass diese ausgenutzt werden kann. <\/p>\n<h2 class=\"wp-block-heading\">Was brauche ich?<\/h2>\n<p>Es wird <a href=\"https:\/\/u-labs.de\/portal\/komplette-sd-karte-des-raspberry-pi-mit-einem-image-sichern-windows\/\">ein Abbild in Form einer .img Datei ben\u00f6tigt &#8211; wie dies erstellt wird, habe ich in einem anderen Beitrag bereits gezeigt<\/a>. Die eingesetzte Software l\u00e4uft auf Linux, dementsprechend ist eine Linux-Installation n\u00f6tig. Falls du nur einen Windows-PC hast, kannst du dort auch eine VM installieren. Wie dies funktioniert, <a href=\"https:\/\/u-labs.de\/portal\/eigenes-raspberry-pi-os-image-erstellen-und-anpassen\/\" title=\"Eigenes Raspberry Pi OS Image erstellen und anpassen\">habe ich im Beitrag zur Erstellung eines eigenen Raspberry Pi OS Images gezeigt<\/a>. Zu empfehlen w\u00e4re jedoch eine native Linux-Installation, die Performance ist dort in meinen Tests deutlich besser als in einer Virtuellen Maschine.<\/p>\n<h2 class=\"wp-block-heading\">Erstelltes Image auf die tats\u00e4chliche Gr\u00f6\u00dfe verkleinern<\/h2>\n<p>Nun zu unserem Hauptproblem: Die .img Datei ist genau so gro\u00df wie die Speicherkarte, in diesem Falle 32 GB. Um das zu l\u00f6sen, m\u00f6chten wir das Abbild auf die tats\u00e4chlich genutzte Gr\u00f6\u00dfe verkleinern &#8211; denn auf der Karte ist nur ein Bruchteil der 32 GB tats\u00e4chlich belegt. Das Problem entsteht hier also durch den freien Speicher, der durch ein 1:1 Abbild ebenfalls eingeschlossen wird. Dieses Problem hat bereits jemand mit einem <a href=\"https:\/\/github.com\/Drewsif\/PiShrink\" title=\"https:\/\/github.com\/Drewsif\/PiShrink\" target=\"_blank\" rel=\"nofollow\">quelloffenen Skript namens PiShrink gel\u00f6st<\/a>. Wir m\u00fcssen es daher nur herunterladen und anschlie\u00dfend auf das Image anwenden:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nwget https:\/\/raw.githubusercontent.com\/Drewsif\/PiShrink\/master\/pishrink.sh\nchmod +x pishrink.sh\n<\/pre>\n<\/div>\n<p>Damit das Image verkleinert werden kann, wird <strong>gparted <\/strong>ben\u00f6tigt. Falls man dies auch komprimieren m\u00f6chte, zus\u00e4tzlich das Paket <strong>pigz<\/strong>:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nsudo apt install gparted pigz\n<\/pre>\n<\/div>\n<p>Um unser Abbild zu verkleinern und zu \u00fcberschreiben, k\u00f6nnen wir es einfach mit dem Pfad zur .img Datei aufrufen.<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nsudo pishrink.sh ~\/rpi_image.img\n<\/pre>\n<\/div>\n<p>M\u00f6chte man die originale Datei behalten, den neuen Pfad zur verkleinerten Datei als zweiten Parameter angeben. <strong>Achtung<\/strong>: Hierbei wird das Abbild zun\u00e4chst kopiert! Kurzzeitig braucht ihr also <strong>mehr als das Doppelte der Image-Gr\u00f6\u00dfe an Speicher!<\/strong><\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nsudo pishrink.sh ~\/rpi_image.img ~\/rpi_image_small.img\n<\/pre>\n<\/div>\n<p>Ein Vanilla Raspberry Pi OS auf dem lediglich s\u00e4mtliche Paketupdates sowie der Editor vim installiert wurden, reduziert dies die Gr\u00f6\u00dfe auf nur noch <strong>2,2 GB<\/strong> &#8211; Also etwa <strong>94% Ersparnis<\/strong>! Dies hat das Skript erreicht, in dem es die Karte auf die tats\u00e4chlich belegte Gr\u00f6\u00dfe reduziert hat. Der Pi ist entsprechend vorkonfiguriert, um seine Karte beim ersten Start auf die Volle Gr\u00f6\u00dfe zu erweitern &#8211; also in diesem Beispiel auf 32 GB.<\/p>\n<h2 class=\"wp-block-heading\">Noch st\u00e4rkere Verkleinerung des Abbildes durch Kompression<\/h2>\n<p>Weiter reduzieren l\u00e4sst sich die Gr\u00f6\u00dfe, in dem wir das Image komprimieren. PiShrink hat daf\u00fcr bereits zwei Verfahren implementiert: <\/p>\n<ul class=\"wp-block-list\">\n<li><strong>-z<\/strong> f\u00fcr <strong>Gzip<\/strong>: Es komprimiert unser aktuelles Vanilla Raspberry Pi OS Abbild von <strong>2,2 GB<\/strong> auf <strong>828 MB<\/strong>, also erneut mehr als 2,5 Mal kleiner.<\/li>\n<li><strong>-Z<\/strong> f\u00fcr <strong>XZ<\/strong>: Dieser Algorithmus ist noch etwas effizienter, das Image ist danach lediglich <strong>623 MB<\/strong> gro\u00df.<\/li>\n<\/ul>\n<p>In beiden F\u00e4llen macht es Sinn, den Schalter <strong>-a<\/strong> zu setzen. Dadurch werden alle Kerne zur Komprimierung genutzt. Das beschleunigt den Vorgang deutlich, vor allem bei XZ. Folgendes Beispiel erstellt ein XZ-Archiv:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nsudo pishrink.sh ~\/rpi_image.img -a -Z ~\/rpi_image_small.img\n<\/pre>\n<\/div>\n<p>Die Zieldatei erh\u00e4lt automatisch eine passende Erweiterung, z.B. .xz f\u00fcr XZ-Archive.<\/p>\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n<p>PiShrink ist ein n\u00fctzliches Skript, um Images der Raspberry Pi SD-Karte massiv zu verkleinern. Vor allem zur Bereitstellung eigener Images ist das n\u00fctzlich. Aber auch zu Sicherungs- und Archivierungszwecken l\u00e4sst sich damit viel Speicher sparen &#8211; tendenziell um so mehr, je gr\u00f6\u00dfer die Karte ist. Ebenfalls nicht zu vergessen ist die Zeitersparnis beim Einspielen: Ist die Image-Datei nur ein paar Gigabyte gro\u00df, geht dies deutlich schneller als mit 32 GB, 64 GB oder mehr &#8211; je nach Kartengr\u00f6\u00dfe.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In einem vorherigen Beitrag habe ich gezeigt, wie man eine Image-Sicherung des Raspberry Pi erstellen kann. Mithilfe eines solchen Abbildes l\u00e4sst sich der Pi komplett wiederherstellen. Ein anderer zeigt, wie man auf Basis des Raspberry Pi OS sein eigenes Betriebssystem-Abbild erstellen kann. Eines der gr\u00f6\u00dften Nachteile in beiden F\u00e4llen: Das Abbild ist genau so gro\u00df &#8230;<\/p>\n","protected":false},"author":5,"featured_media":9555,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[671],"tags":[69,68,54],"class_list":["post-7847","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-raspberry-pi","tag-backups","tag-datensicherung","tag-sicherung"],"_links":{"self":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/7847","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/comments?post=7847"}],"version-history":[{"count":5,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/7847\/revisions"}],"predecessor-version":[{"id":9557,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/7847\/revisions\/9557"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media\/9555"}],"wp:attachment":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media?parent=7847"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/categories?post=7847"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/tags?post=7847"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}