rootfs.tar.gz ändern

Gast #4343822
Lesenswert?
• ▲
▼
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...
#4343882
Lesenswert?
• ▲
▼
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
Gast #4343890
Lesenswert?
• ▲
▼
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
#4343908
Lesenswert?
• ▲
▼
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
Gast #4343960
Lesenswert?
• ▲
▼
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.
Gast #4345793
Lesenswert?
• ▲
▼
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.
#4347427
Lesenswert?
• ▲
▼
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren