我正在尝试在 /dev/sda 上运行 fdisk 并在 /dev/sda3 上创建一个新分区。我不明白如果没有可用的可用扇区该怎么办。我在网上查找了不同的解决方案,但我不确定该遵循哪一个。一种解决方案建议删除 /dev/sda 分区并重新分区。
我是 Linux 新手,不完全理解其含义。
- 如何检查 /dev/sda 上有哪些文件?
- 主分区和扩展分区有什么区别?
- 我如何判断删除 /dev/sda 分区是否会破坏与该虚拟机操作系统相关的任何内容?(这是一个新构建的虚拟机)。
- 我应该如何解决这个问题
如果我可以向您提供任何其他信息,请告诉我。我已经自己尽可能多地进行了研究,但我厌倦了继续下去,因为我不想破坏任何东西。
[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 上创建新分区后我将遵循的步骤
- 使用 pvcreate 分区到 LVM
- VG扩展
- 调整大小
我包括了关于我的最终目标的未来步骤,但我更重要的是发表这篇文章是为了澄清我在顶部发布的问题。
答案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 设备。
在当前情况下,您有两种选择来添加新分区:
- 利用您在虚拟机上的事实。从虚拟机管理程序增加 VM 磁盘的大小,然后在来宾上调整其大小。然后使用fdisk创建一个新的物理分区。
- 利用 LVM。将新磁盘添加到 VM,然后将其添加到
centos
卷组。从那里添加一个新的逻辑分区。
这两个选项应该提供类似的最终结果。