Eski bir disket görüntü dosyası (.ima biçimi) - ne kadar zor olabilir?


10

mountÇalışmaya ve ArchLinux üzerinde .ima biçiminde (diskete, .img benzer ham dökümü) bir disket görüntü dosyasına erişmeye çalışıyorum .

Bu dosya 30 kümesinin bir parçasıdır. Önyüklenebilir değil, bir kümenin devamıdır. Amaç, kurulum veya klonlama için manipülasyon değildir. Diskteki diğer verilerle ilgili belgelere ilgi duyuyorum.

Görüntü dosyası bilgileri

İşte bu görüntü dosyası hakkında bazı bilgiler:

# 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:

Montaj başarısız

İşte genel hata mesajı:

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

-T yani ntfs, msdos, iso9660, vfat ile bir tür belirtmeye çalışan birçok kombinasyon denedim ve her zaman aynı hatayı alıyorum. Belki ntfs dosya biçiminin bir tür olduğunu düşündüm ama ntfs-3G çok daha iyi yapmaz bu yüzden hayır değil:

# 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)

Birisi belki bir Minix fs önerdi. Mevcut yapılandırmamla böyle bir dosya sistemini gerçekten bağlayıp kuramayacağım açık olmasa da denedim:

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.

Belirli bir dosya sistemi türü belirttiğinizde, günlükte belirli bir hata türüne sahip olacağınız için bu kesin değildir. Ayrıca denedi [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..

Nerede böyle şeyler görebilirsiniz dmesg:

[ 5316.082629] FAT-fs (loop0): invalid media value (0xf6)
[ 5316.082644] FAT-fs (loop0): Can't find a valid FAT filesystem

Ayrıca lsmod | grep loopverir

loop 18511 0

Herhangi bir alternatif süperblok yoktur :

# 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

Okuduğum birçok vakanın aksine , burada herhangi bir ofset belirtmeye gerek yok gibi görünüyor, çünkü görüntüde herhangi bir bölüm yok. Bu gibi durumlarda, bazen ddkomut, montaja izin veren bir ofset değeri kullanarak içeriği benzer bir görüntüye aktarmak için kullanılır. Bu, mountdoğrudan komuta bir ofset belirtmekle aynı görünüyor . Ama bu gibi, kolay olmalı bu basit nereye diğer durumda losetupkullanılır ve daha sonra döngü cihazı monte edilir. .İma dosyasını losetup ile bağlayabilirim ama döngü aygıtını bağlamaya çalıştığımda ilk hata mesajımla karşılaşıyorum.

Veri bütünlüğü

Son olarak, safecopy --stage1verilerle ilgili herhangi bir sorun bildirmez ve 3. aşamaya kadar olan çıktı aynı kalır ve aynı hatayı verir:

# 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)

İşte dosyanın üst kısmı ve içerik sağlam görünüyor:

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 |................|

"Adli"

Bir yana ham görüntü kaynağı ortamın bir sektör tarafından sektörü ikili kopya oluşur, dosya içeriğinin gerçek biçimi (örneğin FAT bir versiyonu olarak) görüntü oluşturulduğu diskin dosya sistemine göre değişir. [...] IMG dosyaları disk içeriğinin ötesinde ek veri içermediğinden, bu dosyalar yalnızca dosya sistemlerini algılayabilen programlar tarafından işlenebilir.

Aşağıdaki önerileri, kümedeki (30) diğer görüntü dosyalarını analiz etmeye devam ettim:

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

Üzgünüz ama bir bölüm tablosu gibi görünüyor ama sıradışı. İd 90 özelliğini içerir :

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)

Yani görüntüyü monte etmeye çalışırken:

# mount -t auto U14.IMA /mnt/cd
mount: unknown filesystem type 'sysv'  <-----

