事后有可能将Linux盒转换为LVM吗?


17

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

是否可以在不重新安装的情况下将现有系统转换为LVM?如果是这样,什么工具可以完成这项工作?

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

Answers:


11

是的,可以这样做。

是的,如果将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卷

    pvscan; vgscan

  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. 坐下来享受饮料,做得好。

3
当然,可以实时迁移到外部存储(如果您足够勇敢,甚至可以将正在运行的系统转移到外部磁盘上,而无需重新启动:D);不过,从实时CD进行整个过程的错误发生率应较小(例如,虚拟FS不在话下...)
Luca Tettamanti,2009年

2
顺便说一下,LILO和GRUB的新版本(最终将成为2.0的版本)具有对LV的本地支持-不需要单独的/ boot分区。
卡·塔曼曼蒂

我知道。但是我认为“安全胜于遗憾”。拥有本机分区使修复问题变得容易一些。也许OP必须使用一个基于Windows的工具,该工具不了解LVM(很多人不了解)-在这种情况下,至少他可以根据需要使用grub等修改menu.lst。但是,谢谢您的投入!:)
艾利·佩恩

6

我最近写了(néelvmify)来完成此转换。它占用一个分区,在必要时收缩文件系统,将文件系统的开始移至分区的末尾,并在其位置复制LVM超级块(已预先配置了正确的PV / LV / VG)。如果您有多个分区,则使用合并新创建的卷组vgmerge。它不适用于已挂载的文件系统。


2
我仅用大约2分钟的时间就将2个ext4分区(总计120GB)迁移到了LVM。完美地工作。
Amr Mostafa 2014年

3

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

该过程略有涉及,但是您始终在外部驱动器和CD-ROM上拥有数据来引导系统。

如您所料,Windows无法访问任何LVM卷。


1

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

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


1

您在笔记本电脑上安装了数年。将其转换为LVM是一个失败的主张。备份数据,重新安装,然后将数据复制回去。您将拥有一个带有新软件和数据的干净系统。

如果您由于不知道数据在哪里而无法执行此操作,那么您将遇到大问题,这是您解决数据的机会。



0

您可能必须将数据备份到另一个驱动器或分区(或iso?),创建LVM容器,然后将数据还原到该容器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.