Почему размер раздела и вывод df разные?


16

У меня есть раздел / dev / sda1.
Дисковая утилита показывает, что она имеет емкость 154 ГБ.
df -h показывает

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             123G  104G   14G  89% /
devtmpfs             1006M  280K 1006M   1% /dev
none                 1007M  276K 1006M   1% /dev/shm
none                 1007M  216K 1006M   1% /var/run
none                 1007M     0 1007M   0% /var/lock
none                 1007M     0 1007M   0% /lib/init/rw

Почему результаты разные? Где недостающие 31 ГБ?


3
Пожалуйста, опубликуйте вывод fdisk -l /dev/sda(запустите от имени пользователя root).
Жиль "ТАК - перестань быть злым"

2
Какую файловую систему вы используете? Если это ext2 / 3/4, то вы можете использовать его tune2fs -l /dev/sda1для проверки. Посмотрите на количество блоков и размер блоков и умножьте их, чтобы получить размер файловой системы. Также, fdisk -s /dev/sda1чтобы получить размер раздела в 1к-блоках. Умножьте это на 1024, чтобы получить размер в байтах. Это число должно быть только немного больше, чем файловая система. На моем разделе ext4 40 ГБ он на 3072 байта больше. Если ваша файловая система странно меньше, вы можете попробовать изменить ее размер. Для ext2 / 3/4 используйте resize2fs /dev/sda1. Вы можете сделать это при обычном использовании компьютера.
penguin359

@Gilles sudo fdisk -l / dev / sda показывает (я выкладываю только раздел sda1, потому что другие нас не интересуют). Идентификатор начала и конца блоков загрузки устройства Система / dev / sda1 1 18706 150253568 83 Linux
xralf

@ penguin359 У меня есть файловая система ext4. число блоков = 32668162, размер блока = 4096, 32668162 * 4096 = 133808791552, fdisk -s / dev / sda1 * 1024 = 153859653632. Кажется, что это странно меньше. Могу ли я изменить его размер без потери данных? Чем вызвано, что оно меньше?
xralf

@xralf: изменение размера должно быть безопасным, я никогда не терял данные, делая это. Возможно, было бы немного безопаснее сделать это с несмонтированным разделом, например с live cd. Но все же, сначала сделайте резервную копию. Всегда делайте резервную копию, прежде чем приступить к основным действиям администратора системы.
Фахим Митха

Ответы:


25

Одна из причин, по которой емкость разделов может отличаться, заключается в том, что некоторое пространство зарезервировано для root, если разделы заполнены. Если для root не выделено место и разделы заполнены, система не сможет функционировать. Однако эта разница обычно составляет порядка 1%, поэтому это не объясняет разницу в вашем случае. Со страницы руководства для df

Если аргумент является абсолютным именем файла узла дискового устройства, содержащего смонтированную файловую систему, df показывает пространство, доступное в этой файловой системе, а не в файловой системе, содержащей узел устройства (который всегда является корневой файловой системой).

Таким образом, df действительно показывает размер вашей файловой системы, который обычно является размером устройства, но это может быть не так в вашем случае. Ваша файловая система распространяется на весь ваш раздел?

Имеет ли

resize2fs /dev/sda1

есть какая-то разница? Эта команда пытается увеличить вашу файловую систему, чтобы охватить весь раздел. Но убедитесь, что у вас есть резервная копия, если вы попробуете это.


>> Ваша файловая система распространяется на весь раздел? Я думаю так. Это ext4. <br> Что я должен сделать резервную копию? У меня нет никакого дополнительного диска, чтобы сделать большую резервную копию.
xralf

@xralf: (Хорошо, это не по теме с точки зрения этого вопроса, но ...) Если у вас нет резервной копии, настройте ее немедленно. Единственная альтернатива хорошей резервной копии (и это не очень хорошая альтернатива) - это систематическое использование распределенной системы контроля версий и ее перенос в какое-то удаленное место. Но, конечно, вы не можете поставить все под контроль версий, например. СМИ. Пожалуйста, извините, если я занятой человек.
Фахим Митха

@xralf: я бы опубликовал ваши результаты в самом вопросе, его легче увидеть и прочитать.
Фахим Митха

