NTFS-3G Safe Read/Write NTFS Driver
 
 
 
 
Go to file
!szaka 1935ac9421 Move ntfs_set_volume_flags() from attrib[ch] to volume.[ch]
2002/07/14 12:36:04-00:00 !szaka
Increase NTFS_BUF_SIZE to 8192 (better average performance)

2002/07/12 12:38:54-00:00 !szaka
Rewrote $LogFile reset using new inode API and moved it from ntfsfix to
libntfs as ntfs_reset_logfile(). ntfsresize also resets log file.

2002/07/12 07:10:44-00:00 !szaka
NTFS_V* version macros and ntfs_is_version_supported() added.
Modified ntfsfix and ntfsresize to use them.

2002/07/11 16:20:33-00:00 !flatcap
whitespace and include guards

2002/07/11 13:18:11-00:00 !flatcap
start to break up the dependency loops in the header files

2002/07/02 23:47:10-00:00 !antona
Global replacement of __[su]{8,16,32,64} with [su]{8,16,32,64} and layout.h define it.

2002/06/06 20:47:32-00:00 !antona
The beginning of the directory operations! Introduce dir.[hc] and ntfs_lookup_inode_by_name().

2002/06/02 23:02:20-00:00 !antona
More fixes and updates.

2002/06/01 00:41:45-00:00 !antona
huge update!

2002/04/29 01:53:55-00:00 !antona
Loads of stuff. Improvements, start on attr pread and attr mst_pread. Write to follow. ntfslabel cleanup and extensions. libntfs cleanups, fixes, etc.

2002/04/27 19:49:09-00:00 !antona
Update library, new APIs ntfs_attr_find_vcn(), misc fixes and cleanups, make all the utilities compile, fix bugs I noticed in ntfslabel and it now works properly.

2002/04/23 23:27:33-00:00 !antona
Fixup the force option in mkntfs.c. Change the ntfs_check_if_mounted so it works on system not implementing {set,get,end}mntent, too. Also make it more powerful in telling us not only if something is mounted but also if it is the fs root and if it is read-only.

2002/04/22 10:34:31-00:00 !antona
Attribute list support (merging done, part 2, some stuff still incomplete). mkntfs ntfs volume creation. See the changelog...

2002/04/20 23:09:42-00:00 !antona
Port attribute lookup functions with attribute list support from ntfs tng driver. Port/reimplement extent mft record handling code as well. Rename out all dollar signs from type names and constants. Adapt all callers to new API. Note mkntfs is currently broken due to some needed work.

2002/04/14 13:56:45-00:00 !antona
cleanup header files.

2001/12/06 01:14:52-00:00 !antona
Added mount flags to ntfs_mount and adapted utilities to new mount syntax.

2001/06/01 02:07:24-00:00 !antona
It has been a long time since last commit. At moment have done a lot of work
on mkntfs but also at the moment ntfsfix and ntfsdump_logfile and libntfs are
broken. Basically only mkntfs works and that is not complete either.

2001/04/11 11:49:16-00:00 !antona

Header file reorganisation so that it compiles.

