我可以从 USB SSD 在 Raspberry Pi 4 上启动 Ubuntu Server 19.10 吗?

我可以从 USB SSD 在 Raspberry Pi 4 上启动 Ubuntu Server 19.10 吗?

如果有的话,有什么教程吗?

完全是新手;我对脚本、bash、foo 一无所知。

我所知道的只是“sudo”以及如何使用 nano 编辑文件而不会弄乱一切。

本教程的摘录你能在 Raspberry Pi 4 上安装 Ubuntu 吗还有效吗?

固态硬盘 (SSD) 配置(可选)

USB 启动功能尚未添加到 Raspberry Pi 4 固件中,但目前正在开发中。同时,您可以使用微型 SD 卡作为引导加载程序,并从固态硬盘启动整个操作系统 (rootfs),从而在整个系统范围内实现 USB 3.0 速度提升。一旦 Pi USB 启动功能正式发布,您就应该能够直接从设备启动,而无需任何临时的引导加载程序 SD 卡。

首先按照本教程前面的步骤创建一个完全映像并可启动的微型 SD 卡。创建微型 SD 安装后,您现在应该使用与创建 SD 卡时相同的 Ubuntu 映像来映像您的 SSD / USB 驱动器。

现在导航到新创建的 SSD/USB 驱动器上的“启动”分区,并删除其中的所有内容,就像我们之前对 SD 卡所做的那样。现在将“启动”文件夹从微型 SD 卡复制到固态驱动器。这是必要的,因为即使“启动”中的文件最初是从我们的微型 SD 卡读取的,但后期加载阶段的一些固件文件是从已安装的驱动器读取的,如果缺少必要的固件文件,系统将无法启动。

现在您已经创建了 SSD / USB 驱动器分区并将“启动”分区从 SD 卡复制到新驱动器,我们需要更新 SD 卡的 cmdline.txt 以指向 SSD / USB 驱动器的分区。

dwc_otg.fiq_fix_enable=2 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4

rootwait rootflags=noload net.ifnames=0

此处我们需要更改的关键部分是部分root=/dev/mmcblk0p2mmcblk0p2是微型 SD 存储的硬件标识符。我们需要将其更改为您的存储被检测到的设备。

如果您使用的是 USB 转固态硬盘适配器,您的驱动器很可能被寻址为 /dev/sda2。因此,我们将更root=/dev/mmcblk0p2改为root=/dev/sda2

root=/dev/sda2

最后一行将是:

dwc_otg.fiq_fix_enable=2 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/sda2 rootfstype=ext4

rootwait rootflags=noload net.ifnames=0

将微型 SD 和固态硬盘插入 Pi 并启动它。

请记住:首次启动可能需要 2-3 分钟,因此在假设它不起作用之前请等待一些时间。

答案1

我将 Ubuntu Server 19.10 for Raspberry Pi 映像刷入 microSD 卡和 SSD,然后将它们都连接到我的 Raspberry Pi 4B。

令我惊讶的是,从 SSD 加载 Ubuntu Server 可以立即运行,无需任何重新配置​​。初始启动过程依赖于 microSD 卡 /boot 卷,但随后使用 SSD 上的 linux 根卷来加载 Ubuntu Server。我甚至从 microSD 卡中删除了 linux 根卷,以确保它不会被以任何方式访问。

我自己是一个 Linux/Raspberry Pi 新手,但在查看启动卷的内容并检查 README 文件后,我发现默认情况下/boot/nobtcmd.txt文件在启动期间被调用来挂载根卷,并包含以下行:

net.ifnames=0 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=LABEL=writable rootfstype=ext4 elevator=deadline rootwait fixrtc

根=LABEL=可写部分定义要安装的卷,在本例中是根据卷标名而不是像 sda1 这样的设备名来安装卷。microSD 和 SSD 是从同一个映像中闪存的,它们各自包含两个卷,标签分别为“system-boot”和“writable”。看来 SSD 控制器的优先级高于 microSD 控制器,并且在启动过程中最初按卷标安装根目录时,首先会找到 SSD 上的“可写”卷。

答案2

不管怎样,我遵循了这里的一般建议:https://jamesachambers.com/raspberry-pi-4-usb-boot-config-guide-for-ssd-flash-drives/以及您在问题中概述的内容,我发现 Ubuntu 提供的 Ubuntu 19.10 映像存在问题。经过多次尝试和错误,最终连接了一台显示器来查看发生了什么,我不得不:

  • 启动到 SD 卡
  • 将 SSD 驱动器挂载到/mnt(包括将 SD 卡的启动分区挂载到/mnt/boot/firmware
  • chroot 进入已挂载的驱动器
  • 更新它(如下所述:如何在 chroot 中更新和添加新包?
  • 然后最后重新启动

一切都正常了。现在运行正常。在我看来,Ubuntu 当前提供的映像的内核中存在某种错误,这会影响操作系统安装 SD 卡启动分区的能力,但在更高版本中已修复。这不会影响启动到 SD 卡,只会影响启动到 SSD。

我想补充一点,18.04 和 19.10 之间的性能略有提升,但这可能是内核扩展和默认配置之间的差异,并不重要。

相关内容