¿Qué no puedo hacer symlink / mklink en la carpeta de Windows (es decir, evitar el arranque)

1

Tengo un gran proyecto Tengo las secuencias de comandos abajo. El script volca a un archivo .txt una lista de todos los archivos de un tamaño determinado o superior. Luego muevo los archivos a otro disco duro (dependiendo de cómo configuré mi unidad de arranque) y luego borro el original y le hago un enlace simbólico.

Mi objetivo es mover todos los archivos de menos de 512 KB a un SSD y mantener el resto en el RAID.

Lo he probado en Archivos de programa y Archivos de programa (x86) y Usuarios perfectamente. Sin embargo, cuando hago la unidad de Windows obtendré un error de arranque BCD.

Sin embargo, decidí mover mi sistema operativo al RAID y mover todos los archivos al SSD (lo estaba haciendo de la otra manera antes) porque estaba pensando que tal vez el RAID no se carga antes de que los enlaces simbólicos puedan tener lugar.

Lo hice arrancar dejando solo las siguientes carpetas: ensamblaje, todos los archivos en windows \ system32 y syswow64, y boot.

Supongo que podría ser un tipo de prueba y error.

Aquí están los archivos por lotes si alguien está interesado

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

Utilizo un cd de win7rescuepe live con openofficeportable para crear el archivo combine.csv (solo copie y pegue list2.txt en la columna a, realice una búsqueda / reemplazo rápido en la ruta de destino y copie el contenido en la columna b, guárdelo como combinado .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 
)
Joshua Laferriere
fuente
2
Usted no se da cuenta de que no son físicos en la unidad de Windows, ¿verdad? Entonces, si movió WinSxS a una unidad diferente a System32, por ejemplo, está rompiendo los enlaces entre los archivos ... lo que puede o no ser importante, dependiendo de lo que esté sucediendo.
Mehrdad

Respuestas:

0

bueno, moví mi winsxs y las cosas funcionan bien. Creo que funcionan porque el camino sigue siendo el mismo, por lo que moverlo cuando hay cosas vinculadas a él debería estar bien. Estaba teniendo problemas antes, pero creo que fue porque los archivos no se pudieron copiar. Reinstalé y pude resolver todos los problemas pasados

Como una actualización Tampoco moví la carpeta inf

Estoy pensando en reescribir el script para omitir automáticamente estas carpetas. Podría realizar una prueba simple mediante el uso de puntos de montaje en lugar de vincular ALGUNOS archivos para ver qué se puede arrancar y qué no.

Joshua Laferriere
fuente
Los enlaces duros funcionan con entradas de directorio, no con rutas, por lo tanto, se rompen cuando se mueven a otro sistema de archivos.
Grawity
0

He reeditado mi disco tres veces ahora. Decidí tener el dispositivo de arranque SSD debido a las carpetas que tengo que dejar en paz (sys32 / syswow, inf, etc.) que no quiero en el RAID debido a las lecturas 4K. ¡Funciona muy bien! Es una muy buena manera de obtener un inicio más rápido de carga equilibrada de hd. También utilicé una herramienta gratuita de ramdisk para montar un ramdisk y asignarle mis archivos temporales para que mi ssd no pierda el tiempo escribiendo archivos temporales y tenga más rendimiento disponible para 4k lecturas / escrituras

Joshua Laferriere
fuente
Combina tus respuestas si es posible.
oKtosiTe
0

como el ícono que se mostrará. A diferencia de un enlace simbólico, no puede "cd ./shortcut-name" en DOS (en Unix / Linux puede "cd ./symlink-name" y funcionará como un subdirectorio real


fuente