Software-update: ntfsprogs 1.13.1

In de loop van de tijd zijn er verschillende bestandssystemen ontwikkeld, elk gericht op een specifieke taak of besturingssysteem. Zo maakt de Windows NT-, 2000-, XP-, 2003-, Vista-serie gebruik van NTFS als bestandssysteem, Linux echter maakt standaard gebruik van andere varianten zoals ext2, ext3, ReiserFS of NILFS. Veel van besturingssystemen ondersteunen alleen het bestandssysteem waar voor ze ontwikkeld zijn. Dit is lastig als je bijvoorbeeld gebruik maakt van een dual-boot systeem met Windows en Linux. Daarom is er al in 1995 een NTFS-driver voor Linux ontwikkeld door Martin von Löwis. Hierdoor werd het mogelijk om bestanden op een harde schijf met een NTFS-indeling te benaderen. Deze is door de jaren heen door verschillende personen verbeterd en is in veel distributies van Linux terug te vinden. Maar met een driver voor NTFS ben je er natuurlijk nog niet helemaal. Het pakket ntfsprogs is, zoals de naam al doet vermoeden, een verzameling van programma's waarmee men een NTFS-schijf kan bewerken. Zo kan je hiermee partities, bestanden en directories aanmaken met een NTFS-indeling, de grootte van een partitie veranderen en een volledige backup maken. Versie 1.13.1 is sinds kort beschikbaar en is voorzien van de volgende veranderingen:

Version 1.13.1 - Various fixes.
  • Fix bug in ntfs_attr_pwrite() when we sometimes lose current run in the runlist. (Yura)
  • Fix build with --disable-gnome-vfs --enable-fuse-module. (Gentoo)
  • ntfscluster: identify files even if their clusters aren't set in $Bitmap (useful to find potentially corrupted files). (Szaka)
  • mkntfs: set the physical drive and the extended boot signature to 0x80 in the Extended BPB which are needed to boot from disk. (Szaka)
  • ntfsinfo: fix two freed memory usages when dumping $SDS and index allocation entries. (Szaka)
  • libntfs: add ntfs_attr_readall() which reads the entire data from an ntfs attribute. (Szaka)
  • libntfs: add ntfs_index_root_get() which reads the index root of an attribute. (Szaka)
  • ntfsclone: the --metadata option will wipe the timestamps in the index allocation attributes as well. This further decreases the compressed metadata image size by 10-25% and more importantly it eliminates non-interesting ntfscmp differences. (Szaka)
  • Change utils_parse_size() to use a base of 0 instead of 10 when calling strtoll(). This automagically allows specification of numbers in hex (and octal if anyone is crazy enough to use that) in addition to decimal numbers on the command line options to most if not all utilities. (Anton)
  • Fix comparison of $MFT and $MFTMirr to not bail out when there are unused, invalid mft records which are the same in both $MFT and $MFTMirr. Ported from kernel driver 2.1.27 release and aplied both to libntfs/volume.c mount related code and to ntfsprogs/ntfsfix.c's fixup code. (Anton)
  • Change ntfsinfo to dump the key data as well as the keys themselves when dumping the $ObjId/$O index. (Anton)
  • ntfsinfo: dump either a minimal (default) or the entire attribute header (--verbose) for all attribute types. Dump USA, USN and LSN for index records. Removed a lot of redundant code, made some formatting and stylistic corrections. (Szaka)
  • libntfs: add ntfs_str2ucs(), ntfs_freeucs(), ntfs_mft_usn_dec() and ntfs_inode_badclus_bad() functions, and convert all copy-pastes to use them. (Szaka)
  • Fix all incorrect getopt_long() return value usages. (Szaka)
  • Fix VCN size in the index.c. (Anton, Yura)
  • ntfscmp: support bad cluster list, compare full attribute headers for non-resident attributes, added manual, build and install by default. (Szaka)
  • set PKG_CONFIG_PATH during build time so we should find .pc files in the most typical pkgconfig directories. (Szaka)
  • Improve ntfsinfo to dump standard info completely and filename attribute completely and index entry (filename) completely and all in correct order. Essential for hunting bugs in directory operations code... (Anton)
  • fix for Cygwin. (Yuval)
  • Fix bug with renaming directories with names in DOS and WIN32 namespaces. (Yura)
  • ntfsclone: fix 64 bit destination size calculation on Mac OS X (Mike Bombich, Anton, Szaka)
