树莓派USB-Boot

/ 2评 / 0

据说这是OTP的,回不去的,首先要把树莓派更新到next分支.然后才可以继续下一步.

更新过程缓慢,要等一下.然后别重启,先制作系统.如果你反正有Linux系统是另一回事.首先我的USB盘是没分区.如果不是MSDOS的表,请用本文最后面的方法.

创建两个分区,一个100M,一个是全部空间.然后为目标系统格式化.

然后挂载好,把自己本机系统复制过去.

复制过程:
指令比较多,具体是:

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证书,这是可选,但是为了安全,还是重新生成一个吧.

具体命令:

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 sed -i "s,root=/dev/mmcblk0p2,root=/dev/sda2," /mnt/target/boot/cmdline.txt
sudo sed -i "s,/dev/mmcblk0p,/dev/sda," /mnt/target/etc/fstab
cd ~
sudo umount /mnt/target/boot
sudo umount /mnt/target

然后断开一下USB储存设备,开始修改重要的OTP内容了.给config.txt写编程字,然后看看 目前OTP内容.

具体命令:

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

然后重启Pi.

根据官方文档,SD卡引导应该是还在的.确实是,然后Boot确实改了.

然后关机.不是重启哦.

然后要彻底断开电源,关机后Boot程序其实还在跑.然后插上USB,去掉TF卡.开始引导.不是所有设备都支持USB Boot,第一次我用了ASM1053E接SanDisk U110 SSD一开始以为不能引导,后来才发现原来要等好几秒...
成功截图:

官方方法,如果依然不行,就可能缺少什么引导.用parted方法.

sudo parted /dev/sda
(parted) mktable msdos
Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? Yes
(parted) mkpart primary fat32 0% 100M
(parted) mkpart primary ext4 100M 100%
(parted) print
Model: SanDisk Ultra (scsi)
Disk /dev/sda: 30.8GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number  Start   End     Size    Type     File system  Flags
 1      1049kB  99.6MB  98.6MB  primary  fat32        lba
 2      99.6MB  30.8GB  30.7GB  primary  ext4         lba

我的操作截图.

然而我还是不行.
英文原文:https://www.raspberrypi.org/blog/pi-3-booting-part-i-usb-mass-storage-boot/

  1. 这样改完是不是回不去了?就只有用U盘启动了?
    如果改回TF卡启动可以么?OTP就是one trip process么?

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注