电子说
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的末尾文件。
完成后,您将需要重新启动Pi。
下一步是检查OTP一次性可编程存储器已更改。使用以下命令进行检查:
vcgencmd otp_dump | grep 17:
如果结果代表地址0x3020000a(例如17:3020000a),那么到目前为止一切都很好。在此阶段,如果您希望从program_usb_boot_mode=1文件中删除config.txt行,则可以。 Pi现已启用USB引导功能,您可能希望在另一个Raspberry Pi 3中使用相同的microSD卡并使用相同的映像,因此删除该行是个好主意。
这可以通过在nano中编辑config.txt来轻松完成:
sudo nano /boot/config.txt
删除或注释掉相应的行(前面有#)。
准备USB引导设备
下一步,将格式化(或准备删除)的USB记忆棒连接到Raspberry Pi 3的备用端口中。
首先使用lsblk命令识别您的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%
这将输出有关磁盘和新分区的一些信息。在创建启动文件系统和根文件系统之前,请先按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
最后一个命令是将所有内容复制过来的最终命令,因此需要一段时间才能完成。是时候喝咖啡了!
接下来,您需要刷新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行输入退出。
为从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
全部0条评论
快来发表一下你的评论吧 !