AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 4098
Accepted
Eddie
Eddie
Asked: 2009-05-05 07:47:57 +0800 CST2009-05-05 07:47:57 +0800 CST 2009-05-05 07:47:57 +0800 CST

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

  • 772

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

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

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

linux lvm
  • 7 7 个回答
  • 21459 Views

7 个回答

  • Voted
  1. Best Answer
    Avery Payne
    2009-05-05T09:35:42+08:002009-05-05T09:35:42+08:00

    是的,这是可以做到的。

    是的,您可以将它用于双引导 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 卷,使用

      pv扫描;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. 坐下来享用一杯饮料,以完成出色的工作。
    • 12
  2. Gabriel
    2013-03-02T11:28:11+08:002013-03-02T11:28:11+08:00

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

    • 8
  3. David Schmitt
    2009-05-05T08:06:10+08:002009-05-05T08:06:10+08:00

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

    这个过程稍微涉及一些,但您始终拥有外部驱动器和 CD-ROM 上的数据来引导您的系统。

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

    • 3
  4. Brian Minton
    2014-10-15T09:43:40+08:002014-10-15T09:43:40+08:00

    http://serialized.net/2006/04/migrating-live-filesystems-to-lvm/有一种有趣的方式来迁移 live fs。将其添加为 RAID-1 组的一部分,然后操作系统会将其镜像到其他设备(可能是 LVM 逻辑卷)。它有点过时了,所以我不知道这是否仍然有效。

    • 2
  5. Luca Tettamanti
    2009-05-05T08:04:59+08:002009-05-05T08:04:59+08:00

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

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

    • 1
  6. carlito
    2009-05-24T15:33:45+08:002009-05-24T15:33:45+08:00

    您在笔记本电脑上安装了几年前的设备。将其转换为 LVM 是一个失败的提议。备份您的数据,重新安装并复制您的数据。您将拥有一个带有新软件和数据的干净系统。

    如果您因为不知道数据在哪里而无法做到这一点,那么您就有一个大问题,这是您解决它的机会。

    • 1
  7. Brent
    2009-05-05T08:10:26+08:002009-05-05T08:10:26+08:00

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

    • 0

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve