Я пытаюсь понять разницу между выходными данными fdisk -l
и df -h
. Как я понимаю, fdisk
показывает размер раздела, а df
показывает размер файловой системы.
Моя проблема в том, что у меня есть несоответствие между размером раздела и размером файловой системы.
из fdisk -l
, мы можем видеть, что размер раздела, установленного на /dev/sda5/
, составляет 797,2 ГБ.
# fdisk -l
Disk /dev/sda: 894.3 GiB, 960197124096 bytes, 1875385008 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xab99345d
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 197509119 197507072 94.2G 83 Linux
/dev/sda2 197511166 1875384319 1677873154 800.1G 5 Extended
/dev/sda5 197511168 1869383679 1671872512 797.2G 83 Linux
/dev/sda6 1869385728 1875384319 5998592 2.9G 82 Linux swap / Solaris
Partition 2 does not start on physical sector boundary.
Disk /dev/sdb: 894.3 GiB, 960197124096 bytes, 1875385008 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
из df
мы видим, что размер файловой системы составляет 784 ГБ.
# df -h
Filesystem Size Used Avail Use% Mounted on
udev 32G 0 32G 0% /dev
tmpfs 6.3G 808K 6.3G 1% /run
/dev/sda1 93G 12G 76G 14% /
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda5 784G 70M 744G 1% /var/lib/test
tmpfs 6.3G 0 6.3G 0% /run/user/900
У меня есть 744G свободного места. Это нормально, потому что 5% файловой системы (784) зарезервированы.
Подвести итог:
fdisk -l
: 797,2G
df -h
: 784
Где находятся недостающие 13GiB?
edit :
Я использовал pxe preseed для создания разделов:
d-i partman/alignment select optimal
d-i partman-auto/disk string /dev/sda
d-i partman-auto/expert_recipe string \
boot-root :: \
500 10000 1000000000 ext4 \
$primary{ } $bootable{ } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ / } \
. \
856000 1000 856000 ext4 \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /var/lib/test } \
. \
64 512 300% linux-swap \
method{ swap } format{ } \
.
d-i partman-auto/method string regular
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
Я запускаю lsblk
. (
#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 894.3G 0 disk
├─sda1 8:1 0 94.2G 0 part /
├─sda2 8:2 0 1K 0 part
├─sda5 8:5 0 797.2G 0 part /var/lib/test
└─sda6 8:6 0 2.9G 0 part [SWAP]
sdb 8:16 0 894.3G 0 disk
Спасибо.
У Вас всегда будет различие в выводе
~$ sudo fdisk -l
Device Boot Start End Sectors Size Id Type
/dev/sda6 378750976 625139711 246388736 117.5G 83 Linux
и
~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda6 116G 61M 110G 1% /media/datam
В моем случае здесь у меня есть различие приблизительно 1,5 ГБ, которое составляет приблизительно 1,3% размера раздела.
Для определения реального размера файловой системы, можно использовать
~$ sudo tune2fs -l /dev/sda6
Block count: 30798592
Block size: 4096
Мы видим, что файловая система и раздел имеют тот же размер здесь:
Filesystem size is 30798592 × 4096 = 126151032832 > 117.487304688 GiB
Partition size is 246388736 x 512 = 126151032832
От man df
:
df displays the amount of disk space available on the file system
Так df
не отображает размер файловой системы, он отображает размер, который доступен пользователям. Некоторое пространство в файловой системе резервируется для файловой системы (например, Журнал) и не доступно пользователям, таким образом не отображенным.
Когда я вычислю с 1,3%, это даст различие приблизительно на 10,4 ГБ для раздела на 800 ГБ, это довольно около суммы пространства, которое Вы пропускаете, это не потеряно в пространстве, это - издержки файловой системы.
Примечание: Я разделил вывод команды в своих примерах к соответствующим строкам для хранения этого опрятным.
Пространство зарезервировало для корня:
Зарезервированное место для корня является свободным, но только для пользовательского корня. df
дисплеи эта сумма пространства, как используется, запутывающая вещь, это df
отображает те же значения, работаете ли Вы df
как базируются или как другой пользователь. В конфигурации по умолчанию 5% пространства будут зарезервированы для корня (см. причины здесь). Возможно уменьшить эту сумму пространства, что я думаю, имеет смысл для Вашего довольно большого раздела, таким образом, больше места будет доступно другим пользователям. Не стесняйтесь уменьшать пространство, зарезервированное для корня к одному или двум процентам с
sudo tune2fs -m X /dev/sda5
Замена X
с желаемым зарезервированным процентом блоков. Никакая потребность размонтировать раздел, это может быть сделано онлайн. Если Вы хотите увеличить зарезервированный процент блоков, необходимо удостовериться, что достаточно свободного пространства оставляют на разделе. Изменение будет immediatly вступать в силу.