Можно ли переместить конкретный файл в начало диска?

Можно ли переместить конкретный файл в начало диска? Я хочу переместить файлы диска моей виртуальной машины (виртуальный диск) в начало диска, чтобы улучшить производительность доступа к диску. Я считаю, что это возможно, потому что некоторые программы дефрагментации используют эту технику для перемещения системных файлов в начало диска. Мне нужен практичный способ (скрипт или программа) сделать то же самое, но переместить файлы, которые я выбрал.

4 ответа

Решение

Я думаю, вы должны быть в состоянии сделать это с помощью функции сценариев MyDefrag. Я не пытался делать то, что ты хочешь, но AddGap а также MoveDownFill возможно, среди действий, которые вы должны предпринять в течение FileSelect/FileAction пункт.

Я думаю, что лучший способ - это создать логический диск в начале отдельного физического жесткого диска. Существуют программы, которые могут перемещать существующие разделы и создавать новые в начале диска (google для "альтернатив без разделов")

Как сказал Деннис, вы можете использовать сценарии MyDefrag для этой задачи. В любом случае, я думаю, что вам нужно переместить файл в конец диска для повышения производительности.

У некоторых жестких дисков первый цилиндр si находится во внутренней части, поэтому при каждом обороте сохраняется меньше данных, поэтому снижается скорость на нижних цилиндрах.

Большинство современных жестких дисков (все, которые имеют парковочные головки, так как я знаю) используют опозит, первый цилиндр находится на внешней части, поэтому гораздо больше данных хранится на оборот, поэтому более высокая скорость на внешних цилиндрах.

Это основано на концепции, что HDD вращается с постоянной скоростью, среди не всех HDD работает так.

У меня есть очень дорогой жесткий диск, который может перемещать каждую головку в разные цилиндры одновременно, поэтому я могу читать одновременно из разных цилиндров, и он использует внутренний буфер не 8 МБ или 16 МБ, он использует полный буфер GigaByte. Диск настолько быстр, что контроллер Sata III ограничивает постоянную скорость передачи... физический диск может выполнять чтение 10 ГБ / с (с поверхности в буфер) и 6 ГБ / с (от буфера до поверхности).

Таким образом, вопрос о том, куда помещать файлы, прост: проведите тест скорости зоны (чтение и запись), чтобы вы знали, куда лучше помещать файлы.

Остерегайтесь новых жестких дисков, которые используют другую технику для "подделки" такой разной скорости в зависимости от цилиндра... они меняют цилиндры и головки, поэтому, если вы попросите написать целый цилиндр, он будет использовать только одну головку и много цилиндров Таким образом, скорость является более или менее одинаковой для всех цилиндров, поэтому они "подделывают" большинство инструментов для измерения скорости (скорость кажется постоянной на всем протяжении диска), что является реальным в том, что диск хранит то, что является внешним предлагается выполнить в одном цилиндре, в многократных цилиндрах, чтобы скорость была (для каждого внешнего запрашиваемого цилиндра): быстрая, средняя, ​​медленная

Этот трюк очень хорош для стабильной производительности... если скопировать на него большое количество GiB, ETA (расчетное время прибытия) очень хорошо рассчитывается, так как скорость выглядит следующим образом: быстрая, средняя, ​​медленная, быстрая, средняя, ​​медленная... таким образом, носители постоянны... но они действительно такие же быстрые, как и обычные... реальное время до конца очень похоже, разница в том, что вы можете лучше рассчитать необходимое время для завершения.

Так что, как я настаиваю, сделайте хорошие тесты скорости, а затем переместите файлы туда, куда вы хотите.

И если вы не планируете использовать HDD в Windows XP или ниже, ни на телевизорах, ни в SetTopBoxes, и т. Д.... другими словами, где раздел GPT не понимается... гораздо лучше создать схему GPT из 20 или более Первичных разделов, поэтому вы помещаете только один файл на раздел (большие файлы и, конечно, файлы, которые не изменятся, например, фильмы), и раздел будет заполнен до 99,99%, поэтому места не останется... для виртуальной машины Жесткие диски, лучше всего использовать фиксированный размер (не динамический), и поскольку файл не будет расти, используйте тот же подход, что и для фильмов и т. Д. Я склонен использовать 20 ГБ на системный раздел Windows Virtual HDD.

Как это сделать (сделать 99,99%) непросто, но легко выполнить шаги... создайте очень маленький NTFS-раздел (1/100 необходимого размера) в схеме GPT (это составит $ Файл MFT действительно очень маленький), дефрагментируйте его, пока он почти пуст, так что $MFT и т. Д. Перейдут к началу раздела, увеличьте раздел вдвое больше, чем потребуется (это не изменит размер файла $MFT) скопируйте туда такой файл (только один файл), дефрагментируйте его, сократите до максимума, чтобы 99,99% не были свободными, переместите его в ту часть диска, которую вы хотите.

