Office 2013 Professional Plus x64
Descargar
Windows 8AndroidGuías Linux 32-bit
Noticias Oficina Ubuntu iOS Descargas
ActivadorMac OSWindows 7Software
Avatar del autor
  • "winsxs": la carpeta que crece indefinidamente en Windows 7
    Estoy sufriendo en mis carnes -es decir, en el disco duro de mi portátil- un problema de espacio. Por costumbre, separo siempre el disco en dos o más particiones: la primera para el sistema operativo y la segunda para datos.
    por @Ghermain
     (1)
    #Tutoriales Windows
    alt
    Estoy sufriendo en mis carnes -es decir, en el disco duro de mi portátil- un problema de espacio. Por costumbre, separo siempre el disco en dos o más particiones: la primera para el sistema operativo y la segunda para datos.

    Hasta ahora, siempre había tenido problemas de espacio en la partición dedicada a los datos: uno se pone a descargar cosas y cosas, y cuando te das cuenta, el sistema te lanza una burbujita diciendo que queda poco espacio en disco.

    La solución no iba más allá de poner un poco de voluntad, algo de tiempo y lanzarse a hacer copias en DVD como loco...

    Pero esta vez la cosa no es tan sencilla... Esta vez es un problema en la partición del sistema.

    El portátil tiene pocos programas instalados (por ejemplo, no tengo MS Office, ni Photoshop ni nada parecido...) Cuando he instalado iTunes, por ejemplo, he puenteado la instalación por defecto para conseguir instalar lo mínimo posible... Así que cuando he visto que empezaba a quedarme sin espacio, he pensado que con una pasada de CCleaner solucionaría el problema.

    Después de limpiar el disco de todo lo limpiable, el problema continua.

    He ejecutado un programa para identificar dónde se concentra el problema y me he dado de bruces con la carpeta "c:\windows\winsxs". Con una partición de sistema de 12.6GB, la carpeta "winsxs" ocupa, ella solita, "4.5GB". Esto es un 35% del total del espacio de la partición... Por comparar, la carpeta "Program Files" sólo ocupa 0.936GB, es decir, un 7%.

    La cosa está en que, cuando instalé Windows 7, no me quedaban 1.2GB libres, como me muestra el Explorador de Windows ahora, sino unos 3GB o 4GB... Si no he instalado programas, ¿dónde han ido a parar esos gigas fantasmas? La respuesta, rápida y sencillamente: a ese directorio "winsxs".

    La siguiente pregunta que se hace uno entonces es ¿qué hay en esa carpeta?. Y a continuación ¿cómo puedo eliminar o reducir su tamaño?

    Aquí es donde empieza lo surrealista. Buscando en internet, parece que no soy el único con éste problema. En este foro de Microsoft Answers puede leerse dónde está, más o menos el problema. La lectura del laargo hilo, nos servirá para hacernos una idea de la causa del problema... Hacia el final del hilo, Debbie - Microsoft Answers Support Engineer, nos anima a leer este otro hilo en el foro de Technet: How do I delete the WINSXS folder?, que respondería a nuestra segunda pregunta (de hecho, también responde a la primera).

    Así que voy a haceros un resumen de lo que he entendido.
    1. En primer lugar, tanto personal de soporte como otros profesionales o usuarios avanzados, explican con gran detalle qué es la carpeta "winsxs", para qué sirve y porqué crece descontrolada e indefinidamente.
    2. En segundo lugar, queda claro que la causa del problema, en realidad, es que la carpeta no sólo aumenta de tamaño por un error de diseño de los programadores de Windows, sino que además, el Explorador de Windows no interpreta correctamente el espacio usado (y cree que se usa más espacio en realidad).
    3. No hay solución al problema.

    La carpeta "winsxs" es una solución chapucera a lo que se conocía en Windows como el "dll hell": es decir, los problemas de estabilidad de Windows asociados a que diferentes programas utilizan diferentes versiones de las "dll" de sistema.

    Para evitar este problema, la solución tomada por los desarrolladores de Windows es guardar copias de todas las versiones de las dll's usadas por todos los programas y así, que cada programa utilice la que necesite. Al fin y al cabo, el espacio del almacenamiento -es decir, de los discos duros- es cada día más barato. (Lo que viene a ser lo mismo: si el disco se llena, te compras otro y ya está). Inicialmente, en la carpeta "winsxs" se copia todo lo que contiene el DVD de instalación. La idea es que, en caso de que algún programa cambie una parte del sistema -de forma malintencionada como un virus o bienintencionada como un programa útil-, el sistema puede restaurarse y volver a ser estable.

    Dicho así, la idea no parece mala. El problema es que la música de prueba, las imágenes, etc..., se consideran "ficheros del sistema", por lo que aunque los borres, se almacena una copia en "winsxs".

    A partir de ahí, la cosa va de mal en peor: si instalas un programa, el sistema hace copias de los ficheros modificados para evitar problemas de compatibilidad (y que otros programas dejen de funcionar). Pero el caso es que, aunque desinstales el programa, esas copias se quedan en "winsxs".

    Si piensas que tú no sueles instalar nada, piénsatelo dos veces; ¿acaso no actualizas tus programas? ¿O el sistema operativo, a través de actualizaciones automáticas? En estos casos también se hace copia. Y de nuevo, todo va a parar a "winsxs".

    En mi caso, he tenido que actulizar iTunes un par de veces. VLC otro par. Más las actualizaciones del sistema... Al final, supongo que entre una cosa y otra, eso da cuenta de esos 2Gb de espacio que "han desaparecido" de mi disco.

    De hecho, los programadores de Microsoft no son tan estúpidos; para evitar duplicar una y otra vez los mismos ficheros, recurrieron a una cosa que se llama "hard links". Sin entrar en detalles, un enlace duro no deja de ser un enlace, y no una copia del fichero. A la práctica, significa que si tengo un archivo gordote de 10Gb y creo un enlace duro, "parece" como si tuviera dos ficheros gordotes, pero en realidad tengo uno gordote y uno chiquitín que, como dice la Wikipedia:
    es simplemente una etiqueta almacenada en una estructura de directorio que referencia el sistema operativo al sistema de archivos.
    Sin embargo, parece que al final los programadores de Microsoft, quizás no sean estúpidos, pero sí que son un pelín patosos; resulta que el Explorador de Windows no es capaz de ver la diferencia entre el archivo gordote y el enlace (chiquitín). Así que, al final del día, cuando un usuario como yo mira cúanto espacio ocupado tiene en el disco, el Explorador de Windows le dice que tiene dos archivos gordotes de 10GB cada uno, así que no le queda apenas espacio.

    Es mentira, claro... pero como el espacio en disco es barato, pues no pasa nada...

    El caso es que no todo el mundo puede comprarse discos más gordos porque los programadores de Microsoft la hayan cagado: gente con discos SSD (ver por ejemplo el apartado de Limitaciones), o lo que es peor, empresas con almacenamiento de tipo SAN (ver las Limitaciones, que de nuevo apuntan a su coste). Y aunque no esté documentado en la Wikipedia, hay un tercer tipo de gente con problemas para actualizar: aquellos a los que no le sale de los c@$%nes comprase un disco nuevo porque el sistema operativo tenga un problema provocado por los propios desarrolladores del sistema!.

    Aquí es donde pasamos a la segunda pregunta: ¿puede borrarse o reducirse la carpeta "winsxs"?

    En este caso, la respuesta es mucho más escueta y fácil de entender: NO.

    Entonces, ¿qué hago cuando el disco se llene?

    Pues te j@#$... Esto es, tienes que:
    1. Comprar un disco nuevo más grande (cosa que no evitará el problema en un futuro, sino que únicamente retrasará su aparición)
    2. Reinstalas de nuevo (cosa que tendrás que hacer sí o sí aunque te hayas comprado un disco nuevo)
    El caso es que vas a perder tiempo y dinero reinstalando (o pagando a otros para que lo hagan) porque los programadores de Microsoft hicieron un apaño (en Linux los "enlaces duros" no consumen más espacio del que realmente ocupan)

    Si esperas a que Microsoft solucione el problema en breve, don't hold your breath, como dicen los americanos: parece que ésto viene pasando desde Windows ME (¿alguien se acuerda de Windows ME?)

    El caso es que no fue hasta Microsoft Vista (otro gran hit de Microsoft, en la línea de Windows ME) que el sistema no empezó a utilizar esta carpeta de forma tan generalizada (y por tanto, a dar problemas a los usuarios).

    De hecho, es probable que en Microsoft no lo consideren siquiera un problema.

    En Windows Vista, con el Service Pack 1, introdujeron una herramienta llamada "compcln.exe" que intentaba mantener bajo control el crecimiento de la carpeta "winsxs". Sin embargo, al lanzar Windows 7 esta herramienta no forma parte del sistema...

    Se pensó, con el lanzamiento del Service Pack para Windows 7 previsto para la primera mitad del 2011 los usuarios podíamos obtener una herramienta similar a la disponible en Windows Vista.

    Una solución parcial (gracias a Scott)

    A través del comentario de Scott he conocido la existencia de la herramienta DISM. Utilizando los parámetros especificados, la herramienta elimina las copias de seguridad de los archivos que el Service Pack 1 de Windows 7 ha sustituido.

    alt
    Propiedades de la carpeta antes de ejecutar DISM
    alt
    Propiedades de la carpeta después de ejecutar DISM

    He realizado la prueba en dos equipos y la reducción del espacio ocupado en la carpetawinsxs es significativa. En el primer caso, un equipo con Windows 7 64 bits, la reducción fue de un 36%. En otro equipo, con Windows 7 32 bits (y muchos menos programas instalados), la reducción fue del 28%, pasando de 6.18GB a 4.44GB.

    En cualquier caso, como puede apreciarse, una buena manera de recuperar unos cuantos gigas desaprovechados del disco (aproximadamente, una tercera parte del tamaño de la carpeta winsxs).

    Nota: Nunca ejecutes nada en tu ordenador sin comprobar antes qué hace. 

    Lo primero que tienes que saber es que el comando DISM requiere permisos de administrador.

    Pulsa en el botón de inicio y busca entre los programas instalados 'cmd' o ves a "Todos los programas", "Accesorios". Haz click con el botón derecho y selecciona "Ejecutar como Administrador".

    En la ventana que se abre, puedes comprobar qué hace el comando DSIM añadiendo el parámetro sobre el que quieres información y añadiendo "/?" al final:
    alt

    Como ves, DISM lo que hace es eliminar las copias de seguridad del Service Pack 1, por lo que no podrás desinstalarlo. Si estás convencido de que no lo vas a tener que eliminar del sistema, el comando que sugiere Scott es:


    DISM /online /Cleanup-Image /SpSuperseded

    El programa hace su magia durante un rato sin mostrar ninguna evidencia en pantalla. Después aparece una barra de progreso que rápidamente alcanza el 100%... Y después, sigue sin hacer nada -aparentemente- durante casi diez minutos. La única evidencia de que el equipo está trabajando es que la luz del disco parpadea como loca.
    alt

    Una vez finalizado el proceso, el tamaño de tu carpeta winsxs habrá disminuido. No es una solución definitiva -que no hay ninguna, por lo visto- pero permite recuperar algo de espacio en el disco y postponer la inevitable reinstalación para resetear la carpeta mutante.
     
     
