如何为 Microsoft Surface Pro 3 创建并启用 EFI 可启动 SD 卡?

如何为 Microsoft Surface Pro 3 创建并启用 EFI 可启动 SD 卡?

我的 Microsoft Surface Pro 3 中的 ssd 硬盘坏了。它在一分钟内过热,之后无法读取或写入。要更换 ssd 驱动器,您必须卸下屏幕(这非常困难)。因此,我想创建可启动的 sd 卡并将 sd 卡用作主磁盘。

如何创建和启用 EFI 可启动 SD 卡?

答案1

因此,到目前为止我已经做到了:

先决条件:

  • 带有可启动 Ubuntu Live CD 的 USB 闪存驱动器(我使用 Rufus 创建了 Ubuntu LTS 20.04)
  • 空 SD 卡(我有 64Gb,越大越好)
  • 无线网络

程序:

  1. 关机。按下音量调高键和电源键进入 BIOS。按住这两个键直到看到“表面”文字。

  2. 从 BIOS 首页禁用所有安全功能(项目符号 1 和 2),将启动顺序更改为“ssd->硬盘驱动器”,将带有 ubuntu livecd 的 USB 闪存驱动器插入 USB2 端口,将 SD 卡插入 SD 插槽并重新启动。

  3. 启动时,启动屏幕应为红色。Ubuntu Live CD 加载后,选择“试用 ubuntu”(不要安装,因为无法禁用损坏硬盘上的 ESP/efi 标志,否则系统会崩溃)。

  4. 打开终端(按下键盘上的 Windows 键并输入“terminal”)

  5. 运行“ubiquity --no-bootloader”并安装 ubuntu...

  6. ...当它为您提供选项时:1. 删除程序,2. 擦除磁盘或 3. 其他。选择其他选项(它允许对 SD 卡重新分区)。

  7. 将 SD 卡重新划分为三个分区(这里两个分区也可以)。对我来说,SD 卡显示为 /dev/sdc。

7.1. 制作 500 Mb /dev/sdc1 并将其用作 EFI。

7.2. 创建 500 Mb /dev/sdc2 并将其用作“为引导管理器保留”。

7.3. 制作与 SD 卡大小相等的 ext4 卷,并将其挂载到 /(即 /dev/sdc3)

  1. 完成 Ubuntu 安装。最后可能会出现错误。不要重启,继续。

  2. 安装 Refind。在终端中:

sudo apt-add-repository ppa:rodsmith/refind
sudo apt-get update
sudo apt-get install refind
  1. 在终端中运行(sdc1 是 efi 分区):

refind-install --use-defaults /dev/sdc1

  1. 挂载 /dev/sdc1 和 /dev/sdc3 并将 Linux 内核复制到 efi 文件夹(在终端中):
sudo mkdir /mnt/sdc1
sudo mkdir /mnt/sdc3
sudo mount /dev/sdc1 /mnt/sdc1
sudo mount /dev/sdc3 /mnt/sdc3
sudo mkdir /mnt/sdc1/EFI/BOOT/ubuntu
sudo cp -r /mnt/sdc3/boot/* /mnt/sdc1/EFI/BOOT/ubuntu/
  1. 编辑 refind.conf 以匹配 Linux 内核的位置,如下所示:

12.1. 找到你挂载到 / 的 /dev/sdc3 的 UUID 号码(我的 UUID 号码是 9e9a435a-2dce-49ad-a97b-197c93b7c231):

sudo lsblk -f

12.2 将 EFI 中的长名称复制为较短的名称(此处版本号可能不同,请根据需要调整):

cd /mnt/sdc1/EFI/BOOT/ubuntu/ sudo cp vmlinuz-5.13.0-30-generic vmlinuz sudo cp initrd.img-5.13.0-30-generic initrd.img

12.3 在 /mnt/sdc1/EFI/BOOT/refind.conf 末尾添加以下内容(请注意,长 UUID 号是我从步骤 12.1 中获得的,请进行相应调整,路径是在步骤 11 中创建的没有 /mnt/sdc1 的路径):

menuentry Ubuntu {
    icon /EFI/BOOT/icons/os_linux.png
    volume 9e9a435a-2dce-49ad-a97b-197c93b7c231
    loader /EFI/BOOT/ubuntu/vmlinuz
    initrd /EFI/BOOT/ubuntu/initrd.img
    options "ro root=UUID=9e9a435a-2dce-49ad-a97b-197c93b7c231"
    enable 
}
  1. 移除 USB 记忆棒,保留 SD 卡并重启。选择 Linux 图标并尽情享受吧!

  2. 在 bios(音量调高 + 电源启动)中,启用项目 1。受信任模块平台。保持项目 2。设备签名禁用。Linux 内核未签名...我想我需要签名的 .efi 版本的 Linux 内核,而不是 initrmfs。

重要方面:

  • Ubuntu 引导加载程序安装不起作用,因为损坏的磁盘启用了 EFI 标志,并且您无法更改它,因为对损坏的磁盘的写入操作不起作用。
  • SD 卡中的第一个分区(/dev/sdc1)是带有附加 EFI 标志的 FAT 系统
  • refind 可以运行任何映像,而不仅仅是 .efi
  • 重要提示:stock refind 不支持 ext4。将 Linux 内核复制到 FAT 驱动器 (sdc1)
  • refind 仅识别具有 UUID 的磁盘。在配置中告知根和卷是具有 <UUID#> 的磁盘。
  • 您需要互联网来更新 Live CD。不包括重新查找
  • FAT 驱动器没有符号链接,因此将内核复制到更短的名称

相关内容