Как просмотреть нераспределенное свободное место на жестком диске через терминал

Я хочу просмотреть нераспределенное свободное место на жестком диске через терминал. Я сжег свои мозги, ища в Интернете возможное решение, но все напрасно.

Я использовал всевозможные команды, такие как df, du, fdisk, parted и т. д. Он сообщает мне о смонтированных и размонтированных дисках, но как насчет нераспределенного пространства, которое я оставил свободным?

Конечно, я могу просмотреть его с помощью приложения «Дисковая утилита», предоставленного Fedora, но, поскольку мне ОЧЕНЬ нравится быть в терминале, я бы хотел просмотреть его.

Может ли кто-нибудь помочь мне с решением?


person AnnGM    schedule 07.09.2012    source источник
comment
У вас может быть неправильное представление о свободном пространстве. Не забывайте о накладных расходах и помните, что файлы open(2)-ed, но unlink(2)-ed по-прежнему занимают место на диске.   -  person Basile Starynkevitch    schedule 08.09.2012
comment
Это может считаться не относящимся к теме переполнения стека. Вы можете спросить об этом в Unix.SE или привилегированном пользователе (но сначала найдите его там!).   -  person Eliah Kagan    schedule 09.01.2013
comment
Я думаю, что ошибка сервера (serverfault.com) была бы более подходящей.   -  person a1an    schedule 25.07.2013


Ответы (13)


Используйте команду GNU parted и print free:

root@sandbox:~# parted
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print free
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 64.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system  Flags
        32.3kB  1049kB  1016kB            Free Space
 1      1049kB  256MB   255MB   primary   ext2         boot
        256MB   257MB   1048kB            Free Space
 2      257MB   64.4GB  64.2GB  extended
 5      257MB   64.4GB  64.2GB  logical                lvm
        64.4GB  64.4GB  1049kB            Free Space
person Burhan Khalid    schedule 09.01.2013
comment
какую команду я должен сделать, чтобы использовать свободное место? - person user2739179; 14.11.2014
comment
Это бит после (parted), это ваша подсказка, поэтому следующая команда: print free - person Tisch; 11.07.2017
comment
Команда для использования/восстановления этого свободного места зависит от того, где находится это свободное пространство, между существующими разделами и какие разделы у вас есть (основные, расширенные), а также от того, используете ли вы LVM или нет. Нетривиально просто запустить простую команду, которая будет читать ваши мысли и знать, что вы на самом деле хотите сделать с этим свободным пространством :) - person Mladen B.; 04.03.2021

Увидеть в ТБ:

# parted /dev/sda unit TB print free | grep 'Free Space' | tail -n1 | awk '{print $3}'

Чтобы увидеть в ГБ:

# parted /dev/sda unit GB print free | grep 'Free Space' | tail -n1 | awk '{print $3}'

Чтобы увидеть в МБ:

# parted /dev/sda unit MB print free | grep 'Free Space' | tail -n1 | awk '{print $3}'

Чтобы увидеть в байтах:

# parted /dev/sda unit B print free | grep 'Free Space' | tail -n1 | awk '{print $3}'

Чтобы увидеть в %:

# parted /dev/sda unit '%' print free | grep 'Free Space' | tail -n1 | awk '{print $3}'

Чтобы увидеть в секторах:

# parted /dev/sda unit s print free | grep 'Free Space' | tail -n1 | awk '{print $3}'

Измените /dev/sda на любое устройство, информацию о котором вы пытаетесь найти. Если вы используете результат в каких-либо вычислениях, обязательно обрежьте завершающие символы.

person user2618594    schedule 25.07.2013

Это старый вопрос, но я также хотел дать свой ответ.

Поскольку мы говорим о свободном доступном пространстве, мы должны говорить о секторах, поскольку не выполняется ни разбиение, ни определение размеров секторов.

