Ошибки файловой системы

Drive subsystem, filesystem drivers
  • Я тут было хотел кое-какие тесты провести. Но возникли некоторые проблемы.
    Думаю, что связано с размером кластера на FAT32. Скопировал я файлы с RD на HD(64 Kb кластер). Потом хотел уже скопированные файлы скопировать в другое место. При попытке копирования
    Spoiler:
    1.PNG
    1.PNG (13.72 KiB)
    Viewed 5216 times
    После проверки chkdsk
    \1\DRIVERS\FM801.SYS Неправильный штамп времени.
    Действительно, там было
    1 января 2001 г., 01:01:00
    Вон там viewtopic.php?f=9&t=3294#p65580 на втором скриншоте похожий баг с неверными атрибутами.
  • Siemargl
    revision #6845
    Исправил на всякий случай.
  • Pathoswithin wrote:Siemargl
    revision #6845
    Исправил на всякий случай.
    Ну не то чтобы совсем исправил, скорее больше сломал )

    unzip testmake.zip -d /tmp0/1
    unzip testmake.zip -d /tmp0/1/111

    unzip на FAT (tmp0) при записи и в корень и в подпапку получает ошибку записи, хотя файл создается. Ошибка в возврате кода ошибки?

    unzip на NTFS при попытке распаковки в корень, получает ошибку 5, в подпапку работает
    Не подтверждаю, какая то временная замутка с libc -
    Выяснено, у меня была библиотека импорта libc.dll.a непарная той dll, что актуальна в системе - обновил из svn:/contrib/data и починилось
    Last edited by Siemargl on Tue Jan 24, 2017 11:45 pm, edited 2 times in total.
  • Тогда скажи что конкретно твой unzip вытворяет, потому что у файловых менеджеров никаких ошибок не возникает.
  • По поводу ошибки записи на FAT.
    Вот состояние после вызова 70.3 - типа записано 0 байт, но и ошибки нет.
    В окне данных - информационная структура, с начала
    http://clip2net.com/s/3GKyKzs

    Имя файла корректное, я проверил.
    Я сессию пока заморозил, если что надо показать из данных под отладчиком - напиши.

    Собственно, это код функции
    http://websvn.kolibrios.org/filedetails ... Fiowrite.c
  • А, не возвращает размер... оно ещё и кому-то надо.

    revision #6846
  • По размеру идет контроль, либо записаны все данные, либо кончилось место на диске.

    Для 70.0, 70.2 тоже должно возвращать.

    Кстати, без возврата размера сломалось много фукнций - fwrite, fclose, fflush. Теперь работают.
  • Ну если ошибки нет, то нужно считать что прочитано/записано всё что требовалось. Если ошибка не end_of_File и не disk_full, то количество может быть не правильным.
  • Pathoswithin wrote:Ну если ошибки нет, то нужно считать что прочитано/записано всё что требовалось. Если ошибка не end_of_File и не disk_full, то количество может быть не правильным.
    Все это правильно, но в стандартной библиотеке С, логика обратная. Там пляшут от размера http://www.cplusplus.com/reference/cstdio/fread/

    В Паскале, кстати, также как в С
  • Pathoswithin wrote:А, не возвращает размер... оно ещё и кому-то надо.
    Размер должен возвращаться. В документации это ясно написано
    ebx = number of written bytes (possibly 0)
    Pathoswithin wrote:Ну если ошибки нет, то нужно считать что прочитано/записано всё что требовалось.
    Ну это ты так думаешь :)
    А алгоритм может быть и таким: если прочитано/записано всё что требовалось, то ошибки нет.

    Результат работы системных функций должен соответствовать их описанию в документации.
  • Ну так я мог бы исправить документацию вместо кода. :wink:
  • По поводу глобального лока:
    -запускаем Unzip cmake на один диск ext2 (любой)
    -FAR начинаем удалять каталог с тысячами файлов на другом диске (usb)

    прекрасно видно, что бегущие строки файлов распаковки в первом окне останавливаются до окончания удаления

    Ну и надо дальше работать с кэшем - скорость записи в 120кб/с на диск никак не к лицу быстрой системе.
  • 120 КБ/с на диск? У меня даже со старым драйвером 1 МБ/с было, а сейчас где-то 60 МБ/с.
    У тебя там виртуалка? Какая загрузка процессора?
  • Это продолжение предыдущей темы про деградацию.
    http://board.kolibrios.org/viewtopic.ph ... 210#p67990

    Ничего не поменялось, просто 120кб/с это если поделить 3мб на 25с.

    У меня виртуалка, но машина достаточно быстрая.

    Копирование cmake.zip (20Mb) с флешки на ext2 hdd в shell занимает 20с, в KFAR 3c, CPU 50%
    Shell копирует кусочками по 4Кб

    Запустил копировать 1Гиг в Shell, потом отпишусь.....
  • Who is online

    Users browsing this forum: No registered users and 5 guests