df удобочитаемый расчет

Если вы еще не знакомы, вам следует внимательно изучить pkgsrc . pkgsrc - это мощный инструмент, который активно развивается, широко поддерживается и выполняет именно этот тип управления пакетами.

Вы можете найти пример make-файла здесь , чтобы начать работу.

2
14.08.2015, 05:21
1 ответ

POSIX определяет «общее пространство» как:

The total size of the file system in 512-byte units. The exact meaning of this figure is implementation-defined, but should include "space used", "space free", plus any space reserved by the system not normally available to a user.

На примере моей файловой системы Raspberry Pi:

$ df -Ph /
Filesystem      Size  Used Avail Use% Mounted on
/dev/mmcblk0p2   14G  7.3G  5.8G  56% /

Но,

$ df -P /
Filesystem     1024-blocks    Used Available Use% Mounted on
/dev/mmcblk0p2    14384136 7628204   6005548  56% /

$ dumpe2fs /dev/mmcblk0p2|grep -e 'Block count:' -e 'Block size:' -e 'Reserved block count:' 
dumpe2fs 1.43.9 (8-Feb-2018)
Block count:              3670016
Reserved block count:     183500
Block size:               4096

Выполнение расчета:

(3670016 - 183500) * 4 / 2**20 = 13.3 # block size
14384136 / 2 ** 20 = 13.7 # df calculation

Это означает, что totalвключает используемое зарезервированное пространство, но не зарезервированное пространство, которое не распределено.

Глядя на исходный код:

static void
get_field_values (...)
{
   bv->available_to_root = fsu->fsu_bfree
  ...
       bv->used = bv->total - bv->available_to_root;

sysvfs:

fsblkcnt_t     f_bfree;    /* Number of free blocks */

Сравните:

fsblkcnt_t     f_bavail;   /* Number of free blocks for
                              unprivileged users */

TL;DR -это зарезервированное свободное пространство, которое составляет разницу между двумя числами. Как отметил @cuonglm, «удобочитаемость» округляется.

1
27.01.2020, 22:21

Теги

Похожие вопросы