9 reacciones Escribir
Se ha discutido largo y tendido en muchos foros sobre el porqué de esta carpeta, y si se podía borrar o se podía cambiar de ubicación. Trataré de despejar las dudas sobre la existencia e importancia de ésta a partir de Windows Vista.
Modularizar el sistema operativo a partir de Windows Vista era uno de los objetivos del equipo de desarrollo de Microsoft. El directorio de Windows sxs representa el servicio de estado e instalación de los componentes del sistema. Estos componentes están formados por uno o más archivos binarios, un fichero de catálogo y un fichero XML que describe todo sobre cómo debe ser instalados los ficheros, desde las claves de registro asociadas hasta qué permisos de seguridad que deben tener los ficheros. Todos los componentes del sistema operativo se encuentran el directorio winsxs, por lo que la cantidad de ficheros y subcarpetas dentro de esta carpeta es muy elevada.
Realmente casi todos los ficheros contenidos en la carpeta son realmente hard links a los ficheros físicos que están a lo largo del disco de sistema, por lo que realmente no están en la carpeta winsxs, por ejemplo un fichero llamado advapi32.dll (tamaño mayor de 700K) que aparece en winsxs es un hard link al fichero físico que se encuentra en Windowssystem32.
Es importante que conozcan esta GENIAL IDEA DE MICROSOFT