Version 1.13.0 - Lots and lots and lots of fixes and enhancements.
  • Temporarily disable use of the legal ansi character checking in libntfs/unistr.c::ntfs_names_collate() pending a proper fix at some point. (Anton)
  • Rewrite gcc version detection logic using the -dumpversion option. Tested on various OS and architectures and gcc versions from 2.95 to 4.0.2 with some weird ones like 3.5-blah thrown in, too. (Anton)
  • Fix bogus le16_to_cpu() which should be le32_to_cpu() when accessing the attribute list entry attribute type in some places in libntfs/attrib.c. (Anton)
  • Fix silly bug introduced in 1.12.0 which breaks ntfsfix (and others possibly) when calling ntfs_attr_lookup() with AT_UNNAMED name and no ntfs inode in the search context. (Anton)
  • Fix compilation on OSX in ntfsresize.c, ntfsclone.c, and ntfscmp.c where stderr = stdout is not legal (but happens to work on Linux) to do portable low-level file descriptor mangling. (Anton)
  • Add test/runlist-data to EXTRA_DIST so it gets included in the distribution otherwise make test fails on released sources. Solution is not perfect as it also adds the test/runlist-data/CVS directory but it will do at least for me. (Anton)
  • Fix compilation and warnings in ntfsdecrypt.c on OSX/gcc4.0.1. The compilation failure was because we use strnlen() which is gnu specific and not present on my current version of OSX so ntfsdecrypt now provides own version if it is not present on system. (Anton)
  • Fix endianness bug (le16 instead of le32 when accessing mft record bytes_in_use) in volume.c::ntfs_volume_write_flags() and ntfsfix.c::OLD_ntfs_volume_set_flags(). (Anton)
  • Fix endianness bugs in ntfsinfo. (Anton)
  • Fix endianness bug in libntfs/index.c. (Anton)
  • ntfsresize: check and report bad sectors before cluster allocation check because chkdsk doesn't fix $Bitmap with bad sectors. (Szaka)
  • $EA can be resident and non-resident. Fix libntfs/attrib.c:: ntfs_attr_can_be_resident() apropriately. (Anton)
  • mkntfs: optionally create NTFS version 3.0 (W2K) or 3.1 (XP, W2K3, Vista). (Implementation by Erik Sornes, adaption by Szaka)
  • ntfsmount: Add 'streams_interface=' option to select named data streams access interface. Currently supported interfaces are 'none', 'windows' and 'xattr'. (Yura)
  • ntfscat can display named attributes, streams too. (Szaka)
  • Remove Dputs(), Dprintf(), Dperror(), ntfs_debug(), ntfs_error() and Sprintf(). Forward callers to ntfs_log_*(). (Yuval)
  • Add some debugging to ntfsdecrypt.c to allow printing of the private key after it is decrypted (this is ifdeffed out by default). (Anton)
  • fflush() ntfs_log_ streams. (Christophe)
  • Working with regular files no longer needs the --force option, except for mkntfs. (Szaka)
  • Fix ntfs_non_resident_attr_expand() bug, that occurred if we enlarge sparse or compressed file, but do not need to allocate new clusters to perform this. (Yura)
  • Fix ntfsdecrypt endianness bugs thus it now works on OSX running on a dual G5! (Anton)
  • Match function parameters names between .h and .c files. (Yuval)
  • Fix comment formats. (Yuval)
  • ntfsinfo and ntfsls follow the convention how other utilities read the device argument: no -d or --device option is needed. (Szaka)
  • ntfsinfo: dump index attribute types and keys. (Szaka)
  • mkntfs: don't fill the last $MFT cluster with empty MFT records if the cluster size <= 16 kB. This is needed to conform to Windows' format behavior. (Szaka)
  • Add @flags field to struct ntfs_inode. Remove NIno{Sparse,Compressed, Encrypted}, update all users to use @(ntfs_inode)->flags. (Yura)
  • Make @(ntfs_inode)->data_size and @(ntfs_inode)->allocated_size to always contain valid value. (Yura)
  • Always set correct file size and attributes in ntfs_link(). (Yura)
  • Add info about Interix special files (symbolic links, character and block devices, FIFOs and sockets) to layout.h. Teach ntfsmount to handle them. (Yura)
  • Fix allocated data size for resident attributes. (Yura)
  • ntfsclone: check available free space on the destination before starting to clone, image or restore. (Szaka)
  • Change @type parameter for ntfs_create() to be dev_t rather than internal NTFS_DT_* constants. (Yura)
  • New APIs (dir.[ch]):
    ntfs_create_device() for Interix block and character devices creation.
    ntfs_crate_symlink() for Interix symbolic links creation. (Yura)
  • Teach ntfs_create() to create Interix FIFOs and sockets. (Yura)
  • Fix the -u option in ntfsundelete. Instead of a confusing optional parameter, there's a new option -i with a required parameter. (Rich)
  • Make ntfsinfo report the MFT record flags properly, this includes the less encountered flags, and reporting the in_use flag instead of inverting it to unused. (Yuval)
  • mkntfs: fix segfault when volume had more than 2^31 clusters. (Szaka)
  • Automatically update access and change time in ntfs_attr_p{read,write} and ntfs_attr_truncate. (Yura)
  • Add support of MS_NOATIME flag to ntfs_mount(). (Yura)
  • ntfsclone: --metadata also wipes out the timestamps in the $I30 and in the /$Extend/$Quota:$Q index root attributes. (Szaka)
  • ntfsmount: Add FreeBSD support. (Yura)
  • ntfsmount: Fix bug with moving non-empty directories. (Yura)
  • ntfsinfo: dump $Secure:$SDS in verbose mode. (Szaka)
  • ntfsinfo: fix off-by-one in ACL dumping, one ACE was missed. (Szaka)
  • ntfsmount: Rename "succeed_chmod" -> "silent". Do not return error on chown too. (Yura)
  • Fix stupid bug in libntfs/bitmap.c::ntfs_bitmap_set_bits_in_run() which caused bits to not be cleared or set if the first bit in the run was not a multiple of eight. (Anton)
  • Change volume mounting (actually device opening) to happen with O_EXCL bit set, but only for r/w opening so at least on Linux no one can change the device block size under our feet. (Anton)
  • Change volume mounting and mkntfs to set the device block size to the sector size using BLKBSZSET ioctl (Linux only). This should be optimal for performance and should fixes the bug of not being able to create the backup boot sector if the number of sectors on the device is odd, the sector size is 512 bytes, and the kernel is 2.4. (Anton)
  • Enforce cluster size, mft record size, and index record size to be at least equal to the sector size and verify they are still valid and in particular display a warning message if the volume will not be mountable by the kernel driver (it requires mft record size and index record size to be below or equal to the system page size which we determine using sysconf()). (Anton)
  • Fix tons of big-endian bugs in mkntfs. (Anton)
  • ntfsresize, ntfsclone: always use MS_NOATIME. (Szaka)
  • Implement simple syslog logging handler (need more work), teach ntfsmount to use it. (Yura)
  • Fix a lot of bugs in attribute resizing code. (Yura)
  • Deal with missing syslog function by making code conditional on presence of syslog.h header file (DOS/djgpp). (Christophe)
  • Avoid clash with existing constants (OSX). (Christophe)
  • Cope with attribute list attribute having invalid flags. Windows copes with this and even chkdsk does not detect or fix this so we have to cope with it, too. Thanks to a Pawel for reporting the problem. (Anton)
  • Fix compilation on FreeBSD. (Christophe)
