Redimensionando el disco C: de Windows 2003 Server en condiciones hostiles

Imagen de elautoestopista

Como habréis visto en la lista de correo BOFHers, concretamente en este hilo, uno de los varios HIGINIEROS que han pasado por HyperMadhouse, concretamente el HESPERTO en UBEMEGÜARE, decidió en algún momento que un W2K3 tenía suficiente con 8Gb de disco duro, porque total, tampoco vas a instalar nada más ni vas a meter actualizaciones ni el antivirus necesita sitio para guardar su base de datos actualizada, así que para qué vamos a gastar cabina. Todos sabemos de lo que hablo.

En fin, que me he encontrado la tesitura de tener que ampliar el disco C: de la máquina porque (vaya por dios) resulta ser importantísima y ni la red levanta la pobre. Bueno, no es complicado dado que es una máquina virtual sobre VMware...

Y una polla como una olla.

Internet está lleno de blogs idílicos donde todo el mundo tiene la última versión de todo, las interfaces gráficas tienen todos los menús que necesitas, y las herramientas hacen simplemente lo que tú les pides que hagan. Pero esto hamijos es el mundo real..

El escenario es este: VM W2K3 que arranca a duras penas. Disco C: de 8Gb con 0 bytes libres; Hypervisor VMware ESX 3.0.5 (Esto es importante porque la mayor parte de las super funcionalidades chulas que verás en los foros no están disponibles, así que toca echarle ingenio); Sin backup consistente pero, afortunadamente, espacio en el datastore.

Lo primero: tiempo de parada estimado: Indefinido. Uno hace lo que puede y nadie tiene la culpa de la ineptitud del fulano en cuestión, pero ya no está y a esto hay que darle remedio. Si quieren un trabajo bien hecho, la receta requiere su tiempo. Si no, que se compren una VM en el McDolans.

Lo segundo: Herramienteo a bajo nivel. Las versiones antiguas de ESX tienen un cliente más espartano que las alpargatas de Leónidas, pero las herramientas de CLI están ahí. Vamos a tirar un poco de ellas.

NOTA ADICIONAL: Ahorrate el intentar arrancar la VM con GParted Live o similar: Por alguna razón, sencillamente no reconocen el hardware de ESX 3 y no verás los discos. O eso, o yo no lo he sabido hacer, no lo se.

Lo tercero: Buscate la vida. Mucho. Estos procedimientos pueden mandar tu VM ATPC con mucha facilidad, y las snapshots de VMware no te salvarán el culo. Búscate un soporte de almacenamiento donde puedas hacerte una copia en frío de los ficheros de la VM. ¡CON LA VM APAGADA ANIMAL! Yo he tenido suerte (menos mal) y tengo espacio en el datastore.

Dicho lo cual, al lío:

1º.- Para la VM. Accede al hypervisor por SSH y hazte una copia. A lo vivo:

[root@cojonpriento03 datastore]# cp -pr puñeteraVM puñeteraVM.bak

2º.- Sobre los ficheros de la máquina original, redimensionamos el disco. La versión del cliente Infrastructure no tiene la opción de redimensionado, así que lo hacemos por la CLI:

[root@cojonpriento03 datastore]# vmkfstools -X 20g /vmfs/volumes/datastore/puñeteraVM/puñeteraVM.vmdk

Tarda unos segundos. En este caso he indicado como tamaño final 20Gb. Ojo que es el tamaño final, no lo que queremos añadir. Si ponemos el tamaño que queremos añadir y es inferior al del disco original, LA JODIMOS.

Menos mal que hemos hecho la copia...

3º.- Reinicia el demonio de gestión de VMware: Esto te lo puedes saltar, pero si quieres que en cliente se vea el tamaño real del disco, tienes que hacerlo. Total, el día que reinicies el VMware ya lo cogerá...

[root@cojonpriento03 datastore]# service mgmt-vmware restart

Ojo porque en algunos casos este comando hace cosas raras como quedarse parado mucho tiempo, no reactivo, hacer que el clietne de timeout durante unos minutos... mucha paciencia con él.

