NTFS
-
В том вся сложность, задача обратная: нужно определить, что и как нужно копировать на раздел NTFS или EXT2, чтобы получать одинаковую ошибку при разном состоянии раздела. Или установить, что это невозможно.
>>>получать одинаковую ошибку при разном состоянии раздела. Или установить, что это невозможно.<<
Т. е. 1) Создать раздел нтфс размером 1 гиг, стандартный кластер.
2) покопировать на него файлы а) поштучно б)пакетом в 5 шт в) папкой с 5-ю файлами.
3) собрать логи на каждый случай.
4)Создать раздел нтфс размером 1 гиг, увеличенный кластер. потом пункты 2 и 3.
5) .....размером 2 гига. пункты 2 и 3.
такой тест может что нибудь прояснить?
Т. е. 1) Создать раздел нтфс размером 1 гиг, стандартный кластер.
2) покопировать на него файлы а) поштучно б)пакетом в 5 шт в) папкой с 5-ю файлами.
3) собрать логи на каждый случай.
4)Создать раздел нтфс размером 1 гиг, увеличенный кластер. потом пункты 2 и 3.
5) .....размером 2 гига. пункты 2 и 3.
такой тест может что нибудь прояснить?
Юзер, просто юзер...со времён MS-DOS.
кстати о тестах... по этому адресу лежит моя тестовая папка, https://yadi.sk/d/Ekjf_ngu33Qbkc
надо бы "стандартизировать" её что-ли...какие файлы в ней должны быть?
надо бы "стандартизировать" её что-ли...какие файлы в ней должны быть?
Юзер, просто юзер...со времён MS-DOS.
Суть проблемы: я копирую одинаковые данные (содержимое образа) на раздел с NTFS или EXT2 и каждый раз возникают разные ошибки в разном месте, а то и не возникают вообще. С таким я сталкиваюсь впервые и не уверен что классическая отладка вообще возможна, так как я не знаю где искать. Логи мне не помогут, мне нужно найти действие, которое я смогу повторить с одинаковым результатом в разных условиях, чтобы потом исследовать раздел в шестнадцатеричном редакторе.
Есть подозрение, что ошибки глубоко в ядре и как-то связаны с определением дисков. На это меня натолкнуло то, что колибри на реальной машине обнаруживает floppy дисководы. Хотя их в реальности нет. Есть только HDD и DVD-ROM и 4 SATA контроллера на этой матери.
примечание: Это предположение дилетанта. А потому, возможно - заблуждение.
В любом случае я считаю, что пока не гарантирована безошибочная работа дисковой подсистемы - тестирование работы файловых систем бесполезно.
примечание: Это предположение дилетанта. А потому, возможно - заблуждение.
В любом случае я считаю, что пока не гарантирована безошибочная работа дисковой подсистемы - тестирование работы файловых систем бесполезно.
То что мне удалось создать одинаковые ошибки с помощью одинаковых разделов значит что это не ошибки устройства, и тем более не относится к определению устройств. С другой стороны, у меня есть ощущение, что это ошибки дискового кэша.
При попытке создать с помощью GenFiles 1000 файлов программа пишет "error", и у меня стабильно создаётся только 32 файла.
С помощью GenFiles успешно создал 1000 файлов в папке на NTFS.
На ext2 ошибка возникла, но где-то после 200 файлов.
На ext2 ошибка возникла, но где-то после 200 файлов.
Ты не думал насчет каких-нибудь юниттестов ?
Ибо тема очень сложная, и "просто написать и заработает" не пройдет.
P.S. У меня есть мини-мечта - найти идеальную ФС. Пока что, лучшими были NSS и HPFS
Ибо тема очень сложная, и "просто написать и заработает" не пройдет.
P.S. У меня есть мини-мечта - найти идеальную ФС. Пока что, лучшими были NSS и HPFS
До сих пор "просто написать и заработает" был моим единственным и безотказным методом, а любые баги я вычислял дедуктивно, прикинув что могло привести к таким последствиям. Но сейчас я впервые в растерянности, так как не вижу ни одной закономерности, а настолько хаотичный фактор всего один - ошибки кэша. Ещё подходят ошибки в алгоритмах работы с битовыми картами, но они проявлялись бы гораздо чаще.
P.S. Чем тебе ext не нравится?
P.S. Чем тебе ext не нравится?
А почему тогда с FAT проблем не возникает?Pathoswithin wrote:ошибки кэша
Может лучше сейчас отключить возможность записи на NTFS\EXT пока кто-нибудь себе раздел не запорол?
Так попробуй отключи кэш.
Ext не то чтобы не нравится - но первая приличная по функционалу это Ext4, но и на ней никаких чудес производительности я не видел.
Ext не то чтобы не нравится - но первая приличная по функционалу это Ext4, но и на ней никаких чудес производительности я не видел.
В FAT вся запись по прежнему работает через fs_write32 по одному сектору, а fs_write64 до меня никто не использовал (и почти не тестировал). К тому же, в работе кэша однозначно есть странности viewtopic.php?f=35&t=1854&start=66
Думал дождаться CleverMouse, но наверно придётся начинать разбираться самому...
Siemargl
Если хочешь чудес производительности, отключай журналирование, других вариантов нет.
Думал дождаться CleverMouse, но наверно придётся начинать разбираться самому...
Siemargl
Если хочешь чудес производительности, отключай журналирование, других вариантов нет.
Более менее воспроизводимый пример.
Я пользуюсь халявным VMWare Player - могу образ диска vmdk выложить при желании.
Создаем диск в XP, 2Gb NTFS default cluster.
Копируем этот виртуальный диск как отдельный диск к Колибри.
Далее, из https://cmake.org/download/ берем архив cmake-3.7.1-win32-x86.zip (в нем 4600 мелких файлов, в т.ч. с длинными именами)
Я его копирую на УСБ-флешку (FAT32) и монтирую к колибри, но неважно.
Разархивируем внутри колибри содержимое на NTFS-диск
cd /usbhd0/1/folder
unzip cmake-3.7.1-win32-x86 -d /hd0/1/xx
(подкаталог требуется обязательно, иначе получаем ошибку "лала - не создать корневой каталог" - еще будет разбираться)
Проверка - копируем распакованный каталог обратно на Флешку KFAR, и в хост системе:
- проверка ФС флешки - ОК
- сравниваем пофайлово, с содержимым - все ОК
Подготовительная база для теста готова. Дальше тесты работают с этой базой
-----------------тест 1-----------------------------------------------
Копируем KFAR каталог cmake-3.71.... Из подпапки xx в корень этого же диска - ОК
Копируем Eolite каталог cmake-3.71.... Из подпапки xx в новую подпапку 11 этого же диска - Eolite выпадает, ошибка в kernel,
после этого система не работает - все файловые операции с диском виснут, например cd /hd0/1 в консоли
-----------------тест 1.1-----------------------------------------------
Копируем KFAR каталог cmake-3.71.... Из подпапки xx в корень этого же диска - ОК
Копируем KFAR каталог cmake-3.71.... Из подпапки xx в новую подпапку \hd0\1\11 этого же диска - ОК
Копируем Eolite каталог cmake-3.71.... Из подпапки xx в новую подпапку \hd0\1\22 этого же диска - появляются ошибки №6 (notify, не прерывают копирование), в Боард - Error: CopyFolder->CreateDir ошибка #2 функция не поддерживается для этой ФС.
Далее с диском при операциях записи всегда ошибка - не поддерживается, но чтение работает.
-----------------тест 2-----------------------------------------------
Удаляем KFAR каталог xx - ошибка доступа к файлам (функция не поддерживается для данной ФС), причем поштучно они удаляются
Со 5й попытки удаляется и каталог.
Удаляем Eolite каталог хх возникают Eolite Ошибка 10 - доступ запрещен, Ошибка 6 - конец файла. При этом удаление прерывается, но ничего не вылетает.
Со 3й попытки удаляется все.
После удалений, еще раз разархивируем cmake, и диск тащим проверять обратно в WinXP - chkdsk /f/r ошибок нет
Я пользуюсь халявным VMWare Player - могу образ диска vmdk выложить при желании.
Создаем диск в XP, 2Gb NTFS default cluster.
Копируем этот виртуальный диск как отдельный диск к Колибри.
Далее, из https://cmake.org/download/ берем архив cmake-3.7.1-win32-x86.zip (в нем 4600 мелких файлов, в т.ч. с длинными именами)
Я его копирую на УСБ-флешку (FAT32) и монтирую к колибри, но неважно.
Разархивируем внутри колибри содержимое на NTFS-диск
cd /usbhd0/1/folder
unzip cmake-3.7.1-win32-x86 -d /hd0/1/xx
(подкаталог требуется обязательно, иначе получаем ошибку "лала - не создать корневой каталог" - еще будет разбираться)
Проверка - копируем распакованный каталог обратно на Флешку KFAR, и в хост системе:
- проверка ФС флешки - ОК
- сравниваем пофайлово, с содержимым - все ОК
Подготовительная база для теста готова. Дальше тесты работают с этой базой
-----------------тест 1-----------------------------------------------
Копируем KFAR каталог cmake-3.71.... Из подпапки xx в корень этого же диска - ОК
Копируем Eolite каталог cmake-3.71.... Из подпапки xx в новую подпапку 11 этого же диска - Eolite выпадает, ошибка в kernel,
после этого система не работает - все файловые операции с диском виснут, например cd /hd0/1 в консоли
-----------------тест 1.1-----------------------------------------------
Копируем KFAR каталог cmake-3.71.... Из подпапки xx в корень этого же диска - ОК
Копируем KFAR каталог cmake-3.71.... Из подпапки xx в новую подпапку \hd0\1\11 этого же диска - ОК
Копируем Eolite каталог cmake-3.71.... Из подпапки xx в новую подпапку \hd0\1\22 этого же диска - появляются ошибки №6 (notify, не прерывают копирование), в Боард - Error: CopyFolder->CreateDir ошибка #2 функция не поддерживается для этой ФС.
Далее с диском при операциях записи всегда ошибка - не поддерживается, но чтение работает.
-----------------тест 2-----------------------------------------------
Удаляем KFAR каталог xx - ошибка доступа к файлам (функция не поддерживается для данной ФС), причем поштучно они удаляются
Со 5й попытки удаляется и каталог.
Удаляем Eolite каталог хх возникают Eolite Ошибка 10 - доступ запрещен, Ошибка 6 - конец файла. При этом удаление прерывается, но ничего не вылетает.
Со 3й попытки удаляется все.
После удалений, еще раз разархивируем cmake, и диск тащим проверять обратно в WinXP - chkdsk /f/r ошибок нет
- Attachments
-
-
unzip (129.99 KiB)Downloaded 171 times
-
Ты хочешь сказать, что 4600 файлов могут скопироваться без единой ошибки? Тогда я пошёл офигевать дальше... или изучать кэш...
А насколько мелкие? Файлы меньше 1 кб могут быть резидентными, тогда нет работы с данными файла и нагрузка на ФС низкая.
А насколько мелкие? Файлы меньше 1 кб могут быть резидентными, тогда нет работы с данными файла и нагрузка на ФС низкая.
Who is online
Users browsing this forum: No registered users and 1 guest