2001/04/10 23:37:19-00:00 !antona
Ok, ntfsd was a mistake for userspace. It increases complexity no end while
not giving us much functionality. Lets get it working and then worry about the
kernel. - As it was the idea originally anyway, so this is just a return on the
right track. (-8

We keep the timer and signal handler but the only thing we do is to set a bool
flag (ntfs_need_sync) and we will just check this in appropriate places and
if it is true we call ntfs_sync_volumes() which sets it back to false. This
means no more locking at all of any description and no need to worry about the
signal handler interrupting things in bad ways and/or at bad times in the main
code.

2001/04/10 22:20:19-00:00 !antona
Ok, ntfsd was a mistake for userspace. It increases complexity no end while
not giving us much functionality. Lets get it working and then worry about the
kernel. - As it was the idea originally anyway, so this is just a return on the
right track. (-8

We keep the timer and signal handler but the only thing we do is to set a bool
flag (ntfs_need_sync) and we will just check this in appropriate places and
if it is true we call ntfs_sync_volumes() which sets it back to false. This
means no more locking at all of any description and no need to worry about the
signal handler interrupting things in bad ways and/or at bad times in the main
code.

2001/04/09 00:05:37-00:00 !antona
More or less finished file handling. (Probably some useful functions are
still missing but they will be implemented as need arises.)

One thing that is stupid at the moment is we don't limit the amount of
cached mft_records so if you were to load loads the machine would eventually
run out of memory... Can't happen with files as they are limited to 1000,
unless you are short of memory. (Hard limit at the moment, set in ntfs_mount().
Maybe ntfsd should be monitoring memory usage and be throwing out unused cache
entries and closed_files? That would mean to have locking everywhere, though.)

Still missing: - Convert old code to use new stuff. - Add non-resident
attributes somewhere. Either into the mft_entry structure or into the
ntfs_file structure, but which? At the moment I tend to mft_entry so they can
be synced together with the entries by ntfsd.

2001/04/08 03:02:55-00:00 !antona
Added cvs Id header.

2001/04/08 01:58:29-00:00 !antona
User space conversion of locking complete. I settled for using simple spinlocks
and atomic variables and instead of deadlocking/livelocking when using
spin_lock(), use spin_trylock() in a while letting go of the cpu between each
call and making a maximum of 100 iterations (or we return EDEADLK error code).

This is not the most efficient way, especially as can't have multiple readers
but it is the simplest way to go about things.

Should now have (almost) all required helper functions for dealing with mft
entries implemented.

Now need the file handling and then convert the whole project to use the new
code and then can finally get back to work on attribute searching...

2001/04/07 17:30:10-00:00 !antona
ntfsd should be finished now

2001/04/03 22:41:30-00:00 !antona
We now have files and keep track of them on a per volume basis and same
for inodes (mft_records). At least conceptually anyway.

2001/04/02 02:04:37-00:00 !antona
Everything compiles again! Yey! (Don't know about working though, haven't tried
it... So be careful...)
The definitely final find_{first_}attr() functions are in place. Currently
still no support for attribute lists.
The two new _RE files contain the C-fied and more or less (more less than more
actually) cleaned up functions from the ntfs driver. Once they are cleaned
up (find_attr() is already completed but I left it in the _RE files for future
reference/educational value) and modified to suit my ideas of how they should
work, which are not quite the same as the driver way, they will make it into
attrib.[ch].
If anyone gives the new code a try, I would be interested in whether it worked
or not... (-;

2001/03/06 02:10:55-00:00 !antona
Allow variable length upcase table.
Progressing on find_next_attr().

2001/01/30 12:55:21-00:00 !antona
Fixed the compilation issues.

2001/01/25 14:00:43-00:00 !antona
Added volume.c code and fixed some typos and inconsistencies.

2001/01/24 02:13:24-00:00 !antona
Add a bunch of headers (attrib.h is work in progress).

(Logical change 1.5)
2002-08-22 18:09:47 +00:00
BitKeeper/etc Don't ask each user if they agree to open logging. 2002-08-22 14:44:22 +00:00
doc whitespace and include guards 2002-08-22 18:09:47 +00:00
include Move ntfs_set_volume_flags() from attrib[ch] to volume.[ch] 2002-08-22 18:09:47 +00:00
libntfs whitespace and include guards 2002-08-22 18:09:47 +00:00
ntfstools Merge set_ntfs_volume_flags() and code from ntfsfix as a new library 2002-08-22 18:09:47 +00:00
AUTHORS add ntfsundelete to the build. fix rpm build. trawl for typos. 2002-08-22 18:09:47 +00:00
COPYING Updates 2002-08-22 18:09:47 +00:00
CREDITS Add Szakacsits Szabolcs <szaka@sienet.hu> (and myself) to CREDITS. 2002-08-22 18:09:47 +00:00
ChangeLog add ntfsundelete to the build. fix rpm build. trawl for typos. 2002-08-22 18:09:47 +00:00
ChangeSet Initial revision 2002-08-22 14:28:33 +00:00
INSTALL Forgot that one. 2002-08-22 18:09:47 +00:00
Makefile.am "configure --enable-really-static" and "make strip" 2002-08-22 18:09:47 +00:00
Makefile.in "configure --enable-really-static" and "make strip" 2002-08-22 18:09:47 +00:00
NEWS add ntfsundelete to the build. fix rpm build. trawl for typos. 2002-08-22 18:09:47 +00:00
README add ntfsundelete to the build. fix rpm build. trawl for typos. 2002-08-22 18:09:47 +00:00
TODO.include Concolidate TODO files 2002-08-22 18:09:47 +00:00
TODO.libntfs Update todo file. 2002-08-22 18:09:47 +00:00
TODO.ntfstools add ntfsundelete to the build. fix rpm build. trawl for typos. 2002-08-22 18:09:47 +00:00
acconfig.h It has been a long time since last commit. At moment have done a lot of work 2002-08-22 18:09:47 +00:00
aclocal.m4 huge update! 2002-08-22 18:09:47 +00:00
autogen.sh More files. 2002-08-22 18:09:47 +00:00
config.guess It has been a long time since last commit. At moment have done a lot of work 2002-08-22 18:09:47 +00:00
config.h.in Cleanup the build process a bit. 2002-08-22 18:09:47 +00:00
config.sub It has been a long time since last commit. At moment have done a lot of work 2002-08-22 18:09:47 +00:00
configure "configure --enable-really-static" and "make strip" 2002-08-22 18:09:47 +00:00
configure.in "configure --enable-really-static" and "make strip" 2002-08-22 18:09:47 +00:00
install-sh Had to change symbolic links to files to get cvs to accept them. 2002-08-22 18:09:47 +00:00
linux-ntfs.spec.in add ntfsundelete to the build. fix rpm build. trawl for typos. 2002-08-22 18:09:47 +00:00
ltconfig Had to change symbolic links to files to get cvs to accept them. 2002-08-22 18:09:47 +00:00
ltmain.sh Minor updates and restructuring the distribution. See NEWS and ChangeLog for 2002-08-22 18:09:47 +00:00
missing Had to change symbolic links to files to get cvs to accept them. 2002-08-22 18:09:47 +00:00
mkinstalldirs Had to change symbolic links to files to get cvs to accept them. 2002-08-22 18:09:47 +00:00
stamp-h.in More files. 2002-08-22 18:09:47 +00:00

README

Linux-NTFS
==========

The Linux-NTFS project aims to bring full support for the NTFS filesystem to
the Linux operating system.

Linux-NTFS is copyright (c) 2000-2002 Anton Altaparmakov.

All of the contents of the Linux-NTFS project are free software, released under
the GNU General Public License and you are welcome to redistribute them under
certain conditions.
All the libraries and utilities come with ABSOLUTELY NO WARRANTY; for details
read the GNU General Public License to be found in the file COPYING in the main
Linux-NTFS distribution directory.
 
Linux-NTFS currently consists of the NTFS library (libntfs) and utilities
(ntfstools). In the future it will also contain a new NTFS driver for the
Linux kernel.

The Linux-NTFS project is registered on Sourceforge.net. The home page for
Linux-NTFS is http://linux-ntfs.sf.net/ and the project page is:
http://sf.net/projects/linux-ntfs/

If you would like to take part in the development of Linux-NTFS, you are
invited to subscribe to the development mailing list,
linux-ntfs-dev@lists.sourceforge.net. The easiest way to do this is to visit
the list page on sourceforge at:
	http://lists.sourceforge.net/lists/listinfo/linux-ntfs-dev

If you would like to be kept up to date about new releases and other Linux-NTFS
announcements, subscribe to the linux-ntfs-announce mailing list (very low
volume). The easiest way to do this is to visit the list page on sourceforge at:
	http://lists.sourceforge.net/lists/listinfo/linux-ntfs-announce

NTFS library
============

Provides common NTFS access functions to the ntfstools and other foreign
open source applications. Note, that the library is still under heavy
development and doesn't include the majority of functionality yet. It only
is capable of just about supporting the current ntfstools, so I wouldn't 
recommend using it for your own applications at this stage.

NTFS utilities
==============

The ntfstools will eventually include utilities for doing all required tasks
to NTFS partitions. In general, just run a utility without any command line
options to display the version number and usage syntax.

The following utilities are so far implemented:

NtfsFix - Attempt to fix an NTFS partition that has been damaged by the Linux
NTFS driver. Note that you should run it every time after you have used the
Linux NTFS driver to write to an NTFS partition to prevent massive data
corruption from happening when Windows mounts the partition.
IMPORTANT: Run this only *after* unmounting the partition in Linux but *before*
rebooting into Windows NT/2000 or you *will* suffer! - You have been warned!
See man 8 ntfsfix for details.

mkntfs - Format a partition with the NTFS filesystem. See man 8 mkntfs for
command line options.

ntfslabel - Display/change the label of an NTFS partition. See man 8 ntfslabel
for details.

ntfsundelete - Recover deleted files from an NTFS volume.  See man 8
ntfsundelete for more details.