无法理解文件分区

无法理解文件分区

我正在尝试在 /dev/sda 上运行 fdisk 并在 /dev/sda3 上创建一个新分区。我不明白如果没有可用的可用扇区该怎么办。我在网上查找了不同的解决方案,但我不确定该遵循哪一个。一种解决方案建议删除 /dev/sda 分区并重新分区。

我是 Linux 新手,不完全理解其含义。

  1. 如何检查 /dev/sda 上有哪些文件?
  2. 主分区和扩展分区有什么区别?
  3. 我如何判断删除 /dev/sda 分区是否会破坏与该虚拟机操作系统相关的任何内容?(这是一个新构建的虚拟机)。
  4. 我应该如何解决这个问题

如果我可以向您提供任何其他信息,请告诉我。我已经自己尽可能多地进行了研究,但我厌倦了继续下去,因为我不想破坏任何东西。

[root@itdmci dev]# pvs
  PV         VG     Fmt  Attr PSize  PFree
  /dev/sda2  centos lvm2 a--  <7.00g    0
[root@itdmci dev]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  centos   1   2   0 wz--n- <7.00g    0
[root@itdmci dev]# lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao----  <6.20g
  swap centos -wi-ao---- 820.00m
[root@itdmci dev]# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes, 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: dos
Disk identifier: 0x000e67f7

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    16777215     7339008   8e  Linux LVM

Disk /dev/sdb: 17.2 GB, 17179869184 bytes, 33554432 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: dos
Disk identifier: 0xe165f99a

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    33552383    16775168    7  HPFS/NTFS/exFAT

Disk /dev/mapper/centos-swap: 859 MB, 859832320 bytes, 1679360 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes


Disk /dev/mapper/centos-root: 6652 MB, 6652166144 bytes, 12992512 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

[root@itdmci dev]# sudo fdisk /dev/sda

The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
Partition number (3,4, default 3): 3
No free sectors available

以下是在 /dev/sda3 上创建新分区后我将遵循的步骤

  1. 使用 pvcreate 分区到 LVM
  2. VG扩展
  3. 调整大小

我包括了关于我的最终目标的未来步骤,但我更重要的是发表这篇文章是为了澄清我在顶部发布的问题。

答案1

在详细介绍之前,我将首先澄清术语。/dev/sda是连接到您的虚拟机的硬盘。命名约定是 sda 是第一个磁盘,sdb 是第二个磁盘,依此类推。

假设您有一个以这种方式连接的 1 TiB 磁盘。您可能希望将其用于不同的目的——操作系统、媒体、游戏、软件等等。为了简化这种布局,您可以将磁盘划分为连续的部分。这些划分称为分区。

分区使用称为分区表的概念在磁盘上表示。分区表有两种类型:MBR(传统类型)和 GPT(更现代的变体)。 MBR 类型有一个限制,即只能有四个分区。这些称为主分区。然而,现实世界的需求需要四个以上的分区,因此该标准包含了扩展分区的概念。这些本质上是主分区内的子分区。拥有扩展分区将可能的限制推向了更高的数量。 GPT 标准将所有分区视为主分区,但最多可以有 128 个分区。

因此,如果将磁盘 /dev/sda 分为三个分区,则它们将是 /dev/sda1、/dev/sda2、/dev/sda3。

一旦有了分区,您需要在其上添加文件系统,然后操作系统才能使用它。您可以将文件系统直接放在分区上,例如 /dev/sda2,但文件系统会严格受到分区大小的限制。调整此类文件系统的大小可能是一项困难的工作,有时甚至是不可能的。

这就是 LVM 的用武之地。LVM 在分区和文件系统之间添加了一个抽象层。这个想法是将分区甚至整个磁盘添加到称为卷组的池中。在卷组中,您可以按照您认为合适的任何方式自由调整分区大小。当然,这会增加堆栈的一些复杂性,但它带来的灵活性通常是值得的。


说到数字。在您的fdisk -l输出中,您可以看到:

Disk /dev/sda: 8589 MB, 8589934592 bytes, 16777216 sectors

因此,您的磁盘大小约为 8.5 GiB,并且有 16777216 个扇区(用于调整磁盘大小的旧单位)。

Disk label type: dos表明您有 MBR 磁盘。

您的分区表在此之后。/dev/sda1从扇区 2048 运行到 2099199,/dev/sda2从 2099200 运行到 16777215(磁盘的最后一个扇区)。这里确实没有扩展的空间。如果删除这些分区中的任何一个,都会破坏操作系统。/dev/sda1是您的启动分区,因此如果删除它,您将无法再启动虚拟机。

您确实有一个/dev/sdb大小为 17.2 GiB 的设备。根据文件系统,我认为它是某种 USB 设备。

在当前情况下,您有两种选择来添加新分区:

  1. 利用您在虚拟机上的事实。从虚拟机管理程序增加 VM 磁盘的大小,然后在来宾上调整其大小。然后使用fdisk创建一个新的物理分区。
  2. 利用 LVM。将新磁盘添加到 VM,然后将其添加到centos卷组。从那里添加一个新的逻辑分区。

这两个选项应该提供类似的最终结果。

相关内容