Як встановити старий файл дискети (формат .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

Не існує альтернативного суперблоку будь-якого типу:

# 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 не містять додаткових даних, ніж вміст диска, цими файлами можуть оброблятись лише програми, які можуть виявити їх файлові системи.

Виконуючи пропозиції, я перейшов до аналізу деяких інших файлів зображень у наборі (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'  <-----

Як хтось натякав, вам потрібно мати щось конкретне, як-от « Підтримка системи V та когерентної файлової системи », складене в ядрі , щоб використовувати щось подібне mount -t sysv. Рядок sysv не настільки дивовижний, оскільки це частина AT&T UNIX System V / 386 випуску 4 версії 2.1, встановити носій - порт, який підтримувався Sun до 2006 року, і ці зображення закінчилися в дикій природі в 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, тому це майже підтверджує, що U19.IMA - це зображення робочого диска:

введіть тут опис зображення

За замовчуванням / dev / fd встановлено на / dev / fd, а також доступний дискети через блок (/ dev / dsk / f0) та сирий (/ dev / dsk / f0) пристрій. Зміна каталогу на дискету просто показує файли, пронумеровані від 1 до 23 (я думаю, це лише структура пристрою символів). Ви також можете catпереглядати необроблені та заблоковані пристрої та бачити, як там є дискети, але це настільки ж близько.

Я помітив, що в цій ОС ви не встановлюєте речі з дискети, запускаючи якийсь скрипт із каталогу на них, як, наприклад, з декомпресованими бінарними файлами - тут ви використовуєте pkgadd -d diskette1(напевно, останнє слово - це псевдонім, але я знайшов посилання на -d перемикач у матеріалах SCO для pkgadd (1М)і зазвичай він часто з’являється в комерційному Unix (Oracle, HP share pkgadd (1M)). Видача команди запускає процедуру, коли ви постачаєте дискети і не маєте ніякого контролю, крім того, щоб сказати "ні" після того, як підпрограма дізнається, що знаходиться на диску. У випадку з дисками, які починають послідовність інсталяції (U03, U05 тощо), вона встановиться, а потім попросить наступну дискету тощо, поки встановлення пакета не завершиться. Якщо ви помістите дискету, яка не є початком набору, вона в основному не знаходить нічого, але говорить вам, можливо, вам доведеться використовувати installpkgкоманду замість цього.

Чи буду я встановлювати фізичну дискету до мого пристрою для доступу до даних у цьому файлі зображень?


Лише здогадка: це може бути файлова система Minix. Можливо, вам потрібно перекомпілювати ваше ядро ​​для його підтримки. Встановлення фізичної дискети не допомагає. Наскільки великий файл зображень? Якщо ваш файл є лише неочищеним зображенням, він точно не містить жодної (поточної / сучасної) файлової системи, яку ви пробували. Здається, що це не піддається завантаженню в системах i386.
jofel

@jofel Файл великий 1475 к. Якщо я спробую встановити його так, 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 Це саме те, що я хочу зробити справді. Це логіка провалюється? Це інсталяційний набір. Я сподівався знайти "файли", включаючи документацію. Чи не можу я отримати доступ до цього поза встановленням усієї речі?

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.

В основному, дані витягуються за допомогою cpio/ 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. Я, мабуть, пам’ятаю це намагався витягнути безпосередньо до мого кореневого диска!
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.