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 / 问题 / 1300230
Accepted
deak21
deak21
Asked: 2020-12-16 00:18:23 +0800 CST2020-12-16 00:18:23 +0800 CST 2020-12-16 00:18:23 +0800 CST

外部 SSD 的“双启动”帮助,内部 Windows SSD 启动管理器没有变化

  • 772

我有一台运行 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 的唯一可靠方法吗?

我确实找到了这个,但在这一点上它和this有点让我头疼,这与我的情况略有不同。我的主要目标是使外部 SSD 上的现有安装可启动。

dual-boot bootloader external-hdd
  • 2 2 个回答
  • 1469 Views

2 个回答

  • Voted
  1. Luis
    2020-12-16T00:42:50+08:002020-12-16T00:42:50+08:00

    我建议您按照以下步骤操作:

    从您的工作笔记本电脑中提取您的内部硬盘。使用 Ubuntu 安装程序插入随身碟并使用 Ubuntu live 启动。在要安装 Ubuntu 的位置插入外部 HD。从 pendrive 在您的外部 HD 上安装 Ubuntu。

    安装引导修复,其中包含在 Ubuntu 中使用 UEFI 的实用程序。

    关闭笔记本电脑。

    从外置硬盘启动

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

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

    现在可以关机了。连接内部硬盘和外部硬盘。使用 F12 启动以配置 uefi 以使用 Windows 10 uefi 和来自 Ubutnu 外部硬盘的 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,但是通过一些讲座和几个小时,您可能会找到使其与普通用户一起使用的方法。

    • 0
  2. Best Answer
    deak21
    2020-12-17T07:24:30+08:002020-12-17T07:24:30+08:00

    我按照ptetteh227提供的这些步骤解决了这个问题。这基本上是oldfred上面的建议,但我需要细节。这些步骤是为 Ubuntu 15.10 提供的,但将它们应用到 Ubuntu 20.10 可以完美运行。请注意,我没有遵循“为 Ubuntu 创建自定义引导条目以指向外部 HD 上的 efi”的步骤,因此我无法谈论它们的持续有效性。

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

    将 Grub 安装到安装了 Ubuntu 的外部硬盘驱动器

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

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

       lsblk
      
    3. 从 的结果中lsblk,分别识别出 linux 分区和外置硬盘的 efi 分区,ie/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. 更新蛴螬:

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

      blkid
      

      或者

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

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

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

      #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 创建自定义引导条目以指向外部 HD 上的 efi

    从 Windows EasyUEFI可以添加或删除启动项。

    从 Linux efibootmgr可以添加或删除引导条目。

    备选方案 #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 Boot Manager。

    • 0

相关问题

  • 如何在 ubuntu 中挂载加密的 windows 分区?[关闭]

  • 如何使用 Debian 进行双引导?

  • 如何使用 Ubuntu 和 Windows XP 安装双启动配置?[关闭]

  • 如何让双启动 USB 驱动器在 Vista 中工作 [关闭]

  • 如何从双启动计算机访问加密的主文件夹?

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