如何从USB启动Raspberry Pi 3

Raspberry Pi是一款功能强大的多功能套件,能够执行各种项目,例如运行媒体中心以用作广播电台。但是它有一个明显的缺陷:无法从USB引导。

嗯,直到现在,就是这样。

如果您使用的是Raspberry Pi 3,那就是现在可以放弃从microSD启动,而从USB设备启动计算机。这可能是闪存棒,带有USB适配器的SSD,甚至是全尺寸的USB硬盘驱动器。这是一项重大的进展,因此让我们看一下如何设置Raspberry Pi 3从USB引导。

入门:安装Raspbian并添加新文件

最好要使用Raspbian的全新副本开始该项目,请下载最新版本(加载后我们将立即使用Raspbian Jessie。

登录(除非您已更改默认凭据),然后运行以下命令,这些命令将用新下载的替代文件替换默认的 start.elf bootcode.bin 文件:

sudo apt-get updatesudo BRANCH=next rpi-update

此更新将两个文件传送到 / boot 目录中。下载文件后,继续使用以下方法启用USB启动模式:

echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt

此命令将 program_usb_boot_mode = 1 指令添加到 config.txt 文件的末尾。

您需要重新启动完成后,请打开Pi。

下一步是检查OTP(一次性可编程存储器)是否已更改。使用以下命令进行检查:

vcgencmd otp_dump | grep 17:

如果结果代表地址 0x3020000a (例如 17:3020000a ),那么到目前为止一切都很好。在此阶段,如果您希望从 config.txt 文件中删除 program_usb_boot_mode = 1 行,则应能够。 Pi现已启用USB引导功能,您可能希望在另一个Raspberry Pi 3中使用相同的microSD卡,并使用相同的映像,因此删除该行是个好主意。

这很容易通过在nano中编辑 config.txt 来完成:

sudo nano /boot/config.txt

删除或注释掉相应的行(带有#)。

下一步,将格式化(或准备删除)的USB记忆棒连接到Raspberry Pi 3的备用端口中。插入后,我们将继续进行以下操作:

使用 lsblk 命令识别USB记忆棒。

SD卡是 mmcblk0 ,而USB记忆棒是 sda (格式化分区是 sda1 )。如果连接了其他USB存储设备,则USB记忆棒可能是sdb,sdc等。在建立了USB记忆棒的名称的情况下,卸载磁盘,然后使用分区工具创建100 MB分区(FAT32)和Linux分区:

sudo umount /dev/sdasudo parted /dev/sda

在(分开的)提示符下,输入:

mktable msdos

您可能会被告知该磁盘已被占用。如果是这样,请选择忽略,然后注意警告信息,指示您磁盘上的数据将被破坏。如前所述,该磁盘应该是您希望删除或格式化的磁盘,因此请对此表示同意。

如果此处遇到任何问题,则可能需要切换到桌面(手动,或通过VNC)并确认已卸载磁盘,然后在窗口命令行中输入mktable msdos命令。

继续执行以下操作:

mkpart primary fat32 0% 100Mmkpart primary ext4 100M 100%print

这将输出一些内容有关磁盘和新分区的信息。在创建启动文件系统和根文件系统之前,请先使用Ctrl + C退出。

sudo mkfs.vfat -n BOOT -F 32 /dev/sda1sudo mkfs.ext4 /dev/sda2

然后,您需要先安装目标文件系统,然后再将当前的Raspbian操作系统复制到USB设备。

sudo mkdir /mnt/targetsudo mount /dev/sda2 /mnt/target/sudo mkdir /mnt/target/bootsudo mount /dev/sda1 /mnt/target/boot/sudo apt-get update; sudo apt-get install rsyncsudo rsync -ax --progress / /boot /mnt/target

最后一个命令是复制所有内容的最终命令,因此需要一段时间才能完成。是时候煮咖啡了!

Next, you need to refresh the SSH host keys, to maintain the connection with the reconfigured Raspberry Pi after an imminent reboot:

cd /mnt/targetsudo mount --bind /dev devsudo mount --bind /sys syssudo mount --bind /proc procsudo chroot /mnt/targetrm /etc/ssh/ssh_host*dpkg-reconfigure openssh-serverexitsudo umount devsudo umount syssudo umount proc

请注意,在sudo chroot(上面的第五个命令)之后,您将切换到root,因此用户将从 pi @ raspberrypi 更改为< strong> root @ raspberrypi ,直到您在第8行输入退出。

为从USB重启做准备!

在您的Raspberry Pi出厂之前,还需要整理一些其他信息。准备从USB启动。我们需要使用以下命令从命令行再次编辑 cmdline.txt

类似地,需要对fstab进行以下更改:

sudo sed -i "s,/dev/mmcblk0p,/dev/sda," /mnt/target/etc/fstab

在关闭Pi之前,您已经准备好卸载文件系统:

cd ~sudo umount /mnt/target/bootsudo umount /mnt/targetsudo poweroff

请注意,这使用了新的 poweroff 该命令可以替代关机

当Pi关机时,请先断开电源,然后再卸下SD卡。接下来,重新连接电源-Raspberry Pi现在应该从USB设备启动!要获得有关Pi的更多帮助,请查看如何在Raspberry Pi 3上设置Wi-Fi和蓝牙。

准备尝试Raspberry Pi 4?查看其功能和规格。

标签: Raspberry Pi USB