I’ve been given a recovered image file from an industrial controller (ADAM 5510M from Advantech) and asked to recover what’s on it (two executable files). The image was created with Advantech ADAM/APAX.net. I’m trying to mount it on Linux. I’ve never heard of ROM-DOS before.
$ file 5510D.img
5510D.img: data
$ mimetype -d 5510D.img
5510D.img: Raw disk image
$ fdisk -l 5510D.img
Disk 5510D.img: 1 MiB, 1048576 bytes, 2048 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
Why is the partition or filesystem not identified ?
$ sudo mount 5510D.img /mnt
mount: /mnt: wrong fs type, bad option, bad superblock on /dev/loop7, missing codepage or helper program, or other error.
$ strings 5510D.img
[...]
DLDOS6.0
P$NO NAME FAT12
ECHO * WELCOME TO ADVANTECH ADAM-5510M ROM-DOS SYSTEM *
ECHO * ILK5510M (ver.090320) *
ECHO * Copyright by Vladislav Kholoptsev *
ECHO * 20.03.2009 *
[...]
Just to make sure that FAT12 can be mounted on my system I created one:
$ dd if=/dev/zero of=fat12.img bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1,0 MB, 1,0 MiB) copied, 0,000734199 s, 1,4 GB/s
$ ll *.img
-rw-rw-r-- 1 dargaud dargaud 1048576 Mar 26 10:43 5510D.img
-rw-rw-r-- 1 dargaud dargaud 1048576 Mar 26 11:11 fat12.img
$ mkfs.vfat -F12 fat12.img
mkfs.fat 4.2 (2021-01-31)
$ file fat12.img
fat12.img: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "mkfs.fat", sectors/cluster 4, root entries 512, sectors 2048 (volumes <=32 MB), Media descriptor 0xf8, sectors/FAT 2, sectors/track 16, serial number 0x2f7efb12, unlabeled, FAT (12 bit)
# mount fat12.img /mnt/
$ ll /mnt/
total 20
drwxr-xr-x 2 root root 16384 Jan 1 1970 ./
drwxr-xr-x 28 root root 4096 Oct 14 14:30 ../
So how do I mount it ? Do I need an offset ?
From the hex dump, one of the files is named ILK5510M.EXE and the other WORKERRD.EXE although I have corroborating info that it should be named SIMU5KE.EXE