Cambiar de disco duro
Mantener los datos
El otro día tuve la necesidad de cambiar el disco duro por otro de mayor capacidad.
Pero quería conservar toda la instalación y datos de la partición Linux.
Lo que si quería es que la partición Linux tuviese más capacidad de almacenamiento.
Mirando por internet, encontré la solución.
Mi caso es un poco atípico, debido a que tengo 2 discos duros con varias particiones:
- El disco 1 sda es un disco (magnético) de 1T = 931,51 GiB
Este disco duro lo utilizo principalmente para DATOS, aunque tengo varias particiones con WIN10 y Linux.
He de comentar que Windows10 es bastante lento en discos magnéticos, pero es como lo tengo.
-El disco 2 sdb es un disco SSD de 465,76 GiB.
Este disco duro lo utilizo para los sistemas operativos, ya sean varios Linux, como un Windows7.
Empecemos.
Desde una instalación Linux Live entramos en consola y siendo root realizaremos todas las operaciones.
Lo primero es identificar los discos y las particiones.
root@TRABA:/home/seta# /sbin/fdisk
-l Disco /dev/sdb: 465,76 GiB, 500107862016 bytes, 976773168 sectores Modelo de disco: CT500BX500SSD1 Unidades: sectores de 1 * 512 = 512 bytes Tamaño de sector (lógico/físico): 512 bytes / 512 bytes Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes Tipo de etiqueta de disco: dos Identificador del disco: 0x2c019ec5 Disposit. Inicio Comienzo Final Sectores Tamaño Id Tipo /dev/sdb1 * 2048 206847 204800 100M 7 HPFS/NTFS/exFAT /dev/sdb2 206848 178053119 177846272 84,8G 7 HPFS/NTFS/exFAT /dev/sdb3 178055166 976771071 798715906 380,9G f W95 Ext'd (LBA) /dev/sdb5 178055168 335341567 157286400 75G 12 Compaq diagnostics /dev/sdb6 335343616 352120831 16777216 8G 82 Linux swap / Solaris /dev/sdb7 352122880 477951999 125829120 60G 43 desconocido /dev/sdb8 477954048 603783167 125829120 60G 83 Linux /dev/sdb9 603785216 682260479 78475264 37,4G 83 Linux /dev/sdb10 740503552 802879487 62375936 29,7G 83 Linux /dev/sdb11 802881536 862699519 59817984 28,5G 83 Linux /dev/sdb12 862701568 914946047 52244480 24,9G 83 Linux /dev/sdb13 914948096 976771071 61822976 29,5G 83 Linux /dev/sdb14 682262528 740501503 58238976 27,8G 83 Linux Las entradas de la tabla de particiones no están en el orden del disco. Disco /dev/sda: 931,51 GiB, 1000204886016 bytes, 1953525168 sectores Modelo de disco: ST1000DM003-1CH1 Unidades: sectores de 1 * 512 = 512 bytes Tamaño de sector (lógico/físico): 512 bytes / 4096 bytes Tamaño de E/S (mínimo/óptimo): 4096 bytes / 4096 bytes Tipo de etiqueta de disco: dos Identificador del disco: 0x48d5e0eb Disposit. Inicio Comienzo Final Sectores Tamaño Id Tipo /dev/sda1 * 2048 1187839 1185792 579M 7 HPFS/NTFS/exFAT /dev/sda2 1187840 122898431 121710592 58G 7 HPFS/NTFS/exFAT /dev/sda3 122900478 1873399807 1750499330 834,7G f W95 Ext'd (LBA) /dev/sda4 1873399808 1953523711 80123904 38,2G 83 Linux /dev/sda5 122900480 752125951 629225472 300G 7 HPFS/NTFS/exFAT /dev/sda6 752128000 1381273599 629145600 300G 7 HPFS/NTFS/exFAT /dev/sda7 1381275648 1465161727 83886080 40G 83 Linux /dev/sda8 1465163776 1471455231 6291456 3G 82 Linux swap / Solaris /dev/sda9 1471457280 1597286399 125829120 60G 83 Linux /dev/sda10 1597288448 1723117567 125829120 60G 83 Linux /dev/sda11 1723119616 1775548415 52428800 25G 83 Linux /dev/sda12 1775550464 1873399807 97849344 46,7G 83 Linux |
Mi idea es copiar la partición /dev/sda11 a /dev/sdb13
Como podemos observar la partición de origen tiene 25G y la partición de destino 30G
Debemos tener claro lo que queremos hacer, no hay vuelta atrás, si nos equivocamos en la partición de destino podemos sobrescribir datos.
Utilizamos el comando dd
- Comando dd
- if=/dev/sda11 Particion de origen, (input)
- of=/dev/sdb13 Partición de destino, (output)
- status=progress Nos permite ver en directo la evolución de la copia.
- bs=4M Utilizamos un buffer de 4M para que la copia sea más rápida.
- && sync Al
terminar la copia obliga al sistema a vaciar todo el buffer de
escritura, escribiendo todos los datos.
root@TRABA:/home/seta# dd
if=/dev/sda11 of=/dev/sdb13 status=progress bs=4M
&& sync 26780631040 bytes (27 GB, 25 GiB) copied, 237 s, 113 MB/s 6400+0 records in 6400+0 records out 26843545600 bytes (27 GB, 25 GiB) copied, 243,467 s, 110 MB/s |
Con el comando df podemos ver el tamaño del sistema de archivos.
root@TRABA:/home/seta# df S.ficheros bloques de 1K Usados Disponibles Uso% Montado en udev 8090288 0 8090288 0% /dev tmpfs 1624808 1400 1623408 1% /run /dev/sdb7 61611820 17478284 40971424 30% / tmpfs 8124036 1376 8122660 1% /dev/shm tmpfs 5120 8 5112 1% /run/lock tmpfs 1624804 68 1624736 1% /run/user/1000 /dev/sda6 314572796 177241236 137331560 57% /mnt/DATOS2 /dev/sda5 314612732 72034952 242577780 23% /mnt/DATOS1 /dev/sdb13 25626852 17379920 6919828 72% /media/seta/rootMX18.3 |
Debemos arreglar esto, y expandir el sistema de archivos al tamaño de la partición.
Lo primero es revisar el sistema de archivos creado con le comando e2fsck
root@TRABA:/home/seta# /sbin/e2fsck
-f /dev/sdb13 e2fsck 1.47.0 (5-Feb-2023) Paso 1: Verificando nodos-i, bloques y tamaños Paso 2: Verificando la estructura de directorios Paso 3: Revisando la conectividad de directorios Paso 4: Revisando las cuentas de referencia Paso 5: Revisando el resumen de información de grupos rootMX18.3: 416123/1638400 ficheros (0.4% no contiguos), 4491867/6553600 bloques |
Con el comando resize2fs expandimos el sistema de archivos al tamaño de la partición.
root@TRABA:/home/seta# /sbin/resize2fs
/dev/sdb13 resize2fs 1.47.0 (5-Feb-2023) Cambiando el tamaño del sistema de ficheros en /dev/sdb13 a 7727872 (4k) bloques. El sistema de ficheros en /dev/sdb13 tiene ahora 7727872 bloques (de 4k). |
Observamos que el tamaño del sistema de archivos corresponde al tamaño de la partición 30G.
root@TRABA:/home/seta# df S.ficheros bloques de 1K Usados Disponibles Uso% Montado en udev 8090288 0 8090288 0% /dev tmpfs 1624808 1404 1623404 1% /run /dev/sdb7 61611820 17470108 40979600 30% / tmpfs 8124036 1376 8122660 1% /dev/shm tmpfs 5120 8 5112 1% /run/lock tmpfs 1624804 68 1624736 1% /run/user/1000 /dev/sda6 314572796 177241236 137331560 57% /mnt/DATOS2 /dev/sda5 314612732 72034952 242577780 23% /mnt/DATOS1 /dev/sdb13 30249924 17379920 11308048 61% /media/seta/rootMX18.3 |
Para que arranque nuestra distribución Linux en la partición donde hemos copiado los ficheros, deberemos cambiar la configuración del grub que tengamos por defecto.
En mi caso añado en /boot/grub/grub.cfg
menuentry 'MX 18.3 /dev/sdb13'
--class mx --class gnu-linux --class gnu --class os
$menuentry_id_option
'osprober-gnulinux-simple-61916602-287c-4101-868a-431efef9f6a4'
{ insmod part_msdos insmod ext2 set root='hd1,msdos13' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos13 --hint-efi=hd1,msdos13 --hint-baremetal=ahci1,msdos13 61916602-287c-4101-868a-431efef9f6a4 else search --no-floppy --fs-uuid --set=root 61916602-287c-4101-868a-431efef9f6a4 fi linux /boot/vmlinuz-4.19.0-5-686-pae root=/dev/sdb13 initrd /boot/initrd.img-4.19.0-5-686-pae } |
Conviene revisar el /etc/fstab por si se cambio el montaje de algunas de las particiones, como puede ser la swap (memoria de intercambio)
Espero que les haya gustado este artículo, y ya no tengan miedo al cambiar de disco duro.
Saludos.
Juan Galaz
Bibliografía:
https://help.clouding.io/hc/es/articles/360010074599-C%C3%B3mo-extender-particiones-manualmente-en-Linux
https://medium.com/@dibaekhanal101/increase-ec2-volume-size-growpart-resize2fs-bd7267b07e94
https://www.iespai.com/2024/04/02/guia-para-utilizar-correctamente-el-comando-dd-como-copia-de-seguridad/