Versienummer 1.13.1
Besturingssystemen Linux
Website Linux-NTFS-Project
Licentietype GPL

Door Japke Rosink


22-06-2006 • 14:22

14 Linkedin

Bron: Linux-NTFS-Project


Reacties (14)

Wijzig sortering
Inderdaad, niet gebruiken die rommel.
Je kunt veel beter Captive gebruiken:

Die gebruikt namelijk de NTFS drivers van windows.
Je wil alleen niet weten hoe traag dat is. Op m'n MCE PC met geen lullige specs kwam ik niet ver boven de 1MB/s uit. Als je tussen Windows en Linux wilt delen kun je beter met EXT2/3 formatteren en in Windows een driver installeren:
Dat is geen optie.. Je wilt vanuit Linux ook je windows ntfs kunnen benaderen.. En dat kun je met jouw tool niet..
De oplossing is dus om read-only NTFS te lezen. Daar kan "deze rommel" waar al 11 jaar hard werk is ingestoken, perfect mee overweg.

Je gebruikt dan een VFAT of Ext3-partitie om windows-toegankelijke bestanden te schrijven.

Zo doe ik het toch. Een partitie NTFS met belangrijke system-data (Windows-folder) en al de rest: Documents, Program Files, etc. op een FAT32-partitie.

