Что я не могу symlink / mklink в папке Windows (т.е. предотвратить загрузку)

1332
Joshua Laferriere

У меня огромный проект. Я получил сценарий вниз. Сценарий выводит в файл .txt список всех файлов определенного или более определенного размера. Затем я перемещаю файлы на другой жесткий диск (в зависимости от того, как я настроил свой загрузочный диск), а затем удаляю оригинал и делаю символическую ссылку на него.

Моя цель - переместить все файлы размером менее 512 КБ на твердотельный накопитель, а остальные оставить на RAID.

Я попробовал это на Program Files и Program Files (x86) и пользователей отлично. Однако, когда я делаю диск Windows, я получаю ошибку загрузки BCD.

Тем не менее, я решил переместить свою ОС на RAID и переместить все файлы на SSD (я делал это раньше), потому что я думал, что, возможно, RAID не загружен до того, как могут появиться символические ссылки.

Я получил его для загрузки, оставив в покое следующие папки: сборка, все файлы в windows \ system32 и syswow64, а также загрузку.

Я думаю, это может быть просто метод проб и ошибок.

Вот пакетные файлы, если кто-то заинтересован

filesize.bat

@Echo Off SetLocal EnableDelayedExpansion  set maxbytesize=1048576  for /f "tokens=*" %%A in ('dir /a-d /b /s') DO ( If %%~zA GTR %maxbytesize% ( echo %%A )  ) >> list2.txt 

Я использую win7rescuepe live cd с openofficeportable для него, чтобы создать объединить .csv (просто скопируйте и вставьте list2.txt в столбец a, выполните быстрый поиск / замену пути назначения и скопируйте содержимое в столбец b, сохранив как объединенное .csv).

transfer.bat

echo off  SetLocal EnableDelayedExpansion  Set n= Set m=  for /f "tokens=1,2* delims=," %%A in (combined.csv) DO ( Set /a n+=1 Set /a m+=1 echo %%A echo %%B echo F|xcopy %%A %%B /Y /f > nul IF EXIST %%B DEL %%A IF EXIST %%B MKLINK %%A %%B  ) 
1
Вы * понимаете *, что на вашем диске Windows есть жесткие ссылки, верно? Так что, если вы переместили WinSxS на диск, отличный от System32, например, он разрывает связи между файлами ... что может или не может быть важным, в зависимости от того, что происходит. Mehrdad 13 лет назад 2

3 ответа на вопрос

0
Joshua Laferriere

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

Как обновление. Я также не переместил папку inf

Я думаю переписать скрипт, чтобы автоматически пропустить эти папки. Я мог бы выполнить простой тест, используя точки монтирования вместо символических ссылок на НЕКОТОРЫЕ файлы, чтобы увидеть, что является загрузочным, а что нет.

Жесткие ссылки работают с записями каталога, а не с путями, поэтому они разрушаются при перемещении в другую файловую систему. grawity 13 лет назад 0
0
Joshua Laferriere

Я перемотал диск три раза. Я решил иметь загрузочное устройство SSD из-за папок, которые я должен оставить в покое (sys32 / syswow, inf и т. Д.), Которые я не хочу использовать на RAID из-за чтения 4K. Работает отлично! Это действительно хороший способ получить более быстрый запуск с балансировкой нагрузки HD. Я также использовал бесплатный инструмент ramdisk для монтирования ram-диска и назначения ему временных файлов, чтобы мой ssd не тратил время на запись временных файлов и имел большую пропускную способность для чтения / записи 4k.

Пожалуйста, объедините ваши ответы, если это возможно. oKtosiTe 13 лет назад 0
0

как значок, который будет отображаться. В отличие от символической ссылки, вы не можете «cd ./shortcut-name» в DOS (в Unix / Linux вы можете «cd ./symlink-name», и он будет работать как настоящий подкаталог