Intereting Posts

Как найти размер размонтированного раздела в Linux?

Я использую tune2fs, но он дает данные в блоках, и я не могу получить точное значение общего размера раздела.

Я также использовал fdisk -l /dev/mmcblk0p1 , но размер, получаемый отсюда, также является другим значением.

Как я могу найти точный размер раздела?

Команда:

 blockdev --getsize64 /dev/mmcblk0p1 

Он дает результат в байтах, как 64-битное целое число. Он запрашивает размер байта блочного устройства , так как ядро ​​видит его размер.

Причина, по которой fdisk -l /dev/mmcblk0p1 не работала, заключалась в том, что fdisk делает совсем другое: он читает в таблице разделов (= первый сектор) блочного устройства и печатает найденное . Он ничего не проверяет, только говорит, что находится в таблице разделов.

Это даже не беспокоит, повреждена ли таблица разделов, или блочное устройство не имеет одного: оно выведет предупреждение о том, что контрольная сумма не в порядке, но она по-прежнему печатает то, что находит, даже если значения явно не являются -смысл.

Это то, что произошло в вашем случае: /dev/mmcblk0p1 не имеет таблицы разделов. Как видно из названия устройства, это уже первый раздел физического диска /dev/mmcblk0 . Этот диск содержит таблицу разделов, если бы вы запросили его с помощью fdisk -l /dev/mmcblk0 , он работал (если у него была таблица разделов msdos).

Попробуйте lsblk , он даже не требует root:

 $ lsblk -b NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 34359738368 0 disk ├─xvda1 202:1 0 1676673024 0 part [SWAP] └─xvda2 202:2 0 32682016768 0 part /var/spool 

Параметр -b указывает, что он выводит размер в байтах.

Чтобы получить точное значение общего размера прогона раздела:

 awk '{print $1*512}' /sys/class/block/mmcblk0p1/size