4º.- Toma prestada otra VM que tenga acceso al almacenamiento que queremos ampliar y móntale el susodicho disco. Tendrás que parar la VM para hacerlo.

IMPORTANTE: Si el volumen de tu unidad C: es de tipo Básico, ahorrate los pasos 5 y 6 y pasa directamente al 7. Solamente son necesarios si el susodicho hijo de un tigre y un delfín sifilítico decidió que, además, convertir C: en un volúmen dinámico porque sí era buena idea.

5º.- Descárgate este software para editar el disco y mételo en la VM de prestado. Yo he usado la versión portable para no llevar mierda:

http://mh-nexus.de/hxd/

6º.-Sigue el procedimiento indicado aquí:

http://www.wilderssecurity.com/showthread.php?t=191006

Basicamente lo que tienes que hacer es abrir el disco con este programa, usando el menú extras -> abrir disco, desmarcando la casilla “Solo lectura”. Ahí buscas en la primera columna la fila que dice 1C0 y en esa misma fila, cambiar el 42 de la cuarta columna por un 07 y guardar.

Una vez hecho esto, reinicias la VM, y desde el cmd ejecutas un chkdsk /f. En el administrador de discos te saldrá algo un poco raro, diciéndote que el disco está desactivado, y no lo podrás reactivar. Tendrás que utilizar la opción “Convertir a volumen básico”. Aunque te aparezca un warning tu tranquilo, que no perderás datos (y aunque los perdieras, hiciste la copia del principio, ¿verdad?).

Si la VM no es capaz de acceder al disco, vuelta a reiniciar y chkdsk /f. Y ya deberías acceder.

7º.- Redimensiona con diskpart. Desde la Administrador de discos no te va a dejar extender el volumen, pero diskpart sí. Te lo cuentan muy bien aquí los chicos de Redmond:

http://support.microsoft.com/kb/325590/en-US

Así que abre el CMD y dale caña (no te voy a enseñar a estas alturas a usar diskpart).

8º.- Apaga y vámonos. Apaga la VM de prestado y desmontale el disco (sin eliminarlo ONVRE). Devuelve cada cosa en su sitio, limpia la basura que hayas dejado y arranca las dos VM.

9º.- Contempla maravillado cómo tu vieja VM arranca sin problemas con el disco C: perfectamente ampliado y disponible.

Alucina vecina. Espero que a alguien le sea útil.

10 comments

10
Mar

Imagen de kyleBOFH

Magnífico relato Oh El Gran Virtualizador!

Felicidades por el éxito en la tarea, ya te puedes añadir otro badge a tus galones virtuales :)

11
Mar

Curiosamente esta misma mañana he tenido yo que ampliar un disco de VirtualBox porque en su momento cogí la opción por defecto. El disco virtual tiene un W98 y está corriendo sobre una Debian squeeze normalita. Y ha sido bastante indoloro:

Paras maquina virtual.
sudo VBoxManage modifyhd [disco.vdi] --resize [nuevo tamaño en MB]
Inicias maquina virtual.

Y le he estado metiendo caña sin que falle esta mañana...

11
Mar

Imagen de elautoestopista

¿Y como has redimensionado el filesystem del Win98? Me intriga...

A ver, no es la misma liga (diría casi que ni el mismo deporte). VMware ESX es un bicho comparado con VirtualBOX, están pensados para diferentes nichos de mercado. En cualquier caso, el redimensionado del disco físico se hace sin demasiada complicación en cualquier hipervisor, sea VMware, VirtualBOX, Xen, KVM o el puto Hyper-V (a quien también tengo el gusto de conocer). Lo verdaderamente jodido en estos casos es redimensionar el filesystem, especialmente en entornos Microsoft, sobre todo si tienen algunos añitos, ya que no ofrecen herramientas built-in para ello, y tienes que optar por técnicas que, si bien funcionan, o no están soportadas o son a muy bajo nivel y por lo tanto arriesgadas.

Saludos.

