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
    • 最新
    • 标签
主页 / ubuntu / 问题 / 953547
Accepted
John
John
Asked: 2017-09-08 01:09:34 +0800 CST2017-09-08 01:09:34 +0800 CST 2017-09-08 01:09:34 +0800 CST

如何重命名加密启动驱动器的卷组并让它仍然启动?

  • 772

与这个问题相关,似乎我可以从另一个加密引导驱动器访问一个加密引导驱动器(在安装 Ubuntu 时都使用默认加密选项)的唯一方法是两个驱动器具有不同的卷组 (VG) 名称。默认情况下,Ubuntu 使用卷组名称“ubuntu-vg”,如果你有两个同名的卷组,lvm2 就有问题。

一个更大的问题是当我读到这篇文章并决定将我的活动引导驱动器的 VG 重命名为不同的东西时。然后我重新启动,cryptsetup 将不再识别我的密码。它给了我错误

未知的 fstype、错误的密码或选项?

使用 LiveUSB,我将该引导驱动器上的 VG 重命名为 ubuntu-vg 并再次引导(缓解)。

现在,如果 VG 名称必须是唯一的,但它们也不能更改,那么就有问题了。当我安装 Ubuntu 来设置 VG 名称时,我没有看到选项。我猜它要么是硬编码的,要么是在某个配置文件中。我检查了驱动器上较小的(未加密的)引导区域,我看到了

/grub/grub.cfg

有一些对这个“ubuntu-vg”的引用让我觉得我可以改变它。

然而,我对 Ubuntu 还是很陌生,所以在我成为一个有另一个不可启动驱动器的创意人之前,我希望这里的专家能提供一些意见。

我可以使用 vgrename 重命名 VG,然后通过查找并将所有旧 VG 名称替换为新 VG 名称来更改 /grub/grug.cfg 并且神奇地一切都会正常工作吗?

16.04
  • 2 2 个回答
  • 4225 Views

2 个回答

  • Voted
  1. Best Answer
    John
    2017-09-08T07:37:00+08:002017-09-08T07:37:00+08:00

    在阅读了乔治的链接(以及其他几个链接)之后,我想在这里发布这个作为答案。

    如果您需要重命名加密引导驱动器的卷组,这些是您应该采取的步骤。至少它们似乎在 16.04 上运行良好。

    1. 拔下所有其他驱动器,只插入 LiveUSB(或类似驱动器)和加密的引导驱动器。注意,不要从另一个加密的引导驱动器引导,因为两个引导驱动器具有相同的卷组名称 (ubuntu-vg)。
    2. 从 LiveUSB 启动,而不是从加密的启动驱动器启动
    3. LiveUSB 运行活动系统后,确保已安装 lvm2(尽管 16.04.2 LiveUSB 已安装 lvm2)。

    sudo apt install lvm2

    1. 挂载加密驱动器。然后,验证卷组的名称(应该只有一个,因为除了 LiveUSB 之外不应连接其他驱动器)。16.04(似乎是 18.04)的默认值是“ubuntu-vg”(以下假设是这种情况)。

    须藤 vgscan

    1. 将卷组重命名为唯一的名称

    sudo vgrename ubuntu-vg my_new_volume_group_name

    1. 您应该会收到卷组已重命名的确认信息。
    2. 此时,您的加密启动驱动器将无法启动,因为 grub 无法再找到名为 ubuntu-vg 的卷组。所以,你需要更新 grub。在加密的引导驱动器上,转到 grub 文件夹并查看文件 grub.cfg。如果您尝试从 LiveUSB 打开它,它将是只读的,因此请打开终端并键入:

    须藤gedit

    1. 在 gedit 中,打开 grub.cfg 文件(位于 grub 文件夹中的未加密部分。
    2. 将此文件的副本另存为 backup-grub.cfg,以防在接下来的几个步骤中出现问题。
    3. 查找并将 ubuntu--vg 替换为您的新卷组名称(ctrl+H,查找:ubuntu--vg 替换为:my_new_volume_group_name)。该查找文本是正确的。您应该找到“ubuntu--vg”(注意“ubuntu”和“vg”之间有两个破折号,因为当您在这里使用破折号时,grub 需要一个双破折号。
    4. 将文件保存回 grup.cfg
    5. 重新启动,移除 LiveUSB

    现在,当 grub 加载时,它将看到它期望的卷组名称,您将能够加载加密的引导驱动器。

    • 1
  2. Zulakis
    2020-05-15T03:45:51+08:002020-05-15T03:45:51+08:00

    我实际上设法从这样的实时系统中做到了这一点:

    OLDVG=old-vg-name
    NEWVG=new-vgname
    vgrename $OLDVG NEWVG
    OLDVG=$(echo $OLDVG | sed 's/-/--/g') # if the vg-name contains a dash, replace by double dashes as that is used for the device-name
    sed -i "s/$OLDVG/$NEWVG/g" /etc/fstab
    sed -i "s/$OLDVG/$NEWVG/g" /etc/initramfs-tools/conf.d/resume
    

    /proc/mounts 被 update-initramfs 和 update-grub 用来设置根设备。不幸的是,/proc/mounts 在更改 vg 名称时不会更新。

    因此,我们需要伪造 /proc/mounts 文件。做 mount --bind mounts /proc/mounts 不起作用。我们需要伪造整个 /proc 目录。

    mkdir proc
    find /proc -type f -or -type l -maxdepth 1 |grep -Ev '(kmsg|kcore|sysrq-trigger)'  | xargs -I {} sh -c 'echo {} && cp {} proc'
    sed -i "s/$OLDVG/$NEWVG/g" proc/mounts
    # we could perhaps 'unshare --mount' to create a mount namespace for the current shell. however, this did not seem neccessary.
    mount --bind proc /proc
    update-initramfs -u -k all
    update-grub
    umount /proc
    rm -r proc
    reboot
    
    • 1

相关问题

Sidebar

Stats

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

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve