Jump to content

Chameleon 2.4svn Official PKG Installer


ErmaC
4,261 posts in this topic

Recommended Posts

Good evening everyone,
why in the function ntfs.c
NTFS GetDescription (ih CICell, char * str, long strMaxLen);
calculating the offset of the MFT can not be superior to 682 008 576, so that these are long long ?

 

mftOffset = (mftCluster * sectorsPerCluster * bytesPerSector);

 

causing obviously ntfs_fixup: magic does not match:

 

this happens with logical partitions or logical partitions converted into primary partition.

 

Thank you for your answers.
Link to comment
Share on other sites

Hi, long is at least max  2147483647 ..long, if I'm not mystaken, so appear to be in the range, I guess.

I can't say more about NTFS specs

Thank you for the answer yes I know not why it limits the calculation 682011648

while unsigned long MFTcluster lon = 2288554  sectorsPerCluster = 8  BytesPerSector = 512 which gives

(2288554 * 8 * 512) = 9 373 917 184 for example MFToffset of  one of my NTFS partition

the problem is that the limit of result

not  the method or the  function

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Good evening, in chameleon file ntfs.c, function(office) void NTFSGetDescription(CICell ih, char *str, long strMaxLen), lines 270 mftOffset = ( u_int64_t ) (mftCluster * sectorsPerCluster * bytesPerSector);

With an offset of the MFT at 9 373 920 256, I obtain ih->fs_boff = 1531222, what corresponds not at all to the result of (9 373 920 256 / 512) = 18308438;
An explanation would come from a compilation in 16 bit, or one has prototyping (unsigned long long) which is not made.

It arrives with logical partitions or extended partition, (not primary), the MFT is very far.
The error which results from it very known
" ntfs_fixup: magic doesn't match: 4dc22b5e != 454c4946 .
"
It's a pity to find itself in every starting up with these errors:
File boot.c line 186 and 187.

"Errors encountered while starting up the computer."
"Pausing 5 seconds..."
And have to wait  every time.
Thank you for your answers.
 

Link to comment
Share on other sites

Hello, I return on the error " ntfs_fixup: magic doesn' t match:  != 454c4946. " That I was able to identify on a logical partition (or extended).
The cause: the offset of the MFT is situated at the byte (octet) " 9 373 920 256 " size partition 42,3 G.
The multiplication of the function " (void NTFSGetDescription(CICell ih, char *str, long strMaxLen)" line 270

mftOffset = ( u_int64_t ) (mftCluster * sectorsPerCluster * bytesPerSector);
Created a bad result due to the incapacity of prototyper the multiplication ( long long), mftOffset was good prototyper ( long long), but it was not enough.
Thus obligation to weigh down the code with creation of a struture with 2 ( long long), reservation of memory.

Situation of origin
size_t mftOffset;


MftOffset = mftCluster * sectorsPerCluster * bytesPerSector;
mftOffset += mftRecordSize * NTFS_VOLUMEINO;

    Seek(ih, mftOffset);
    Read(ih, (long)buf, mftRecordSize);