Birisinin ima ettiği gibi , çekirdekte ' Sistem V ve Tutarlı dosya sistemi desteği ' gibi belirli bir şey kullanmak zorundasınız . Sysv dizesi çok şaşırtıcı değil, çünkü bu AT&T UNIX System V / 386 Sürüm 4 Sürüm 2.1 yükleme medyası - Sun'a 2006'ya kadar desteklenen bir bağlantı noktası - ve bu görüntüler 2007'de vahşi olarak sona erdi. Aslında bir metin görüntülerle birlikte gelen dosya, önyükleme sektörünün doğası ve kullanım biçimi nedeniyle kurulum için gerekli olduğunu gösterir. Malzemenin orijinal olarak Teledisk (TD0) formatında olduğuna dair bir gösterge var.mount -t sysv. Burada, bunun orijinal bir malzeme olmadığını vurgulamak istiyorum. Her halükarda, aslında soruda açıklandığı gibi ofsetleri hesaplayamıyorum - ya 512'ye bölündüğünde tam sayılarla sonuçlanmıyorum ve denesem bile uygun ofseti bulamıyorum - dd: cannot skip to specified offset, 0 writesvb. bu noktada cevap adli tıp ile ilgilidir ve artık bir görüntü dosyasıyla ilgili değildir.

QEMU ile Hızlı Geçmiş Görüntü Kaynağı İşletim Sistemi Emülasyonu

AT&T UNIX System V Sürüm 4 Sürüm 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

Önerildiği gibi, sette önceki bir görüntüden kurdum. Burada qemu açıklandığı gibi, temel olarak görüntü 14'ten başlayarak (önce losetup /dev/loop0 U14.IMAbasit sonra qemu-system-x86_64 -m 256 -hda test.img -fda /dev/loop0 -boot a) kullanılmasını içerir, çünkü U19 önyüklenebilir değildir. Burada güzel olan şey, işletim sisteminin kendisine görüntü monte etmek / umount etmek zorunda değilsiniz ctrl-alt-2, monitöre erişmek veya monitöre erişmek için qemu ile 1 veya 1 kullanın ve görüntüyü değiştirmek için list blocksneyin monte edildiğini ve change floppy0 imagenamebu arayüzde örneğin kurulum sırasında.

Ben yükleme sırasında U19.IMA (Disk 5) tedarik etmek zorunda (bir metinsel günlüğü için bkz yüklemek bu - bir vurgu MS-DOS referanstır!) Ben bu yani düzgün AT & T UNIX Sys yüklü ile sona erdi ve V 386 işletim sistemi, bu yüzden U19.IMA çalışan bir disk görüntüsüdür:

resim açıklamasını buraya girin

Varsayılan olarak / dev / fd / dev / fd üzerine monte edilmiştir ve ayrıca bir blok (/ dev / dsk / f0) ve ham (/ dev / dsk / f0) aygıtından disket erişimi de vardır. Dizini diskete değiştirmek, 1'den 23'e kadar olan dosyaları gösterir (bu sadece sanırım karakter aygıtının yapısıdır). Ayrıca catham ve blok cihazları ve disket verilerinin orada olduğunu görebilirsiniz, ancak bu olabildiğince yakın.

Bu işletim sisteminde, örneğin sıkıştırılmış ikili dosyalarla yaptığınız gibi bir dizinden bir komut dosyası başlatarak disketlerden bir şeyler yüklemediğinizi fark ettim - burada kullanıyorsunuz pkgadd -d diskette1(kesinlikle son kelime bazı takma addır, ancak ben pkgadd (1M) için SCO öğelerinde -d anahtarına başvuru bulunduve genellikle ticari Unix'te (Oracle, HP share pkgadd (1M)) görülür. Komutun verilmesi, disket sağladığınız bir rutini başlatır ve rutin sürücüde ne olduğunu öğrendikten sonra "hayır" demenin dışında hiçbir kontrolünüz yoktur. Bir kurulum sekansına (U03, U05 vb.) Başlayan disklerde, bu kurulum daha sonra paket kurulumu tamamlanana kadar bir sonraki disketi vb. İsteyecektir. Bir kümenin başlangıcı olmayan bir disket koyarsanız, temelde hiçbir şey bulamaz, ancak installpkgbunun yerine komutu kullanmanız gerektiğini söyler .

Bu görüntü dosyasındaki verilere erişmek için donanımıma fiziksel bir disket sürücüsü takacak mıyım?


Sadece bir tahmin: Bir Minix dosya sistemi olabilir. Muhtemelen onu desteklemek için çekirdeğinizi yeniden derlemeniz gerekir. Fiziksel bir disket sürücünün takılması yardımcı olmaz. Görüntü dosyası ne kadar büyük? Dosyanız sadece ham bir görüntü ise, kesinlikle denediğiniz (mevcut / modern) dosya sistemlerinden hiçbirini içermez. Görünüşe göre i386 sistemlerinde önyüklenebilir değil.
jofel

@jofel Dosya 1475k büyüklüğündedir. Eğer bu şekilde monte etmeye çalışırsam mount -t minix -o loop U19.IMA /mnt/cdve genel hatayı alıyorsam ama bu dmesg'de yer alıyorsa VFS: Can't find a Minix filesystem V1 | V2 | V3 on device loop0.Çekirdeğin herhangi bir göstergesi zaten var mı yoksa buna güvenemiyorum mu? Her neyse, söylediklerini araştıracağım. Önyüklenebilir olmadığını biliyorum, içeriğe erişmek istiyorum. Teşekkürler.

Çıktısı filegörüntü üzerinde dosya sistemi olmadığını gösterir. Verilerinizin gerçekten orada olduğundan emin misiniz? Bölüm ve dosya sistemi olmadan ham sürücünün görüntüsünü bağlamaya çalıştığınız anlaşılıyor.
terdon

@terdon Bu gerçekten yapmak istediğim şey. Bu bir mantık başarısız mı? Bu bir kurulum setidir. Belgeleri de içeren "dosyaları" bulmayı umdum. Her şeyin kurulumunun dışında buna erişemez miyim?

2
Bir yükleme diskiyse, yalnızca ilk disk bir dosya sistemi içerir / önyüklenebilir olabilir. Diğer diskler, dosya sistemi ek yükü olmadan yalnızca özel bir biçimde veri içerebilir.
jofel

Yanıtlar:


4

Görüntüyü bağlayamıyorsanız, bazı durumlarda yine de bazı verilerini "aktarabilirsiniz" cpio.

Resmin olup olmadığını belirledikten sonra:

  • Desteklenen bir dosya sistemi ve bölüm kullanan bir görüntü -> mount
  • Desteklenen bir dosya sistemi ve birden fazla bölüm kullanan bir resim -> mount with offsetveya ddofset ile bir bölümü ayıklamak için kullanın ve sonra yalnızca bu bölümü takın veya benzer bir şey kullanınkpartx
  • Desteklenen bir dosya sistemi kullanmayan veya hiç dosya sistemi olmayan bir görüntü -> çekirdek desteği ve daha fazla inceleme ...

Üstbilgiyi analiz etmek ve görüntüden metin dizeleri ayıklamak ve görüntü dosyası ve yapısı hakkında daha fazla bilgi edinmek için hexdumpve stringsyardımcı programlarını kullanabilirsiniz .


Bir şey benim ilgimi çekti:

@(#)/usr/bin/echo.sl 1.1 4.0 10/01/90 16865 AT&T-SF

Görüntüdeki her bir ikili için böyle bir çizgi var, bu yüzden orada ne olduğunu biraz biliyorsunuz. Ayrıca, bu durumda, yükleme işleminin orijinal platformda nasıl gerçekleştiğine daha yakından baktığınızdainstallpkg şunları öğrenirsiniz:

Yazılımı disketten UNIX System V / 386 sabit diskine aktarmanın temel mekanizması cpio'dur.

Temel olarak, veriler cpio/ usr / tmp / install ile çıkarılır ve buna bir dizi dosya dahil edilir (bir yükleme, ascii, dosya, ad ve boyut dosyası). Bu komut burada olur:

cat U19.IMA | cpio -imdv

başlangıçta hatalı biçimlendirilmiş sayı hataları verir, ancak daha sonra görüntünün içeriğiyle bir / usr / bin klasörü oluşturur! trAradığım vardır:

#file tr
tr: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped.

cpioİlk etapta denemek acı veremez!


-D seçeneğine dikkat edin ve cpio. Bunun doğrudan kök sürücüme çıkarmaya çalıştığını hatırlıyorum!
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.