Lo primero, en este caso, es que los DL360G4 utilizan una controladora RAID Smart Array 6i. Esta controladora utiliza el módulo del kernel cciss como controlador y normalmente crea en el directorio /dev las entradas como /dev/cciss/c0dn donde n representa el disco definido en la controladora y entradas del tipo /dev/cciss/c0d0py donde y representa la partición. Así, por ejemplo la primera partición definida sobre el primer disco sería /dev/cciss/c0d0p1. Este dispositivo es de tipo block (bloque) y utiliza como major number (al menos sobre el primer disco) 104. El disco completo (sin particiones) utiliza como minor number 0, y las particiones utilizan como minor 1 en adelante. Es importante saber este esquema puesto que Crash Recovery no crea las entradas adecuadas en /dev, y tenemos que crearlas nosotros a mano con ayuda de mknod.
Para efectuar correctamente la operación, lo primero que debe hacerse es, una vez cargado el Crash Recovery y las utilidades, cargar el módulo del kernel de la controladora y crear los dispositivos de bloque para acceder a la tabla de particiones y a la partición de Windows que se quiera cambiar el tamaño. En este ejemplo voy a suponer que solo existe una única partición en el disco que queremos cambiar. Para ello:
[tinker:root](~)#modprobe -k ccissLa primera línea nos carga el driver, y las dos segundas crean en el directorio actual dos entradas, la primera hace referencia a todo el disco, de tal manera que permite editar la tabla de particiones y la segunda para acceder a la primera partición del disco, cosa que necesitará la utilidad ntfsresize
[tinker:root](~)#mknod c0d0 b 104 0
[tinker:root](~)#mknod c0d0p1 b 104 1
Ahora, lo primero que debe de hacerse es obtener la información de la tabla actual de particiones, anotarla y guardarla en sitio seguro, puesto que se va a modificar la misma, ya que el proceso de cambio de tamaño no es automático y exige borrar la partición y crearla de nuevo. Es especialmente importante anotar el cilindro de inicio de la partición:
[tinker:root](~)#fdisk -l c0d0Ahora se pasa comprobar hasta cuando se puede reducir la partición actual:
Disco /dev/cciss/c0d0: 72.8 GB, 72833679360 bytes
255 cabezas, 32 sectores/pista, 17433 cilindros
Unidades = cilindros de 8160 * 512 = 4177920 bytes
Disposit. Inicio Principio Fin Bloques Id Sistema
/dev/cciss/c0d0p1 * 1 15935 65014784 7 HPFS/NTFS
[tinker:root](~)#ntfsresize -i c0d0p1 ntfsresize v1.6.99 NTFS volume version: 3.1 Current volume size: 72833679360 bytes (72800 MB) Scanning volume ... 100.00 percent completed You could resize at 37601280000 bytes or 37601 MB (freeing 35199 MB).Como se ve hay que hacer referencia explícita a la partición NTFS que se quiere reducir. La utilidad imprime hasta cuanto podemos achicar la partición de NTFS. Es importante que esta partición esté lo más desfragmentada posible y que tengan los datos situados al principio. Como nota adicional, comentar que está calculado los tamaños de manera aproximada. (no tengo los datos reales de cuando realicé la instalación).
Supongase que se quiere dejar la partición original con un tamaño de 40G, y liberar el resto. Lo primero es efectuar la posible operación de manera no destructiva:
[tinker:root](~)#ntfsresize -s 40G -n c0d0p1Una vez superado el test, podemos cambiar el tamaño de la partició:
ntfsresize v1.6.99
NTFS volume version: 3.1
Current volume size: 72833679360 bytes (72800 MB)
New volume size : 39999406080 bytes (39999 MB)
Scanning volume ...
100.00 percent completed
Updating $BadClust file ...
Updating $Bitmap file ...
Updating Boot record ...
The read-only test run ended successfully.
[tinker:root]:(~)# ntfsresize -s40G /dev/cciss/c0d0p1Ahora viene la parte más peligrosa de todo el proceso. Ahora hay que borrar la tabla de particiones original y ajusta la partición que hemos cambiado el tamaño. Para ello se usa fdisk.
ntfsresize v1.6.99
NTFS volume version: 3.1
Current volume size: 72833679360 bytes (72800 MB)
New volume size : 39999406080 bytes (39999 MB)
Scanning volume ...
100.00 percent completed
WARNING: Every sanity check passed and only the DANGEROUS operations left.
Please make sure all your important data had been backed up in case of an unexpected failure!
Are you sure you want to proceed (y/[n])? y
Schedule chkdsk NTFS consistency check at Windows boot time ...
Resetting $LogFile ... (this might take a while)
Updating $BadClust file ...
Updating $Bitmap file ...
Updating Boot record ...
Syncing device ...
NTFS had been successfully resized on device '/dev/cciss/c0d0p1'.
You can go on to resize the device e.g. with 'fdisk'.
IMPORTANT: When recreating the partition, make sure you
1) create it with the same starting disk cylinder
2) create it with the same partition type (usually 7, HPFS/NTFS)
3) do not make it smaller than the new NTFS filesystem size
4) set the bootable flag for the partition if it existed before
Otherwise you may lose your data or can't boot your computer from the disk!
[tinker:root]:(~)# fdisk c0p0Este es el paso donde un error puede dar al traste con la tabla de particiones, por lo cual es fundamental haber hecho una copia de seguridad de los datos importantes. Una vez modificada la tabla, se debe de reiniciar Windows, dejar que pase el chkdsk para que compruebe las modificaciones correctas, y ya debe de tenerse el espacio libre necesario al final de la antigua partición.
Command (m for help): p
Disk /dev/cciss/c0d0: 255 heads, 32 sectors, 17433 cylinders
Units = cylinders of 8160 * 512 bytes
Device Boot Start End Blocks Id System /dev/cciss/c0d0 * 1 15935 65014784 7 HPFS/NTFS
br/> Command (m for help): d
Partition number (1-4): 1
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-15935, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-15935, default 15935): +40G
Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): 7
Changed system type of partition 1 to 7 (HPFS/NTFS)
Command (m for help): a
Partition number (1-4):1
Command (m for help): p
Disk /dev/cciss/c0d0: 255 heads, 32 sectors, 17433 cylinders Units = cylinders of 16065 * 512 bytesCommand (m for help): w
Device Boot Start End Blocks Id System /dev/cciss/c0d0 * 1 9574 78123840 7 HPFS/NTFS
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Es interesante comentar que conviene darse un margen a la hora de cambiar el tamaño de la partición, es decir, de no ajustar los datos excesivamente, sino dejar espacio libre suficiente en la partición que estamos reduciendo. Hay que tener en cuenta que realmente lo que se hace es borrar y recrear la partición, y un error de cálculo lleva a que estemos sobreescribiendo alguna de ellas.
No olvidar tampoco poner el flag de arranque en el fdisk, porque podemos encontrarnos si no es así con la desagradable sorpresa de que el sistema no arranca.
Por último, agradecer a la gente de ntfsresize su magnífico trabajo y este documento donde he sacado la información (y la salida de los programas) para escribir esta entrada de blog.
1 comentario:
Save Save and Save again
Consider a voluntary subscription by clicking on the PayPal button. Make payments with PayPal - it's fast, free and secure! Search * Tips Hacksaw cut back * TODAY * We interrupt this editorial page Save Save ...
What a terrific blog,congratulations! I’ve already added it to my bookmark!
I too have a somewhat interesting online dating service site/blog. It encompasses all online dating service and can substantially reduce LD phonecalls and increase sales and profit!
Perhaps you’d care to check it out and experience the excitement over 30 days,all for just $1-Thank You:-)
Publicar un comentario