Đôi khi, khi thay đổi kích thước hoặc nói cách khác với các phân vùng trên đĩa, cfdisk sẽ nói:
Wrote partition table, but re-read table failed. Reboot to update table.
(Điều này cũng xảy ra với các công cụ phân vùng khác, vì vậy tôi nghĩ đây là vấn đề của Linux chứ không phải là vấn đề cfdisk.) Tại sao lại như vậy và tại sao đôi khi nó chỉ xảy ra và tôi có thể làm gì để tránh?
Lưu ý: Vui lòng giả sử rằng không có phân vùng nào tôi thực sự chỉnh sửa được mở, gắn hoặc sử dụng.
Cập nhật:
cfdisk sử dụng ioctl(fd, BLKRRPART, NULL)
để bảo Linux đọc lại bảng phân vùng. Hai trong số các công cụ khác được đề xuất cho đến nay ( hdparm -z
DEVICE
, sfdisk -R
DEVICE
) thực hiện chính xác điều tương tự. Mặt khác partprobe
DEVICE
, lệnh dường như sử dụng một ioctl mới gọi là BLKPG, có thể tốt hơn; Tôi không biết. (Nó cũng rơi trở lại trên BLKRRPART nếu BLKPG không thành công.)
BLKPG dường như là một hoạt động "phân vùng này đã thay đổi, đây là kích thước mới" và có vẻ như partprobe
nó được gọi riêng lẻ trên tất cả các phân vùng trên thiết bị được thông qua, do đó, nó sẽ hoạt động nếu các phân vùng riêng lẻ không được sử dụng. Tuy nhiên, tôi chưa có cơ hội để thử nó.
man sfdisk
nói: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.