Gibt es eine Möglichkeit, eine in Teile zerlegte Disk-Img-Datei als Single-Loop-Gerät zu mounten?
linux
block-device
loop-device
MageProspero
quelle
quelle
Antworten:
Ich glaube nicht, dass Sie es an Ort und Stelle tun können, aber wenn Sie genug Platz haben, sollte dies funktionieren:
Sie können ein RAID-Array nicht einfach aus den Originaldateien erstellen, da die RAID-Festplatten einen bestimmten Header haben, in dem die Anzahl der Festplatten, die RAID-Stufe usw. gespeichert sind. Wenn Sie dies tun, wird dieser Teil Ihrer Originaldateien überschrieben.
Sie können das verwenden
mdadm --build
, um ein Array ohne Metadaten zu erstellen, aber dann sollten Sie wirklich zuerst ein Backup erstellen. Oder wenn ein Nur-Lese-Mount ausreicht:Warum willst du das machen? Wenn Ihr Dateisystem keine Dateien mit mehr als 4 GB verarbeiten kann, sollten Sie einfach zu einer vernünftigen wechseln.
quelle
truncate
anstatt,dd
weil es viel schneller ist (es führt kein eigentliches Schreiben in FS durch, sondern ordnet nur Inodes zu und markiert die Datei als lochhaltig).Zum Mounten eines geteilten Disk-Image (oder Partitions-Image) sollten Sie
affuse
die afftools verwenden, die derzeit hier verwaltet werden: https://github.com/sshock/AFFLIBv3Wenn Sie also eine Datei haben, teilen Sie sie in mehrere Unterdateien auf
test_img.000, test_img.001, test_img.002, test_img.003, test_img.004, test_img.005, test_img.006, test_img.007, test_img.008, test_img.009
dann kannst du sie virtuell mit verbinden
affuse
(Dies kombiniert alle Dateien, beginnend mit der Datei 000, dann 001, 002, ...)
Und dann das Image einhängen
Die Verwendung wird hier und einige Beispiele hier beschrieben . Eine Hilfeseite ist auch nach dem Kompilieren und Installieren oder hier verfügbar .
PS: Bei mir hat das
affuse
nur funktioniert, wenn die geteilten Dateien eine Größe hatten, die ein Vielfaches von 512 Bytes war.quelle
Sie können Ihre eigene Blockspeichergeräteerweiterung schreiben (denken Sie an eine sicherungsähnliche Erweiterung) und die Suche abhängig von der Adresse durchführen.
Hier finden Sie ein Beispiel für die Verwendung von fuse https://github.com/libfuse/python-fuse/blob/master/example/hello.py
quelle
Das, was ich bisher einer Lösung am nächsten kenne, ist die Erstellung einer VMware-VM. Sie starten eine Linux-Live-CD wie Rescatux oder Knoppix, Sie erstellen einen freigegebenen SMB-Ordner auf Ihrem Host-Computer, Sie mounten diese SMB-Freigabe auf Ihrer VM und dann
dd
das Image in die virtuelle Festplatte. VMware speichert seine Festplatten-Images standardmäßig als aufgeteilte Dateien. Dies entspricht also am ehesten dem direkten Lesen eines in mehrere Dateien aufgeteilten Festplatten-Images.Wenn Sie später von Ihrem Host-Computer aus auf die Dateien zugreifen möchten, können Sie versuchen, dem Image eine zweite virtuelle Festplatte hinzuzufügen und die Dateien dort zu kopieren. Anschließend richten Sie einen freigegebenen SMB-Ordner auf der VM ein und stellen von Ihrem Host aus eine Verbindung dazu her. Auf diese Weise können Sie beispielsweise das 4-GB-Dateilimit von FAT32 verletzen, wenn Sie einen iPod Classic (der nur fat32 unterstützt) oder die SD-Karte Ihres Smartphones verwenden (normalerweise müssen Sie ein benutzerdefiniertes ROM installieren, um dies zu erreichen) Um Ext3 oder NTFS auf dem externen Speicher verwenden zu können, benötigen Sie ein Telefon eines bekannten Herstellers wie Samsung oder Motorola. Wenn Sie also ein chinesisches Smartphone haben, sind Sie ratlos.
Es ist zwar keine effiziente Lösung, aber da ich auf meinem iPod Classic oder meinem Samsung-Smartphone mit Standard-ROM nur mit fat32 arbeiten kann, habe ich das gesamte Internet im Internet durchsucht Vergangenheit und bin immer noch nicht in der Lage, eine effiziente Lösung dafür zu finden. Ich muss es vielleicht sogar selbst schreiben.
PS: Ich habe vergessen zu erwähnen, dass dies unter Windows der einzige Weg ist, dies zu tun.
quelle
Unter BSD können Sie die Option union zum Mounten verwenden. Unter Linux können Sie unionFS ausprobieren.
quelle