наверное, можно попробовать ioctl(HDIO_GETGEO), или
FDGETPRM, или просто прочитать что-то из /dev/fd0.
правда, я не знаю как отличить EIO от неформатированной
дискеты, и вообще сам не пробовал.
> почему для команды dd нужна именно отформатированная дискета?
а что можно прочитать из fd0, если она не отформатирована?
Я дискетами не пользуюсь, но для жестких дисков вроде так:
в свое время под форматированием понималось нанесение
низкоуровневой разметки, сейчас же под форматированием
фактически ничего не понимается (предыдущая процедура
называется низкоуровневым форматированием и очень не
рекомендуется).
Фирма MS под форматированием еще понимает разметку
файловой системы.
Сейчас более-менее все дискеты продаются с низкоуровневой
разметкой + файловой системой.
Если для дискеты не было сделано низкоуровневое форматирование,
то привод попросту не сможет определить границы секторов.
anonymous:
> Почему нельзя попробовать её подмонтировать, если напишет bad superblock или что-то в этом духе, значит
> неотформатированная.
во-первых, это значительно более сложная операция,
чем чтение.
во-вторых, дискета может быть отформатирована, но
никакаой файловой системы там нет. или там fs, которая
ядром не поддерживается.