A veces, cuando se cambia el tamaño o de alguna otra manera muck con particiones en un disco, cfdisk dirá:
Wrote partition table, but re-read table failed. Reboot to update table.
(Esto también sucede con otras herramientas de particionamiento, por lo que creo que este es un problema de Linux en lugar de un problema de cfdisk). ¿Por qué es esto y por qué solo ocurre a veces y qué puedo hacer para evitarlo?
Nota: Suponga que ninguna de las particiones que estoy editando están abiertas, montadas o en uso.
Actualizar:
cfdisk usa ioctl(fd, BLKRRPART, NULL)
para decirle a Linux que vuelva a leer la tabla de particiones. Dos de las otras herramientas recomendadas hasta ahora ( hdparm -z
DEVICE
, sfdisk -R
DEVICE
) hacen exactamente lo mismo. El partprobe
DEVICE
comando, por otro lado, parece usar un nuevo ioctl llamado BLKPG, que podría ser mejor; No lo sé. (También recurre a BLKRRPART si BLKPG falla).
BLKPG parece ser una operación de "esta partición ha cambiado; aquí está el nuevo tamaño", y parecía partprobe
llamada individualmente en todas las particiones en el dispositivo pasado, por lo que debería funcionar si las particiones individuales no se utilizan. Sin embargo, no he tenido la oportunidad de probarlo.
man sfdisk
dice:Since version 2.26 sfdisk no longer provides the -R or --re-read option to force the kernel to reread the partition table. Use blockdev --rereadpt instead.