62

我想通过终端查看硬盘上未分配的可用空间。我绞尽脑汁在互联网上寻找可能的解决方案,但都是徒劳的。

我使用了各种命令,如df, du, fdisk,parted等。它告诉我已安装和卸载的磁盘,但我留下的未分配空间呢?

当然,我可以使用 Fedora 提供的“磁盘工具”应用程序查看它,但由于我喜欢在终端中查看,所以我想在其中查看。

谁能帮我解决一下?

4

13 回答 13

86

使用 GNUpartedprint 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
于 2013-01-09T06:01:33.933 回答
25

在 TB 中查看:

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

在 GB 中查看:

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

以 MB 为单位查看:

# 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为您尝试查找有关信息的任何设备。如果您在任何计算中使用结果,请确保修剪尾随字符。

于 2013-07-25T12:13:45.300 回答
5

除了有关如何查找未分区空间的所有答案之外,您还可能有分配给 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

于 2017-01-15T16:27:56.877 回答
4

这是一个老问题,但我也想给出我的答案。

由于我们谈论的是可用空间,所以我们应该谈论扇区,因为没有进行扇区的分区或调整大小。

对于我们人类来说,这没有多大意义。为了获得人类可读的信息,我们必须将此数字转换为字节。所以,我们有一个已经分区的磁盘,我们想知道我们可以使用多少空间。我个人不喜欢这个parted解决方案,因为我对命令的大脑记忆已经被占用了。还有cfdisk,它为您提供自由空间。但我认为 fdisk 是最快的解决方案:它简单明了,无需安装:执行fdisk /dev/sdx然后进入v交互式 shell。它将为您提供仍然免费的扇区数量。

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 得到 KB),得到 856k.. 甚至没有 900 KB.. 我需要另一个磁盘..

于 2015-11-13T16:23:44.283 回答
4

我在 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

此致,

于 2018-03-08T23:50:53.957 回答
4

在单个命令中显示未分配的可用空间的最简单方法:

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

--quiet(如果您不需要有关扇区大小等的额外信息,请添加该选项。)

于 2018-11-07T20:11:17.263 回答
3

以图形方式使用磁盘实用程序时,它会显示所有文件系统使用的磁盘空间,并使用终端中的命令,例如df -H. 换句话说,它使用 1000 的幂,而不是 1024。(注意:-h和之间有区别-H。)

同时使用命令行查找硬盘中未分配的空间 # fdisk /dev/sda将显示总空间和总柱面值。

现在检查最后一个气缸值并将其从总气缸值中减去。因此,最终值 * 1000 为您提供未分配的磁盘空间。

注意:柱面值显示df -H为 1000 的幂,或者也可能使用df -h1024 的幂显示。

于 2015-03-18T09:46:19.943 回答
3

只需遵循以下。

  • 找出开发类型,是否是 /dev/sda /dev/hda /dev/vda 等。

  • 查找 vi /etc/fstab 并找出已安装的分区和 UUID 等

  • 比如说,你的硬盘被标记为 /dev/sda 并且你知道 df -hT 下 /dev/sda 的数量

那么你需要找出剩余的 /dev/sda* 权利。

所以,

fdisk -l /dev/sda* 将给出所有 /dev/sda* 并且您会发现例如 /dev/sda4 或 /dev/sda5

然后找出已挂载分区的 UUID,那些未列在 /etc/fstab 中的是您可以格式化和挂载的分区。

跟着这个。一个有智慧的世界就足够了。

于 2014-03-09T07:36:46.283 回答
1

答案的简单解决方案:

parted /dev/sda

显示单元帮助。然后将其切换到您想要的单位。

要显示设备上的可用空间,请使用:

print free
于 2016-08-09T21:06:09.257 回答
0

如果您需要查看具有可用空间的分区和/或文件管理器,那么您需要提到的实用程序。你只需要使用选项。

例如:df -h将以“人类可读”的形式打印这些信息。如果您只需要有关可用空间的信息,您可以使用:df -h | awk '{print $1" "$4}'.

于 2012-09-07T09:08:18.360 回答
0

您可能希望使用该fdisk -l /dev/sda命令查看sda磁盘的分区。“可用空间”应该是一些未使用的分区(或缺少)。

于 2012-09-07T21:52:44.760 回答
0

文件系统大小可以与分区大小不同。要修复你需要这样做

df -h

看看分区的名称是什么说 /dev/sda3

resize2fs /dev/sda3

于 2017-12-26T04:04:14.190 回答
-1

当您通过 fdisk 将磁盘切割成分区时,您可能要小心,以免留下可用空间的间隙。所以命令会自动对齐分区,你会得到部分之间的一些间隙。网上有很多文章为什么需要这样做。原因是它提供了错误更少的解决方案。那是很多年前的事了。现在我不知道如果你没有任何间隙地做所有事情,是否会发生错误。但首先。如果您不允许对齐,您可以这样做,您下一部分的开始 = 结束前一个 +1。但第一部分总是从 2048 扇区开始。所以调用专家部分,您可以将其设置为 0。但如果您打算从该磁盘启动,强烈建议您这样做。如果仅用于数据,您将获得 1 Mb 的额外磁盘空间。这是一个 MBR 空间。如果您打算在此磁盘上安装操作系统,则不要使用 GPT 分区类型。还有它' s 更适合并非所有操作系统都看到磁盘的 GPT 部分。但有些人看到了他们。如果你不确定它使用 msdos。格式化块大小为 4096 字节(逻辑),物理块大小为 512 字节。我不这样做,但你也可以设置块大小=512。对此进行了很多讨论。这会导致磁盘错误。但是您也会提供一些可用的磁盘空间,尤其是当您有许多小文件时。您的磁盘将更紧凑地填充。如果你给已经分区的磁盘填充了数据并且可能已经安装了操作系统,你可能想要这样做,这是非常有问题的。但对于 Linux 来说是可能的。对于 Windows 不...您也必须保存备份和 mbr,写入每个部分的 UUID,然后使用 fdisk 和 format 为每个部分设置正确的 UUID 和 LABEL,使用 dd 命令恢复 mbr,如果您不这样做'

于 2017-07-20T10:46:19.983 回答