A volte, quando si ridimensiona o si scherza con le partizioni su un disco, cfdisk dirà:
Wrote partition table, but re-read table failed. Reboot to update table.
(Ciò accade anche con altri strumenti di partizionamento, quindi sto pensando che si tratti di un problema di Linux piuttosto che di un cfdisk.) Perché è questo e perché succede solo a volte e cosa posso fare per evitarlo?
Nota: supponiamo che nessuna delle partizioni che sto effettivamente modificando sia aperta, montata o altrimenti utilizzata.
Aggiornare:
cfdisk usa ioctl(fd, BLKRRPART, NULL)
per dire a Linux di rileggere la tabella delle partizioni. Due degli altri strumenti consigliati finora ( hdparm -z
DEVICE
, sfdisk -R
DEVICE
) fanno esattamente la stessa cosa. Il partprobe
DEVICE
comando, d'altra parte, sembra usare un nuovo ioctl chiamato BLKPG, che potrebbe essere migliore; Non lo so. (Ritorna anche su BLKRRPART se BLKPG fallisce.)
BLKPG sembra essere un'operazione "questa partizione è cambiata; ecco la nuova dimensione", e sembrava partprobe
chiamarla individualmente su tutte le partizioni sul dispositivo passate, quindi dovrebbe funzionare se le singole partizioni non vengono utilizzate. Tuttavia, non ho avuto l'opportunità di provarlo.
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.