Lista de Correo #BOFHers - http://www.freelists.org/list/bofhers
Síguenos también el Twitter, en el hastag #BOFHers (y derivados)
¡También tenemos un servidor IRC! irc.bofhers.com:6667 canal #BOFHers

12
Mar

Con Gparted, pero me olvidé de indicarlo en el mensaje anterior XD

Obviamente el problema gordo es que no te reconociera el ESX 3, con el que no he tenido el gusto.

Aquí solo Virtualizamos para personalizar distros y para poder usar SW del año catapum en modo consulta porque llevan un lustro prometiendo añadir las viejas funcionalidades al nuevo SW y así poder jubilarlo definitivamente.

Que digo yo que en adaptar la BD nueva las tablas de la vieja y volcar no tardas 5 años, pero oye. ¡Que sabré yo de desarrollo! XD

18
Mar

Imagen de elautoestopista

Edito porque me acabo de coscar de que olvidé que el procedimiento de editar el disco con el editor hexadecimal sólo es necesario si el volumen es Dinámico (que fue mi caso). Si es de tipo Básico, con montar en otra VM y hacer el diskpart debería ser suficiente.

Lista de Correo #BOFHers - http://www.freelists.org/list/bofhers
Síguenos también el Twitter, en el hastag #BOFHers (y derivados)
¡También tenemos un servidor IRC! irc.bofhers.com:6667 canal #BOFHers

19
Mar

Imagen de samquejo

Hola

El tema me ha llamado la atención, porque yo he hecho esto mas sencillo:

- Clono la máquina

- Al clon le atacho el disco de la máquina padre

- Incremento el tamaño del disco atachado con el comando de marras - Levanto el clon - Extiendo con diskpart

- Apago

- Quito el disco y levanto la máquina original con el disco ampliado

Creo que esto es mas eficaz, llevo muchos años haciéndolo y luchando contra higinieros del desconcimiento

24
Mar

Imagen de elautoestopista

Básicamente, eso es lo que he hecho: Montar el disco en otra máquina, sea un clon o no. La complicación y objeto del artículo es cuando ALGUIEN ha tenido a bien ha montado el C: como volumen de tipo dinámico, en cuyo caso ninguna máquina te W2K3 te dejará redimensionarlo si no machacas la configuración del disco, y al menos en mi experiencia tratar de extenderlo desde un W2K8 te lleva a un filesystem corrupto e inusable.

Saludos.

Lista de Correo #BOFHers - http://www.freelists.org/list/bofhers
Síguenos también el Twitter, en el hastag #BOFHers (y derivados)
¡También tenemos un servidor IRC! irc.bofhers.com:6667 canal #BOFHers

25
Mar

Imagen de samquejo

Ole el listo que hizo dinámico el de sistema, pero ahí viene mas facil aún, añades un segundo disco y hacer un spanw del mismo

Ya me pegué con discos dinámicos en raid1 en windows 2000 y no era agradable.

Por cierto, probaré ese escenario, a ver que tal traga, que tengo 3.5u4 en casa, y hay verdaderas joyas virtualizadas en el, como un os2 warp 3 de servidor de varios drdos, y un novel 4, y algo mas, y ocupan menos que cualquier 2008

23
Mar

Imagen de JesMurias

Hola

Y en vez de tanto lío ¿no era más fácil utilizar el VMware converter y cambiar el tamaño de los discos a mayores?

Por cierto, W2K3 no se lleva muy bien con la virtualización y si tienen SQLSERVER menos .... Y si usas un ESXi tan antiguo, peor.

Saludos

24
Mar

Imagen de elautoestopista

Fue una de las cosas que probé, y lo único que obtuve fue una VM que no arrancaba con un sonoro pantallazo. Supongo que es cosa de la versión de ESX. Porque ojo, es un ESX, no un ESXi ;)

Lista de Correo #BOFHers - http://www.freelists.org/list/bofhers
Síguenos también el Twitter, en el hastag #BOFHers (y derivados)
¡También tenemos un servidor IRC! irc.bofhers.com:6667 canal #BOFHers