“双启动”有助于外部 SSD,并且不会改变内部 Windows SSD 启动管理器

“双启动”有助于外部 SSD,并且不会改变内部 Windows SSD 启动管理器

我有一台运行 Windows(带 BitLocker)的笔记本电脑,用于工作。我希望能够使用外部 SSD(通过 USB 连接)启动 Ubuntu,而无需触及现有 Windows 配置中的任何内容。我已经听说了运行实时系统的建议,可能还会实现这一点,但经过一番挖掘,我相信有可能实现我想要的。以下是我所做的:

  1. 将 Ubuntu 20.10 下载到 USB 驱动器上
  2. 使用此 USB 启动并选择“安装”插入我的外部 SSD,选择它作为使用整个磁盘进行安装的目标,并作为引导加载程序的安装位置。逻辑是,如果我在启动时插入 SSD,它可以从那里启动,如果没有,则未更改的 Windows 引导加载程序将发挥作用。当我想启动 Ubuntu 时,我准备按 F9 选择备用启动设备
  3. 安装完成后,我拔下 U 盘,重启,按 F9 键,启动 Ubuntu - 到目前为止一切顺利
  4. 关机,拔下 SSD,开机……只看到 grub 命令提示符。经过一番挖掘,exit我终于可以启动 Windows
  5. 我使用 Windows 魔法将我系统上的引导加载程序恢复到原始状态(即重新启动时不按任何键,也不插入任何外部媒体,直接进入 Windows)。

总之,任务没有完成,因为我无法在内置 SSD 不受影响的情况下有选择地启动。我的外部 SSD 上仍然安装有 Ubuntu,我非常想启动它,但我被卡住了。我想做的事情可行吗?如果可以,我该怎么做才能通过使其可启动来挽救外部 SSD 上的安装,或者以完全不影响集成 (Windows) SSD 的方式执行安装?实现后者的唯一可靠方法是在安装时物理移除内部 SSD 吗?

我确实找到了但目前我还不太理解,这与我的情况略有不同。我的主要目标是使外部 SSD 上的现有安装可启动。

答案1

我建议您遵循以下步骤:

从工作笔记本电脑中取出内置硬盘。插入装有 Ubuntu 安装程序的 U 盘,然后使用 Ubuntu Live 启动。将外置硬盘插入要安装 Ubuntu 的位置。从 U 盘将 Ubuntu 安装到外置硬盘上。

安装包含将 UEFI 与 Ubuntu 结合使用的实用程序的启动修复。

关闭笔记本电脑。

从外部 HD 启动

安装启动重新配对并执行它,您会在互联网上找到帮助您在 Ubuntu 中配置 UEFi 的方法。

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install boot-repair

现在您可以关机了。连接内置硬盘和外置硬盘。使用 F12 启动以配置 uefi,以便也使用 Ubutnu 外置硬盘中的 Windows 10 uefi 和 efi。

重启。从 Ubuntu 外部硬盘启动。

现在开始使用 Virtual Box 从 Ubuntu 进行 Windows 10 内部安装的神奇操作。

您需要做的是所谓的“创建原始磁盘”文件,该文件指向现有硬盘。稍后,您将使用该文件创建一个新的 Virtual Box 虚拟机,然后使用现有安装从 Ubuntu 启动 Windows 10。不要忘记在 Virtual Box 虚拟机配置上单击 UEFI 选项。

下面是从 Ubuntu 映射到 /dev/nvme0n1 的现有硬盘创建原始文件虚拟硬盘的示例:

VBoxManage internalcommands createrawvmdk -filename /home/luis/virtualmachines/Windows10/windows10.vmdk -rawdisk /dev/nvme0n1  -relative 

这些只是一点点帮助。您可能会发现您可能需要使用 sudo 来使用 Virtual Box,但经过一些讲座和几个小时的努力,您可能会找到让普通用户使用它的方法。

答案2

