การติดตั้งไฟล์ภาพฟลอปปี้เก่า (รูปแบบ .ima) - มันยากขนาดไหน


10

ฉันพยายามmountและเข้าถึงไฟล์ภาพฟลอปปี้ในรูปแบบ .ima (การถ่ายโอนข้อมูลดิบไปยังฟลอปปี้คล้ายกับ. img ) ใน ArchLinux

ไฟล์นี้เป็นส่วนหนึ่งของชุด 30 ไฟล์นี้ไม่สามารถบู๊ตได้ แต่เป็นการต่อเนื่องของชุดไฟล์ วัตถุประสงค์ไม่ใช่การจัดการเพื่อการติดตั้งหรือการโคลน ฉันสนใจเอกสารที่มีอยู่กับข้อมูลอื่น ๆ บนดิสก์

ข้อมูลไฟล์รูปภาพ

นี่คือข้อมูลเกี่ยวกับไฟล์ภาพนี้:

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

การเมานต์ล้มเหลว

นี่คือข้อความแสดงข้อผิดพลาดทั่วไป:

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 เช่น ntfs, msdos, iso9660, vfat และรับข้อผิดพลาดเดียวกันเสมอ ฉันคิดว่ามันอาจเป็นรูปแบบไฟล์ ntfs บางชนิด แต่ ntfs-3G นั้นทำไม่ได้ดีกว่านี้มากเลยไม่เลย:

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

มีคนแนะนำว่าอาจเป็น Minix fs แม้ว่ามันจะไม่ชัดเจนถ้าฉันสามารถเมานต์ระบบไฟล์ด้วยการกำหนดค่าปัจจุบันของฉันฉันลอง:

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.

ดูเหมือนว่านี่จะไม่ได้ข้อสรุปเช่นเมื่อคุณระบุระบบไฟล์ประเภทเฉพาะคุณจะมีข้อผิดพลาดประเภทเฉพาะในบันทึก พยายามด้วย[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..

ที่ฉันสามารถเห็นสิ่งต่าง ๆ ด้วยdmesg:

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

ยังlsmod | grep loopให้

loop 18511 0

ไม่มี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

ตรงกันข้ามกับหลายกรณีที่ฉันอ่านดูเหมือนจะไม่จำเป็นต้องระบุออฟเซ็ตใด ๆ ที่นี่เนื่องจากไม่มีพาร์ติชันที่สร้างขึ้นในภาพ ในกรณีเช่นนี้บางครั้งddคำสั่งจะใช้ในการถ่ายโอนเนื้อหาไปยังรูปภาพที่คล้ายกันโดยใช้ค่าออฟเซ็ตซึ่งอนุญาตให้ติดตั้งได้ ดูเหมือนว่าจะเหมือนกับการระบุออฟเซ็ตให้กับmountคำสั่งโดยตรง แต่ควรจะเป็นเรื่องง่ายเหมือนในนี้กรณีอื่น ๆ ที่เรียบง่ายlosetupและใช้อุปกรณ์ห่วงแล้วจะติดตั้งอยู่ ฉันสามารถเชื่อมโยงไฟล์ .ima กับ losetup ได้ แต่เมื่อฉันพยายามเมาอุปกรณ์ลูปฉันก็จบลงด้วยข้อความแสดงข้อผิดพลาดเริ่มต้น

ความสมบูรณ์ของข้อมูล

ในที่สุดsafecopy --stage1ไม่ได้รายงานปัญหาใด ๆ กับข้อมูลและผลลัพธ์จนถึงระดับ 3 ยังคงเหมือนเดิมและให้ข้อผิดพลาดเดียวกัน:

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

นี่คือส่วนบนสุดของไฟล์และเนื้อหาดูเหมือนจะไม่เปลี่ยนแปลง:

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

"นิติ"

เนื่องจากอิมเมจแบบดิบประกอบด้วยสำเนาไบนารีแบบแบ่งเซกเตอร์ต่อส่วนของสื่อต้นฉบับรูปแบบที่แท้จริงของเนื้อหาไฟล์จะขึ้นอยู่กับระบบไฟล์ของดิสก์ที่ภาพถูกสร้างขึ้น (เช่นรุ่นของ FAT) [... ] เนื่องจากไฟล์ IMG ไม่มีข้อมูลเพิ่มเติมนอกเหนือจากเนื้อหาของดิสก์ไฟล์เหล่านี้จึงสามารถจัดการได้โดยโปรแกรมที่สามารถตรวจจับระบบไฟล์ได้

คำแนะนำต่อไปนี้ฉันได้ทำการวิเคราะห์ไฟล์รูปภาพอื่น ๆ ใน 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

ขออภัยดูเหมือนว่าตารางพาร์ทิชัน แต่มันผิดปกติ มันมีคุณสมบัติ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)

ดังนั้นพยายามติดภาพฉันได้รับ:

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

เป็นคนพูดเป็นนัยคุณจะต้องมีบางสิ่งบางอย่างที่เฉพาะเจาะจงเช่น ' System V และการเชื่อมโยงกันสนับสนุนระบบแฟ้ม ' รวบรวมใน kernelmount -t sysvเพื่อการใช้งานบางอย่างเช่น สตริง sysv นั้นไม่น่าแปลกใจนักเนื่องจากนี่เป็นส่วนหนึ่งของ AT&T UNIX System V / 386 รีลีส 4 เวอร์ชัน 2.1 สื่อการติดตั้ง - พอร์ตที่ Sun ได้รับการสนับสนุนจนถึงปี 2549และภาพเหล่านี้ก็จบลงด้วยความดุร้ายในปี 2007 ไฟล์ที่มาพร้อมกับอิมเมจระบุว่าจำเป็นสำหรับการติดตั้งเนื่องจากลักษณะของบูตเซกเตอร์และรูปแบบที่ใช้งานอยู่ มีข้อบ่งชี้ว่าวัสดุนั้นเดิมเป็นรูปแบบTeledisk (TD0). ฉันต้องการเน้นที่นี่ว่านี่ไม่ใช่เนื้อหาดั้งเดิม ไม่ว่าในกรณีใดฉันไม่สามารถคำนวณออฟเซ็ตอย่างที่อธิบายในคำถามได้ - ฉันไม่ได้ลงท้ายด้วยจำนวนเต็มเมื่อหารด้วย 512 และแม้ว่าฉันจะลองมันดูเหมือนว่าฉันไม่สามารถหาออฟเซ็ตที่เหมาะสมได้ - dd: cannot skip to specified offset, 0 writesดังนั้น ณ จุดนี้คำตอบเกี่ยวกับนิติเวชและไม่เกี่ยวกับไฟล์ภาพอีกต่อไป

การจำลองระบบปฏิบัติการซอร์สต้นทางรูปภาพอย่างรวดเร็วพร้อม qemu

AT&T UNIX System V รีลีส 4 เวอร์ชัน 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

ตามที่แนะนำผมติดตั้งจากภาพก่อนหน้าในชุด มันเกี่ยวข้องกับการใช้คำqemu อธิบายที่นี่โดยทั่วไปเริ่มต้นด้วยภาพที่ 14 (ก่อนอื่นlosetup /dev/loop0 U14.IMAนั้นง่ายqemu-system-x86_64 -m 256 -hda test.img -fda /dev/loop0 -boot a) เนื่องจาก U19 ไม่สามารถบูตได้ สิ่งที่ดีที่นี่คือคุณไม่ต้องเมานท์ / ขยายภาพในระบบปฏิบัติการของตัวเองคุณเพียงแค่ใช้ctrl-alt-2หรือ 1 กับ qemu เพื่อเข้าถึงหรือออกจากจอภาพและคุณใช้list blocksเพื่อดูสิ่งที่ติดตั้งและchange floppy0 imagenameในส่วนต่อประสานนั้นเพื่อเปลี่ยนภาพ ไฟล์เช่นในระหว่างการติดตั้งเช่น

ฉันต้องจัดหา U19.IMA (ดิสก์ 5) ในระหว่างการติดตั้ง (สำหรับบันทึกข้อความของการติดตั้งให้ดูที่นี่ - ไฮไลท์คือการอ้างอิงถึง MS-DOS!) และฉันก็จบลงด้วยการติดตั้งอย่างถูกต้อง AT&T UNIX Sys V 386 OS ดังนั้นสิ่งนี้ยืนยันว่า U19.IMA เป็นดิสก์อิมเมจที่ใช้งานได้:

