Я пытаюсь написать скрипт, который проверяет размер диска. Поэтому я подумал, что смогу получить общий размер NVMe и сложить все размеры разделов на этом диске. Если оба значения совпадают, то я могу сказать, что размер диска правильный. Но в этом процессе я выяснил, что сумма размера разделов на диске nvme не будет равна общему доступному размеру nvme. Сумма разделов будет чуть меньше общего размера.
Есть ли другой способ проверить размер диска через скрипт? Как сравнить эталонное значение с выходными данными fdisk -l
или lsblk
? Как получить эталонное значение?
Ниже приведен пример: Когда я добавляю размер всех разделов (размер / dev / nvme0n1p1 + размер / dev / nvme0n1p2 + ....) Общий размер все разделы в NVME - 255961081151 байт, но фактический размер / dev / nvme0n1 - 256060514304 байт.
Журнал выборки:
fdisk -l
Disk /dev/nvme0n1: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Единицы: секторы 1 * 512 = 512 байт. Размер сектора (логический / физический): 512 байт / 512 байт. Размер ввода / вывода (минимальный / оптимальный): 512 байт. / 512 байт Тип метки диска: gpt Идентификатор диска: E8FB91BA-B2CF-A14D-AE9B-75943FA10290
**Device Start End Sectors Size Type**
/dev/nvme0n1p1 17094664 500118143 483023480 247308021760 Microsoft basic data
/dev/nvme0n1p2 22533 55300 32768 16777216 ChromeOS kernel
/dev/nvme0n1p3 8706056 17094663 8388608 4294967296 ChromeOS root fs
/dev/nvme0n1p4 55301 88068 32768 16777216 ChromeOS kernel
/dev/nvme0n1p5 317448 8706055 8388608 4294967296 ChromeOS root fs
/dev/nvme0n1p6 16448 16448 1 512 ChromeOS kernel
/dev/nvme0n1p7 16449 16449 1 512 ChromeOS root fs
/dev/nvme0n1p8 88072 120839 32768 16777216 Microsoft basic data
/dev/nvme0n1p9 16456 18503 2048 1048576 Microsoft basic data
/dev/nvme0n1p10 18504 18504 1 512 ChromeOS reserved
/dev/nvme0n1p11 64 16447 16384 8388608 unknown
/dev/nvme0n1p12 251912 317447 65536 33554432 EFI System
И дельта не является фиксированной.