夸克之书

  • 首页
  • 科普
  • 笔记
  • .NET/C#
  • 物联网
  • 算法
  • Linux
  • 树莓派
夸克之内,别有洞天
  1. 首页
  2. 树莓派
  3. 正文

树莓派4B配置U盘启动

2019-08-24 28495点热度 5人点赞 25条评论

早期树莓派4B才出来的时候,不支持直接从U盘或者SSD启动,随着树莓派官方不断更新EEPROM,目前树莓派已经支持直接从U盘/SSD启动,无需再使用SD作为引导了。

1、检查并更新自己的EEPROM固件版本

sudo rpi-eeprom-update

如下图所示:

%title插图%num

如果你的eeprom小于标出来的版本,请参照此链接更新树莓派4B的eeprom。(目前最新eeprom版本为pieeprom-2021-07-06.bin,2021.07.19)

2、烧录系统

树莓派官网下载最新的Raspbian OS并烧录到U盘或SSD中,烧录方法和烧录到SD卡方法相同。目前官方已经支持64位系统,点此下载树莓派4B系统。

如果没有显示器并希望开启SSH访问,可以在boot分区下面新建一个空白的文本文档,并改名为SSH(没有后缀名)。

提示:非最新系统可能需要更新boot固件,不想折腾直接下载目前最新系统即可。

3、无法启动(USB-MSD boot requires newer software)

如果无法启动并提示“USB-MSD boot requires newer software”,那则需要更新boot固件。

%title插图%num

访问https://github.com/raspberrypi/firmware/releases,下载最新的固件。将下载下来的文件解压,然后复制boot目录中所有内容到写有树莓派系统的U盘boot分区当中。

%title插图%num

3、愉快玩耍吧~

U盘/SSD插上树莓派,上电启动吧~

参考链接:

  1. Pi 4 Bootloader Configuration
  2. firmware下载
  3. rpi-eeprom

=====================分割线=======================

下面的方式已过期,仅提供参考意义。

众所周知,SD卡速度太慢。而且树莓派4有USB3.0接口,搞个NVME SSD,速度简直起飞。

在树莓派3B时代,设置U盘启动只需要设置program_usb_boot_mode=1,但在树莓派4中并不合适,Pi4使用与早期型号不同的引导加载程序。它存储在电路板上的eeprom中,而不是存储在芯片中。但也据说后期将会在树莓派4中提供类似的方法。

%title插图%num
并不支持4B

不能设置OTP位,但是可以使用旧的办法,通过SD卡引导位于U盘中的系统。

1、准备烧录好系统的SD卡

建议采用目前官网的系统,我测试了树莓派爱好者基地的64位Debain,没有启动成功。

2、准备烧录好系统的SSD或者U盘

烧录与U盘同样的系统,烧录方式和烧录SD卡相同。

3、将SD和U盘都插到树莓派上面,开机。

4、运行blkid

sudo blkid

将显示以下结果

/dev/mmcblk0p1: LABEL="RASPI" UUID="B8F2-1311" TYPE="vfat" PARTUUID="34bb5735-01"
/dev/sda1: LABEL_FATBOOT="boot" LABEL="boot" UUID="3FFE-CDCA" TYPE="vfat" PARTUUID="698e33bd-01"
/dev/sda2: LABEL="rootfs" UUID="3122c401-b3c6-4d27-8e0d-6708a7613aed" TYPE="ext4" PARTUUID="698e33bd-02"
/dev/mmcblk0: PTUUID="34bb5735" PTTYPE="dos"

如果遇到SD卡和外置存储器PARTUUID相同的情况,请查看第五步。

其中/dev/mmcblk0p1和2为SD卡,以及sda1和2为U盘或者SSD分区。重点需要的是sda2中的PARTUUID。

如下所示:

/dev/sda2: LABEL="rootfs" UUID="3122c401-b3c6-4d27-8e0d-6708a7613aed" TYPE="ext4" PARTUUID="698e33bd-02"

5、编辑/boot/cmdline.txt

当SD卡和U盘PARTUUID不同的情况下,修改cmdline.txt。如果PARTUUID相同,请跳过修改cmdline.txt(都是一样的,还修改什么),然后查看下方的第二种方案。

第一种方案 PARTUUID不同