OffTopic: weet er overigens iemand of er een ReiserFS IFS-implementatie bestaat? (OpenSource)
FAT32 voor ´documenten´ zuigt nogal.
Even een DVDtje downloaden gaat niet eens, omdat de maixmale bestandsgrote op een FAT32 partitie 4GB is.

Dan kun je inderdaat beter ext2 of 3 gebruiken in linux. Windows kan die ook gewoon lezen en schrijven met een file system driver.
Betrouwbaar 1MB/s of met 50MB/s je ntfs indeling kapot maken.

Lastig kiezen hoor :Y)
Van de changelog wordt je niet vrolijk als het om lees & schrijf access naar een filesysteem gaat.

Hopelijk zijn het allemaal obscure bugs die gefixed zijn en niets echt kritieks.
het is dan ook nog al een probleem om een ongedocumenteerd systeem als ntfs goed in beeld te krijgen en er vervolgens ook nog eens een goede implementatie van te geven.
bovendien zit je met het probleem dat reverse-engenearing in veel landen of verboden of aan scherpe banden is gelegt.

ik heb daarom ook nooit gesnapt waarom men zo graag ntfs on linux wilde proppen terweil heft naar het scheint veel gemakkelijker is om bijv Reiser of EXT naar IFS--drivers om te zetten.
Voor het kunnen restaureren/backuppen van Windows installaties..
Ik vind het verhaaltje wat rooskleurig. Als je op internet gaat zoeken naar die NTFS drivers voor linux, kom je er al snel achter dat ze eigenlijk alleen goed werken voor lezen. Het wordt door diverse mensen met klem afgeraden om de (experimentele) read/write variant te gebruiken, omdat je daarmee gemakkelijk je NTFS partitie om zeep kan helpen. Het is maar dat je het weet...
Dat gaat over de in-kernel ondersteuning van NTFS. ntfsprogs werkt buiten de kernel (via FUSE), en heeft veel betere schrijfondersteuning. Het is zelfs zo, dat ntfsprogs rigoreuze checks doet om er zeker van te zijn dat er niets corrupt gaat. Bij onzekerheid wordt de write geweigerd.
De combinatie die ik gebruik (en vrij goed werkt) is de ntfs-kernel module om NTFS te lezen en explore2fs onder windows om mijn linux bestanden te lezen... Dit omdat het het enige programma (wat ik kan vinden) is dat ext3 (niet te verwarren met ext2) kan lezen...
et2 en ext3 zijn hetzelfde bestandssysteem, het enie verschil is dat ext3 is uitgerust met journaling, voor de rest is het volledig backwards compatible. Elke ext2 driver kan dus een ext3 partitie inlezen.

Het eerder genoemde is een degelijke driver voor onder windows waarbij ext2/3 partities gewoon te benaderen zijn als gewone schijf.
Reden waarom ik explore2fs noem is dat fs-driver nl geen LVM kan lezen, explore2fs wel!!

Kies score Let op: Beoordeel reacties objectief. De kwaliteit van de argumentatie is leidend voor de beoordeling van een reactie, niet of een mening overeenkomt met die van jou.

Een uitgebreider overzicht van de werking van het moderatiesysteem vind je in de Moderatie FAQ

Rapporteer misbruik van moderaties in Frontpagemoderatie.

Op dit item kan niet meer gereageerd worden.

Nintendo Switch (OLED model) Apple iPhone SE (2022) LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S22 Garmin fēnix 7 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack,, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2022 Hosting door True

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.


Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details


    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details