Для нас, людей, это не имеет особого смысла. Чтобы получить удобочитаемую информацию, мы должны перевести это число в байты. Итак, у нас есть уже разбитый на разделы диск, и мы хотим знать, сколько места мы можем использовать. Лично мне не нравится решение parted, потому что моя мозговая память для команд уже занята. Также есть cfdisk, который дает вам свободное место. Но я думаю, что fdisk - самое быстрое решение: это просто и понятно, ничего не нужно устанавливать: выполните fdisk /dev/sdx, а затем введите v в интерактивную оболочку. Это даст вам количество секторов, которые еще свободны.

2004-54-0 [17:03:33][root@minimac:~]$> fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).
..
Command (m for help): v
Remaining 1713 unallocated 512-byte sectors

У нас осталось 1713 секторов по 512 байт каждый. Итак, поскольку вы любите терминал (в 2012 году, кто знает сейчас?), мы делаем echo $(((1713*512)/1024))k, что составляет 1713 секторов, умноженных на 512 байт (делим на 1024, чтобы получить КБ), что дает 856k.. даже не 900 КБ.. и мне нужно другой диск..

person nnsense    schedule 13.11.2015
comment
Благодаря @The Tin Man мой ответ имеет лучшую английскую грамматику. Один из многих языков, которые мне еще предстоит улучшить ;) - person nnsense; 15.01.2017
comment
Как узнать начало и конец нераспределенного? - person alhelal; 03.06.2017

В дополнение ко всем ответам о том, как найти неразделенное пространство, у вас также может быть пространство, выделенное для тома LVM, но фактически не используемое. Вы можете перечислить физические тома с помощью pvdisplay и посмотреть, с какими группами томов связан каждый физический том. Если физический том не связан с какой-либо группой томов, его можно безопасно перераспределить или уничтожить. Предполагая, что он связан с группой томов, следующим шагом будет использование vgdisplay для их отображения. Помимо прочего, это покажет, есть ли у вас свободные «физические экстенты» — блоки памяти, которые вы можете назначить логическому тому. Вы можете получить это в сжатой форме с помощью vgs:

$ sudo vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  fedora   1   3   0 wz--n- 237.46g    0 

... и здесь вы можете видеть, что у меня нет ничего бесплатного. Если бы я это сделал, то последнее число было бы больше нуля.

Это важно, потому что это свободное пространство невидимо для du, df и т. п., а также будет отображаться как выделенный раздел, если вы используете fdisk или другой инструмент для создания разделов.

person mattdm    schedule 15.01.2017
comment
vgdisplay действительно был для меня ответом, так как сегодня для большинства установщиков отличным вариантом является использование зашифрованного LVM, который создает группы томов с логическими томами внутри. Затем при перемещении пространства вокруг нераспределенное пространство находится в группе томов, а не в разделах физического тома. - person 13013SwagR; 01.04.2021

Просто следуйте ниже.

  • узнать тип dev, будь то /dev/sda /dev/hda /dev/vda и т.д.

  • найдите vi /etc/fstab и узнайте смонтированные разделы и там UUID и т.д.

  • скажем, ваш жесткий диск помечен как /dev/sda, и вы знаете номер /dev/sda в df -hT

тогда вам нужно выяснить, что осталось /dev/sda* правильно.

so,

fdisk -l /dev/sda* даст ВСЕ /dev/sda* и вы найдете, например, /dev/sda4 или /dev/sda5

затем узнайте UUID смонтированных разделов, а те, которые не указаны в /etc/fstab, — это те, которые вы можете отформатировать и смонтировать.

просто следи за этим. достаточно мудрого мира.

person Ugitha    schedule 09.03.2014

При использовании дисковой утилиты графически она показывает дисковое пространство, используемое всей файловой системой, и использует команды в терминале, такие как df -H. Другими словами, он использует степени 1000, а не 1024. (Примечание: между -h и -H есть разница.)

При поиске нераспределенного пространства на жестком диске с помощью командной строки # fdisk /dev/sda будет отображаться общее пространство и общее значение цилиндра.

