On Tue, 2006-11-28 at 02:56 +0100, Frans Pop wrote:
> On Monday 27 November 2006 23:45, Anton Altaparmakov wrote:
> >         //vol = ntfs_mount(opt.volume, 0);
> >         vol = NULL;
> 
> I'm almost afraid to have to tell you this... ;-)
> 
> After recompiling ntfsfix with this change, running it once immediately 
> after the ntfsresize and rebooting Vista, I _do_ get the chkdsk by Vista 
> and it boots fine after its automatic reboot.
> 
> So, it very much looks like there is something in the "mount failed" 
> codepath after all.
> 
> I've tried this trick with both your CVS version and with the current 
> version in Debian, both with identical results.
> 
> I just noticed something.
> If the mount is OK, ntfsfix prints all its messages almost instantaneous, 
> like nothing is actually happening at all. But if the mount fails, 
> ntfsfix takes significantly longer, especially over the "Going to empty 
> the journal ($logfile)" step.
> There is a definite pause, both while that step is being processed 
> (before "OK\n" is printed) and immediately afterwards (before the next 
> line "NTFS volume version" is printed).
> 
> Another step closer...

Argh!  Thank you for persisting with this.  I have now looked at the
code and you are right it does not do the same thing.  This is because
when Yura ported my $LogFile code from the kernel for some unknown to me
(or forgotten by me) reason he did not integrate clearing the journal
into the mount process.  He integrated the checking but not the
clearing.  This is a HUGE and VERY BAD bug in libntfs and means that all
ntfs utilities are _DANGEROUS_ to run and can cause massive and very
hard to detect data corruption.  )-:

No wonder Vista does not boot!!!  It is amazing it took so long to find
this problem.  I cannot believe we managed to get away with it for so
long...

I have now fixed this in CVS.  Could you update, compile, and try again?

Once just with ntfsresize (the one in current CVS) and if that still
does not work, once with ntfsresize + immediate ntfsfix (the one in
current CVS without the my change that you put in).  If that still does
not fix it then once with ntfsresize + immediate ntfsfix (the one in
current CVS but with my change that you put in again).

In an ideal world, just ntfsresize will now be sufficient.  If not
ntfsfix should work first time.  And if not I need to look at it
further!

Thanks!

Best regards,

        Anton
-- 
Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer, http://www.linux-ntfs.org/



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to