/dev/sda1 不在卷组中,并且 vgextend 不起作用

/dev/sda1 不在卷组中,并且 vgextend 不起作用

我有几个虚拟机,可以通过 VMWare vSphere 客户端 (v 5.1.0) 访问。其中一个空间不足,我正在尝试给它提供更多空间。

我目前所做的:
- 使用“摘要”选项卡中的“编辑设置”增加了配置大小。
- 使用 Linux LVM 系统创建一个新的分区 (/dev/sda3)。

问题是之前的机器上没有卷组,所以我无法按照常规教程操作

vgextend VolGroup00 /dev/sda1

当我这样做时,我收到错误:

No physical volume label read from /dev/sda1
Can't open /dev/sda1/ exclusively. Mounted filesystem?
Unable to add physical volume '/dev/sda1' to volume group 'VolGroup00'.

我已经在 Google 上搜索了一整天,但还是找不到如何将 /dev/sda1 添加到我的卷组。它根本不在任何卷组中...

有人能给出任何提示或指点吗?

编辑:一些额外的数据:

# fdisk -l
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 822580 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optional): 512 bytes / 512 bytes
Disk identifier: 0x000d2064

Device    Boot Start   End    Blocks   Id  System
/dev/sda1   *      1  1998  16043008   83  Linux
/dev/sda2       1998  2089    731137    5  Extended
/dev/sda3       2089  5221  25161490+  8e  Linux LVM
/dev/sda5       1998  2089    731136   82  Linux swap / Solaris


# df -h
Filesystem  Size  Used  Avail  Use%  Mounted on
/dev/sda1    16G   14G   754M   95%  /
tmpfs       4.0G     0   4.0G    0%  /lib/init/rw
udev        4.0G  104K   4.0G    1%  /dev
tmpfs       4.0G     0   4.0G    0%  /dev/shm


# lbslk
-bash: lsblk: command not found


# pvs
PV         VG           Fmt  Attr   PSize   PFree
/dev/sda3  VolGroup00  lvm2  a-     23.99g  23.99g


# vgs
VG          #PV  #LV  #SN  Attr    VSize   VFree
VolGroup00    1    0    0  ws--n-  23.99g  23.99g


# lvs
#
(no output)

答案1

虽然我对现有的任何答案都没有异议,但我不确定是否有理由用 LVM 来使这个问题复杂化,因为您目前还没有它。如果您不打算再次进行这样的扩展,那么现在引入 LVM 可能不值得。

还有一个替代方法,虽然比较麻烦,但不需要重建机器,除非你把它弄坏了:

  1. 回滚已完成的 LVM 设置,然后进行完整备份
  2. 删除分区/dev/sda3
  3. 使用 停止现有的交换空间swapoff,然后删除/dev/sda[25]分区
  4. 重新创建/dev/sda1分区以跨越所有现有磁盘,减去顶部的一些交换空间。 不改变分区的起始块
  5. /dev/sda2在光盘顶部创建,将其标记为交换,确保您的 反映了从到 的/etc/fstab更改。sda5sda2
  6. 重新启动,然后用于resize2fs增大根文件系统就地来填充新的、更大的/dev/sda1

答案2

在这个特定的时间,根据您描述的设置,恐怕答案是“抱歉,无法完成”。至少不是您描述的那样。

但真正的问题不是“我如何扩展 sda1” - 而是“鉴于服务器安装时没有卷组,我如何增加用户可用的空间”。这个问题可以用多种方式回答。我给你两个答案,它们不涉及 NAS/SAN 或其他外部存储系统。

在执行以下任何操作之前,请确保您拥有系统的最新备份。请注意,这会导致停机!

简单的方法是查看当前 /dev/sda1 磁盘上有哪些目录。例如,您可能有

/var
/home
/usr

全部位于同一磁盘上。您可以做的一件事是将所有数据从 /home 复制到新磁盘,然后将新磁盘安装为 /home。(这显然需要在没有用户登录到计算机时完成 - 最好在单用户模式下启动!)

复制完成后,重新启动系统并将 /dev/sda3 挂载为 /home。验证一切是否按预期运行。然后卸载 /dev/sda3 并删除旧磁盘上 /home 下的所有目录。

缺点是您现在将被锁定在有限的空间内,只是现在您有两个不可扩展的磁盘而不是一个,因此下次达到上限之前还需要一段时间。

由于 /boot 位于 /dev/sda1 上,所以原始解决方案不起作用,因此编辑了以下内容。

更艰难的道路是重新安装。重新安装时,在 /dev/sda3 上创建一个 VG仅有的. 不要以任何方式对 /dev/sda1 进行分区或触碰。

系统启动后,将 /dev/sda1 挂载到新的挂载点(例如 /mnt/olddisk)。然后从该磁盘复制所有数据(这应该是除实际操作系统之外的所有内容)。完成后,您可以将 VG 扩展到旧的 /dev/sda1。现在您将拥有一个可以通过向卷组添加更多磁盘来扩展的系统。

答案3

您只能在物理卷上创建或扩展 LVM 卷组。

要解决此问题,请在所需分区上创建一个 LVM 物理卷。

pvcreate /dev/sda1

注意:此操作将破坏指定分区上的所有数据。

然后您可以将卷组扩展到物理卷上。


(您可能不是这个意思,/dev/sda1因为那通常是/boot分区。由于这是破坏性的,所以要绝对确定您在做什么。)

相关内容