A to je takovy problem pridat RMW vrstvu mezi FAT16/FAT32 a 4KN disk, ktera zajisti behem bootu stejnou funkcionalitu jako 512e rezim?
Analogicky priklad je - kdyby si matematici stezovali, ze exponentem muze byt pouze kladne cislo, protoze zaporny vede k desetinnym vysledkum a koho zajimaj desetiny, ze carku neumi napsat a je to proti jejich vire :D
Ten FAT problem s 512 vs 4K jsem resil pri automatickem vytvareni virtualek/OS images skriptem ... takze pokud nejde primountovat EFI/BOOT ESP nativne, lze translaci zajistit skrze:
losetup --sector-size $LOGICALSIZE ...
(chvili jsem s tim zapasil a netusil zda je to bug v mkfs.vfat nebo cim to je, ze to blbne)
V skriptu mam komplet radek takto:
SS=512 LS=4096 losetup --sector-size $LS --offset $(( $SS * $offs )) --sizelimit $(( $SS * $size )) /dev/loop$i "$DST"
v cyklu skrze partisny obrazu ktery vytvarim do LVM LV (ktere je 512e tedy). Myslim ze az pozdeji jsem nasel neco, co vytvori loopback device ktery je partitiovatelnej (ale nechtel jsem si tim svinit host OS).
No to je asi "chytrý design" toho FAT. Na diskových sektorech 512 to má logický sektory 512 a na diskových sektorech 4096 to má logický sektory 4096. Jinak to neumí.
EXT4 má logické sektory 4096 na čemkoli. (Nebo i více: https://www.root.cz/zpravicky/ext4-dostane-podporu-bloku-vetsich-nez-stranka-pameti/ )
Ja se prave dival na FAT12/FAT16, ze bych to nasadil prave na storage ruznych dat v 4 ~ 16 MiB eeprom u MCU. Ono to umi totiz sector size 128 a 256, tak by to melo relativne malej overhead (256B * 64K u fat16 je 16M limit).
Jako EXT2 by byla taky moznost (jednoduchej kod), ale jeste jsem nepocital overhead.