Hi, Richard W.M. Jones wrote: > [I'm not sure this is a real bug, but here we go ...] > [https://bugzilla.redhat.com/show_bug.cgi?id=895946] > > It was reported to me that when you resize a filesystem down to a > smaller size then back up to the original size, the number of blocks > (as reported by statvfs) is one less than expected. > > Attached is a small guestfish script that demonstrates this: > > $ /tmp/ntfsresize.sh > blocks: 25568 > Resizing filesystem to 10000 blocks ... > blocks: 9999 > Resizing filesystem to original (full) size ... > blocks: 25567 > > Here is the ntfsresize command that libguestfs runs: > https://github.com/libguestfs/libguestfs/blob/master/daemon/ntfs.c#L69 > > (Note we're using a rather old version of ntfs-3g, > ntfs-3g-2012.1.15-5.fc18.x86_64. I'm going to try a more recent > version shortly). > > Is this expected? I imagine that one block could "go missing" for the > superblock or whatever overhead. However it's rather unusual that the > size changes from the original size. >
This is just a matter of putting the correct definition to the size argument. In a partition with an ntfs file system, the last *sector* is reserved for a backup boot sector (only used for recovering the actual boot sector). The remaining sectors can be used by the file system, which groups them by *clusters*, generally leaving a few unused sectors (I avoid using "blocks" which is not an ntfs concept). In one of my file systems I have : Partition sectors 68934852 (0x41bdcc4), sector size 512 File system sectors 68934851 (0x41bdcc3) File system capacity 35294643712 bytes (35 GB) Hidden sectors 409593303 (0x1869e5d7) Clusters 8616856 (0x837b98), cluster size 4096 You see that file system sectors is one less than partition sectors, and the cluster grouping leads to 8616856*8 = 68934848 used sectors, which means there are 3 unused sectors. Now, the argument size in ntfsresize is the *partition size*, whereas df(1) or statvfs(3) will give you a number of 1K or 512b blocks really used by the file system. In the above example there is a difference of 4 sectors. I have changed the description of the size argument of ntfsresize to hopefully clarify things (not yet released). "Resize filesystem to fit in a partition whose size is SIZE[k|M|G] bytes by shifting its end and keeping its beginning unchanged. The filesystem size is set to be at least one sector smaller than the partition." Regards Jean-Pierre ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_jan _______________________________________________ ntfs-3g-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ntfs-3g-devel
