NTFS

Drive subsystem, filesystem drivers
  • Собственно, Unzip я портировал с двумя прицелами:

    -как заготовку для инсталлятора, что было нужно Линси

    -как хороший универсальный нагрузочный тест на ФС/ЦПУ
    и результаты пока не обнадеживают (например теперь я подозреваю, что кэш записи отсутствует как класс) ;-(

    В данном архиве файлы мелкие, теоретически большинство должно попадать внутрь MFT
    0CodErr wrote:...Скорее это более громоздкий способ. Причём дополнительно появляется вероятность ошибок на промежуточных этапах. В unzip, например, или в libc. Так что, это не такой уж и хороший способ тестирования.
    Мне и нужно ловить ошибки начиная с libc, одна уже отловлена и пристрелена. Так и задумано.
  • Siemargl wrote:-как заготовку для инсталлятора, что было нужно Линси
    Ну для инсталлятора, думаю, KPACK вполне хватило бы.
  • Pathoswithin wrote:В FAT вся запись по прежнему работает через fs_write32
    Вот, кстати, с FAT тоже не всё хорошо.
    Вон там второй скриншот бага viewtopic.php?f=9&t=3294&p=65580#p65580 дело было на tmp-диске, а там FAT.
    А учитывая, с какой частотой он проявляется(примерно 1 из 10000)...
  • Pathoswithin wrote: а fs_write64 до меня никто не использовал (и почти не тестировал).
    Похоже, что с этой функцией не всё в порядке.
    На реальной системе хотел скопировать файл размером 4,23 ГБ (4 548 136 960 байтов = 0x10F171000 байтов).
    C NTFS на EXT2 — не получилось, Access denied.
    C NTFS на NTFS — скопировалось только 1,29 ГБ (1 394 016 256 байтов = 0x53170000 байтов).
    Копировал с помощью KFAR и fNav(будущая версия).

    Я уже даже решил ради интереса в KlbrInWin попробовать. И внезапно там всё работает. Были вычислены и сравнены контрольные суммы CRC — исходный и скопированный файлы идентичны.

    Похоже, что проблема всё-таки в ядре, а не в алгоритмах программ.
    Алгоритм прост — читаем и пишем пока не EOF. Вероятно, что EOF приходит раньше времени, что есть ошибка SysFn.
    Могу выложить чуть доработанный fNav с возможностью копирования >4Гб файлов.
  • EXT2 как и FAT не поддерживает файлы больше 4 ГБ.
    Какой размер раздела? Какими кусками копирует fNav?
    А при чём здесь KlbrInWin? Он через виндовые драйвера работает. Проблема однозначно в ядре, но не понятно где, возможно не в ФС.
  • Pathoswithin wrote:EXT2 как и FAT не поддерживает файлы больше 4 ГБ.
    Ну так может надо сделать, чтобы поддерживала? Планируешь это сделать?
    Тут https://en.wikipedia.org/wiki/Ext2 пишут Max. file size 16 GiB – 2 TiB
    Pathoswithin wrote:Какими кусками копирует fNav?
    256 Kb.
    Pathoswithin wrote:А при чём здесь KlbrInWin?
    Просто чтобы убедиться, что сам алгоритм рабочий.
    Pathoswithin wrote:Какой размер раздела?
    Были созданы разделы EXT2 и NTFS примерно по 8Гб.
    Но ограничение 4 Гб в EXT2 тут ни причём. В файл вообще ничего нельзя было записать. Хотя создать сам файл получилось. Пробовал также не в корневую папку, но результат такой же.

    Да и вот ещё что. При попытке запустить на исполнение тот же тестовый файл(просто исключительно ради теста) было сообщение, что файл не найден. Хотя на другие файлы в этой папке, но <4Гб, ругалось по-другому "файл не исполняемый". Может кто-то помнит, но раньше уже было замечено, что на файлы, размером 0 байтов, ругается "файл не найден" при попытке его запуска. Вот и здесь похожая ситуация.
  • Строго говоря, у EXT вообще нет версий, только флаги поддерживаемых функций. Немного ошибся, изначально EXT2 не поддерживала файлы более 2 ГБ.

    Возможно, это и есть ключевое отличие: KFAR копирует по 64 КБ, а Eolite вроде целыми кусками.
  • Pathoswithin wrote:Возможно, это и есть ключевое отличие
    Не, вряд ли. Ведь GenFiles вообще ничего не пишет в файл, а только создаёт его. Наверное, в fs_write64 ошибка?
    Pathoswithin wrote:Немного ошибся, изначально EXT2 не поддерживала файлы более 2 ГБ.
    Ну а сейчас-то >4Гб поддерживаются?

    Хотел попробовать повторить на NTFS баг как на втором скриншоте viewtopic.php?f=9&t=3294&p=65580#p65580 но, к сожалению, на NTFS не получается создать даже 100 файлов. А вот на FAT баг всё ещё проявляется, хотя и очень редко(проблематично будет его отловить тогда)
    Spoiler:
    1.PNG
    1.PNG (69.1 KiB)
    Viewed 3982 times
  • У fs_write32 и fs_write64 общий код, отличие только в количестве секторов. Но даже при создании файла операции над кластером это уже несколько секторов. С другой стороны, я кое-как отключал кэш, и вроде ошибки всё равно есть...
  • Mega_Myr wrote:Есть подозрение, что ошибки глубоко в ядре и как-то связаны с определением дисков. На это меня натолкнуло то, что колибри на реальной машине обнаруживает floppy дисководы. Хотя их в реальности нет. Есть только HDD и DVD-ROM и 4 SATA контроллера на этой матери.
    Колибри даже не пытается определять floppy-дисководы, она берёт эту информацию от BIOS.
  • Что-то у меня в KFAR ошибки вообще не ловятся, а Eolite на них не останавливается. Поймайте мне несколько этим ядром (имя ошибки и лог на момент возникновения).
    Attachments
    kernel.mnt (186.12 KiB)
    Downloaded 151 times
  • В боард ничего, ошибок стало меньше по количеству (одна)

    http://clip2net.com/s/3FSAu87
  • Ну у меня всё также. При попытке удалить несколько папок
    Spoiler:
    1.PNG
    1.PNG (122.85 KiB)
    Viewed 3859 times
    А в BOARDLOG вроде бы ничего интересного. А что там должно быть? У меня вот
    Spoiler:

    Code: Select all

    K : kernel SVN r6814
    K : 1 CPU detected
    K : Attach Interrupt 6 Handler 8002ADF0
    K : Set IDE IRQ6 return code 800610D0
    K : IDE controller programming interface 0001018A
    K : BAR0 IDE base addr 01F0
    K : BAR1 IDE base addr 03F4
    K : BAR2 IDE base addr 0170
    K : BAR3 IDE base addr 0374
    K : BAR4 IDE controller register base addr FC00
    K : IDE Interrupt 00
    K : Channel 1 Disk 0
    K : Dev: Maxtor 6Y080P0                           
    K : PIO possible modes 03
    K : PIO set mode 01
    K : Multiword DMA possible modes 07
    K : Multiword DMA set mode 00
    K : Ultra DMA possible modes 7F
    K : Ultra DMA set mode 05
    K : Channel 1 Disk 1
    K : Dev: HDS722512VLAT80                          
    K : PIO possible modes 03
    K : PIO set mode 01
    K : Multiword DMA possible modes 07
    K : Multiword DMA set mode 00
    K : Ultra DMA possible modes 3F
    K : Ultra DMA set mode 05
    K : Channel 2 Disk 0
    K : Device not found
    K : Channel 2 Disk 1
    K : Device not found
    K : IDE CH1 DMA enabled
    K : IDE CH2 PIO because no devices
    K : Attach Interrupt 14 Handler 8002C638
    K : Set IDE IRQ14 return code 800610E4
    K : Attach Interrupt 15 Handler 8002C638
    K : Set IDE IRQ15 return code 800610F8
    K : driver /rd/1/drivers/vidintel.sys mapped to 81F5A000
    K : driver /sys/drivers/UHCI.sys mapped to 81F5E000
    K : driver /sys/drivers/EHCI.sys mapped to 81F5B000
    K : has_ownership
    K : HCSPARAMS=00104208, HCCPARAMS=00006871
    K : Attach Interrupt 11 Handler 81F5B8E6
    K : EHCI controller at 00:EF with 8 ports initialized
    K : UHCI controller at 00:E8 with 2 ports initialized
    K : Attach Interrupt 10 Handler 81F5E6C1
    K : UHCI 81F69830 connect status changed, 0082/0080
    K : UHCI 81F69830 connect status changed, 0082/0080
    K : UHCI controller at 00:E9 with 2 ports initialized
    K : Attach Interrupt 5 Handler 81F5E6C1
    K : UHCI 81F6B830 connect status changed, 0092/0090
    K : UHCI 81F6B830 connect status changed, 0092/0080
    K : UHCI controller at 00:EA with 2 ports initialized
    K : Attach Interrupt 5 Handler 81F5E6C1
    K : UHCI controller at 00:EB with 2 ports initialized
    K : Attach Interrupt 10 Handler 81F5E6C1
    K : Attach Interrupt 1 Handler 80028228
    K : IRQ1 return code 80061170
    K : driver /rd/1/drivers/PS2MOUSE.SYS mapped to 8207B000
    K : Attach Interrupt 12 Handler 8207B567
    K : EHCI 81F660A4: status of port 0 changed to 00001803
    K : EHCI 81F660A4: status of port 1 changed to 00001803
    K : EHCI 81F660A4: status of port 2 changed to 00001803
    K : EHCI 81F660A4: status of port 3 changed to 00001803
    L: /SYS/SETUP Param: BOOT
    L: /SYS/LOADDRV Param: RDC
    K : driver /sys/drivers/RDC.sys mapped to 8207F000
    L: /SYS/@TASKBAR Param: 
    L: /SYS/@ICON Param: 
    L: /SYS/ESKIN Param: 
    L: /SYS/@DOCKY Param: 
    K : EHCI 81F660A4 port 0 state is 00001801
    K : EHCI 81F660A4: port 0 has HS or FS device, resetting
    K : EHCI 81F660A4 port 1 state is 00001801
    K : EHCI 81F660A4 port 2 state is 00001801
    K : EHCI 81F660A4 port 3 state is 00001801
    L: /SYS/NETWORK/NETCFG Param: A
    K : EHCI 81F660A4 status of port 0 is 00001005
    K : EHCI 81F660A4: port 1 has HS or FS device, resetting
    Unsupported PCI network card detected: 0x10B7:0x1700
    K : device descriptor: 12 01 00 02 00 00 00 40 8F 05 87 63 0B 01 01 02 03 01
    K : found USB device with ID 058F:6387, 1 configuration(s)
    L: /SYS/NETWORK/@ZEROCONF Param: 
    K : config descriptor: 09 02 20 00 01 01 00 80 64 09 04 00 00 02 08 06 50 00 07 05 01 02 00 02 00 07 05 82 02 00 02 00
    K : USB interface class/subclass/protocol = 08/06/50
    K : driver /sys/drivers/usbstor.sys mapped to 820AA000
    K : USB mass storage device detected
    K : 1 logical unit(s)
    K : Command 03 failed
    K : media is ready
    K : 1 attempts, 1 ticks
    K : peripheral device type is 00
    K : direct-access mass storage device detected
    K : sector size is 512, last sector is 16338943
    K : EHCI 81F660A4 status of port 1 is 00001005
    K : EHCI 81F660A4: port 2 has HS or FS device, resetting
    L: /SYS/@VOLUME Param: 
    Zero-config service loaded
    K : EHCI 81F660A4 status of port 2 is 00001801
    K : releasing to companion
    K : EHCI 81F660A4: port 3 has HS or FS device, resetting
    K : EHCI 81F660A4: status of port 2 changed to 00003002
    K : driver /sys/drivers/SOUND.sys mapped to 820D0000
    Detecting hardware...
    Loading INTELAC97
    K : driver /sys/drivers/INTELAC97.sys mapped to 823E1000
    detect hardware...
    Intel 802801EB (ICH5)
    PCI command     00000007
    PCI status      00000290
    codec io base        0000E801
    controller io base   0000EE81
    codec mmio base      FEBFF400
    controller mmio base FEBFF000
    global control  00000000
    global status   08700000
    cold reset
    L: /SYS/@SS Param: ASSM
    L: /SYS/TMPDISK Param: A0
    K : driver /sys/drivers/tmpdisk.sys mapped to 82095000
    trying to add disk
    
    its size is not specified, 20% from free RAM will be used
    
    new DiskSize: 406 MB
    
    K : EHCI 81F660A4 status of port 3 is 00001801
    K : releasing to companion
    K : EHCI 81F660A4: status of port 3 changed to 00003002
    operation completed successfully
    
    L: /SYS/SEARCHAP Param: 
    K : device descriptor: 12 01 00 02 00 00 00 40 8F 05 87 63 41 01 01 02 03 01
    K : found USB device with ID 058F:6387, 1 configuration(s)
    K : config descriptor: 09 02 20 00 01 01 00 80 32 09 04 00 00 02 08 06 50 00 07 05 01 02 00 02 00 07 05 82 02 00 02 00
    K : USB interface class/subclass/protocol = 08/06/50
    K : USB mass storage device detected
    K : TD failed:
    K : 00D2F180 00B59FC0 80010D40 004DE51C
    K : 00000000 00000000 00000000 00000000
    K : pipe now:
    K : 00CC8002 40406002 40000000 00D2F060
    K : 00D2F180 00B59FC8 80010D40 004DE51C
    K : 00000000 00000000 00000000 00000000
    K : GETMAXLUN failed with status 4, assuming zero
    K : 1 logical unit(s)
    K : Command 03 failed
    K : media is ready
    K : 1 attempts, 2 ticks
    K : peripheral device type is 00
    K : direct-access mass storage device detected
    K : sector size is 512, last sector is 4005885
    global control  00000002
    global status   00700100
    reset complete
    Analog Devices
    AD1985 
    create primary buffer ...done
    K : Attach Interrupt 11 Handler 823E1434
    K : UHCI 81F6B830 connect status changed, 0093/0091
    K : UHCI 81F6B830 connect status changed, 0093/0091
    K : port is shared with EHCI, skipping initial debounce
    K : port is shared with EHCI, skipping initial debounce
    K : UHCI 81F6B830 status 0280/0093
    K : reset done
    K : UHCI 81F6B830 status 0095
    K : device descriptor: 12 01 10 01 02 00 00 08 86 05 09 33 01 00 00 00 00 01
    K : found USB device with ID 0586:3309, 1 configuration(s)
    K : UHCI 81F6B830 status 0280/0093
    K : reset done
    K : UHCI 81F6B830 status 0095
    K : device descriptor: 12 01 10 01 00 00 00 08 F0 03 17 0C 00 01 01 02 03 01
    K : found USB device with ID 03F0:0C17, 1 configuration(s)
    K : config descriptor: 09 02 4E 00 01 01 00 C0 01 09 04 00 00 03 07 01 03 00 07 05 01 02 40 00 00 07 05 81 02 40 00 00 07 05 82 03 08 00 FF 09 04 00 01 02 07 01 02 00 07 05 01 02 40 00 00 07 05 81 02 40 00 00 09 04 00 02 01 07 01 01 00 07 05 01 02 40 00 00
    K : USB interface class/subclass/protocol = 07/01/03
    K : failed to load class driver
    K : note: alternate setting with 07/01/02
    K : note: alternate setting with 07/01/01
    K : config descriptor: 09 02 43 00 02 01 00 C0 32 09 04 00 00 01 02 02 FF 00 05 24 00 10 01 05 24 01 00 00 04 24 02 00 05 24 06 00 01 07 05 83 03 08 00 01 09 04 01 00 02 0A 00 00 00 07 05 81 02 40 00 00 07 05 02 02 40 00 00
    K : USB interface class/subclass/protocol = 02/02/FF
    K : failed to load class driver
    K : USB interface class/subclass/protocol = 0A/00/00
    K : failed to load class driver
    Searchap: additional partition is not found!
    L: AUTORUN.DAT processed
    K : destroy app object
    K : destroy app object
    K : destroy app object
    K : destroy app object
    
  • Not supported при удалении это и значит, что что-то не поддерживается, с этим будем разбираться потом. Сейчас ловите при копировании, давайте вывод ядра (режим kernel).
  • Who is online

    Users browsing this forum: No registered users and 8 guests