Modification creation of the structure in the outside of the function (void NTFSGetDescription (CICell ih, char *str, long strMaxLen)

struct ntof {

unsigned Long Long boff;
unsigned Long Long bof;

};

The lines which follow inside the function(office) (void NTFSGetDescription (CICell ih, tank *str, long strMaxLen) with deletion of the variable " size_t mftOffset; "

    bof = (char *)malloc(24);
    
    struct ntof *nt;
    nt = (struct ntof *) bof;

   nt->boff = (u_int64_t)(mftCluster *  (u_int64_t) sectorsPerCluster *  (u_int64_t) bytesPerSector);
    
   nt->boff  += mftRecordSize * NTFS_VOLUMEINO;
    
    Seek(ih, nt->boff);
    Read(ih, (long)buf, mftRecordSize);
Now after compilation, no errors " ntfs_fixup: magic doesn' t match:! = 454c4946. "
" Errors encountered while starting up the to compute. "
" Pausing 5 second... "
So now, no error or waiting

Link to comment
Share on other sites

deek tomorrow I'll try to build with your modification..

Hello and saddened for your lost time.

 

After check the variable " mftOffset " is of type (unsigned long) whose maxi value is 4 294 967 295 (value stored in 4 bytes(octets)). So that I find the offset of the MFT of a logical partition which is at the byte(octet) 9 373 920 256 it is necessary to use one (long long or unsigned long long) (value stored in 8 bytes(octets)).

 

De facto(Actually) the modification can be reduced to modify the prototypage of the variable " mftOffset " in type ( long long), what should allow to cover all possibility of offset of the MFT on a partition ntfs logical or extended.

Situation of origin

 

File /chameleon/trunk/i386/libsaio/ntfs.c towards the line 170.

 

" Void NTFSGetDescription (CICell ih, tank *str, long strMaxLen) "

size_t mftOffset;

 

Transformed there

 

" Void NTFSGetDescription (CICell ih, tank *str, long strMaxLen) "

 

long long mftOffset;

 

What is simpler and more successful.

Now after compilation, no errors " ntfs_fixup: magic doesn' t match:! = 454c4946. "

" Errors encountered while starting up the to compute. "

" Pausing 5 second... "

So now, no error or waiting

 

  • Like 1
Link to comment
Share on other sites

Ok, then thanks.

I don't know when this will be commited, we need wait for ErmaC's return..

No soucy , it was just for trying to solve a problem of ntfs_fixup, can be that there are still other problems.

  • Like 1
Link to comment
Share on other sites

Hello, once enoch 2796 compiled and installed without modification.
Impossible to boot El Capitan (15E61b) .
With another compiled and installed version 2773 similar impossible to boot El Capitan (15E61b) .
Stop and restart every time.
 

 

With the same versions (on 2796 or 2773) downloaded here no problem installed time, El Capitan (15E61b) starts very well.
It would seem whether it is a problem of compilation, while I modify no option of compilation.
Compiled under Yosemite or El Capitan
 

Link to comment
Share on other sites

r2796:attachicon.gifboot.zip

 

can you kindly try also to install on an EXFAT formatted volume to see if is working?  ...just to be sure.

Thanks

Thank you for your boot file.

My compilation of the version 2796 makes 372ko

Your 464ko crowned difference.

 

I am sorry I had not seen your boot file, I have just tested it it works very well no error.

Elcapitan starts so very well.

Thank you for the past time .

Link to comment
Share on other sites

Yes, I see no download yesterday (I wanted to be sure about its functioning). My bootfile contain a kext embedded in the binary (FakeSMC), but the code is disabled (is a test), so you can use it w/o problem.

  • Like 1
Link to comment
Share on other sites

Yes, I see no download yesterday (I wanted to be sure about its functioning). My bootfile contain a kext embedded in the binary (FakeSMC), but the code is disabled (is a test), so you can use it w/o problem.

OK for the size of the file with fakesmc.kext.

It works very well.

I do not still understand why the downloaded and compiled source code no boot  Elcapitan about is the version.

With all the versions

Link to comment
Share on other sites

OK, I do not understand. But too bad.

Code is under testing, we are attempting to add a kext patcher (if we can), the time is little.. ErmaC is busy with is job, me with other (btw I can't commit nothing). No one helped except Pike, Bronya and crazybirdy doing test.

More clear? :) ... that is the meaning: no time, no devs

  • Like 1
Link to comment
Share on other sites

Code is under testing, we are attempting to add a kext patcher (if we can), the time is little.. ErmaC is busy with is job, me with other (btw I can't commit nothing). No one helped except Pike, Bronya and crazybirdy doing test.

More clear? :) ... that is the meaning: no time, no devs

OK, why a kext patcher?

Link to comment
Share on other sites

hello,

Elcapitan restart after Longterm timer threshold everytime with enoch 2796.

it can't boot with -f option.

 

kernel msg

 

mem_actual: 0x1fb769000

legacy sane_size: 0x200000000

kext submap [0x<ptr> - 0x<ptr>], kernel text [0x<ptr> - 0x<ptr>]

Link to comment
Share on other sites

×
×
  • Create New...