树莓派3B设置U盘启动只需要设置program_usb_boot_mode=1 ,但是到了4的时候由于启动方式的变化导致了这种方法已经失效了。现在的启动程序是存在电路板的 eeprom 上的,而以前是芯片。由于SD卡的速度属实令人捉急,所以利用USB3.0的高速传输可以摆脱这一困境。

准备及材料

1、树莓派4
2、8GB容量以上的SD卡

3、支持USB3.0的U盘(或者移动硬盘容量大小随便)

1、烧录系统

官网上直接下载你所需要的树莓派系统然后烧录到SD卡及U盘上。必须要保证是同一个系统。

刷好系统后如果你没有多余的显示屏可以在SD卡和U盘上都新建一个命名为‘ssh’的空白文件,要注意删去后缀名。然后把SD卡和U盘都插在树莓派上再开机。这样就可以ssh到树莓派上了。
开机之后建议先更换源,详见树莓派4更换清华源
更新系统
sudo apt-get update && sudo apt-get dist-upgrade

2、获取 SD卡和U盘PARTUUID

sudo blkid
可以获得以下输出
/dev/mmcblk0p1: LABEL_FATBOOT="boot" LABEL="boot" UUID="9969-E3D2" TYPE="vfat" PARTUUID="97709164-01"
/dev/sda1: LABEL_FATBOOT="boot" LABEL="boot" UUID="9969-E3D2" TYPE="vfat" PARTUUID="97709164-01"
/dev/sda2: LABEL="rootfs" UUID="8f2a74a4-809c-471e-b4ad-a91bfd51d7c3" TYPE="ext4" PARTUUID="97709164-02"
/dev/mmcblk0: PTUUID="97709164" PTTYPE="dos"

mmcblk0是SD卡,sda是U盘
如果你看到是和我一样的情况,即所有的设备的PARTUUID相同则进行下一步。否则请下载( 2020-02-13)之后的系统重新烧录系统。

3、删除多余分区

为了让系统从U盘上启动,我们需要将SD卡上的 rootfs系统分区,U盘上的启动分区 删除。这样他们就可以刚好合并成一个完整的系统。


删除SD卡上第二个分区

sudo fdisk /dev/mmcblk0
然后输入‘d’,再选择2,删除第二分区之后,输入‘w’。保存退出之后重启树莓派。
删除U盘上第一个分区
sudo fdisk /dev/sda
然后输入‘d’,再选择1,删除第一分区之后,输入‘w’。保存退出之后重启树莓派。


如果中途遇到无法启动的情况需要考虑是否为之前创建的SSH文件丢失。解决办法就是重新创一个文件名为ssh的空白无后缀名文件。

4、调整文件系统大小

这种方法启动的系统默认是不会自动扩展系统分区大小,需要手动扩展。
sudo fdisk /dev/sda
按P得到如下图输出,记录初始值start:532480
扩容
如果你中间有地方弄错了可以随时按q退出,一旦弄错很有可能要重新来过。


依次输入以下命令:d(删除),2(盘符号码),n,p,2,初始值(即532480),n,w(保存)
然后重启系统,输入以下代码完成分区扩展
sudo resize2fs /dev/sda2
可以通过df -h命令来查询是否成功。可以通过一下代码进行测速。

curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash

请输入图片描述

最后修改:2020 年 02 月 22 日
如果觉得我的文章对你有用,请随意赞赏