![PC无法从 USB 启动](https://linux22.com/image/1208538/PC%E6%97%A0%E6%B3%95%E4%BB%8E%20USB%20%E5%90%AF%E5%8A%A8.png)
大家好。我已经研究这个问题一个月了。我有一台安装了 Ubuntu 22.04 的 ms surface go 2。没有 windows,是的,我现在知道我应该把 windows 留在上面!从来没有,即使使用 windows,它也不会从重新启动到 usb。使用 grub 命令行,我已经识别出带有 linux live 的 usb。我可以通过 ls 查看所有内容。我甚至让它从 grub shell 重新启动到该 usb 分区上的 memtest 文件中。这是我能看到的;
grub> ls (hd0,gpt1) <已经验证是所需的 usb 路径
partition hd0,gpt1: filesystem type iso9660 - label 'ubuntu 23.01.1 and64' - last modification time 2023-10-16 11:29:57 monday, uuid 2023-10-16-11-29-57-00 - partition start at 32 kib - total size 5047348kib
grub> ls (hd0,gpt1)/
boot/ boot.catalog casper/ dists/ efi/ install/ md5sum.txt pool/ preseed/ ubuntu
grub> ls -lh (hd0,gpt1)/boot
dir "date" grub/
144.96k "date" memtest86+x64.bin <--- I made this file boot from grub shell
我这样做了;
grub> 设置根=(hd0,gpt1)
grub> linux 启动/memtest86+x64.bin
grub>启动
ls (hd0,gpt1)/boot/grub 的输出
dir fonts;669 grub.cfg;dir 1386-pc/;404 loopback.cfg;dir x86_64-efi/
这里的某些东西必须让这个实时 USB 从 grub 加载。
我还尝试在 /etc/grub.d/40_custom 中添加菜单项。这是我输入的内容;
菜单项“从 USB 驱动器启动”{set root=UUID=linux /vmlinuz root=UUID=ro quiet splash initrd /initrd.img
在 uuid 点进行适当的修改。我比;
sudo 更新 grub
根据我得到的信息,它应该在 grub 菜单上放置一个从 usb 启动的选项。但事实并非如此。在做这一切之前,我做了一些显而易见的事情。将 usb 设置为 grub 菜单中的第一个选项,尝试了多个 usb。还买了一个 usb c,以便不使用集线器,以防它停止。我看过很多视频,其中同一个设备从 usb 启动,我不明白为什么这个不行。
编辑第一个问题;截至秋季,bios 已更新。没有窗口可以更新,并阅读有关通过 linux 进行操作的信息,但如果可能的话,宁愿不这样做。安全启动已关闭。我刚刚禁用了可信启动。没有错误消息
答案1
我的 Microsoft Surface Go 2 无法启动任何形式的 USB。下面是我让它工作的方法。答案来自这里,但与在普通 PC 上卡在 grub shell 有关。对于 Surface,您需要有一个可以插入的键盘。您需要一个集线器,以便可以插入它和一个 USB,而且它只是一个 USB-C。连续按下 Esc 键应该会将您踢进 grub shell。从这里使用ls
并找出哪个硬盘是您的 USB。我注意到没有 USB 的地方有什么,重新启动到 grub 并使用 USB,额外的就是您的 USB。在这些命令中使用该名称(例如;(hd0,1) 在我的情况下实际上是 (hd0,gpt1))代替 (hd)。
ls (hd) # 查看它,在我的情况下我得到了这个;分区 hd0,得到:文件系统类型 iso9660 - 标签'Ubuntu 23.10.1 amd64' + 一些 mod 信息和 uuid#,以及大小信息
ls (hd)/#您正在寻找启动文件。我读过的描述说它可能是 boot/ 或 boot/grub。
ls (hd)/boot/grub #应该返回类似这样的内容;fonts/grub.cfg i386-pc/loopback.cfg x86_64-efi/(这是我的精确返回值)
完成上述操作找到 /boot/grub 后,下面的操作对我有用。
set prefix=(hd)/boot/grub
set root=(hd)
insmod linux
insmod normal
normal
boot
在我的情况下,启动命令后,它进入 Ubuntu Live 的 grub 菜单,为我提供了尝试或安装的正常选项。这些单元似乎特别困难一些。