我从USB固态硬盘启动我的树莓PI 4

2020-06-10 08:53:49

最近,Raspberry Pi基金会宣布了Raspberry Pi 4的USB引导测试版。很长一段时间以来,我对Raspberry Pi最大的抱怨是I/O速度有限(特别是主引导卷)。而在较老的PI上,最大外部磁盘速度尤其受到USB2.0总线的限制-该总线与网络适配器共享,进一步限制了其带宽-即使是USB引导也不会让事情变得令人惊叹。

但是PI4不仅把网卡和USB总线分开,它还有USB3.0,理论上可以比USB2.0快10倍。所以当USB引导测试版发布的时候,我想试一试。在测试了一下之后,我决定将PI 4作为我的全职工作站使用一天,看看它是否能应付得来,以及它的不足之处。我很快就会发布一段视频和博客文章,介绍更多关于这段经历的细节。

首先,我用最新的64位测试版Raspberry PI OS刷新了一张32 GB的SanDisk Extreme Pro microSD卡。将来,您将能够从常规的Pi OS下载页面下载它,但目前它可以从这个论坛主题中获得。

要想刷卡,我的Mac上还是要用好的老式dd,不过你可以用树莓PI成像仪来代替。

注意:如果您在这里做错了什么,您可能会损坏PI的固件并使其无法操作。如果您尝试使用此测试版功能,我不能对您的PI发生的任何事情负责!

在Raspberry PI OS中打开终端(注意:如果您想设置无头PI,可以通过SSH从另一台计算机执行这些步骤)。

接下来,您需要将PI OS刷新到外部USB SSD或HDD。首先,最好在PI启动时将驱动器插入PI,并确保PI能够识别它(它应该显示在您的桌面上,或者您也可以使用lsusb查找它)。并非所有外置驱动器和USB转SATA适配器都能开箱即用。

如果你想知道,我正在Inateck USB3.0 SATA机箱内使用便宜的Kingston A400 240 GB固态硬盘。是的,这些都是附属链接。

因此,将USB驱动器插入您的主计算机(您之前在那里刷新了microSD卡),并将Raspberry PI OS闪存到它,就像您对microSD卡执行的操作一样。

弹出引导卷之前,需要用GitHub提供的最新版本替换引导卷上的一些文件:

转到raspbercrypi/Firmware GitHub存储库并下载zip或将项目克隆到您的计算机(获取默认的主分支)。

在引导文件夹内,将以.elf或.dat结尾的所有文件复制到USB驱动器的引导卷中(替换已存在的同名文件)。

如果PI当前正从microSD卡运行,请将其关闭。然后拔下microSD卡,并插入USB驱动器。

确保将驱动器插入USB 3.0端口(蓝色的),而不是USB 2.0端口(黑色的),否则您的吞吐量将受到严重限制。

打开PI的电源,大约一分钟后(它必须扩展USB驱动器以填满卷,然后重新启动),它应该会启动!

不过,如果您和我一样,您可能会在软重启后进入此屏幕:

这没问题;这似乎与系统重新启动后引导加载程序无法通过USB-HDD启动的错误有关,解决方案(目前)是拔下PI以完全关闭电源,然后再将其插入。

现在,假设您的USB驱动器或SATA适配器是兼容的,PI应该会立即启动,您会发现它比以前从microSD卡启动时要快得多!

为了了解从microSD卡启动时访问磁盘的原始性能差异(根据我2019年Raspberry PI microSD卡的比较,这是您可以购买的最好的卡之一)与从Kingston USB SSD启动之间的原始性能差异。

第一个基准测试综合了大文件写入活动和小(4K)文件随机访问读/写活动。两者都很重要,但在许多方面,当使用PI这样的通用计算机时,后者的差异被放大,因为计算机不像摄像机或无人机那样整天读写大文件(大量顺序访问)(这是大多数microSD卡进行优化的使用案例)。

