Hallo, ich möchte Linux über SD-Karte auf einer Embedded-Plattform laufen lassen. Das Referenz-Projekt liefert mir 'rootfs_ext4.tar.gz' & 'uramdisk.image.gz'. Dazu heißt es, 'rootfs_ext4.tar.gz' sei für EXT4 Partition und 'uramdisk.image.gz' für FAT. Um was geht es hier? Um die Partition der SD-Karte? 2.) Wie kann man das 'rootfs_ext4.tar.gz' & 'uramdisk.image.gz' verändern? Ich konnte bereits 'rootfs_ext4.tar.gz' entpacken und einsehen. Kann ich da einfach Sachen reinschreiben und wieder zusammenpacken, oder gibt es für die Erstellung eines Filesystem einen extra Befehl? 'uramdisk.image.gz' konnte ich bereits vom U-Boot Header befreien und entpacken. Aber beim Versuch das ganze zu mounten, kriege ich eine Fehlermeldung...
Hallo embert, auf einem Linux Rechner: uramdisk.image.gz entpacken und z.B. mit lsinitrd, mkinitrd und cpio bearbeiten. rootfs_ext4.tar.gz enpacken (gunzip) enttaren (tar tf) um zu sehen was drin steht und (tar xvf) um es zu extrahieren. Dann Inhalt verändern und wieder zusammenpacken (tar zcvf) und mit dem genannten Kommando wird auch in einem Schwung gezipped. Ansonsten googeln um mehr hierzu zu erfahren. Gruß Markus
embert schrieb: > Um was geht es hier? Um die Partition der SD-Karte? Das eine ist wahrscheinlich der Ingalt der Root Partition, das andere ein Image der RAM-Disk zum Starten > > 2.) Wie kann man das 'rootfs_ext4.tar.gz' & 'uramdisk.image.gz' > verändern? Auspacken oder falls es ein Filesystem Image ist auf einem Linux System mounten (Siehe: mount -o loop) und die Daten ändern. Danach wieder packen. > Ich konnte bereits 'rootfs_ext4.tar.gz' entpacken und einsehen. Kann ich > da einfach Sachen reinschreiben und wieder zusammenpacken, oder gibt es > für die Erstellung eines Filesystem einen extra Befehl? Kommt drauf an. Wenn es einzelne Dateien sind dann kann man es einfach entpacken, ändern und wieder packen. Wenn der Inhalt nur eine einzelne große Datei ist dann ist es wahrscheinlich ein komplettes Filesystem Image(das .image ist hier ein Hinweis) und kann unter Linux mit mount eingebunden und dann auch bearbeitet werden. ansonsten sind hier die Stichworte: dd Erzeugen einer leeren Datei mkfs. Erzeugen eines Filesystems mount Einhängen eines Filesystems unter Linux
Danke, Markus. Kann ich rootfs_ext4 einfach wieder zusammenpacken nachdem ich etwas reinkopiert (cp) habe? Brauche ich kein genetx2fs, oder ähnliches?
Hallo embert, wie schon auch von Blinky erwähnt, wenn es nur ein File im tar.gz archive ist, so ist es wahrscheinlich ein binäres Imige des ext4 Filesystems, dagegen Spricht aber eigentlich das TAR format, das zum Zusammenbinden von mehreren Dateien benützt wird. (Image mit losetup/mount einbinden falls erforderlich). Also einfach tar tf auf rootfs_ext4.tar anwenden, nachdem es mit gunzip entpackt wurde und das Listing der Files betrachten. Als Einzeiler ist auch tar ztf rootfs_ext4.tar.gz anwendbar, dann spart man sich das separate gunzip. Falls es einzelne Dateien sind, kannst Du sie aus dem Archive herausholen (mit tar) und nach der Veränderung wieder mit tar hineinpacken. Wenn Du nur Dateine hinzufügen/löschen willst, geht das auch mit tar. Siehe man tar und google nach tar. Markus
Ok, ich habe die rootfs_ext4 geändert und wieder zusammengepackt. Ich geh gleich mal ans Testen... Wer noch Lust & Muße könnte mir noch den Unterschied oder Vorzüge von rootfs.tar.gz VS. ramdisk.image erklären.
embert schrieb: > Ok, ich habe die rootfs_ext4 geändert und wieder zusammengepackt. > Ich geh gleich mal ans Testen... > > Wer noch Lust & Muße könnte mir noch den Unterschied oder Vorzüge von > rootfs.tar.gz VS. ramdisk.image erklären. Dazu solltest du aber noch die Ausgabe von file rootfs.tar.gz und file ramdisk.image anhängen Aber im Normalfall wird rootfs* irgendwie auf Platte/SD Karte gespeichert und ramdisk.* nur im RAM geladen, also ohne HDD und Co.
Manchmal ist aber auch ein uboot Header am Tar-gz das musst du erst entfernen:
1 | dd bs=64 skip=1 if=rootfs.tar.gz of=ramdisk_wo_header.tar.gz |
Dann entpacken, modifizieren und wieder durch mkimage von uboot jagen. Machmal ist auch ein cpio drin, dann musst du das mit cpio entpacken.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.