maxwolf2013-12-11 01:00:23
maxwolf, 2013-12-11 01:00:23

16GB is the maximum file size on NTFS and Windows 7?

The disc in my media player (Ellion HMP-1000) began to fail. I bought a new one to replace it, connected both of them to an external SATA/USB3 controller, and started copying the old one to the new one (it was under Windows7/Ultimate). Everything was copied, except files> 16GB in size. Here I would have resigned myself to the inevitable, having previously googled the topic, but I am tormented by a doubt: these same files larger than 16GB were downloaded by torrent to the very computer that refused to copy them later, and still lie quietly there, and read normally.
Those. I have W7/Ult x64, with a disk that NTFSInfo says:
Volume size : 715402 MB
Total sectors : 1465144001
Total clusters : 183143000
Free clusters : 30313390
Free space : 118411 MB (16% of drive)
Bytes per sector : 512
Bytes per cluster : 4096
Bytes per MFT record : 1024
and onto which a 17GB file was downloaded by utracker, which is still perfectly and completely readable. This file was copied over the network to a media player (works under Linux, but keeps movies on an NTFS partition), from where it also played perfectly. Being directly connected to the above computer via SATA/USB controller, the drive from the media player is visible as
Volume size : 1902761 MB
Total sectors : 3896854919
Total clusters : 487106864
Free clusters : 62272474
Free space : 243251 MB (12% of drive)
Bytes per sector : 512
Bytes per cluster : 4096
Bytes per MFT record : 1024
and 17GB file cannot be opened from it (writes "The requested operation could not be completed due to a file system limitation").
Actually, there are two questions:
1. If there is a 16GB limit in the file size in Win7/Ult, then how did the 17GB file download there?
2. if there is no limit, then why does the OS not allow this file to be read?

Answer the question

In order to leave comments, you need to log in

2 answer(s)
Yuri Yarosh, 2013-12-11

1. There is a limit - this is the NTFS journal addressing limitation. The file system makes it possible to write files larger than 16 GB with a small log if they are written as
Append only...
control the integrity of the file system due to the small journal. If everything is in order with the log, then the maximum file size will be different.
The maximum log size and pointer length depends on the volume size and free disk space. Although, in general, file addressing allows you to store 2 ^ 64 - 1 byte files.
You can easily copy files with any convenient script, for example, in python.
In general, it is desirable to leave 15% free space on the partition, simply because otherwise the log size will be truncated, and this is fraught with a decrease in the reliability of the file system.
Linux does not care about such restrictions, since in most cases it does not fragment files and it does not need to inflate the log in vain as Windows does, and naturally in Windows the theoretical throughput will be greater.

maxwolf, 2013-12-11

Thank you! Very educational. So, CreateFile(FILE_APPEND_DATA, OPEN_EXISTING) should open such a file and allow writing beyond 16GB? Okay, I'll check this. And what about reading? Why does it open (by the same program) on one FS, and not on the other?

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question