Теперь проверьте значение последнего цилиндра и вычтите его из общего значения цилиндра. Следовательно, окончательное значение * 1000 дает вам нераспределенное дисковое пространство.

Примечание: значение цилиндра отображается в df -H как степень 1000 или может также отображаться с использованием df -h, как степень 1024.

person avinash    schedule 18.03.2015

У меня была такая же проблема с разделами Fedora 26 и LVM, кажется, я забыл что-то проверить во время установки. Итак, мой корневой каталог 15G был увеличен до 227G, как мне было нужно.

Я разместил шаги, которые я выполнил здесь:

resize2fs: неправильное магическое число в суперблокировка при попытке открытия

0) #df -h

Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 1.9G     0  1.9G   0% /dev
tmpfs                    1.9G     0  1.9G   0% /dev/shm
tmpfs                    1.9G  824K  1.9G   1% /run
tmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/fedora-root   15G  2.1G   13G  14% /
tmpfs                    1.9G     0  1.9G   0% /tmp
/dev/md126p1             976M  119M  790M  14% /boot
tmpfs                    388M     0  388M   0% /run/user/0

1) # vgs

  VG     #PV #LV #SN Attr   VSize   VFree   
  fedora   1   2   0 wz--n- 231.88g 212.96g

2) # vgdisplay

  --- Volume group ---
  VG Name               fedora
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               231.88 GiB
  PE Size               4.00 MiB
  Total PE              59361
  Alloc PE / Size       4844 / 18.92 GiB
  Free  PE / Size       54517 / 212.96 GiB
  VG UUID               9htamV-DveQ-Jiht-Yfth-OZp7-XUDC-tWh5Lv

3) # lvextend -l +100%FREE /dev/mapper/fedora-root

  Size of logical volume fedora/root changed from 15.00 GiB (3840 extents) to 227.96 GiB (58357 extents).
  Logical volume fedora/root successfully resized.

4) #lvdisplay

5) #fd -h

6) # xfs_growfs /dev/mapper/fedora-root

meta-data=/dev/mapper/fedora-root isize=512    agcount=4, agsize=983040 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1 spinodes=0 rmapbt=0
         =                       reflink=0
data     =                       bsize=4096   blocks=3932160, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 3932160 to 59757568


7) #df -h

Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 1.9G     0  1.9G   0% /dev
tmpfs                    1.9G     0  1.9G   0% /dev/shm
tmpfs                    1.9G  828K  1.9G   1% /run
tmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/fedora-root  228G  2.3G  226G   2% /
tmpfs                    1.9G     0  1.9G   0% /tmp
/dev/md126p1             976M  119M  790M  14% /boot
tmpfs                    388M     0  388M   0% /run/user/0

С наилучшими пожеланиями,

person 200313    schedule 08.03.2018

Самый простой способ показать нераспределенное свободное пространство одной командой:

$ sudo sfdisk --list-free /dev/sdX

(Добавьте параметр --quiet, если вам не нужна дополнительная информация о размере сектора и т. д.)

person AaronDanielson    schedule 07.11.2018
comment
Это здорово, спасибо. Если вы не укажете диск, он будет перечислять их все! - person grilix; 23.05.2021

Простое решение ответа:

parted /dev/sda

Отображение справки по устройству. Затем переключите его на нужные единицы.

Чтобы показать свободное место на устройстве, используйте:

print free
person cwilli    schedule 09.08.2016
comment
он не будет печатать свободное пространство. - person ji-ruh; 11.04.2018

Если вам нужно увидеть ваши разделы и/или файловые системы с доступным пространством, упомянутые утилиты - то, что вам нужно. Вам просто нужно использовать опции.

Например: df -h напечатает вам эту информацию в «удобочитаемой» форме. Если вам нужна информация только о свободном пространстве, вы можете использовать: df -h | awk '{print $1" "$4}'.

