我的 Microsoft Surface Pro 3 中的 ssd 硬盘坏了。它在一分钟内过热,之后无法读取或写入。要更换 ssd 驱动器,您必须卸下屏幕(这非常困难)。因此,我想创建可启动的 sd 卡并将 sd 卡用作主磁盘。
如何创建和启用 EFI 可启动 SD 卡?
答案1
因此,到目前为止我已经做到了:
先决条件:
- 带有可启动 Ubuntu Live CD 的 USB 闪存驱动器(我使用 Rufus 创建了 Ubuntu LTS 20.04)
- 空 SD 卡(我有 64Gb,越大越好)
- 无线网络
程序:
关机。按下音量调高键和电源键进入 BIOS。按住这两个键直到看到“表面”文字。
从 BIOS 首页禁用所有安全功能(项目符号 1 和 2),将启动顺序更改为“ssd->硬盘驱动器”,将带有 ubuntu livecd 的 USB 闪存驱动器插入 USB2 端口,将 SD 卡插入 SD 插槽并重新启动。
启动时,启动屏幕应为红色。Ubuntu Live CD 加载后,选择“试用 ubuntu”(不要安装,因为无法禁用损坏硬盘上的 ESP/efi 标志,否则系统会崩溃)。
打开终端(按下键盘上的 Windows 键并输入“terminal”)
运行“ubiquity --no-bootloader”并安装 ubuntu...
...当它为您提供选项时:1. 删除程序,2. 擦除磁盘或 3. 其他。选择其他选项(它允许对 SD 卡重新分区)。
将 SD 卡重新划分为三个分区(这里两个分区也可以)。对我来说,SD 卡显示为 /dev/sdc。
7.1. 制作 500 Mb /dev/sdc1 并将其用作 EFI。
7.2. 创建 500 Mb /dev/sdc2 并将其用作“为引导管理器保留”。
7.3. 制作与 SD 卡大小相等的 ext4 卷,并将其挂载到 /(即 /dev/sdc3)
完成 Ubuntu 安装。最后可能会出现错误。不要重启,继续。
安装 Refind。在终端中:
sudo apt-add-repository ppa:rodsmith/refind sudo apt-get update sudo apt-get install refind
- 在终端中运行(sdc1 是 efi 分区):
refind-install --use-defaults /dev/sdc1
- 挂载 /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/
- 编辑 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
}
移除 USB 记忆棒,保留 SD 卡并重启。选择 Linux 图标并尽情享受吧!
在 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 驱动器没有符号链接,因此将内核复制到更短的名称