Іноді, змінюючи розміри або іншим способом замінюючи розділи на диску, cfdisk скаже:
Wrote partition table, but re-read table failed. Reboot to update table.
(Це також трапляється з іншими інструментами розділення, тому я думаю, що це проблема Linux, а не проблема cfdisk.) Чому це так і чому це відбувається лише іноді , і що я можу зробити, щоб цього уникнути?
Примітка. Будь ласка, припустіть, що жодна з розділів, які я фактично редагую, не відкрита, змонтована або використовується іншим чином.
Оновлення:
cfdisk використовує ioctl(fd, BLKRRPART, NULL)
для того, щоб повідомити Linux, щоб перечитати таблицю розділів. Два інші рекомендовані до цього часу інструменти ( hdparm -z
DEVICE
, sfdisk -R
DEVICE
) роблять точно те саме. З partprobe
DEVICE
іншого боку, команда, здається, використовує новий ioctl під назвою BLKPG, що може бути краще; Не знаю. (Він також потрапляє на BLKRRPART, якщо BLKPG не працює.)
BLKPG, здається, "цей розділ змінився; ось новий розмір", і він виглядав так, як partprobe
називається його окремо на всіх розділах на пристрої, що передаються, тому він повинен працювати, якщо окремі розділи не використовуються. Однак спробувати це я не мав.
man sfdisk
каже: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.