systemadmin.es > Storage > Releer las particiones de un disco con partprobe

Releer las particiones de un disco con partprobe

En el caso que tengamos un disco ya particionado y con puntos de montaje activos pero que necesitamos añadir una nueva partición nos encontraremos con el error “Re-reading the partition table failed with error 16: Device or resource busy.” Vamos a ver como solucionar el problema:

Dicho error nos lo encontraremos al hacer el write en el fdisk:

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.

A continuación podremos ver mediante el /proc/partitions como no se ha actualizado con las nuevas particiones:

[root@servidor ~]# cat /proc/partitions
major minor  #blocks  name

   8     0  116210688 sda
   8     1     104391 sda1
   8     2    4192965 sda2
   8     3    4192965 sda3

Mediante partprobe podemos forzar que se vuelvan a leer las particiones, eliminando la necesidad de reiniciar el sistema después del reparticionado:

# partprobe

Podemos también indicar un disco en concreto:

# partprobe /dev/sda

Y mediante la opción -s podemos ver un resumen de las particiones:

# partprobe -s
/dev/sda: msdos partitions 1 2 3 4

Una vez ejecutado partprobe podemos comprobar mediante /proc/partitions como ya se han actualizado las particiones con la nueva que hemos creado:

[root@servidor ~]# cat /proc/partitions
major minor  #blocks  name

   8     0  116210688 sda
   8     1     104391 sda1
   8     2    4192965 sda2
   8     3    4192965 sda3
   8     4  107715825 sda4

5 comments to “Releer las particiones de un disco con partprobe”

  1. Para RedHat 6 partprobe no funciona si el dispositivo está en uso (montado)…

    Salvo que cambien de idea en futuras versiones hay que olvidarse de extender discos en caliente. Así que a usar LVM y añadir siempre discos nuevos.

    https://partner-bugzilla.redhat.com/show_bug.cgi?id=614357

  2. Es una autentica pena… Has probado con el rescan por el /sys? Por ejemplo:

    # echo 1 > /sys/block/sda/device/rescan
    
  3. Sí, con eso ves la nueva geometría del disco, pero el kernel sigue sin querer leer la tabla de particiones.

    Por lo visto es una “feature” para protegernos contra cambios erroneos en la tabla de particiones, ¿que pasaría si haces un partprobe después de borrar una partición que tienes montada, o de cambiar el sector de inicio?

    Cada vez nos dejan hacer menos cosas peligrosas a los administradores de sistemas ;)

  4. Pues que bien… Mas peligroso me parece un rm -fr / o un dd if=/dev/zero of=/dev/sda

    Me pregunto si RedHat 7 vendrá sin dd ni rm

  5. La administración de sistemas está pensada para eso: para los administradores de sistemas, y quien no sepa, que se dedique a otra cosa: además esto se aprende porque te gusta, no se enseña en ningún lado. El resto, pueden usar las X y el entorno gráfico de turno. Si no, acabaremos todos en el paro y Linux será un Windows más donde todo se hace con un ratón :)

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>