Przy okazji prac nad sterownikiem karty NEC USB dla Hadesa okazało się, że dwie partycje:
/dev/sdc1              2048   61439   59392     29M  c W95 FAT32 (LBA)
/dev/sdc2             61440  120831   59392     29M  c W95 FAT32 (LBA)

są to partycje FAT16 oznaczone jako FAT32.

Co ciekawe starsze sterowniki pod MiNT radzą sobie z tym prawidłowo i partycje działają normalnie, natomiast nowsze/aktualne "głupieją" i nie są w stanie odczytać partycji, błąd ponoć jest w sterowniku FATFS. Tak mi to wytłumaczył Klaudiusz :)

Najpierw ustala rodzaj FAT z identyfikatora partycji: 0x0B/0x0C daje FAT32 (linie 5266-5269).
Potem ma sprawdzić boot sector. Jeśli "sektory na FAT" (fat_length) = 0, to na pewno FAT32. Jeśli jest niezerowe, w komentarzu stoi tylko "potwierdzimy później", ale typ zostaje FAT32.
Następnie liczy układ partycji według FAT32: rozmiar FAT bierze z fat32_length, początek katalogu głównego z root_cluster pod $2C (czyli z etykiety "EDEN"), a początek danych z tych śmieci.
Na końcu ma przeklasyfikować na FAT16 według liczby klastrów. Liczba klastrów policzona z błędnego początku danych jest jednak bez sensu (przekracza zakres), więc ta korekta nie zachodzi.
Partycja trafia do val_bpb() jako FAT32 z "klastrem katalogu" 1313162309 i zostaje odrzucona.

Dla mnie to czarna magia :)

Było miło :) Do widzenia.

2

najprościej byłby przenieść dane ze starego dysku na nowy z dobrymi partycjami

Atari: V4sa TT030 Falcon030 Mega ST Mega STe 1040 STe 520 STm 800XL 65XE Jaguar Lynx I/II 7800 Portfolio / VME: ATW800/2 Mach64 Mach32 ET4000 CrazyDots PAMNet / SM146 SC1435 SM124 / Antonia2 ATSpeedC16 TF536 PAK68/3
Megafile30 Atari1050 DDDHDD XCA12 SF314 / AVGCART SUBCART SidecarTridge ACSI2STM FujiNet LynxMultiCard SkunkBoard CosmosEx SatanDisk UltraSatan USBFloppyDriveEmulator SDrive SIO2PC Eiffel
http://260ste.atari.org