Obrazy kart CF które były "sformatowane" w Atari Portfolio przy użyciu prostego interface opartego na 74HC138 (link - webarchive) są dostępne przez zamontowanie poszczególnych "partycji". Piszę w cudzysłowie bo nie ma takim obrazie tablicy partycji, a dostęp jest przez opcję offset do komendy mount. Mam tylko problem z ostatnią częścią która wypełnia resztę dostępnej pamięci, np. dla karty 192MB ostatnia część (dysk i:) jest o wielkości 25296896 bajtów zamiast jak wszystkie inne poprzednie 33423360 bajtów.
simon@nb:~/Documents/atari/pofo/transpofo (master)*
$ hexdump -C --skip $(( 0 * 33423360 )) --length 32 sandisk_192MB.img
00000000 e9 29 00 50 6f 46 6f 43 46 2d 33 00 02 10 01 00 |.).PoFoCF-3.....|
00000010 01 80 00 00 ff f8 0c 00 08 00 02 00 00 00 00 00 |................|
00000020
simon@nb:~/Documents/atari/pofo/transpofo (master)*
$ hexdump -C --skip $(( 1 * 33423360 )) --length 32 sandisk_192MB.img
01fe0000 e9 29 00 50 6f 46 6f 43 46 2d 33 00 02 10 01 00 |.).PoFoCF-3.....|
01fe0010 01 80 00 00 ff f8 0c 00 08 00 02 00 00 00 00 00 |................|
01fe0020
simon@nb:~/Documents/atari/pofo/transpofo (master)*
$ hexdump -C --skip $(( 2 * 33423360 )) --length 32 sandisk_192MB.img
03fc0000 e9 29 00 50 6f 46 6f 43 46 2d 33 00 02 10 01 00 |.).PoFoCF-3.....|
03fc0010 01 80 00 00 ff f8 0c 00 08 00 02 00 00 00 00 00 |................|
03fc0020
simon@nb:~/Documents/atari/pofo/transpofo (master)*
$ hexdump -C --skip $(( 3 * 33423360 )) --length 32 sandisk_192MB.img
05fa0000 e9 29 00 50 6f 46 6f 43 46 2d 33 00 02 10 01 00 |.).PoFoCF-3.....|
05fa0010 01 80 00 00 ff f8 0c 00 08 00 02 00 00 00 00 00 |................|
05fa0020
simon@nb:~/Documents/atari/pofo/transpofo (master)*
$ hexdump -C --skip $(( 4 * 33423360 )) --length 32 sandisk_192MB.img
07f80000 e9 29 00 50 6f 46 6f 43 46 2d 33 00 02 10 01 00 |.).PoFoCF-3.....|
07f80010 01 80 00 00 ff f8 0c 00 08 00 02 00 00 00 00 00 |................|
07f80020
simon@nb:~/Documents/atari/pofo/transpofo (master)*
$ hexdump -C --skip $(( 5 * 33423360 )) --length 32 sandisk_192MB.img
09f60000 e9 29 00 50 6f 46 6f 43 46 2d 33 00 02 0d 01 00 |.).PoFoCF-3.....|
09f60010 01 80 00 00 c1 f8 0c 00 08 00 02 00 00 00 00 00 |................|
09f60020
Ta ostania część ma w nagłówku na pozycji 13 : 0x0d - wartość która jest ponoć niewłaściwa (link):
13 Number of sectors per cluster (1)
Must be one of 1, 2, 4, 8, 16, 32, 64, 128.
A cluster should have at most 32768 bytes. In rare cases 65536 is OK.
Dla innej karty (o pojemności 64MB), ostatnia (druga) partycja miała w tym miejscu wartość 0x0f, więc podejrzewam że jest to wartość ustalona podczas wykonywania mkfs na poszczególnych dyskach zamontowanych w PoFo.
Ustawienie tego pola w edytorze na wartość 0x10 (16) pozwala na podmontowanie, ale po nagraniu jakichś danych, pod PoFo poprawnie widoczny jest tylko katalog /.
Po pocięciu splitem ("split -b 33423360") na osobne pliki, file prawidłowo rozpoznaje poszczególne "kawałki" i podaje dla ostatniej części "sectors/cluster 13":
$ for l in a b c d e f; do file sandisk_192MB.img_part_a${l}; done
sandisk_192MB.img_part_aa: , code offset 0x29+3, OEM-ID "PoFoCF-3", sectors/cluster 16, FAT 1, root entries 128, sectors 65280 (volumes <=32 MB), Media descriptor 0xf8, sectors/FAT 12, sectors/track 8, reserved 0x1, dos < 4.0 BootSector (0), FAT (1Y bit by descriptor)
sandisk_192MB.img_part_ab: , code offset 0x29+3, OEM-ID "PoFoCF-3", sectors/cluster 16, FAT 1, root entries 128, sectors 65280 (volumes <=32 MB), Media descriptor 0xf8, sectors/FAT 12, sectors/track 8, dos < 4.0 BootSector (0), FAT (1Y bit by descriptor)
sandisk_192MB.img_part_ac: , code offset 0x29+3, OEM-ID "PoFoCF-3", sectors/cluster 16, FAT 1, root entries 128, sectors 65280 (volumes <=32 MB), Media descriptor 0xf8, sectors/FAT 12, sectors/track 8, dos < 4.0 BootSector (0), FAT (1Y bit by descriptor)
sandisk_192MB.img_part_ad: , code offset 0x29+3, OEM-ID "PoFoCF-3", sectors/cluster 16, FAT 1, root entries 128, sectors 65280 (volumes <=32 MB), Media descriptor 0xf8, sectors/FAT 12, sectors/track 8, dos < 4.0 BootSector (0), FAT (1Y bit by descriptor)
sandisk_192MB.img_part_ae: , code offset 0x29+3, OEM-ID "PoFoCF-3", sectors/cluster 16, FAT 1, root entries 128, sectors 65280 (volumes <=32 MB), Media descriptor 0xf8, sectors/FAT 12, sectors/track 8, dos < 4.0 BootSector (0), FAT (1Y bit by descriptor)
sandisk_192MB.img_part_af: , code offset 0x29+3, OEM-ID "PoFoCF-3", sectors/cluster 13, FAT 1, root entries 128, sectors 49408 (volumes <=32 MB), Media descriptor 0xf8, sectors/FAT 12, sectors/track 8, dos < 4.0 BootSector (0), FAT (1Y bit by descriptor)
Czy któryś z kolegów lepiej zorientowanych w niuansach FAT12 wie jak podmontować taki "napęd" pod linux'em?
Pozdrawiam,
S.