Гораздо лучше сделать это по порядку, с обеих сторон по центру, один за другим.

Да, это слишком много работы... но я не знаю ни одного инструмента, который позволяет Windows не перемещать файл.

Да, это правда, я видел Windows, фрагментирующую файл, когда такой файл даже не принимается... другими словами, поместите, переместите, увеличьте один файл, и Windows может создать любой другой файл в том же разделе, чтобы получить фрагментацию... я также попытался пометить на низком уровне (с правами учетной записи System, то есть взлом) не фрагментированный файл как неподвижный, и я увидел, что такой файл фрагментируется при копировании с другого диска в этот раздел действительно hde-файл... да Sound Riciculus, неподвижный файл, который не является фрагментированным, фрагментируется, потому что в тот же раздел записан другой файл... поэтому никогда не размещайте файл на свободном месте и надеюсь, что он никогда не будет фрагментирован или перемещен на другой часть раздела...

Единственный трюк, который я видел, который работает для того, чтобы заставить файл не перемещаться / фрагментироваться, это иметь его, и только этот, на своем собственном разделе... GPT допускает много разделов, но не так много (предел, я думаю, 128),

Да, большая проблема в том, как я могу получить доступ к таким разделам, если только около 20 букв свободно в использовании... легко, не используя буквы, используя \??\ access.

Вот как, создать выстрел в start \\?\Volume{...}\, {...} часть можно получить, запустив mountvol.exe без параметров.

Это также очень хороший прием для доступа к разделам на USB-накопителе или карте памяти... окна позволяют монтировать (назначать букву диска) только первый раздел в таблице разделов... но вы можете получить доступ к любому из них с помощью этого приема, Je Je, по крайней мере, это работает, где я тестировал, у меня есть сообщения от друзей, говорящих, что они не могут; очевидно, я создаю такие схемы разделов, как MBR под Linux с linux fdisk и переписываю 'master', то есть создаю новую схему, я никогда не использую ту, которая встречается на стиках, они кажутся хорошими MBR, я предпочитаю перезаписать ее Средство Linux fdisk, затем создайте несколько разделов, отформатируйте их и т. Д.... с помощью fdisk + mkfs... или с помощью GParted, никогда с Windows (это не позволит вам использовать USB-накопители / карты памяти) и не на всех USB-накопителях можно изменить съемный бит.

Таким образом, используйте хитрость GPT с очень маленькой NTFS, увеличьте размер до двойного размера файла, поместите файл в максимально возможный размер, переместите раздел куда хотите (между этапами дефрагментации, до этапа сжатия, после этого в будущем дефрагментация не понадобится). Это прекрасно работает с файлами, размер которых не меняется, независимо от того, читаются они или записываются (для VirtualBOX не динамический файл.VDI идеален).

Помните, только один файл на NTFS-раздел - это большая хитрость, создание NTFS как можно меньшего размера - это другая хитрость, которая делает $MFT очень маленьким и не теряет / тратит пространство).

Плохая часть... время, чтобы поместить каждый файл, и доступ по.lnk (ярлыки), который открывает проводник start \\?\Volume{...}\ вместо того, чтобы назначить букву.

Не говоря уже о том, что в таких NTFS лучше избавиться от "$Recycle.Bin" и "System Volume Information", выполняя одно за другим: взять его владельцем (takeown /F ... /A /R /D [Y|S|... depends on language] Команда, см. параметры команды в Google или вызвав его с /?), затем удалите его (RD /S /Q ... команда), затем создайте файл с Блокнотом с таким именем (таким образом, размер равен нулю, и поэтому они помещаются в $MFT, поэтому вообще не занимают места); таким образом, Windows не сможет заново создать такие папки, и если вы не хотите видеть два файла нулевого размера, отметьте их как +R +H +S, используя attrib +R +S +H ... команда, поэтому система будет думать, что они являются скрытыми файлами, доступными только для чтения, и не будут отображаться в проводнике (если, конечно, флажок скрыть системные файлы установлен); Не забывайте, что такие команды должны быть запущены в консоли администратора.

Надеюсь, теперь вы можете, как и я, иметь файлы на той части диска, которую мы хотим, а не там, где окна хотят или будут хотеть в будущем, и гарантировать, что они никогда не будут перемещены или фрагментированы никогда больше.

Другие вопросы по тегам