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

Edd*_*die 20 linux lvm

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

是否有可能 - 无需重新安装 - 将现有系统转换为 LVM?如果是这样,什么工具可以完成这项工作?

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

Ave*_*yne 12

是的,这是可以做到的。

是的,您可以将它用于双引导 Windows 系统,前提是您将 Windows 设为第一个分区,并且它是主分区(不是逻辑内部的扩展分区)。我这里的说明不包括这种情况,这需要您有一些处理双启动的经验。如果您正在使用双引导 windows/linux 设置,请不要遵循以下任何建议。


我会做一个更好的:除了少数例外,您应该能够实时迁移整个笔记本电脑,前提是您使用具有足够容量的外部驱动器。

警告!这个过程非常危险!它假设您对分区过程有深入的了解,您有一个单独的 /boot 分区,并且您知道一次拙劣的尝试可能会给您带来无法启动的脑损伤安装!你被警告了!

你需要:

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

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

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

    分开 /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. 坐下来享用一杯饮料,以完成出色的工作。

  • 当然可以实时迁移到外部存储(如果你足够勇敢,你甚至可以将正在运行的系统转移到外部磁盘并在不重启的情况下返回 :D);不过,从 Live CD 执行整个过程应该不太容易出错(例如,虚拟 FS 不碍事...) (3认同)
  • 顺便说一句,LILO 和新版本的 GRUB(最终将成为 2.0 的那个)具有对 LV 的本机支持——不需要单独的 /boot 分区。 (2认同)

Gab*_*iel 7

我最近编写了(née lvmify),它就地进行了这种转换。它需要一个分区,必要时缩小文件系统,将文件系统的开头移动到分区的末尾,并在其位置复制一个 LVM 超级块(预先配置了正确的 PV/LV/VG)。如果您有多个分区,合并新创建的卷组是使用vgmerge. 它不能在挂载的文件系统上工作。

  • 我刚刚使用块在大约 2 分钟内将我的 2 个 ext4 分区(总共 120GB)迁移到 LVM。完美无缺地工作。 (2认同)