Есть мнение ©, что это технически невозможно на большинстве современных USB Flash накопителей - контроллер Flash-накопителя не обязан хранить _логически_ соседние сектора в _физически_ соседних блоках. Более того, говорят, разработчики _специально_ придумывают хитрые алгоритмы _распределения_ количества перезаписей физических блоков для обеспечения более равномерного их износа :( Т.е. с очень большой вероятностью даже после форматирования носителя _логически_ соседние сектора не будут сохренены в соседних _физических_ блоках. Более того, очень вероятно, что даже если на "нулёвую" Flash удастся вдруг записать "одним непрерывным куском", то после нескольких перезаписей _других_ секторов, этот изначально "непрерывный кусок" уже не будет непрерывным - контроллер тихонько перенесет сектора, которые не перезаписывались длительное время, на другие _физические_ блоки, а на их место будет записывать "свежие" сектора с целью более равномерного износа _физических_ блоков. При этом, _логические_ адреса секторов _не изменятся_. И вообще, дефрагментация любых современных носителей по Flash-технологии изначально бессмысленна, так как не гарантирует размещение данных в последовательных _физических_ блоках, практически не ускоряет доступ к данным (скорость доступа практически не изменяется) и вызывает излишний износ носителя.
|