{"id":7815,"date":"2021-10-23T23:21:47","date_gmt":"2021-10-23T21:21:47","guid":{"rendered":"https:\/\/u-labs.de\/portal\/?p=7815"},"modified":"2022-12-12T18:27:09","modified_gmt":"2022-12-12T16:27:09","slug":"eigenes-raspberry-pi-os-image-erstellen-und-anpassen","status":"publish","type":"post","link":"https:\/\/u-labs.de\/portal\/eigenes-raspberry-pi-os-image-erstellen-und-anpassen\/","title":{"rendered":"Eigenes Raspberry Pi OS Image erstellen und anpassen"},"content":{"rendered":"<p>Du m\u00f6chtest dein eigenes Raspberry Pi OS Image erstellen, dass man &#8211; genau wie das offizielle &#8211; mit wenigen Mausklicks auf die Speicherkarte \u00fcbertragen kann? Das ist gar nicht so schwierig! Wie das geht, schauen wir uns heute an.<\/p>\n<p>Doch zun\u00e4chst ein paar m\u00f6gliche Anwendungsf\u00e4lle, bei denen das Sinn macht:<\/p>\n<ul class=\"wp-block-list\">\n<li>Man m\u00f6chte mehrere Pis installieren: Schon alleine durch das Einbinden aktueller Updates kann man einiges an Zeit sparen &#8211; besonders wenn das letzte ver\u00f6ffentlichte Raspberry Pi OS Image schon etwas \u00e4lter ist<\/li>\n<li>Vor allem mit langsamer Internetverbindung spart man sich Bandbreite. Auch die Paketquellen der Raspberry Pi Organisation werden geschont, da man die Updates einmalig f\u00fcr das Image herunterl\u00e4dt statt f\u00fcr jeden Pi separat<\/li>\n<li>Eine Reihe an Tools die man auf jedem Pi haben m\u00f6chte lassen sich im Image integrieren, sodass die h\u00e4ndische Installation entf\u00e4llt<\/li>\n<li>Wer selbst (umfangreichere) Software entwickelt, kann ein fertiges Image bereitstellen, in dem sie vorinstalliert ist. Dies haben beispielsweise die Entwickler von RetroPi gemacht.<\/li>\n<\/ul>\n<p>Sehr praktisch: Man kann sein selbst erstelltes Image nach wie vor \u00fcber die Erweiterten Optionen in Imager (STRG + Shift + X) anpassen &#8211; beispielsweise, um den Hostname zu setzen, WLAN einzurichten etc. Es verh\u00e4lt sich also wie das offizielle Raspberry Pi OS Image, enth\u00e4lt aber die eigenen Anpassungen.<\/p>\n<h2 class=\"wp-block-heading\">Wie funktioniert das?<\/h2>\n<p>Wir erstellen hierbei kein komplettes Betriebssystem. Das w\u00e4re selbstverst\u00e4ndlich deutlich aufw\u00e4ndiger und erfordert tiefes Wissen. Stattdessen nehmen wir das Raspberry Pi OS als Grundlage und passen es an unsere Vorstellungen an: Beispielsweise durch die Installation von Programmen, bestimmten Voreinstellungen oder das Einbinden von Dateien. Im Gegensatz zur Entwicklung eines eigenen Betriebssystems geht das nicht nur viel schneller, sondern hat auch zwei entscheidende Vorteile: F\u00fcr den Nutzer verh\u00e4lt es sich wie ein Raspberry Pi OS. Au\u00dferdem kann er s\u00e4mtliche Updates aus den offiziellen Raspberry Pi Paketquellen einspielen. Wir m\u00fcssen uns also um das Drum-Herum gar nicht k\u00fcmmern, weil das vom Raspberry Pi OS bereits abgedeckt ist. Stattdessen kann man sich auf die eigenen Anpassungen fokussieren.<\/p>\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-38.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"610\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-38-1024x610.png\" alt=\"\" class=\"wp-image-7857\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-38-1024x610.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-38-300x179.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-38-768x458.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-38-70x42.png 70w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-38.png 1158w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<h2 class=\"wp-block-heading\">Das ben\u00f6tigst du<\/h2>\n<p>Zun\u00e4chst nat\u00fcrlich einen Raspberry Pi mit Speicherkarte und einen Speicherkartenleser f\u00fcr deinen PC. Falls du den Inhalt der Karte au\u00dferhalb des Pis \u00e4ndern m\u00f6chtest, solltest du am besten einen Linux-Computer haben.  Falls ihr nur einen Computer mit Windows habt, alternativ eine Virtuelle Maschine. Zu empfehlen w\u00e4re ein Ubuntu-Flavour. Mit dem Windows Subsystem f\u00fcr Linux wird es schwieriger. Da es sich an manchen Stellen nicht wie ein richtiges Linux verh\u00e4lt, rate ich davon ab. Mit Abstand am schnellsten funktioniert es aber mit einer richtigen, nativen Linux-Installation. <\/p>\n<p>Im Folgenden verwende ich Xubuntu. Es funktioniert mit anderen Ubuntu-Flavours und auch anderen Linux-Distributionen \u00e4hnlich.<\/p>\n<h2 class=\"wp-block-heading\">Grundlage: Raspberry Pi OS auf deiner Speicherkarte anpassen<\/h2>\n<p>Um dies umzusetzen, <a href=\"https:\/\/u-labs.de\/portal\/raspberry-pi-4-ohne-monitor-installieren-und-einrichten-durch-vorkonfiguration-unter-windows-linux\/\" title=\"Raspberry Pi 4 OHNE Monitor installieren und einrichten durch Vorkonfiguration unter Windows &amp; Linux\">l\u00e4dt man sich das gew\u00fcnschte Raspberry Pi OS Basis-Image auf eine SD-Karte<\/a>. Damit den Pi starten und wie gew\u00fcnscht konfigurieren, Software installieren etc und am besten per Ethernet mit dem Netzwerk verbinden. <\/p>\n<p><strong>Beachte<\/strong>: Alles was du einrichtest, ist sp\u00e4ter im Image enthalten! Auch z.B. der WLAN-Schl\u00fcssel, sofern du WLAN verwendest. Es macht daher Sinn, am Ende eine Bereinigung durchzuf\u00fchren. Zumindest wenn du das Image an andere weitergibst, sollten definitiv alle w\u00e4hrend der Einrichtung eingegebenen pers\u00f6nlichen Daten entfernt werden. In diesem Falle empfiehlt es sich, den Pi \u00fcber ein Netzwerkkabel zu verbinden und keine pers\u00f6nlichen Informationen bei der Einrichtung zu hinterlegen oder diese anschlie\u00dfend sauber zu entfernen. <\/p>\n<p>Durch das Bereinigen wird das Image zudem kleiner. Beispielsweise k\u00f6nnt ihr mit <strong>apt autoremove<\/strong> oder <strong>apt-get clean<\/strong>.<\/p>\n<p>Wenn ihr fertig seid, den Pi herunterfahren, die Speicherkarte entnehmen, an euren PC anschlie\u00dfen <a href=\"https:\/\/u-labs.de\/portal\/komplette-sd-karte-des-raspberry-pi-mit-einem-image-sichern-windows\/\">und ein Image erstellen<\/a>.<\/p>\n<h2 class=\"wp-block-heading\">Verwendung des USB-Speicherkartenleser unter einer VM auf einem Windows-System<\/h2>\n<p>Falls du keinen Linux-PC oder Laptop besitzt und unter Windows Solltest du unter Windows mit einer VirtualBox-VM arbeiten, musst du deinen Kartenleser freigeben. Dazu ist es notwendig, <a href=\"https:\/\/u-labs.de\/portal\/ordner-zwischenablage-usb-geraete-teilen-virtualbox-gasterweiterung-installieren-ubuntu-gast-auf-windows-host-text-video\/\" title=\"Ordner, Zwischenablage &amp; USB-Ger\u00e4te teilen: VirtualBox Gasterweiterung installieren (Ubuntu Gast auf Windows Host, Text + Video)\">die Gasterweiterung zu installieren und USB-Ger\u00e4te mithilfe des Extension Packs zu aktivieren<\/a>.<\/p>\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-29.png\"><img loading=\"lazy\" decoding=\"async\" width=\"862\" height=\"237\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-29.png\" alt=\"\" class=\"wp-image-7816\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-29.png 862w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-29-300x82.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-29-768x211.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-29-70x19.png 70w\" sizes=\"auto, (max-width: 862px) 100vw, 862px\" \/><\/a><figcaption class=\"wp-element-caption\">\u00dcber das Ger\u00e4te-Men\u00fc lassen sich USB-Ger\u00e4te an eine VM unter VirtualBox weiterreichen, sofern Extension Pack und Gasterweiterung installiert sind und die Funktion in den VM-Einstellungen aktiviert ist.<\/figcaption><\/figure>\n<p>Falls hier mehrere Ger\u00e4te gelistet sind die sich nicht eindeutig identifizieren lassen, am besten alle anderen USB-Ger\u00e4te die nicht zwingend ben\u00f6tigt werden abstecken. Du kannst auch die Verbindung zum Speicherkartenleser trennen, ein Bildschirmfoto der Liste erstellen, anschlie\u00dfend den Kartenleser wieder anschlie\u00dfen und schauen, welches Ger\u00e4t neu hinzugekommen ist.<\/p>\n<h2 class=\"wp-block-heading\">Vorbereitung: Einlegen der Speicherkarte und ggf. finale Anpassungen<\/h2>\n<p>Zun\u00e4chst ermitteln wir das Laufwerk des Kartenlesers. Dazu empfehle ich, <strong>lsblk <\/strong>vor dem Einlegen der Karte aufzurufen und einmal danach. Ich empfehle, dabei alle anderen Speichermedien (externe Festplatten, USB-Sticks etc) m\u00f6glichst zu trennen (bzw. bei VirtualBox nicht freizugeben).<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n$ sudo lsblk -e 1,7 -d\nNAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT\nsda    8:0    0   80G  0 disk \nsr0   11:0    1 58,3M  0 rom\n\n# Speicherkarte in den Kartenleser einlegen\n\n$ sudo lsblk -e 1,7 -d\nNAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT\nsda    8:0    0   80G  0 disk \nsdc    8:32   1 29,7G  0 disk \nsr0   11:0    1 58,3M  0 rom\n\n<\/pre>\n<\/div>\n<p>Neben der Gr\u00f6\u00dfe erkennen wir die Karte somit am neu hinzugekommenen Ger\u00e4t, hier <strong>sdc <\/strong>mit 32 GB. Diesen bitte f\u00fcr sp\u00e4ter merken. Unter Linux k\u00f6nnen wir das Abbild mounten und damit noch nachtr\u00e4glich ver\u00e4ndern, etwa Dateien ins Dateisystem kopieren bzw. nicht ben\u00f6tigte Dinge entfernen. Wenn aktiviert, mountet Ubuntu dies sogar automatisch beim Einlegen der Karte in <strong>\/media\/&lt;benutzername&gt;\/rootfs<\/strong>:<\/p>\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-31.png\"><img loading=\"lazy\" decoding=\"async\" width=\"902\" height=\"544\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-31.png\" alt=\"\" class=\"wp-image-7818\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-31.png 902w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-31-300x181.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-31-768x463.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-31-70x42.png 70w\" sizes=\"auto, (max-width: 902px) 100vw, 902px\" \/><\/a><\/figure>\n<p>Dies entspricht dem Wurzelverzeichnis \/ auf dem Raspberry Pi. Falls automatisches Einh\u00e4ngen bei euch nicht aktiv ist, k\u00f6nnt ihr es manuell mounten:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n$ sudo lsblk -e 1,7 -o NAME,FSTYPE,SIZE,VENDOR,MOUNTPOINT\n...\nsdc            29,7G Mass\n\u251c\u2500sdc1 vfat     256M                         \n\u2514\u2500sdc2 ext4    29,5G\n<\/pre>\n<\/div>\n<p>Hier sehen wir die zwei Partitionen auf der Karte: <strong>sdc1<\/strong> als Boot-Partition und <strong>sdc2<\/strong> ist das Wurzel-Verzeichnis. Einfach einen Ordner erstellen und die gew\u00fcnschte Partition dort einh\u00e4ngen.<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n$ sudo mkdir \/mnt\/rpi_card\n$ sudo mount \/dev\/sdc2 \/mnt\/rpi_card\/\n$ ls -lh \/mnt\/rpi_card\/preconfigured_u-labs_12.10.2021 \n-rw-r--r-- 1 root root 133 Okt 12 21:20 \/mnt\/rpi_card\/preconfigured_u-labs_12.10.2021\n<\/pre>\n<\/div>\n<p>Nachdem ihr fertig seit, die Partition wieder aush\u00e4ngen:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n$ sudo umount \/mnt\/rpi_card\n<\/pre>\n<\/div>\n<h2 class=\"wp-block-heading\">Anlegen des Abbildes der Raspberry Pi Speicherkarte<\/h2>\n<p>Nun m\u00fcsst ihr nur noch ein Abbild (auch Image genannt) der Speicherkarte erstellen &#8211; schon habt ihr euer eigenes, selbst angepasstes Raspberry Pi OS! Unter Windows ben\u00f6tigt ihr dazu externe Programme. <a href=\"https:\/\/u-labs.de\/portal\/komplette-sd-karte-des-raspberry-pi-mit-einem-image-sichern-windows\/\" title=\"Komplette SD-Karte des Raspberry Pi mit einem Image sichern (Windows)\">Wie es dort funktioniert, habe ich in einem eigenen Beitrag bereits gezeigt<\/a>. Linux liefert alle n\u00f6tigen Werkzeuge automatisch mit.<\/p>\n<p><strong>Achtung<\/strong>: dd ist ein vielseitiges, aber auch m\u00e4chtiges Werkzeug. Die falsche Verwendung kann zu Datenverlusten f\u00fchren oder das System unbrauchbar machen! Achtet daher unbedingt darauf, <strong>sdc <\/strong>mit dem zuvor notierten Laufwerksname der Karte zu ersetzen. <\/p>\n<p>Von der kompletten Speicherkarte <strong>sdc<\/strong> wird nun ein vollst\u00e4ndiges Abbild erstellt, etwa im Home-Verzeichnis:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nsudo dd if=\/dev\/sdc of=~\/rpi_image.img status=progress\n<\/pre>\n<\/div>\n<p>Je nach Gr\u00f6\u00dfe der Karte und Geschwindigkeit kann das eine Weile dauern. Vor allem unter Windows erreiche ich virtualisiert nur 4-5MB\/s, wogegen ich nativ unter Linux selbst mit einem \u00e4lteren, billigen USB-Adapter immerhin auf 15MB\/s komme. Mein UGreen 4-in-1 Kartenleser kann die Samsung-Speicherkarte deutlich besser ausreizen: Mit <strong>70-75<\/strong> <strong>MB\/s<\/strong> kopiert erstellt er das Abbild der 32 GB Karte in nur gut 7 Minuten. Ein natives Linux ist also auch hier am performantesten.<\/p>\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n<p>Das Image-Format ist im Grunde nur ein Abbild der Partition. Man kann es daher mit wenig Aufwand anpassen, um sein eigenes Raspberry Pi OS Derivat zu erstellen. F\u00fcr Fortgeschrittene Nutzer kann das unter manchen Umst\u00e4nden sinnvoll sein. <\/p>\n<p>Weiterf\u00fchrend macht es nun Sinn, das erstellte Abbild zu verkleinern und zu komprimieren. Ansonsten ben\u00f6tigt es unn\u00f6tig viel Speicherplatz. Dies zeigen wir in einem eigenen Beitrag.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Du m\u00f6chtest dein eigenes Raspberry Pi OS Image erstellen, dass man &#8211; genau wie das offizielle &#8211; mit wenigen Mausklicks auf die Speicherkarte \u00fcbertragen kann? Das ist gar nicht so schwierig! Wie das geht, schauen wir uns heute an. Doch zun\u00e4chst ein paar m\u00f6gliche Anwendungsf\u00e4lle, bei denen das Sinn macht: Sehr praktisch: Man kann sein &#8230;<\/p>\n","protected":false},"author":5,"featured_media":7856,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[671],"tags":[721,75,982],"class_list":["post-7815","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-raspberry-pi","tag-image","tag-linux","tag-os"],"_links":{"self":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/7815","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=7815"}],"version-history":[{"count":16,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/7815\/revisions"}],"predecessor-version":[{"id":9818,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/7815\/revisions\/9818"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media\/7856"}],"wp:attachment":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media?parent=7815"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/categories?post=7815"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/tags?post=7815"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}