person Rastislav Hasicek    schedule 07.09.2012
comment
Спасибо за ответ. Но я спрашиваю не о доступном пространстве на смонтированных дисках. Позвольте мне объяснить это более подробно. У меня HD 500 ГБ. 150 ГБ — это Win7 (диск C), 255 ГБ — Win7 (диск D). 65 ГБ - это Fedora со всеми разделами, такими как (/ boot, / root и т. Д.). теперь, если вы подсчитаете, на моем жестком диске осталось место, где ничего не смонтировано, IOW на этом свободном месте нет файловой системы, ни Linux, ни Windows / Dos. вот почему я использовал термин «нераспределенное свободное пространство». - person AnnGM; 07.09.2012

Вы можете использовать команду fdisk -l /dev/sda, чтобы просмотреть разделы вашего sda диска. «Свободное место» должно быть каким-то неиспользуемым разделом (или его отсутствием).

person Basile Starynkevitch    schedule 07.09.2012
comment
Я использовал эту команду ранее, сэр, но результаты показывают то же, что и раньше. то есть только смонтированные пробелы. Может быть, я думаю, что это то, где терминалы Linux терпят неудачу. Я искал множество команд и использовал их множество комбинаций, но безрезультатно. - person AnnGM; 08.09.2012
comment
Нет, fdisk показывает разделы диска. Если свободное место не отображается, значит, у вас его нет. - person Basile Starynkevitch; 08.09.2012
comment
извините за опоздание. Хорошо, я покажу вам разделы диска, показанные Disk Analyser. вот ссылка i48.tinypic.com/293j5f4.png - person AnnGM; 13.09.2012

Размер файловой системы может отличаться от размера раздела. Для ремонта нужно сделать это

df -h

посмотри как называется раздел скажем /dev/sda3

resize2fs /dev/sda3

person Drl Sherif Omran    schedule 26.12.2017

когда вы разбиваете диск на разделы с помощью fdisk, вы можете быть осторожны, чтобы не оставить пробелов со свободным пространством. Таким образом, команда автоматически выравнивает разделы, и вы получите некоторые промежутки между частями. В нете много статей, зачем это нужно. Причина в том, что он дает решение с меньшим количеством ошибок. Это было много лет назад. Теперь я не знаю, возникают ли ошибки, если вы делаете все без пробелов. Но сначала. Вы можете сделать это, если не разрешаете выравнивание, которое вы отправили: начало следующей части = конец предыдущей+1. Но первая часть всегда начинается с 2048 сектора. Так что позвонив в экспертную часть, вы можете изменить его на 0. Но настоятельно рекомендуется сделать это, если вы планируете загружаться с этого диска. Если только для данных, вы получите 1 Мб дополнительного места на диске. Это пространство MBR. Если вы планируете устанавливать ОС на этот диск, вы не используете тип раздела GPT. Также это больше подходит не для всех ОС, которые видят GPT-части дисков. Но некоторые их видят. Если вы не уверены, используйте msdos. При форматировании размер блока 4096 байт (логический), физический 512 байт. Я этого не делаю, но вы также можете установить размер блока = 512. Об этом было много дискуссий. Это приводит к ошибкам диска. Но вы также освободите место на диске, особенно если у вас много файлов небольшого размера. Ваш диск заполнится более компактно. И если вы даете уже разбитый на разделы диск с заполненными данными и, возможно, установленной ОС, вы, возможно, захотите это сделать, это будет очень проблематично сделать. Но возможно для Linux. Для Windows нет ... Вы также должны сохранить резервную копию и mbr, написать UUID для каждой части, затем использовать fdisk и форматировать в качестве правильной настройки UUID и LABEL для каждой части, восстановить mbr с помощью команды dd, и если вы не сделаете ничего неправильно, все будет работать как раньше, но без пробелов.

person Anatoly    schedule 20.07.2017
comment
Пожалуйста, разбейте свой ответ на абзацы, возможно, выделяя наиболее важные части жирным шрифтом. Сейчас это длинная стена текста. - person Adam Michalik; 20.07.2017