将整个硬盘驱动器转换为 LVM,无需外部存储

par*_*446 7 hard-drive lvm

最近,我的2TB硬盘空间不足,所以我又购买了一个来补充。我的旧驱动器安装在特定文件夹中(没有系统文件或任何内容)。从技术上讲,我可以创建一个新文件夹并将其用作新驱动器的挂载点,但如果我可以使用 LVM 来组合两个驱动器以便只有一个挂载点,那就会整洁得多。

有没有办法将我现有的 2TB 驱动器实时转换为 LVM?我没有任何外部存储可用作传输介质,也没有任何其他备份介质就足够了,因此我需要一种方法来转换它,而不实际删除其上的任何内容(并且驱动器已满,因此我无法创建新的分区并将其用作备份)。

Phi*_*ack 1

不可以,如果不暂时将数据移到其他地方,您就无法将现有的完整驱动器转换为 LVM。您需要在驱动器上创建一个或多个新分区,然后pvcreate在新文件系统上运行以创建 LVM 物理卷。然后您在其之上创建并激活一个卷组,依此类推

不过,你说你买了一个新驱动器,所以我假设它至少有 2TB,对吧?如果您可以让两个驱动器同时在系统中运行,这将为您提供迁移路径。

首先,将新的大驱动器连接为第二个(我假设是SATA)驱动器。它将在系统上显示为 /dev/sdb。使用 fdisk 在其上创建两个分区。一个应该是一个小的引导分区,一个演出可能就足够了。将其余部分分配给新的 lvm 分区。使用 lvm 工具(pvcreate、vgcreate 等)在第二个驱动器上设置 LVM。将小启动分区留空。

关闭机器并断开旧的 2TB 驱动器。将新驱动器移至主SATA接口,或使用BIOS将其设为主驱动器。使用安装 DVD 启动计算机。仅在您创建的小引导分区上安装新的 Linux 系统。

完成该工作后,重新连接原始驱动器,现在位于辅助SATA通道上。启动系统并将新的基于 LVM 的文件系统配置为 /newdrive(现在在 /dev/sda 上,记住)。将旧驱动器安装在类似的位置/olddrive

通过使用 rsync 之类的工具将 /olddrive 的内容复制到 /newdrive,将旧硬盘驱动器上的所有数据复制到新驱动器上。现在您已将所有数据转移到新的 LVM 文件系统。

现在最可怕的部分来了:擦除你原来的驱动器。请仔细考虑这一点,因为如果您擦除了错误的设备,您将丢失所有原始数据。也许您可以从其他人那里借用另一个驱动器作为临时备份?

原始驱动器为空后,使用 pvcreate 将其设置为 LVM 设备。然后,您可以使用 vgextend 和 lvresize 将 LVM 卷组扩展到该新设备上。这可以在系统运行时完成,并且不会影响新驱动器上的数据。完成该操作后,您将拥有一个 4TB 的卷组。您可以在生成的文件系统上使用 resizefs 使其填充整个空间。

请注意,有很多方法可以搞砸这个操作,但这是可行的。我强烈鼓励您以某种方式进行额外的备份。另请注意,在两个独立驱动器上运行的一个巨大卷组不是很稳健 - 如果一个驱动器出现故障,您可能会丢失大量数据。更好的想法通常是在两个镜像驱动器的 raid 零阵列之上运行 lvm。这样一来,您只能获得 2TB 的空间,但一个驱动器失效并不会导致一切完全失败。以下是我前段时间进行LVM迁移的方法,供参考。

另一种选择是在计算机中安装第三个驱动器并仅将其用于引导。这使得事情变得更简单,因为您不必在引导设备上设置单独的常规分区和 lvm 分区。实际上,现代 Linux 发行版可能已经解决了这个问题,但我知道几年前,像 grub 这样的引导加载程序无法与 lvm 一起工作,所以你总是必须从非 lvm 设备启动。