事后可以将 Linux 机器转换为 LVM 吗?

事后可以将 Linux 机器转换为 LVM 吗?

我的 Linux 服务器使用 LVM,因为我一年前更换了机器,并从头开始安装。LVM 救了我一命,我喜欢它的灵活性。然而,我的 Linux 笔记本电脑上次完全安装是在三年前,因此使用直接分区。

是否有可能(无需重新安装)将现有系统转换为 LVM?如果可以,哪些工具可以完成这项工作?

我预计在双启动系统上与 Windows 共享的任何文件系统都不能是 LVM。如果我错了,请告诉我,但我会感到惊讶。

答案1

是的,可以这样做。

是的,你可以使用它来建立双启动 Windows 系统,假设你把 Windows 作为第一个分区,并且它是一个主分区(不是逻辑内的扩展)。我在此处的说明不涵盖这种情况,这需要您具有处理双重启动的一些经验。如果您想要双重启动 Windows/Linux 设置,请不要遵循此处以下的任何建议。


我再说得更清楚一点:除了少数例外,你应该能够迁移整个笔记本电脑居住,前提是您使用具有足够容量的外部驱动器。

警告!此过程极其危险!它假设您对分区过程有深入的了解,您有一个单独的 /boot 分区,并且您知道一次失败的尝试可能会导致安装失败,无法启动!您已收到警告!

你需要:

  • /boot 位于单独的分区上。如果您有一个组合根文件系统(所有内容都塞入 / 中),那么这将不起作用。
  • 从 USB 硬盘启动的能力。
  • 一个足够大的外部驱动器,可以容纳现有系统上的所有数据和程序。请务必运行“du /”并等待最终结果,以真正了解您需要的空间类型。

一般程序(请原谅我缺少一些命令,我​​写得非常快):

  1. 连接外部驱动器并找到其设备名称。假设您将其视为 /dev/sdb。
  2. 在外部驱动器上创建两个分区。在我们的示例中,它们将显示为 /dev/sdb1 和 /dev/sdb2。

    parted /dev/sdb

  3. 将第一个分区格式化为 ext2 或 ext3,并标记为“boot”。将外部驱动器上的第二个分区格式化为“Linux LVM”类型。

  4. 使用以下命令获取系统识别的新创建的 LVM 卷

    扫描方式

  5. 从外部 LVM 卷中切出足够大的一块空间来容纳整个笔记本电脑的硬盘。如果有疑问,就使用所有可用空间。

  6. 将基于 LVM 的卷格式化为 ext3 或任何您喜欢的文件系统。

    mke3fs /dev/ExternalUSBVolume/ExternalRoot

  7. 对于每个非特殊文件系统挂载,在外部磁盘上创建一个目录,并将每个挂载点中的所有文件(带属性)复制到该磁盘。忽略 /proc 等挂载点的副本,因为它们是“特殊的”。

  8. 手动创建特殊挂载点,以便它们存在于您的外部驱动器上。不要填充它们,只需确保名称和权限匹配即可。
  9. (非常小心地)使用引导加载程序将启动映像安装到外部驱动器上的 /boot 分区中。这个过程有点复杂,所以我将留给您自己去其他地方查找信息。 如果你弄砸了它,那也很危险——你最终可能会试图覆盖笔记本电脑驱动器上的引导加载程序。要小心。
  10. 重新启动笔记本电脑。在进行 POST 时,请务必将外部驱动器指定为启动驱动器。此时,您应该拥有笔记本电脑驱动器的(或多或少)近似副本。(对于其他管理员:是的,我知道,日志文件和其他文件并非处于 100% 复制的状态,但这不是这里的重点……重点是将数据和工具移过来……)
  11. 一旦可以从外部驱动器启动,您就可以使用它来擦除笔记本电脑驱动器。此时,您“依靠”外部驱动器。请记住这一点。
  12. 然后使用分区编辑器(gparted 或其他)删除原始笔记本电脑分区(数据告别了……),然后将新创建的区域标记为“LVM”。完成识别、分区、格式化 LVM 卷等过程。
  13. 使用 LVM 的镜像过程,将您的实时系统(当前位于外部驱动器上)镜像回笔记本电脑驱动器。为此,请花一两个午休时间(或两天)来完成此操作,因为这需要时间。
  14. 重新挂载实时文件系统,将 / 文件系统从外部驱动器移动到笔记本电脑的 LVM 卷。
  15. 重新运行引导加载程序安装过程。这很关键,因为当前的 ramdisk 没有正确的设置,并且不知道您已经移动了所有内容。如果不这样做,将导致系统无法启动并需要访问救援磁盘。如果一切都失败了,您可以再次从外部驱动器启动(没有丢失任何内容...)
  16. 重新启动未连接外部驱动器的笔记本电脑,并指定笔记本电脑的内部驱动器。它应该可以正常启动。注意任何感觉或看起来受损或损坏的东西(不应该有任何东西),然后修复它。
  17. 坐下来喝杯饮料,庆祝工作完成得非常出色。

答案2

我最近写道(原名 lvmify)可就地执行此转换。它采用单个分区,必要时缩小文件系统,将文件系统的开头移至分区的末尾,并在其位置复制 LVM 超级块(已预先配置正确的 PV/LV/VG)。如果您有多个分区,则可以使用 合并新创建的卷组vgmerge。它无法在已挂载的文件系统上工作。

答案3

将 Linux 系统移至 LVM 的最简单方法是使用外部磁盘(USB、eSATA)和基于 CD-ROM 的系统,例如格鲁姆将 PC 上的所有数据移至外部磁盘,然后使用 LVM 对 PC 重新分区。最后将所有内容复制回来,配置并重新安装 grub 到 MBR。

这个过程稍微复杂,但是您始终可以使用外部驱动器和 CD-ROM 上的数据来启动您的系统。

正如您正确预料的那样,Windows 无法访问任何 LVM 卷。

答案4

从底部开始:不,Windows 无法读取 LVM 逻辑卷(分区)。

如果您有可用作临时存储的备用磁盘,则只需从实时 CD 启动、将数据复制到临时位置、创建一个或多个 LV 并放回数据即可。就地转换为 LVM 是不切实际的(但可能);您基本上必须缩小旧分区并多次调整 LV 的大小(最终的 LV 会变得碎片化)

相关内容