resize2fs - довольно безопасная операция, для нее нет необходимости делать резервную копию (если у вас стабильное питание и вы используете стабильное программное обеспечение). Кстати, количество зарезервированных блоков по умолчанию составляет 5% для файловых систем ext *.
РВС

@rvs: не согласен с бэкапом. Вы правы примерно на 5% по крайней мере в Debian. Я неправильно помню. Но я не знаю, является ли это стандартным для всех дистрибутивов.
Фахим Митха

5

Основное отличие состоит в том, что некоторые вещи говорят, что 1 килобайт равен 1000 байтов, а другие говорят, что 1 килобайт равен 1024 байта.

Дисковая утилита Gnome показывает емкость, используя 1 килобайт = 1000 байт, потому что производители дисков описывают размеры дисков таким образом. Это означает, что емкость вашего диска близка к 154 000 000 000 байт .

С другой стороны, большинство операционных систем говорят, что 1 килобайт = 1024 байта. Все инструменты любят dfи fdiskиспользуют это соглашение. Таким образом, 154 000 000 000 байтов / 1024/1024/1024 = 143,4 ГБ .

Как справедливо указывает jlliagre (и Гиллес подразумевает, когда запрашивает ваш fdiskвывод), дисковая утилита сообщает вам размер всего вашего жесткого диска. Но /dev/sda1это один раздел на вашем жестком диске. Например, на вашем жестком диске, вероятно, есть некоторые другие разделы, такие как раздел 4-8 ГБ для подкачки (также известный как виртуальная память), и загрузочный раздел, который обычно составляет около 100 МБ.

Вы не опубликовали вывод fdisk -l /dev/sda, поэтому давайте предположим, что размер раздела подкачки составляет 8 ГБ. Теперь мы сократились до 135 ГБ .

Затем есть некоторые другие вещи, которые способствуют разнице.

Например, файловая система использует некоторые разделы диска для метаданных. Метаданные - это такие вещи, как имена файлов, права доступа к файлам, какие части раздела принадлежат каким файлам и какие части раздела свободны. В моей системе для этого используется около 2% раздела. Если предположить, что у вас все аналогично, свободное пространство уменьшится до 132 ГБ .

Файловая система также может зарезервировать некоторое пространство, которое может использовать только пользователь root. В моей системе это 5% раздела, поэтому в вашем случае это будет означать общую емкость около 125 ГБ .

Точные числа зависят от того, используете ли вы ext2, ext3, ext4, fat, ntfs, btrfs и т. Д., А также какие параметры использовались при форматировании раздела.

Если вы используете ext2 или ext3, sudo tune2fs -l /dev/sda1может помочь понять, куда идет пространство.


Дисковая утилита показывает ровно емкость 154 ГБ (153 859 653 632 байт).
xralf

>> sudo tune2fs -l / dev / sda1 << Какие параметры подскажут, куда идет пространство?
xralf

2

Вероятно, они используются inode. Некоторая сумма может быть использована MBR.


1
MBR не отображается так, как в цилиндре 0 (даже в первом разделе, который часто начинается в секторе 2048). Однако есть копии суперблока. Тем не менее, это иноды. См. Также: unix.stackexchange.com/questions/13547/… и команды "lsblk / dev / sdX" и "dumpe2fs -h / dev / sdX"
Дэвид Тонхофер,

1

sda1 - это не весь ваш диск, а его первый основной раздел. Возможно, вы создали другие несмонтированные разделы, которые не отображаются в выводе df или просто sda1 по какой-то причине не заполняет все используемое пространство или файловая система не использует все доступное пространство в своем разделе.

fdisk -l скажет вам, как выглядит ваша таблица разделов.


Конечно. Мы говорим только о разделе / ​​dev / sda1, а не обо всем диске.
xralf

Это не было очевидно из вашего вопроса, когда вы обращаетесь к дисковой утилите, не показывая ее вывод. Вы должны отредактировать это, чтобы прояснить это. Рассказ о том, как вы создали / файловую систему, тоже будет полезен.
Jlliagre

Соответствующей частью вывода дисковой утилиты является «емкость раздела sda1 = 154 ГБ».
xralf

Пожалуйста, отредактируйте исходный вопрос, чтобы прояснить это.
Jlliagre
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.