SD卡的IO毕竟有限。一个Class10的SD卡,最高只能保障10MB/s的写入和20MB/s的读取速度。树莓派3提供了从外置USB储存设备启动的功能,这样既可以提升IO性能,又可以有效利用旧硬盘。
开启USB引导
根据树莓派官方的声明,这个操作是一次性的,并且不能被撤销。
开启的方式很简单,在SD卡 boot 分区的 config.txt 中,添加一行
program_usb_boot_mode=1
注意不要给 config.txt 的最后留出空行。
随后重启树莓派,就会开启USB引导功能。检验也很简单,在Shell执行:
$ vcgencmd otp_dump | grep 17:
返回
17:3020000a
即说明成功开启。
将SD卡上的树莓派系统迁移到外置USB硬盘里
将树莓派从SD卡启动,然后连接你的USB外置硬盘。从树莓派桌面左上角的主菜单中启动 Accessories – SD Card Copier
第一个选择你的SD卡,第二个选择USB硬盘,点按Start即可。
从USB外置硬盘引导树莓派
- 将你外置硬盘的USB接口插入树莓派靠近以太网口一侧的那组USB接口的下方那个USB接口。(靠近以太网口的USB接口电压高,下方的USB接口电压高。)
- 若你的USB硬盘有外置电源,打开它。
- 打开USB硬盘的外置电源后,立即接通树莓派的电源。
树莓派会先尝试从SD卡启动。若几秒内未找到SD卡,便会查找USB储存装置。而部分USB外接硬盘在供电后几秒内硬盘没有存取,便会关闭或休眠硬盘,这就可能导致树莓派找不到USB硬盘。在我的ORICO SATA转USB3的硬盘仓上,只有按照上述步骤,才能引导树莓派。
外接硬盘的IO
我的是ORICO SATA转USB3.0硬盘仓,硬盘是一块老的SATA2的三星160GB HDD。在树莓派上的跑分如下图:
相比SD卡,IO提升还是很明显的。
参考资料
https://www.raspberrypi.org/blog/another-update-raspbian/
https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/msd.md