我通过以下方式解决了这个问题这些步骤由...提供ptetteh227. 这基本上就是奥尔德弗雷德上面建议过,但我需要详细信息。这些步骤是为 Ubuntu 15.10 提供的,但将它们应用于 Ubuntu 20.10 时效果完美。请注意,我没有遵循“为 Ubuntu 创建自定义启动项以指向外部硬盘上的 efi”的步骤,因此我无法确定它们的持续有效性。

如果您不想点击上面的链接,请按照以下步骤操作:

将 Grub 安装到已安装 Ubuntu 的外部硬盘上

  1. 启动 Ubuntu live USB 并连接外部硬盘。

  2. 列出所有设备的分区:

     lsblk
    
  3. 从 的结果中lsblk,识别外部硬盘的 linux 分区和 efi 分区,即/dev/sdXY1/dev/sdXY2。将XY1和替换XY2为您自己的分区名称。

  4. 特殊挂载linux分区:

      sudo mount /dev/sdXY1 /mnt
    
  5. 挂载关键虚拟文件系统:

     for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
    
  6. chroot进入您挂载的 Linux 分区:

     sudo chroot /mnt
    

    您现在位于外部硬盘驱动器的 Linux 文件系统中。

  7. 创建 grub 安装其文件的目录:

     mkdir -p /boot/efi
    

    如果已经存在,则跳至步骤 8。

  8. 挂载步骤 3 中的 efi 分区:

     mount /dev/sdXY2 /boot/efi
    
  9. 将 grub 安装到外部硬盘:

     grub-install /dev/sdX
    
  10. 更新 grub:

    update-grub
    
  11. 找到 efi 分区(又名“vfat”)的 UUID 并记下来:

    blkid
    

    或者

    ls -l /dev/disk/by-uuid
    
  12. 现在我们需要告诉 fstab 在启动时挂载该 efi 分区:

    cp /etc/fstab /etc/fstab.bak  
    sudo nano /etc/fstab  
    

    将以下两行添加到 fstab,用步骤 11 中的 UUID 替换 xxxx-xxxx:

    #my modified fstab to mount external hard drive's esp  
    UUID=xxxx-xxxx   /boot/efi   vfat   umask=0077   0   1  
    

    确保注释掉 Windows esp 的 fstab 条目,以免发生冲突。

  13. 退出 chroot:

    exit
    
  14. 重新启动电脑:

    sudo reboot
    

此时,当您重新启动并从 EFI 启动管理器中选择外部设备时,它将启动到 grub。

为了使 Ubuntu 在插入外部设备时自动启动,并且使 Windows 在未插入外部设备时自动启动,您必须为 Ubuntu 创建自定义启动项,以指向外部驱动器上的 efi:

为 Ubuntu 创建自定义启动项以指向外部硬盘上的 efi

从 Windows简易UEFI可以添加或删除启动项。

从 Linux启动管理器可以添加或删除启动项。

替代方案 #1– 使用 EasyUEFI

  1. 在 Windows 中下载 EasyUEFI,安装并运行。

  2. 选择EFI 选项管理器

  3. 选择创建“新条目”带有 + 符号

  4. 选择Linux 或其他操作系统并在描述框中为其命名

  5. 选择包含 grub 引导加载程序的外部驱动器上的 FAT32 EFI 分区

  6. 选择浏览

  7. 导航/efi/ubuntu/shimx64.efi或者/efi/ubuntu/grubx64

  8. 节省

  9. 将其移至启动项列表的顶部

  10. 重新开始

替代方案 #2- 使用efibootmgr

  1. 列出启动菜单项:

     efibootmgr
    
  2. 创建启动项:

     efibootmgr -c [-L label] [-d /dev/sdX]
    

    例如:efibootmgr -c -L myubuntu -d /dev/sdX

    该启动项将自动成为第一个项。

    /dev/sdX是带有 grub 引导加载程序的外部硬盘驱动器。

  3. 现在你可以重新启动,无需你的干预,Ubuntu 将在插入外部硬盘时自动启动。当未插入外部硬盘时,PC 将跳过我们的Ubuntu启动项到下一个项,可能是Windows 启动管理器

相关内容