怎样从USB启动树莓派3

电子说

1.3w人已加入

描述

Raspberry Piis是一款功能强大的多功能套件,其功能多样,可以运行媒体中心用作广播电台。但是它有一个明显的缺陷:无法从USB引导。

好吧,直到现在为止。

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

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

最好从Raspbian的全新副本开始该项目,因此下载最新版本(我们正在使用Raspbian Jessie)并以通常的方式进行安装。完成此操作后,请安全地从PC上卸下该卡,将其插入已关闭电源的Raspberry Pi中并启动,并在加载后立即通过SSH进行远程连接。

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

sudo apt-get update

sudo 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的末尾文件。

usb

完成后,您将需要重新启动Pi。

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

vcgencmd otp_dump | grep 17:

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

usb

这可以通过在nano中编辑config.txt来轻松完成:

sudo nano /boot/config.txt

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

准备USB引导设备

下一步,将格式化(或准备删除)的USB记忆棒连接到Raspberry Pi 3的备用端口中。

首先使用lsblk命令识别您的USB记忆棒。

usb

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

sudo umount /dev/sda

sudo parted /dev/sda

在(分隔)提示下,输入:

mktable msdos

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

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

进行以下操作:

mkpart primary fat32 0% 100M

mkpart primary ext4 100M 100%

print

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

sudo mkfs.vfat -n BOOT -F 32 /dev/sda1

sudo mkfs.ext4 /dev/sda2

然后,您需要在复制当前Raspbian之前挂载目标文件系统。操作系统到USB设备。

sudo mkdir /mnt/target

sudo mount /dev/sda2 /mnt/target/

sudo mkdir /mnt/target/boot

sudo mount /dev/sda1 /mnt/target/boot/

sudo apt-get update; sudo apt-get install rsync

sudo rsync -ax --progress / /boot /mnt/target

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

usb

接下来,您需要刷新SSH主机密钥,以在即将重启后保持与重新配置的Raspberry Pi的连接:

cd /mnt/target

sudo mount --bind /dev dev

sudo mount --bind /sys sys

sudo mount --bind /proc proc

sudo chroot /mnt/target

rm /etc/ssh/ssh_host*

dpkg-reconfigure openssh-server

exit

sudo umount dev

sudo umount sys

sudo umount proc

usb

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

为从USB重启做准备!

在您的Raspberry Pi准备从USB引导之前,还有一些其他事情需要解决。我们需要在命令行中使用以下命令再次编辑cmdline.txt:

sudo sed -i “s,root=/dev/mmcblk0p2,root=/dev/sda2,” /mnt/target/boot/cmdline.txt

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

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

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

cd ~

sudo umount /mnt/target/boot

sudo umount /mnt/target

sudo poweroff

请注意,这使用了新的poweroff命令替代shutdown。

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

责任编辑:wv

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分