Ich versuche unter ArchLinux mount
auf eine Disketten-Image-Datei im .ima-Format (Raw Dump to Floppy, ähnlich wie .img ) zuzugreifen .
Diese Datei ist Teil eines Satzes von 30. Sie ist nicht bootfähig, sondern eine Fortsetzung eines Satzes. Der Zweck ist keine Manipulation zum Zwecke der Installation oder des Klonens. Ich interessiere mich für die Dokumentation mit anderen Daten auf der Festplatte.
Informationen zur Bilddatei
Hier einige Informationen zu dieser Bilddatei:
# file U19.IMA
U19.IMA: PC formatted floppy with no filesystem
# fdisk -lu U19.IMA
Disk U19.IMA: 1.4 MiB, 1474560 bytes, 2880 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
(parted) print
Error: /home/meh/Downloads/U19.IMA: unrecognised disk label
Model: (file)
Disk /home/meh/Downloads/U19.IMA: 1475kB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:
Montage fehlgeschlagen
Hier ist die allgemeine Fehlermeldung:
mount -o ro,loop U19.IMA /mnt/cd/
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or helper program, or other error
Ich habe viele Kombinationen ausprobiert, um einen Typ mit -t anzugeben, dh ntfs, msdos, iso9660, vfat, und immer den gleichen Fehler zu erhalten. Ich dachte, es ist vielleicht eine Art ntfs-Dateiformat, aber ntfs-3G macht es nicht viel besser, also nein, es ist nicht:
# ntfs-3g -o loop U19.IMA /mnt
NTFS signature is missing.
Failed to mount '/home/meh/Downloads/U19.IMA': Invalid argument
The device '/home/meh/Downloads/U19.IMA' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
# ntfsclone -r -o file.img U19.IMA
ntfsclone v2013.1.13 (libntfs-3g)
ERROR: Input file is not an image! (invalid magic)
Jemand schlug vielleicht einen Minix fs vor. Obwohl nicht klar ist, ob ich ein solches Dateisystem mit meiner aktuellen Konfiguration wirklich mounten kann, habe ich versucht:
mount -t minix -o loop U19.IMA /mnt/cd
which gave the generic error but there was this at the bottom of the log:
VFS: Can't find a Minix filesystem V1 | V2 | V3 on device loop0.
Dies scheint nicht schlüssig zu sein, da bei der Angabe eines bestimmten Dateisystemtyps ein bestimmter Fehlertyp im Protokoll angezeigt wird. Auch versucht [fuseiso][2]
:
# fuseiso U19.IMA /mnt/cd
init: wrong standard identifier in volume descriptor 0, skipping..
init: wrong standard identifier in volume descriptor 1, skipping..
init: wrong standard identifier in volume descriptor 2, skipping..
init: wrong standard identifier in volume descriptor 3, skipping..
init: wrong standard identifier in volume descriptor 4, skipping..
init: wrong standard identifier in volume descriptor 5, skipping..
init: wrong standard identifier in volume descriptor 6, skipping..
init: wrong standard identifier in volume descriptor 7, skipping..
init: wrong standard identifier in volume descriptor 8, skipping..
init: wrong standard identifier in volume descriptor 9, skipping..
init: wrong standard identifier in volume descriptor 10, skipping..
init: wrong standard identifier in volume descriptor 11, skipping..
init: wrong standard identifier in volume descriptor 12, skipping..
init: wrong standard identifier in volume descriptor 13, skipping..
init: wrong standard identifier in volume descriptor 14, skipping..
init: wrong standard identifier in volume descriptor 15, skipping..
init: wrong standard identifier in volume descriptor 16, skipping..
init: wrong standard identifier in volume descriptor 17, exiting..
Wo ich solche Dinge sehen kann mit dmesg
:
[ 5316.082629] FAT-fs (loop0): invalid media value (0xf6)
[ 5316.082644] FAT-fs (loop0): Can't find a valid FAT filesystem
Auch lsmod | grep loop
gibt
loop 18511 0
Es gibt keinen alternativen Superblock :
# mkfs -n U19.IMA
mke2fs 1.42.8 (20-Jun-2013)
U19.IMA is not a block special device.
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
184 inodes, 1440 blocks
72 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=1572864
1 block group
8192 blocks per group, 8192 fragments per group
184 inodes per group
Im Gegensatz zu vielen Fällen, über die ich gelesen habe, scheint es hier nicht erforderlich zu sein, einen Versatz anzugeben, da im Bild keine Partition erstellt ist. In solchen Fällen wird manchmal der dd
Befehl verwendet, um den Inhalt unter Verwendung eines Versatzwerts, der das Mounten ermöglicht, auf ein ähnliches Bild zu übertragen. Dies scheint dasselbe zu sein, als würde ein mount
Befehl direkt für den Befehl angegeben. Dies sollte jedoch einfach sein, wie in diesem anderen Fall, in dem ein einfaches losetup
verwendet wird und dann das Schleifengerät montiert wird. Ich kann die .ima-Datei mit losetup verknüpfen, aber wenn ich versuche, das Loop-Gerät zu mounten, erhalte ich meine erste Fehlermeldung.
Datenintegrität
Schließlich werden safecopy --stage1
keine Probleme mit den Daten gemeldet, und die Ausgabe bis Stufe 3 bleibt gleich und führt zum gleichen Fehler:
# safecopy U19.IMA test.img --stage1
Low level device calls enabled mode: 2
Reported hw blocksize: 4096
Reported low level blocksize: 4096
File size: 1474560
Blocksize: 4096
Fault skip blocksize: 147456
Resolution: 147456
Min read attempts: 1
Head moves on read error: 0
Badblocks output: stage1.badblocks
Marker string: BaDbLoCk
Starting block: 0
Source: U19.IMA
Destination: test.img
. ;-} 100%
Done!
Recovered bad blocks: 0
Unrecoverable bad blocks (bytes): 0 (0)
Blocks (bytes) copied: 360 (1474560)
Hier ist der Anfang der Datei und der Inhalt scheint intakt zu sein:
dd if=U19.IMA | hexdump -C | head -n 10
00000000 f6 f6 f6 f6 f6 f6 f6 f6 f6 f6 f6 f6 f6 f6 f6 f6 |................|
*
00004600 34 2e 30 2e 32 20 33 38 36 75 6e 69 78 20 46 6e |4.0.2 386unix Fn|
00004610 64 20 53 65 74 20 35 20 6f 66 20 31 30 0a 00 00 |d Set 5 of 10...|
00004620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
"Forensik"
Da ein Rohbild aus einer sektorweisen binären Kopie des Quellmediums besteht, hängt das tatsächliche Format des Dateiinhalts vom Dateisystem der Festplatte ab, von der das Bild erstellt wurde (z. B. eine Version von FAT). [...] Da IMG-Dateien keine zusätzlichen Daten über den Festplatteninhalt hinaus enthalten, können diese Dateien nur von Programmen verarbeitet werden, die ihre Dateisysteme erkennen können.
Nach den Vorschlägen analysierte ich einige der anderen Bilddateien im Set (30):
fdisk -lu U14.IMA
Disk U14.IMA: 1.4 MiB, 1474560 bytes, 2880 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
This doesn't look like a partition table. Probably you selected the wrong device.
Device Boot Start End Blocks Id System
U14.IMA1 3840 11519 3840 0 Empty
U14.IMA2 2425393152 4850786447 1212696648 0 Empty
U14.IMA3 ? 2425393296 4850786591 1212696648 90 Unknown
U14.IMA4 ? 2425393296 4850786591 1212696648 90 Unknown
Entschuldigung, aber es sieht aus wie eine Partitionstabelle, ist aber ungewöhnlich. Es enthält die Eigenschaft id 90 :
90h MBR, EBR CHS, LBA x86, 68000, 8080/Z80 Hidden, Filesystem FreeDOS Free FDISK Hidden FAT16 (corresponds with 04h i.e. MS Fat16 DOS 3.0+ < 65536 sectors)
Ich versuche also, das Bild zu mounten, das ich bekomme:
# mount -t auto U14.IMA /mnt/cd
mount: unknown filesystem type 'sysv' <-----
Wie jemand angedeutet hat, muss im Kernel etwas Bestimmtes wie " System V- und kohärente Dateisystemunterstützung " kompiliert sein, um so etwas verwenden zu können mount -t sysv
. Die sysv-Zeichenfolge ist nicht so überraschend, da dies Teil des Installationsmediums von AT & T UNIX System V / 386 Release 4 Version 2.1 ist - ein Port, der von Sun bis 2006 unterstützt wurde - und diese Bilder 2007 in der Wildnis landeten. Eigentlich ein Text Eine mit den Images gebündelte Datei zeigt an, dass sie aufgrund der Art des Bootsektors und des verwendeten Formats für die Installation erforderlich sind. Es gibt einen Hinweis darauf, dass das Material ursprünglich im Teledisk (TD0) -Format war. Ich möchte hier betonen, dass dies kein Originalmaterial ist. Auf jeden Fall kann ich die Offsets nicht wie in der Frage erläutert berechnen - entweder habe ich beim Teilen durch 512 keine ganzen Zahlen, und selbst wenn ich es versuche, kann ich anscheinend nicht den richtigen Offset finden - dd: cannot skip to specified offset, 0 writes
usw. Also An dieser Stelle geht es bei der Antwort um Forensik und nicht mehr um eine Bilddatei.
Schnelle Emulation des Betriebssystems für historische Bildquellen mit qemu
AT & T UNIX System V Version 4 Version 2.1
LABEL Version X of X
AT&T UNIX SVR4.0 2.1 --------------------------------------------------
U01.IMA Maintanace Disk1 2.1 2 of 2
U02.IMA Remote Terminal 2.1 1 of 1
Package
U03.IMA BSD Comp. Pkg. 2.1 1 of 2
U04.IMA BSD Comp. Pkg. 2.1 2 of 2
U05.IMA Networking Supp. 2.1 1 of 1
Util. Pkg.
U06.IMA Xenix Comp. Pkg 2.1 1 of 1
U07.IMA FACE Pkg. 2.1 1 of 1
U08.IMA FMLI Pkg. 2.1 1 of 1
U09.IMA Editing Utils. 2.1 1 of 1
U10.IMA OA&M Basic & Ext. 2.1 1 of 3
U11.IMA OA&M Basic & Ext. 2.1 2 of 3
U12.IMA OA&M Basic & Ext. 2.1 3 of 3
U13.IMA Foundation Set 2.1 1 of 10
Base System Pkg.
2 User System
U14.IMA Base 2.1a 1 of 10
U15.IMA Base 2.1 2 of 10
U16.IMA Base 2.1a 2 of 10
U17.IMA Base 2.1 3 of 10
U18.IMA Base 2.1 4 of 10
U19.IMA Base 2.1 5 of 10
U20.IMA Base 2.1 6 of 10
U21.IMA Base 2.1 7 of 10
U22.IMA Base 2.1 8 of 10
U23.IMA Base 2.1 10 of 10
U24.IMA Maintanance 1 2.1 1 of 2
U25.IMA Base 2.1 9 of 10
U26.IMA Printer Pkg 2.1 3 of 3
U27.IMA Printer Pkg 2.1 2 of 3
U28.IMA Printer Pkg 2.1 1 of 3
U29.IMA 16 to unlimited 2.1 1 of 1
User License
U30.IMA 2 to 16 User 2.1 1 of 1
License
Wie vorgeschlagen, habe ich von einem vorherigen Image im Set installiert. Es beinhaltet die Verwendung qemu
wie hier erklärt, beginnend mit Image 14 (zuerst losetup /dev/loop0 U14.IMA
dann ein einfaches qemu-system-x86_64 -m 256 -hda test.img -fda /dev/loop0 -boot a
), da U19 nicht bootfähig ist. Was hier schön ist, ist, dass Sie keine Images im Betriebssystem selbst mounten / umounten müssen. Sie verwenden einfach ctrl-alt-2
oder 1 mit qemu, um auf den Monitor zuzugreifen oder ihn zu verlassen, und Sie verwenden, um list blocks
zu sehen, was gemountet ist, und change floppy0 imagename
in dieser Schnittstelle, um das Image zu ändern Datei dh während der Installation zum Beispiel.
Ich musste während der Installation U19.IMA (Datenträger 5) bereitstellen (ein Textprotokoll der Installation finden Sie hier - ein Highlight ist der Verweis auf MS-DOS!), Und am Ende hatte ich ein ordnungsgemäß installiertes AT & T UNIX-System V 386 OS, dies bestätigt also ziemlich genau, dass U19.IMA ein funktionierendes Disk-Image ist:
Standardmäßig ist / dev / fd auf / dev / fd gemountet und es gibt auch Diskettenzugriff über ein Block- (/ dev / dsk / f0) und ein Raw-Gerät (/ dev / dsk / f0). Wenn Sie das Verzeichnis auf die Diskette wechseln, werden nur Dateien mit den Nummern 1 bis 23 angezeigt (dies ist vermutlich nur die Struktur des Zeichengeräts). Sie können auch cat
die Raw- und Block-Geräte anzeigen und sehen, dass die Diskettendaten vorhanden sind, aber das ist so nah wie möglich.
Ich habe festgestellt, dass Sie in diesem Betriebssystem keine Inhalte von Disketten installieren, indem Sie ein Skript aus einem Verzeichnis darauf starten, wie Sie es beispielsweise mit dekomprimierten Binärdateien tun - hier verwenden Sie pkgadd -d diskette1
(sicherlich ist das letzte Wort ein Alias, aber ich fand einen Verweis auf den Schalter -d im SCO-Zeug für pkgadd (1M)und im Allgemeinen erscheint es häufig in kommerziellem Unix (Oracle, HP Share pkgadd (1M)). Durch die Ausgabe des Befehls wird eine Routine gestartet, in der Sie Disketten bereitstellen und keine Kontrolle haben, außer "Nein" zu sagen, nachdem die Routine herausgefunden hat, was sich im Laufwerk befindet. Bei Festplatten, die eine Installationssequenz beginnen (U03, U05 usw.), wird diese installiert und Sie werden nach der nächsten Diskette usw. gefragt, bis die Paketinstallation abgeschlossen ist. Wenn Sie eine Diskette einlegen, die nicht der Anfang eines Satzes ist, findet sie im Grunde nichts, sagt Ihnen aber, dass Sie möglicherweise installpkg
stattdessen den Befehl verwenden müssen.
Installiere ich ein physisches Diskettenlaufwerk auf meinem Rig, um auf die Daten in dieser Image-Datei zuzugreifen?
mount -t minix -o loop U19.IMA /mnt/cd
erhalte ich den generischen Fehler, aber dieser landet in dmesg.VFS: Can't find a Minix filesystem V1 | V2 | V3 on device loop0.
Ist das ein Hinweis darauf, dass der Kernel ihn bereits hat, oder kann ich mich nicht darauf verlassen? Wie auch immer, ich werde untersuchen, was Sie gesagt haben. Ich weiß, dass es nicht bootfähig ist, aber ich möchte auf den Inhalt zugreifen. Vielen Dank.file
legt nahe, dass das Image kein Dateisystem enthält. Sind Sie sicher, dass Ihre Daten tatsächlich vorhanden sind? Es hört sich so an, als würden Sie versuchen, ein Image eines unformatierten Laufwerks ohne Partitionen und ohne Dateisystem bereitzustellen.Antworten:
Wenn Sie das Image nicht mounten können, können Sie in einigen Fällen möglicherweise noch einige seiner Daten mit "streamen"
cpio
.Sobald Sie festgestellt haben, ob das Bild ist:
mount
mount with offset
oderdd
zum Extrahieren einer Partition mit Offset verwendet wird, mounten Sie dann nur diese Partition oder verwenden Sie so etwaskpartx
Sie können die Verwendung
hexdump
undstrings
Dienstprogramme zu versuchen , den Header zu analysieren und Textzeichenfolgen aus dem Bild zu extrahieren und weitere Informationen über die Image - Datei und seine Struktur zu gewinnen.Etwas hat mein Interesse daran geweckt:
Es gibt eine solche Zeile für jede einzelne Binärdatei im Bild, sodass Sie etwas wissen, was darin enthalten ist. Wenn Sie sich in diesem Fall genauer ansehen, wie der Installationsprozess auf der ursprünglichen Plattform mit abläuft
installpkg
, stellen Sie Folgendes fest:Grundsätzlich werden die Daten mit
cpio
/ usr / tmp / install extrahiert und eine Reihe von Dateien sind darin enthalten (eine Installations-, ASCII-, Datei-, Namens- und Größendatei). Es kommt hier so vor, dass dieser Befehl:gibt zunächst fehlerhafte Zahlenfehler aus , erstellt dann aber einen Ordner / usr / bin mit dem Inhalt des Bildes! Das,
tr
wonach ich gesucht habe, ist da:Es
cpio
kann nicht schaden, es überhaupt zu versuchen !quelle
cpio
. Ich erinnere mich an diesen Versuch, direkt auf mein Root-Laufwerk zu extrahieren!