如何在Linux上找到未分配的空间

时间:2020-03-05 15:26:44  来源:igfitidea点击:

未分配的空间是硬盘上未使用的空间,其尚未将其分为卷或者驱动器。
这不是一个分区,只是死了空间。
它可以制作成分区并格式化,或者它可用于扩展它旁边的电流分区。

在本教程中,我将向我们显示命令,可以帮助在Linux系统上查找未分配的空间,以便扩展现有分区或者创建新磁盘。

什么是未分配的空间?

不要混淆自由空间和未分配的空间。
未分配的空间意味着操作系统知道硬盘驱动器上存在物理空间,但尚未分配(分配)到特定的分区,而自由空间意味着操作系统知道我们没有使用所有分配的所有分配特定驱动器或者分区上的空间。

1)显示磁盘扇区

使用fdisk命令,fdisk -l输出中的开始和结束列是启动和结束圆柱。

FDISK -L输出的标题中,我们还可以看到磁盘具有多少圆柱,并且圆筒表示的字节数。
通常,当分配所有磁盘空间时,气缸的值彼此遵循。
如果有一些缺少值,则意味着我们有未分配的磁盘空间。

考虑下面的例子

# fdisk -l /dev/sdf
Disk /dev/sdf: 12.9 GB, 12884901888 bytes, 25165824 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 label type: dos
Disk identifier: 0x7e5db80f
   Device Boot      Start         End      Blocks   Id  System
/dev/sdf1            2048     9766911     4882432   83  Linux
/dev/sdf2        18032550    25165823     3566637   83  Linux

我们可以看到"/dev/sdf1"在扇区'9766911'开始,但是"/dev/sdf2这意味着缺少范围'9766912-18032549',因此磁盘上有未分配的空间。
要计算未分配的空间,我们可以如下所示:

  • 缺失部门:18032549 - 9766912 = 82656378265637
  • 以字节为单位计算:82656378265637 * 512 = 4232006144字节~4.2gb

请注意,"/dev/sdf1"在扇区'2048'开始在第一个默认分区的某些情况下正常。
它也意味着之前,没有分配的空间很少。

2)显示磁盘分区的编号

可以使用partx命令,该命令询问内核探测给定设备并重新读取分区表。
鉴于设备或者磁盘图像,partx尝试解析分区表并列出其内容。
我们首先需要使用fdisk -l命令拍摄磁盘大小信息

# fdisk -l /dev/sdf
Disk /dev/sdf: 12.9 GB, 12884901888 bytes, 25165824 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 label type: dos
Disk identifier: 0x7e5db80f
   Device Boot      Start         End      Blocks   Id  System
/dev/sdf1            2048     9766911     4882432   83  Linux
/dev/sdf2        18032550    25165823     3566637   83  Linux

总空间12.9 GB。
我们可以使用"partx -l"命令"列出分区以查找已用空间,并可以从总空间中减去。
我们将注意到,但所有数字都是512字节的扇区。

# partx -l /dev/sdf
# 1: 2048-      9766911 ( 9764864 sectors, 4999 MB)
# 2: 18032550- 25165823 ( 7133274 sectors, 3652 MB)

#1和#2是分区的数量。
请记住,在Linux中,当系统准备好磁盘空间才能被系统初始化时,它将在"FDisk -L"输出上看到。
所以我的服务器有大约4.2 GB未分配的空间。

而不是"-l""选项,我们可以使用"-s""选项来拥有人类可读的详细信息和尺寸的更多信息。

# partx -s /dev/sdf
NR START         END SECTORS SIZE NAME UUID
 1 2048      9766911 9764864 4.7G 
 2 18032550 25165823 7133274 3.4G

3)使用分区操作程序

我们使用的另一个选项是使用分段命令。

我们可以使用"免费"参数来获取未分配的空间以及磁盘分区。

# parted /dev/sdf print free
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdf: 12.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 
Number  Start   End     Size    Type     File system  Flags
        32.3kB  1049kB  1016kB           Free Space
 1      1049kB  5001MB  5000MB  primary  ext2
        5001MB  9233MB  4232MB           Free Space
 2      9233MB  12.9GB  3652MB  primary

关键字free Space(不引用介绍上解释的可用空间,但完全是未分配的空间,这是本主题的主题。
我们可以看到第一个"可用空间",这是指我之前解释的第一个默认分区之前解析的空间。
另请注意,未分配的空间没有编号。

在以下示例中,硬盘上没有分区,因此它仅显示未分配的空间(可用空间)。
看到没有编号

# parted /dev/sdg print free
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdg: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 
Number Start   End     Size   Type  File system   Flags
       32.3kB  10.7GB  10.7GB       Free Space

当我们在没有任何参数的情况下执行分段命令时,默认情况下,它选择系统上可用的第一个硬盘驱动器。

要在特定单位中打印可用空间,例如要在GB中打印:

# parted /dev/sda unit GB print free

4)显示磁盘分区表

我们可以使用的另一个命令是cfdisk。
它是一种基于诅咒的程序,用于分区任何硬盘驱动器。
分区部分始终显示当前分区表。
命令行是输入命令和文本的地方。
分区部分中分区表的格式是从左到右:名称,标志,分区类型,文件系统类型和大小。

# cfdisk /dev/sdf

你可以看到第一行显示"Free Space"。
有关更多详细信息,我们可以选择"打印",然后选择"扇区"并验证在下面的结果