Может быть, дело в UEFI? За ядро линукса не скажу, а вот в винде флоповод работает только в режиме CSM. В UEFI винда его не видит (вероятно, через какие-то устаревшие прерывания BIOS с ним работает).
FanatPHP, не во всех случаях. Например, по имени и заявленному майм-типу там jpeg, внутри SWF с ZIP-бімбой, а валидация происходит функцией getimagesize. В таком случае getimagesize начнёт радостно распаковывать этот файл, выжрав память сервера. Хотя может быть в современных версиях PHP подобные шалости поправили, не проверял, честно говоря.
FanatPHP, очень часто новички полагаются на поле mime-type для валидации файла, совершенно игнорируя тот факт, что это поле берётся с клиента, слепо веря ему на слово. Само собой, если юзер слепо полагается и на другие поля вроде имени файла, передаваемого клиентом - то никакая валидация файла его не спасёт, даже если его целиком побайтово распарсить и проверить на соответствие стандарту.
Вообще я бы не полагался на стороне сервера на mime-тип, злоумышленник его может легко подменить на любой. Лучше читать первые несколько байт файла и по ним определять формат.
Подозреваю, что дело в каком-нибудь кэше. Вы пробовали вообще, в случае FAT32 сразу после записи вынуть флешку и проверить на другом компьютере целостность записанных данных?
Byz, а если на хостинге - то в панели управления хостингом смотрите, если он предоставляет возможность каждому клиенту или на каждый домен отдельно настроить расширения php.
Ничто не мешает сконцентрироваться на самой новелле и набросать её сначала на renpy, а потом уже перенести на другой движок, если новелла окажется неплохой и понадобится её куда-нибудь портировать.
+ если у автора какая-то панель управления сервером стоит (наподобие Plesk или CPanel) - то там в настройках обычно можно версию PHP переключить для отдельного виртуального хоста.