ป้อนคำอธิบายรูปภาพที่นี่

โดยค่าเริ่มต้น / dev / fd จะติดตั้งบน / dev / fd และยังมีการเข้าถึงฟลอปปี้ผ่านบล็อก (/ dev / dsk / f0) และอุปกรณ์ raw (/ dev / dsk / f0) การเปลี่ยนไดเรกทอรีเป็นฟลอปปี้เพียงแสดงไฟล์ที่มีหมายเลขตั้งแต่ 1 ถึง 23 (นี่เป็นเพียงโครงสร้างของอุปกรณ์ตัวละครที่ฉันเดา) คุณยังสามารถcatใช้อุปกรณ์ raw และ block และดูข้อมูลฟลอปปี้ได้ที่นั่น แต่ใกล้เคียงที่สุดเท่าที่จะเป็นไปได้

ฉันสังเกตเห็นว่าในระบบปฏิบัติการนั้นคุณไม่ได้ติดตั้งข้อมูลจาก floppies โดยเปิดตัวสคริปต์จากไดเรกทอรีในไฟล์อย่างที่คุณทำกับไฟล์ไบนารีที่แตกไฟล์ - ที่นี่คุณใช้pkgadd -d diskette1(แน่นอนว่าคำสุดท้ายเป็นนามแฝง แต่ฉัน พบการอ้างอิงถึงสวิตช์ -d ในเนื้อหา SCO สำหรับpkgadd (1M)และโดยทั่วไปมักปรากฏใน Unix เชิงพาณิชย์ (Oracle, HP share pkgadd (1M)) การออกคำสั่งจะเปิดรูทีนที่คุณจัดหาฟล้อปปี้และคุณไม่สามารถควบคุมได้ยกเว้นจะพูดว่า "ไม่" หลังจากรูทีนค้นหาว่ามีอะไรอยู่ในไดรฟ์ ในกรณีของดิสก์ที่เริ่มต้นลำดับการติดตั้ง (U03, U05 เป็นต้น) สิ่งนี้จะติดตั้งจากนั้นขอฟลอปปีดิสก์อื่น ๆ ถัดไปจนกว่าการติดตั้งแพ็กเกจจะเสร็จสมบูรณ์ หากคุณใส่ฟลอปปี้ที่ไม่ใช่จุดเริ่มต้นของชุดมันก็จะไม่พบสิ่งใดนอกจากบอกว่าคุณอาจต้องใช้installpkgคำสั่งแทน

ฉันจะติดตั้งฟล็อปปี้ไดรฟ์ทางกายภาพไปยังอุปกรณ์ของฉันเพื่อเข้าถึงข้อมูลในไฟล์ภาพนั้นหรือไม่?


แค่เดา: มันอาจเป็นระบบไฟล์ Minix คุณอาจต้องคอมไพล์เคอร์เนลของคุณใหม่เพื่อรองรับ การติดตั้งฟล็อปปี้ไดรฟ์ทางกายภาพไม่ได้ช่วย ไฟล์รูปภาพมีขนาดเท่าใด หากไฟล์ของคุณเป็นเพียงภาพดิบแน่นอนว่าไม่มีระบบไฟล์ใด ๆ (ปัจจุบัน / ทันสมัย) ที่คุณได้ลอง ดูเหมือนว่าไม่สามารถบูตได้บนระบบ i386
jofel

@jofel ไฟล์นี้มีขนาด 1475k ใหญ่ หากฉันพยายามที่จะติดมันอย่างนั้นmount -t minix -o loop U19.IMA /mnt/cdและฉันได้รับข้อผิดพลาดทั่วไป แต่สิ่งนี้อยู่ใน dmesg VFS: Can't find a Minix filesystem V1 | V2 | V3 on device loop0.นั่นเป็นข้อบ่งชี้ว่าเคอร์เนลมีมันอยู่แล้วหรือฉันไม่สามารถพึ่งพามันได้หรือไม่? อย่างไรก็ตามฉันจะตรวจสอบสิ่งที่คุณพูด ฉันรู้ว่ามันไม่สามารถบูตได้ฉันต้องการเข้าถึงเนื้อหา ขอบคุณ

ผลลัพธ์ของการfileแนะนำไม่มีระบบไฟล์ในภาพ คุณแน่ใจหรือไม่ว่าข้อมูลของคุณมีอยู่จริง ดูเหมือนว่าคุณกำลังพยายามเมานต์รูปภาพของไดรฟ์ดิบโดยไม่มีพาร์ติชันและไม่มีระบบไฟล์
terdon

@terdon นี่คือสิ่งที่ฉันต้องการจะทำแน่นอน นั่นเป็นเหตุผลที่ล้มเหลวหรือไม่ นี่คือชุดการติดตั้ง ฉันหวังว่าจะพบ "ไฟล์" รวมถึงเอกสาร ฉันไม่สามารถเข้าถึงสิ่งนี้นอกเหนือจากการติดตั้งทั้งหมดได้หรือไม่

2
หากเป็นดิสก์การติดตั้งอาจเป็นได้ว่าดิสก์แรกเท่านั้นที่มีระบบไฟล์ / สามารถบูตได้ ดิสก์อื่นอาจมีเฉพาะข้อมูลในรูปแบบที่กำหนดเองโดยไม่มีค่าใช้จ่ายระบบไฟล์ใด ๆ
jofel

คำตอบ:


4

ถ้าคุณไม่สามารถติดภาพที่คุณอาจยังคงสามารถในบางกรณีที่ "สตรีมออก" cpioบางส่วนของข้อมูลที่มี

เมื่อคุณตรวจสอบแล้วว่ารูปภาพนั้นเป็น:

  • รูปภาพโดยใช้ระบบไฟล์ที่รองรับและพาร์ติชัน -> mount
  • รูปภาพที่ใช้ระบบไฟล์ที่รองรับและมากกว่าหนึ่งพาร์ติชัน -> mount with offsetหรือใช้ddเพื่อแตกพาร์ติชั่นด้วยออฟเซ็ตจากนั้นเมาท์พาร์ติชั่นนั้นเท่านั้นหรือใช้บางอย่างเช่นkpartx
  • รูปภาพที่ไม่ได้ใช้ระบบไฟล์ที่รองรับหรือไม่มีระบบไฟล์เลย -> การสนับสนุนเคอร์เนลและการตรวจสอบเพิ่มเติม ...

คุณสามารถใช้hexdumpและstringsยูทิลิตี้เพื่อพยายามวิเคราะห์ส่วนหัวและเพื่อแยกสตริงข้อความจากภาพและรับข้อมูลเพิ่มเติมเกี่ยวกับไฟล์ภาพและโครงสร้างของมัน


มีบางสิ่งที่ฉันสนใจที่จะทำเช่นนั้น:

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

มีเส้นแบบนี้สำหรับไบนารีทุกคู่ในภาพเพื่อให้คุณค่อนข้างรู้ว่ามีอะไรอยู่ในนั้น นอกจากนี้ในกรณีนี้เมื่อคุณพิจารณาอย่างใกล้ชิดว่ากระบวนการติดตั้งเกิดขึ้นบนแพลตฟอร์มดั้งเดิมด้วยinstallpkgคุณจะพบว่า:

กลไกพื้นฐานในการถ่ายโอนซอฟต์แวร์จากฟลอปปีดิสก์ไปยังฮาร์ดดิสก์ UNIX System V / 386 เป็น cpio

โดยทั่วไปข้อมูลจะถูกแยกด้วยcpioto / usr / tmp / install และชุดของไฟล์จะรวมอยู่ในไฟล์นี้ (ไฟล์ติดตั้ง, ascii, ไฟล์, ชื่อและขนาด) มันเกิดขึ้นที่นี่ว่าคำสั่งนี้:

cat U19.IMA | cpio -imdv

เอาต์พุตข้อผิดพลาดหมายเลขที่ผิดรูปแบบเริ่มต้นด้วย แต่จากนั้นสร้างโฟลเดอร์ / usr / bin ที่มีเนื้อหาของรูปภาพ! trผมกำลังมองหาจะมี:

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

การลองcpioครั้งแรกไม่สามารถทำร้ายได้!


เพียงระมัดระวังกับตัวเลือก -d cpioและ ดูเหมือนว่าฉันจะจำได้ว่าสิ่งนี้ได้พยายามดึงไปยังไดรฟ์รากของฉันโดยตรง!
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.