Raspberry Pi 是一款出色的多功能软件套件,具有多种功能,例如运行媒体中心或用作收音机。但它有一个非常明显的缺陷:无法从 USB 启动。
如果您使用的是 Raspberry Pi 3,您可以跳过从 microSD 启动,而是从 USB 设备启动这台计算机。这可以是闪存棒、带有 USB 适配器的 SSD 甚至是完整的 USB 硬盘驱动器。这是一项重大进展,所以让我们看看如何将 Raspberry Pi 3 设置为从 USB 启动。
如何从 USB 启动树莓派 3
- 安装 Raspbian 并添加新文件
- 准备 USB 启动
- 准备从 USB 重启!
安装 Raspbian 并添加新文件
最好用一个新的Raspbian版本开始这个项目,所以下载最新版本并按照通常的方式安装。完成此操作后,将 SD 卡从 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的末尾。
完成后你需要重启 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 启动
接下来,将一个格式化的USB(或准备删除里面所有数据)连接到树莓派3上的备份端口。插上USB后,您将继续复制操作系统。
首先使用lsblk命令定义您的USB。
本例中,SD卡为mmcblk0,USB为sda(分区格式化为sda1)。如果您连接了另一个 USB 存储设备,它可以是 sdb、sdc 等。设置好 USB 名称后,卸载驱动器并使用 parted 工具创建一个 100 MB 分区(FAT32)和 Linux 分区:
sudo umount/dev/sda
sudo parted/dev/sda
在提示符(分开)处,输入:
mdable msdos
您可能会收到驱动器已在使用中的通知。如果是这样,请选择 忽略,,然后注意警告,指示您将驱动器上的 ta 将被取消。如前所述,这必须是您愿意删除或格式化的驱动器,因此同意这一点。
如果您在此处遇到任何问题,您可能需要切换到桌面(手动或在VNC上)并确认驱动器已断开连接,然后才能进入msdos流窗口中的 mktable 命令。命令。
使用 parted 命令继续以下操作:
mkpart primary fat32 0% 100M
ext4 100M mkpart primary 100%
这将输出一些与驱动器和新分区相关的信息。在创建引导文件系统和原始文件系统之前,使用 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 更新; sudo apt-get install rsync
sudo rsync-ax--progress//boot/mnt/target
最后一步是复制所有内容,这一步需要一段时间才能完成。您可以在此期间享用一杯咖啡!
接下来,您需要刷新 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
注意: 在 sudo chroot 命令(上面的第五个命令)之后,您将切换到 root,您必须从 pi @ raspberrypi 更改为 root @ raspberrypi 直到您在第 8 行输入 exit。
准备从 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命令来代替关机。
当 Pi 处于关闭状态时,请先断开电源,然后再取出 SD 卡。接下来,重新连接电源,您的 Raspberry Pi 现在将从 USB 设备启动!
你试过了吗?您是否喜欢从 USB 而不是 SD 卡启动?您打算对此进行测试吗?请在下面的评论部分告诉我们!
祝你好运!
查看更多:
- 如何将旧笔记本电脑屏幕变成魔镜
- 如何在 Raspberry Pi 3 上设置 Wi-Fi 和蓝牙
- 如何将您的 Raspberry Pi 更新到最新的 Raspbian 操作系统
评论