我有一个非常令人沮丧的问题。我想设置一个安装了完整 Linux 的 USB 驱动器(我选择了 Zorin OS 15.1,但也尝试过使用 Ubuntu 18.04),这样我就可以从任何计算机启动。我倾向于使用 Mac,因此驱动器具有正确的 boot.efi 设置非常重要,这样只需按住 alt 即可提供启动选项。
我按照这里的说明进行操作:https://medium.com/@mmiglier/ubuntu-installation-on-usb-stick-with-pure-efi-boot-mac-compatible-469ad33645c9在 SanDisk Extreme Go USB 3.1 128GB 驱动器上,它运行完美。真是令人兴奋,我现在可以从任何 Mac 启动 Zorin。
然后我又买了一个 SanDisk Extreme Pro Portable SSD 500GB,因为它的读取速度大约是 1050MB/s,而不是 USB 的 150MB/s。我按照完全相同的步骤操作,但始终无法安装 grub。
确切的命令是sudo grub-install --target x86_64-efi --boot-directory=/boot --efi-directory=/boot/efi --bootloader-id="$(lsb_release -ds)"
。
我一次又一次收到错误grub-install: error: cannot find GRUB drive for /dev/sdb1. Check your device.map.
我研究过这个问题,但找不到任何与我的情况有关的东西。我尝试过 GPT 和 MBR 格式化。我尝试过将文件从工作中的 USB 复制到 SSD 等。任何帮助都非常感谢。
答案1
下载引导修复ISO 文件。
使用以下方法制作可启动的 Boot Repair Live USB 闪存驱动器:鲁弗斯或 UNetbootin。如果您手边有基于 Debian 的发行版,您还可以使用启动盘创建器制作可启动的启动修复实时 USB 闪存驱动器。
暂时断开主机硬盘上的电缆,以免 grub 安装在错误的驱动器上。您希望将 grub 安装在 SanDisk Extreme Pro 便携式 SSD 上。
从 Zorin/Ubuntu USB 启动并安装操作系统,直到收到
grub-install: error
消息。继续安装,直到完成。重新启动计算机,并将可启动的 Boot Repair 实时 USB 闪存驱动器选为 UEFI/BIOS 启动优先级菜单中的第一个条目。
点击建议修复按钮并运行它。您无需单击任何高级选项。Boot Repair 将在 SanDisk Extreme Pro 便携式 SSD 上安装 grub。
从 USB 安装介质重新启动到 Zorin/Ubuntu 安装程序。
在安装类型屏幕选择代替...使用 Ubuntu/Zorin 选项在哪里...是您上次在 SanDisk SSD 上安装的任何 Linux。安装程序可能会将此 Linux 识别为“通用 Linux”而不是 Ubuntu,因为它具有由 Boot Repair 安装的不同引导加载程序。这次安装程序将一直运行到最后,并将 Boot Repair 在 SanDisk Extreme Pro 便携式 SSD 上安装的 grub 替换为适合您的发行版的 grub。
将电缆重新连接至主机的硬盘驱动器。
答案2
我终于找到了解决这个问题的方法:
诀窍是安装重新查找 但确保在安装时已连接安装 Linux 的 USB / SSD。
当时的情况是,我正在安装 refind,但它无法使用标准 grub 检测可用的 linux 分区。但是,如果在安装时有可用的 linux (ext4) 分区,refind 会安装额外的驱动程序,以便将来能够找到 linux 分区。
虽然不是原始问题的解决方案,但完成了工作。