首先进行备份

sudo cp /boot/cmdline.txt /boot/cmdline.txt.bak

然后编辑

sudo nano /boot/cmdline.txt

替换里面的 PARTUUID

替换前: dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=af1800e7-01 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
替换后: dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=698e33bd-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

修改完成之后重启树莓派。可能第一次启动要点时间,多等等。还有就是因为树莓派USB集线器的问题,某些U盘或者SSD转USB扩展板不支持,可以通过第八点查看自己的USB设备。USB3.0具体支持信息可以查看官网链接。

第二种方案 PARTUUID相同

注意!注意!注意!

树莓派官方最新的系统(20200213)使用相同的PTUUID/PARTUUID创建所有SD卡和USB设备。直接导致了所有设备的PARTUUID都是相同的,真的是一脸懵逼。

如果看到所有的PARTUUID都是相同的话,就不用编辑cmdline.txt文件了。Shell中执行:

sudo fdisk /dev/mmcblk0

然后输入‘d’,再选择2,删除第二分区之后,输入‘w’。保存退出之后重启树莓派。

当系统启动之后执行以下命令:

sudo fdisk /dev/sda

然后输入‘d’,再选择1,删除第一分区之后,输入‘w’。保存退出之后重启树莓派。 此时内存卡中只有个启动分区,外置储存设备中只有rootfs系统分区了。

小心,切勿选错了。

然后直接跳过第六步,进行第七步扩容操作。

6、更新fstab

重启后可以通过以下命令查看是否成功。

findmnt -n -o SOURCE /

显示/dev/sda2则设置成功。

然后输入

sudo nano /etc/fstab

proc                  /proc           proc    defaults          0       0
PARTUUID=698e33bd-01  /boot           vfat    defaults          0       2
PARTUUID=698e33bd-02  /               ext4    defaults,noatime  0       1

将boot分区PARTUUID替换为内存卡的PARTUUID,启动后默认挂载的是外置存储器中的引导分区,尽管这个分区并没有用,所以要替换为内存卡中的引导分区PARTUUID,因为我们使用的是内存卡里面的引导分区。

内存卡引导分区可以通过命令sudo blkid查看。

/dev/mmcblk0p1: LABEL="RASPI" UUID="B8F2-1311" TYPE="vfat" PARTUUID="34bb5735-01"

7、调整文件系统大小

已此方式启动的系统默认是不会自动扩展系统分区大小,需要手动扩展。

sudo fdisk /dev/sda