如果您希望自己运行此基准测试,请参阅Pi Dramble Wiki的磁盘访问基准测试页面。注意,对于USB SSD,我修改了hdparm测试以使用路径/dev/sda1,而不是/dev/mmcblk0。

在您问:是的,我运行了四次这些基准测试(放弃第一个结果)之前。我把它们放在一个全新的闪光系统上运行。我用完全相同的Raspberry Pi OS 64位测试版图像文件刷新了microSD卡和USB驱动器。我让PI在带风扇的情况下运行,PI在任何时候都没有油门。

结果真的不言而喻。对于顺序操作,使用USB SSD比使用microSD卡快3-4倍。对于随机访问,随机读取速度稍快一些,但写入速度大约快8倍!这在许多活动中都有不同之处,比如启动应用程序,运行带有许多标签的网络浏览器。顺序性能意味着您应该能够轻松地流式传输和/或录制4K或HD视频,同时PI也有足够的带宽用于其他事情(假设您不通过CPU重新编码-这会杀死CPU)。

为了了解磁盘访问如何影响我熟悉的真实应用程序的性能(并且能够使用非常精确的结果进行彻底的基准测试),我还运行了一组Drupal基准测试,使用我在PI上运行多年的PI Dramble Drupal基准测试。我在安装的DrupalPI上运行它们,该安装在通过Nginx访问的Docker容器中运行Drupal和MariaDB。

和以前一样,我将所有测试都运行了4倍,因为差别很大,所以我继续重新启动并再次运行它们;在相同的配置上,所有结果相差不到0.5%,所以很明显,SSD在许多操作中都有很大的不同-Drupal的安装和第一页加载导致数百个文件被访问和/或写入磁盘,所以在SSD上速度要快得多是有道理的。

这些基准测试表明,对于某些操作,磁盘IO性能并不那么重要。在Drupal的例子中,处理和返回每个页面加载的响应所需的数据都被缓存(在PHP的例子中,在opcache中,也在数据库的缓存中,在它的查询缓存中),因此实际的读取和写入都最小化了。

那么我们接下来要去哪里呢?第一次,我想我是在说服自己,对某些人来说,树莓派4可能是一台称职的通用计算机。在过去,它主要是通用计算的一个有趣的旁观者,有一些严重的限制。从最初的型号B开始,所有的限制都被取消了,除了一些不错的功能(例如,内置的快速NVMe存储,可能完全支持USB-C,以及CPU的速度更快)之外,它实际上并没有那么糟糕了。(#**$${##**$$})。而且它很安静,如果你使用它没有外壳,或者与一个像样的散热盒,如Flirc(我与其他选项一起审查了最好的方式,以保持您的冷静运行树莓PI 4)。

我不是在说陈词滥调:今天,我将树莓PI用于我所有的日常工作,看看在将其视为日常通用工作站的道路上有哪些坎坷的边缘。

与我的Dell XPS 13和MacBook Pro 16相比,静音选项、非常低的功耗和相对较低的入门成本使PI 4比以往任何时候都更吸引人。

在你深入评论并撕裂上面最后几段之前,请考虑一下,我不需要死亡之星级别的力量随时可用。我知道,一款64核、1 TB内存和1 TB NVMe固态硬盘RAID阵列的ThreadRipper将会在Raspberry PI 4上全力以赴。它的能效甚至更高(每单位计算的瓦数)!

但我喜欢把它比作一辆卡车:如果你想拖8万磅的材料,你就需要一个结实的半挂车钻机(一台开线机)。但是,当你可以花十分之一的成本买到一辆小皮卡(一辆PI 4)时,你愿意把它停在你的车道上进行日常的轻型运输活动吗?它是不是更有趣(一般说来……)。开皮卡还是开半自动皮卡?

尽管进一步扩大了比喻,PI可能更像是雪佛兰Aveo,而不是Macbook Air或戴尔XPS是皮卡。