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