Luego de redimensionar un disco en una vieja máquina virtual GNU/Linux corriendo Debian, tuve la necesidad de detectar el cambio de tamaño del mismo sin reiniciar el sistema. Anteriormente expliqué cómo detectar un cambio en un disco SCSI en Linux sin necesidad de reiniciar el sistema utilizando el sistema de archivos /sys. Sin embargo, ahora encontré un método más simple y rápido que no requiere conocer el número de dispositivo SCSI.



Este método consiste en acceder al disco directamente a través del nombre de dispositivo, desde el directorio /sys/block.

Inicialmente se observa que el disco posee algo más de 50 GB:

root@debian7:~# fdisk -l /dev/sda

Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, 104857600 sectores en total
Units = sectores of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identificador del disco: 0x000e1085

Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/sda1   *        2048      499711      248832   83  Linux
/dev/sda2          501758    33552383    16525313    5  Extendida
/dev/sda3        33552384   104857599    35652608   8e  Linux LVM
/dev/sda5          501760    33552383    16525312   8e  Linux LVM

Este disco ha sido redimensionado desde el host, sin embargo el sistema operativo guest aún no lo ha detectado (porque no ha sido reiniciado).

Para forzar el rescaneo del disco, basta con enviar un 1 al parámetro rescan. Sin embargo, en lugar de acceder a través del número de dispositivo SCSI, es posible acceder a través del nombre de dispositivo por bloques:

root@debian7:~# echo 1 > /sys/block/sda/device/rescan

Ahora fdisk muestra el tamaño actualizado:

root@debian7:~# fdisk -l /dev/sda

Disk /dev/sda: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders, 209715200 sectores en total
Units = sectores of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identificador del disco: 0x000e1085

Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/sda1   *        2048      499711      248832   83  Linux
/dev/sda2          501758    33552383    16525313    5  Extendida
/dev/sda3        33552384   104857599    35652608   8e  Linux LVM
/dev/sda5          501760    33552383    16525312   8e  Linux LVM


Tal vez pueda interesarte


Compartí este artículo