Ich erstelle ein Disk-Image für ein eingebettetes System (das auf einer 4-GB-SD-Karte gespeichert werden soll). Ich möchte, dass das System zwei Partitionen hat. Eine 'Root'-Partition (200 MB) und eine' Data'-Partition (800 MB).
Ich erstelle eine leere 1 GB Datei mit dd. Dann benutze ich parted, um die Partitionen einzurichten. Ich montiere sie jeweils in einem Loop-Gerät und formatiere sie dann. ext2 für 'Root' ext4 für 'Data'. Fügen Sie mein Root-Dateisystem zur 'Root'-Partition hinzu und lassen Sie' Data 'leer.
Hier liegt das Problem. Ich habe jetzt ein 1-GB-Bild mit nur 200 MB Daten. Sollte ich theoretisch nicht in der Lage sein, das Image auf 201 MB zu kürzen und das Dateisystem trotzdem einbindbar zu machen? Leider habe ich dies nicht festgestellt.
Ich erinnere mich, dass ich in der Vergangenheit eine Build-Umgebung von Freescale verwendet habe, in der 30-MB-Images erstellt wurden, die Partitionen für die Verwendung einer gesamten 4-GB-SD-Karte enthält. Leider kann ich zu diesem Zeitpunkt nicht herausfinden, wie sie das gemacht haben.
Ich habe das Format auf der Festplatte für das ext-Dateisystem gelesen, und wenn nach dem ersten Superblock keine Daten mehr vorhanden sind (außer Backup-Superblöcken und nicht verwendeten Blocktabellen), dachte ich, ich könnte dort abschneiden.
Wenn ich das mache, flippt das Montagesystem leider aus. Ich kann dann FSCK ausführen, die Superblöcke und Blocktabellen wiederherstellen und es dann problemlos bereitstellen. Ich denke einfach nicht, dass das notwendig sein sollte.
Vielleicht könnte ein anderes Dateisystem funktionieren? Irgendwelche Ideen?
Vielen Dank,
bearbeiten
Partition geändert, um Dateisystem zu lesen. Die Partition ist noch vorhanden und ändert sich nicht, aber das Dateisystem wird nach dem Abschneiden des Images zerstört.
bearbeiten
Ich habe festgestellt, dass das Dateisystem, wenn ich die Datei auf eine Größe abschneide, die nur größer ist als der erste Satz von 'Daten'-Partitions-Superblock- und Inode / Block-Tabellen (irgendwo im Datenblock-Bereich), ohne dass dies möglich ist ein fsck, um den Rest der Superblöcke und Block / Inode-Tabellen wiederherzustellen
parted
- bei diesem Programm geht es nicht um Partitionstabellen, sondern um ein seltsames Zusammenspiel von Partitionstabellen + Dateisystemen. Im Allgemeinen ist der Versuch, beide zu kombinieren, schlecht. Partitionstabellen und Dateisysteme existieren völlig unabhängig voneinander.
wipefs
und abrufen und dd
einfach tar
die fs-Daten oder was auch immer aktualisieren und beim Erstellen des Images entpacken.