У меня происходит что-то странное. Обычно я использовал df, чтобы показать текущее свободное место на моем жестком диске, и заметил, что у меня заканчивается домашний раздел. Поэтому я открыл gparted и увидел, что у меня больше, чем было показано с помощью df. Это разница в 5%, почти в 2 ГБ. Я собираюсь попробовать использовать testdisk, чтобы увидеть, если что-то не так.

Вот fdisk -l

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x11a8ba38

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1              63    10233404     5116671    b  W95 FAT32
/dev/sda2        10233405   231239679   110503137+   7  HPFS/NTFS/exFAT
/dev/sda3       231241726   312580095    40669185    5  Extended
/dev/sda5       308385792   312580095     2097152   82  Linux swap / Solaris
/dev/sda6       243032064   308383743    32675840   83  Linux
/dev/sda7       231241728   243030015     5894144   83  Linux

Partition table entries are not in disk order

и расстались -l:

Model: ATA TOSHIBA MK1652GS (scsi)
Disk /dev/sda: 160GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system     Flags
 1      32.3kB  5240MB  5239MB  primary   fat32
 2      5240MB  118GB   113GB   primary   ntfs
 3      118GB   160GB   41.6GB  extended
 7      118GB   124GB   6036MB  logical   ext4
 6      124GB   158GB   33.5GB  logical   ext4
 5      158GB   160GB   2147MB  logical   linux-swap(v1)

df -h показывает:

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             4.9G  4.1G  860M  83% /media/sda1
/dev/sda2             106G   86G   21G  81% /media/sda2
/dev/sda6              31G   29G  807M  98% /media/sda6
/dev/sda7             5.6G  3.8G  1.6G  71% /media/sda7

sda1 - это раздел восстановления для ноутбука, sda2 - это раздел Windows, sda6 - это /home, а sda7 - root.

Как вы можете видеть на скриншоте ниже, и sda1, и sda2 хорошо работают с df, а 6 и 7 (в расширенном разделе) - нет. :/

gparted показывает:gparted screenshot

cfdisk жалуется на: FATAL ERROR: Bad logical partition 6: enlarged logical partitions overlap чего раньше никогда не было. Это начало происходить после того, как я использовал liveUSB для использования gparted для изменения размера и перемещения разделов. Он не смог сжать файловую систему на моем разделе Windows, а затем, когда он обновился, все выглядело нормально.

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

РЕДАКТИРОВАТЬ: Итак, я в partedmagic, тестовый диск говорит мне:

Disk /dev/sda - 160 GB / 149 GiB - CHS 19457 255 63
Current partition structure:
     Partition                  Start        End    Size in sectors

 1 P FAT32                    0   1  1   636 254 63   10233342 [PQSERVICE]
 2 P HPFS - NTFS            637   0  1 14394   1  7  221006275 [XP]
 3 E extended             14394  33 38 19457  53 52   81338370

Bad sector count.

Поэтому я думаю, что это нужно как-то исправить, я посмотрю, смогу ли я это исправить с помощью того, что я знаю о testdisk

df без читабельной команды показывает это:

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1              5106660   4226416    880244  83% /media/sda1
/dev/sda2            110503132  89294228  21208904  81% /media/sda2
/dev/sda6             32164696  29691780    839128  98% /media/sda6
/dev/sda7              5801560   3902728   1604128  71% /media/sda7

32164696 - 29691780!= 839128, где-то что-то идет не так.

Нашел ответ на то, что происходит здесь: https://askubuntu.com/a/48511 от Google, под руководством некоторых хороших идей от Майка. Я чувствую себя глупо.

4 ответа4

0

Как сказал Майк, в разделе ext4 зарезервировано некоторое пространство только для пользователя root, чтобы пользователи, не являющиеся пользователями root, не могли заполнять жесткий диск. Более подробная информация об этом в комментариях к этому ответу на сайте askubuntu: https://askubuntu.com/a/48511.

Если вы не чувствуете, что вам это нужно (как один пользователь на этом компьютере, я не хочу), вы можете удалить эти зарезервированные блоки с помощью tune2fs:

tune2fs -m 0 /dev/XXX

где XXX - раздел, из которого вы хотите удалить зарезервированные блоки.

0

Я не знаю, как решить вашу проблему, но я помню, что когда я разбивал свой жесткий диск, одним из вариантов было то, сколько места было зарезервировано для пользователя root, и по умолчанию было 5%. Я думаю, что идея заключается в том, что даже если у вас (как у обычного пользователя) не хватает места, компьютер не падает, потому что все важные вещи выполняются с правами root и имеют дополнительные 5% пространства.

0

В то время как ошибка сектора может быть проблемой, недостающее дисковое пространство просто из разных модулей, используемых различными утилитами.

gparted использует гибибайты, а df использует гигабайты.

31.16Gib = 31.16 x 1024 x 1024 x 1024 байта или 33457795235

Гигабайт составляет 1000000000 байт, поэтому 33457795235/1000000000 = 33,5 ГБ при округлении.

0

Я не знаю подробностей реализации df , ext{2|3|4} или gparted , но могу вам сказать, что измерение свободного места в файловой системе не всегда бывает бесполезным. Я могу представить некоторые обстоятельства, при которых два человека (или программы) могут не согласиться с тем, сколько свободного места имеется для какой-то гипотетической файловой системы.

  1. Учтите, что файловые системы выделяют пространство в более крупном размере, чем размеры файлов. Если ваша файловая система размещается в блоках размером x , а ваш файл имеет размер x x + 1 байт, то будет выделено 2x , а x - 1 пустого места. Это пространство "бесплатно"? Ваша файловая система никогда не будет использовать его, если вы не измените длину файла, но наивная программа может только подсчитывать размеры файлов и, таким образом, занижать объем используемого пространства / переоценивать количество свободных байтов.

  2. Представьте себе обстоятельства, когда драйвер файловой системы вашего ядра может иметь некоторые функции времени выполнения, которые создают видимость менее доступного пространства. Например, он мог бы перераспределить некоторое пространство для открытых в данный момент файлов, которые записываются, чтобы обеспечить непрерывное распределение в случае, если вы можете добавить файл. Или, возможно, какое-то место отведено для журнала или других метаданных. Я могу представить себе, что понятие драйвера вашей файловой системы о пространстве отличается от того, что было записано на диск.

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

  4. Может быть некоторое пространство, помеченное как "используемое" (так что никакие будущие выделения не будут использовать это пространство), но не упомянутое каким-либо узлом. Это может указывать на что-то странное (сбои ввода-вывода? плохой диск?). Я думаю, что программы fsck обычно проверяют подобные вещи.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .