我需要/dev/sda6
在其他场合扩展并使用以下指南(https://www.miarec.com/doc/administration-guide/doc1012),向VM添加一个新磁盘,但显然它与这种情况不兼容,因为我尝试扩展的fs与LVM不对应。而且这些没有 VG 名称,因为执行时vgdisplay
我没有得到结果。我可以对机器进行快照,因此我尝试了多种方法但没有成功。抱歉,如果我没有以正确的方式提出问题。
[root@runner003 ~]# fdisk -l
Disk /dev/sda: 150.3 GB, 150323855360 bytes, 293601280 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: 0x000cf166
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 211814399 104857600 83 Linux
/dev/sda3 211814400 253757439 20971520 83 Linux
/dev/sda4 253757440 293601279 19921920 5 Extended
/dev/sda5 253759488 270276607 8258560 82 Linux swap / Solaris
/dev/sda6 270278656 280764415 5242880 83 Linux
/dev/sda7 280766464 293601279 6417408 83 Linux
Disk /dev/sdb: 15.7 GB, 15728640000 bytes, 30720000 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: 0x22061e6d
Device Boot Start End Blocks Id System
/dev/sdb1 2048 30719999 15358976 8e Linux LVM
[root@runner003 ~]# lvmdiskscan
/dev/sda1 [ 1.00 GiB]
/dev/sda2 [ 100.00 GiB]
/dev/sda3 [ 20.00 GiB]
/dev/sda5 [ <7.88 GiB]
/dev/sda6 [ 5.00 GiB]
/dev/sda7 [ 6.12 GiB]
/dev/sdb1 [ <14.65 GiB] LVM physical volume
0 disks
6 partitions
0 LVM physical volume whole disks
1 LVM physical volume
答案1
您的/dev/sda[1-7]
不是 LVM 逻辑卷,而是普通的传统磁盘分区。
每个分区必须始终是单个磁盘上的一组连续磁盘块。扩展分区只能在其尾端:如果分区占用块 X..Y,则可以将其扩展以覆盖块 X..(Y+N) - 但前提是块 (Y+1)..(Y +N)都是免费的。
在您的情况下,sda6
结束于块#280764415并sda7
开始于块#280766464。并且sda7
似乎一直持续到磁盘的末尾。因此,如果不先删除或收缩sda7
,您只能扩展sda6
(280766464 - 1) - 280764415 = 2048 个块,或者换句话说,正好扩展 1 MiB。这太少了,在大多数情况下不值得这么麻烦。
如果要收缩sda7
,收缩分区也会发生在其尾部。因此,缩小分区后,您还必须移动它朝向磁盘的尾端。移动分区需要卸载它,并且由于移动是写入密集型操作,因此需要一段时间......因此需要一些应用程序停机时间。
如果sda6
不是您的根文件系统,我建议您改为:
- 向虚拟机添加新磁盘,
- 将其准备为 LVM 物理卷 (
pvcreate
), sdb1
将其添加到您的磁盘可能已在使用的同一 LVM 卷组中vgextend
(除非您知道稍后需要sdb1
与新磁盘分开移动到不同的计算机/VM,在这种情况下,为新磁盘创建一个新卷组和vgcreate
),- 在其上创建 LVM 逻辑卷 (
lvcreate
), mkfs
使用您首选的文件系统类型的逻辑卷,- 将其安装到某个临时位置,
- 将内容复制
sda6
到其中(cp -a
因为 root 在大多数情况下效果很好), - 卸载
sda6
新的 LVM 逻辑卷并将其安装到sda6
先前占用的同一安装点。进行编辑,以便从现在起每次重新启动时,/etc/fstab
新的 LVM 逻辑卷都会自动安装到之前的位置。sda6
一旦您确认已成功复制所有内容,您就可以创建sda6
另一个 LVM 物理卷,然后使用它来进一步扩展您的 LVM 卷组(使用vgextend
)。这将允许您稍后使用该空间来扩展同一卷组中的任何现有逻辑卷 ( ),或者根据需要lvextend
创建一个或多个新逻辑卷 ( )。lvcreate
如果sda6
包含您的根文件系统 ( /
),则可以将其移至 LVM,但相当棘手;我建议这次创建一个新的虚拟机并选择在操作系统安装程序中进行基于 LVM 的安装。在对基本操作系统进行基于 LVM 的安装后,您可以安装与旧 VM 中相同的所有软件包,复制所有用户、组和所有非操作系统文件,最后停用旧 VM。