Export to GitHub

grub4dos-chenall - issue #194

partnew gives 'not contiguous' error on exFAT


Posted on Aug 8, 2014 by Happy Kangaroo

What steps will reproduce the problem?

Make exFAT 32GB USB drive (I used RMPrepUSB 2.1.722) and install grub4dos to MBR.

Boot from USB drive - grub4dos 0.4.5c Aug 2014 console

partnew (hd0,3) 0x0 /_ISO/WIN/xxxx.imghPTN

What is the expected output? What do you see instead?

This works with some files but not others!

grub4dos gives a 'not contiguous' error on some files

ALL files are contiguous (blocklist and also defragged using WinContig both report no fragmented files).

Possibly issue with the 'problem' file being > 4GB ???

What version of the product are you using? On what operating system?

0.4.5c (see attached)

Please provide any additional information below.

A user reported that this also happens with some files <4GB but I cannot confirm that. He also says sometimes a file will work and if he remakes the USB drive it sometimes does not work - maybe position of file on drive is also a factor?

Attachments

Comment #1

Posted on Aug 8, 2014 by Happy Kangaroo

User now reports only >4GB files give the error. This is same as my testing.

So looks like files >4GB on exFAT don't work with partnew - maybe 32-bit v 64-bit issue in code?

Comment #2

Posted on Aug 25, 2014 by Happy Hippo

Thanks for your report,seems there is bug in blocklist_func

Comment #3

Posted on Aug 25, 2014 by Happy Hippo

there is a bug in fsys_fat.c

if (!devread(FAT_SUPER->root_offset, filepos, size, buf, 0xedde0d90))

the filepos is 64-bit,but in (disk_io.c devread() the byte_offset if 32-bit).

int devread (unsigned long long sector, unsigned long byte_offset, unsigned long long byte_len, unsigned long long buf, unsigned long write)

now extend byte_offset to 64-bit,This problem should be solved.

Attachments

Comment #4

Posted on Aug 29, 2014 by Happy Kangaroo

Thanks! Works for me. I think this is fixed.

Comment #5

Posted on Aug 31, 2014 by Happy Hippo

(No comment was entered for this change.)

Status: Done

Labels:
Type-Defect Priority-Medium