Welcome to fdisk (util-linux 2.33.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p

Disk /dev/sda: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Disk model: 2115
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 33553920 bytes
Disklabel type: dos
Disk identifier: 0x0634f60c
Device     Boot  Start     End Sectors  Size Id Type
/dev/sda1         8192  532480  524289  256M  c W95 FAT32 (LBA)
/dev/sda2       540672 4292607 3751936  1.8G 83 Linux

/dev/sda2(rootfs)的起始值是54067,下面会用到。接下来,需要删除并重新创建更大的分区。如果你在这个命令中犯了任何错误,只需按q关闭fdisk即可。更改不会写入磁盘。此处一定要小心,搞错了以上的功夫可能就全部白费了。

Command (m for help): d
Partition number (1,2, default 2): 2
Partition 2 has been deleted.
Command (m for help): n
Partition type
    p   primary (1 primary, 0 extended, 3 free)
    e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (532481-500118191, default 589815): 540672 (enter the start value exactly as it was, the default will be wrong)
Last sector, +/-sectors or +/-size{K,M,G,T,P} (540672-500118191, default 500118191): (press enter to accept default which is the full disk)
Created a new partition 2 of type 'Linux' and of size 238.2 GiB.
Partition #2 contains a ext4 signature.
Do you want to remove the signature? [Y]es/[N]o: n (不删除签名)
Command (m for help): w

以此按照以上命令输入就行了。

然后重启系统。重启系统后继续输入

sudo resize2fs /dev/sda2
resize2fs 1.44.5 (15-Dec-2018)
Filesystem at /dev/sda2 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 15
The filesystem on /dev/sda2 is now 62447190 (4k) blocks long.

完成系统磁盘分区扩展。可以通过

df -h

命令查看是否完成扩展。

可以通过以下命令进行测速。

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

我用的是一块NVME扩展板,然后固态用的是傲腾16G,30块买的,没啥用。装个树莓派系统还是美滋滋,4K性能爆表。

%title插图%num

8、查看当前USB总线

lsusb

Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 152d:0562 JMicron Technology Corp. / JMicron USA Technology Corp. 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0000:3825  
Bus 001 Device 003: ID 04d9:1830 Holtek Semiconductor, Inc. 
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

其中第二行“Bus 002 Device 002: ID 152d:0562 JMicron Technology Corp. / JMicron USA Technology Corp. ”即为外置储存设备。

9、爆照

%title插图%num
%title插图%num
本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2021-07-19

afirefish

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

  • cxeg

    哈哈哈 大佬 能出个 NSA的教程吗

    2019-08-30
    登录以回复
    • afirefish

      @cxeg 空了可以搞个NAS玩玩,用树莓派搭建NAS还不如上某鱼买个星际蜗牛啥的,便宜,性能也够。

      2019-09-10
      登录以回复
  • oh2e

    老哥 推荐个NVME转USB3.0的转接器吧 :lol:

    2019-12-31
    登录以回复
    • afirefish

      @oh2e 不晓得你要用那种转接器,树莓派的话推荐https://item.taobao.com/item.htm?spm=a230r.1.14.25.63846408c5VLvr&id=535513302159&ns=1&abbucket=3#detail。
      其他设备应该任意一个USB NVME硬盘盒都可以。不过我没做测试。

      2020-01-01
      登录以回复
    • 盛成威科技

      @oh2e 看到有一个这个USB3.0转sata固定硬盘支持NGFF类型的 https://item.taobao.com/item.htm?spm=a1z10.3-c-s.w4002-15798263822.10.353667d9QhqpUN&id=636112258934

      2021-01-08
      登录以回复
  • oh2e

    老哥 你这个傲腾16G在千兆路由器下能跑多少兆? 我的雷克沙TF卡才30M读写 根本达不到千兆网的100MB/s啊 :cry: :cry: :cry: :cry:

    2020-01-03
    登录以回复
    • afirefish

      @oh2e 这个我没测试过哇,回头回去了我可以给你测试一哈。

      2020-01-04
      登录以回复
  • oh2e

    好 坐等老哥回复 :biggrin:

    2020-01-05
    登录以回复
    • afirefish

      @oh2e 刚刚测试了哈,局域网内基本可以跑满千兆。
      lgMdmT.jpg

      2020-01-08
      登录以回复
      • oh2e

        @afirefish 老哥 用Samba协议 从Pi4复制到Windows Win的进度条也显示97.8MB/s? :surprised: :redface:

        2020-01-11
        登录以回复
        • afirefish

          @oh2e 这个没试,不过应该没问题吧。Samba跑满千兆是没问题的,我路由器上面用了Samba,跑满千兆没问题。

          2020-01-13
          登录以回复
          • oh2e

            @afirefish :exclaim: 啊 :surprised: 啊 :exclaim: 看来我要赶紧跟随LZ把SD换成傲腾 :biggrin: :lol: :persevering:

            2020-01-13
          • afirefish

            @oh2e 固态也行,树莓派压根没法发挥傲腾的性能。而且傲腾容量特太小。

            2020-01-13
          • oh2e

            @afirefish 傲腾不是拿来当缓存盘么,读取总比SD快很多吧 :redface: 我拿来缓存12TB盘 :biggrin:

            2020-01-16
  • 深蓝

    用SSH,删除SD卡第二个分区,就再也重启不了了,是必须要外接显示器和键盘操作吗?

    2020-03-08
    登录以回复
    • afirefish

      @深蓝 不需要外接显示器和键盘....我也没有显示器和键盘。
      检查一下U盘或者移动硬盘支持启动不,4B好像有点挑食。具体情况先看下这个:https://jamesachambers.com/raspberry-pi-4-usb-boot-config-guide-for-ssd-flash-drives/

      2020-03-12
      登录以回复
      • 深蓝

        @afirefish 我用的是20200213的raspbian版本,x850的扩展卡,能在2.0下挂载,显示ASMedia Technology Inc芯片。但是用你的教程,2.0下也不能启动。

        2020-03-14
        登录以回复
        • 管理员

          @深蓝 看过SD卡和SSD的UUID是相同的?还是不同的?可以的话,加个QQ私聊下呢(770702827)?

          2020-03-16
          登录以回复
    • H°Y♡H

      @深蓝 我用的Debian64位的也是删除第二个分区就启动不了了,你的解决没有,我打算的是使用硬盘启动,但是看了很多教程都没有成功

      2020-04-08
      登录以回复
  • chad

    我最新的怎么才4月16日的?USB也启动不了。
    pi@raspberrypi:~ $ sudo rpi-eeprom-update
    BCM2711 detected
    Dedicated VL805 EEPROM detected
    BOOTLOADER: up-to-date
    CURRENT: 2020年 04月 16日 星期四 17:11:26 UTC (1587057086)
    LATEST: 2020年 04月 16日 星期四 17:11:26 UTC (1587057086)
    FW DIR: /lib/firmware/raspberrypi/bootloader/critical
    VL805: up-to-date
    CURRENT: 000137ad
    LATEST: 000137ad
    pi@raspberrypi:~ $

    2020-06-04
    登录以回复
    • afirefish

      @chad 要去github下载最新的eeprom固件。另一篇博客里面有更新方法。

      2020-06-08
      登录以回复
  • 跟柯南同班

    大佬,因为新版系统已经开始支持树莓派4b用usb启动了,能不能出个具体的教程啊?对于这部分内容还有一些问题:如何把系统烧录到硬盘中啊?开启ssh的办法是跟系统烧录到sd卡的方法一样吗?要开启usb启动是否跟3代一样需要改下配置啊?

    2020-06-10
    登录以回复
    • afirefish

      @跟柯南同班 教程已经更新了,第一部分内容。开启SSH方法和之前是一样的

      2020-06-15
      登录以回复
  • 一键快乐

    老哥 我替换之后能进去了但是网络和声音上有两个×怎么办

    2021-07-09
    登录以回复
    • 管理员

      @一键快乐 现在不用替换了,更新eeprom即可

      2021-07-19
      登录以回复
  • 您需要 登录 之后才可以评论
    放松一下
    https://www.quarkbook.com/wp-content/uploads/2021/05/凤凰传奇-海底(Live).flac
    分类
    • .NET/C#
    • Linux
    • 树莓派
    • 物联网
    • 科普
    • 笔记
    • 算法
    • 默认
    最新 热点 随机
    最新 热点 随机
    维持宇宙的四种“力量”——关于四大基本力 MinGW图形安装界面里面没有mingw32 make.exe解决办法 Windows Server 2022安装Intel I225-V/I226-V驱动 System.Text.Json与Newtonsoft.Json Json序列化与反序列化性能对比 R86S散热改造 Windows移除多余输入法'Unknown Locale (qaa-Latn)'
    Windows Server 2022安装Intel I225-V/I226-V驱动MinGW图形安装界面里面没有mingw32 make.exe解决办法维持宇宙的四种“力量”——关于四大基本力
    ESXi 6.7 切换时区(已经确认无效) 严肃一点的排序算法(2) – 面条排序 基于CURL的HTTP请求代码(C语言) 文摘 PVE重启后LVM Thin数据丢失,错误:Volume group "****" has insufficient free space (128 extents): 4048 required. 树莓派.Net Core Iot入门系列篇(3):I2C
    最近评论
    afirefish 发布于 4 个月前(11月28日) 非常感谢,非常棒!
    》随缘《 发布于 4 个月前(11月20日) 最新【一键处理】方法: https://github.com/MrXhh/VSTools/rele...
    管理员 发布于 9 个月前(06月22日) emmmm....服务器好一点???
    wking 发布于 10 个月前(05月23日) 请问贵博客是怎么优化的,网页响应速度非常快。我博客同样的WordPress和kratos主题,但点一...
    去月球 发布于 1 年前(01月17日) 如果使用CSI的摄像头应该怎么修改命令呢
    书签
    • 打赏
    • 毒鸡汤
    • 米店
    • 金鱼直播间

    COPYRIGHT © 2022 quarkbook.com. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang

    蜀ICP备15036129号-9

    登录
    注册|忘记密码?