Le cuento una historia. Se llama el "Infierno de las DLL". Hace unos años, cada aplicación instalaba su runtime de C++ (el runtime que incluso lleva el .NET y hasta el propio sistema operativo para sus programas) y otros runtimes dependientes de él. Esos runtimes cambian continuamente de versión ya que o bien sale algún fallo de seguridad o simplemente se cambia de versión. El hecho es que hay un juego de DLLs para los programas
compilados en Visual C++ 3, 4, 5, 6, .NET, 2003, 2005, 2008 y sus respectivos parches de seguridad, service packs (el VC++ 6 tiene 6 sps), etc. Aparte de que algunas veces el fabricante recompilaba el runtime para solucionar bugs o cambiar/ampliar cosas a su gusto...

El tema estaba en que cada aplicación borraba el anterior e instalaba el suyo (que solían residir en C:WindowsSystem32), con lo que otros programas dejaban de funcionar debido a incompatibilidades.

MS tuvo la feliz idea de acabar con el DLL Hell activando lo que se llama el SXS, que no es otra cosa que un repositorio interno de DLLs (esa carpteta). Cuando una aplicación se instala, Windows anota qué runtime ha instalado, lo mueve al SXS y cada vez que esa aplicación se carga y pide sus DLL Windows lo engaña y le da sus DLL. Para el programa esas DLL están en C:WindowsSystem32, pero realmente están en ese almacén.

