如何通过终端查看硬盘上未分配的可用空间



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

我使用了各种命令,如dfdufdiskparted等。它告诉我装载和卸载的磁盘,但我留下的空闲未分配空间又如何呢?

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

有人能帮我解决问题吗?

使用GNU partedprint 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

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

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

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

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

除了关于如何查找未分区空间的所有答案外,您可能还将空间分配给LVM卷,但实际未使用。您可以使用pvdisplay列出物理卷,并查看每个物理卷与哪些卷组相关联。如果物理卷没有与任何卷组关联,则可以安全地重新分配或销毁。假设it与卷组关联,则下一步是使用vgdisplay来显示这些卷组。除其他外,这将显示您是否有任何可用的"物理扩展数据块",即可以分配给逻辑卷的存储块。您可以使用vgs:以简洁的形式获得此信息

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

在这里你可以看到我什么都没有。如果我这样做了,最后一个数字会大于零。

这一点很重要,因为对于dudf等,可用空间是不可见的,并且如果您使用fdisk或其他分区工具,可用空间也将显示为已分配的分区。

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

尊敬的

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

既然我们谈论的是空闲可用空间,我们就应该谈论扇区,因为没有对扇区进行分区或调整大小。

对我们人类来说,这没有多大意义。为了获得人类可读的信息,我们必须将这个数字转换成字节。因此,我们已经对磁盘进行了分区,我们想知道我们可以使用多少空间。我个人不喜欢parted解决方案,因为我的大脑对命令的记忆已经被占用了。还有cfdisk,它给你自由的空间。但我认为fdisk是最快的解决方案:它简单明了,无需安装:执行fdisk /dev/sdx,然后在交互式shell中输入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得到KB),得到856k。。甚至不到900 KB。。我需要另一张磁盘。。

请按照下面的操作。

  • 找出dev类型,是否为/dev/sda/dev/hda/dev/vda等

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

  • 例如,您的硬盘被标记为/dev/sda,并且您知道df-hT 下/dev/sda的编号

然后您需要找出剩余的/dev/sda*。

所以,

fdisk-l/dev/sda*将给出ALL/dev/sda*-例如,您会发现/dev/sda4或/dev/sda5

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

就这样吧。一个明智的世界就足够了。

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

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

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

注意:圆柱体值在df -H中显示为1000的幂,也可能使用df -h显示为1024的幂。

答案的简单解决方案:

parted /dev/sda

显示有关单元的帮助。然后将其切换到所需的单位。

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

print free

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

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

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

文件系统大小可以与空间大小不同。要修复你需要做这个

df-h

看看分区的名称是什么,比如/dev/sda3

resize2fs/dev/sd3

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

最新更新