Si todos los programadores respetaran las reglas, ese almacén no debería crecer mucho, pero ni los desisntaladores están bien hechos ni los propios programas, por lo que ese almacén crece de forma indefinida (asi es tal como lo oyen: no para de crecer nunca). Hay muchos articulos en internet, y todos coinciden en que NO se puede borrar la carpeta, ni reducirla significativamente, es decir de aqui a 1 par de años tu Windows 7 pesara mas del doble de lo que pesaba cuando lo instalaste. Cuantos mas programas instales, desinstales, actualices, sigue creciendo...

...y sigue creciendo, creciendo CRECIENDO, CRECIENDO , CRECIENDO
Interesante articulo. Gracias por compartirlo.
0
muy buena info,
hay que estar alerta con esta carpeta, y evitar hacer tantas instalaciones a lo tonto,
me imagino que como para probar algun software y evitar que la carpeta aumente seria bueno tener instalado el deepfreezer o alguno parecido
no creen
+1
mmm... lo de NO poder eliminar, mover o reducir el tamaño de la carpeta "winsxs" no es del todo cierto, tomandolo de forma estricta, tal como se comenta.

La carpeta la he podido mover del directorio Windows desde una partición de GNU/Linux (de igual manera con un CD Live podría servir), por lo tanto también se podría eliminar total o parcialmente su contenido.

Así que aquí el caso sería comentar que no se podría eliminar su contenido totalmente, pues se podría llegar a tener un sistema Windows inestable, como fue el resultado de mi prueba, realizada de forma inmediata al terminar de leer este post.

No pretendo crear polémica al respecto, sólo quiero dejar en claro que existe una diferencia entre "poder eliminar un directorio sin problemas" y entre "eliminar un directorio con consecuencias inherentes".

Saludos ;)
yo particulaarmente recomiendo mas el Shadow defender, igual que el defrezzer, pero permite escoger directorios para estas pruevas :)
Gracias por la info, no todos los días se encuentran explicaciones tan claras para los oscuros problemas de Windows. Será cuestión de poner más atención a la mencionada carpeta. Saludos. fellow
Haré la prueba con un CDLive de Linux pero solo borraré los archivos AMD que aparecen porque mi máquina solo usa Intel. Luego les contaré mi experiencia.

P.S. Hecha la prueba con el CD de Ubuntu 11.10... NO LA RECOMIENDO, moví para luego borrar algunos archivos que se no los usa mi máquina y luego al reiniciar, se queda en el arranque, no valio el F8 ni el Rescue Disk, ni la última configuración buena, ni siquiera colocando el DVD de instalación y dando en reparar lo corrigió; tuve que entrar con Ubuntu y volver a colocar los archivos en la carpeta y de esa forma reinició sin ningún daño.
Muy interesante informe. gracias.
Información No puedes publicar comentarios en este post.