樹莓派3 U盤啟動 配置
什麽是MSD
Mass storage device 即 大容量存儲設備
閃存芯片的U盤 SD卡 硬盤 固態都行
本次用的就是三星的32GU盤
啟動USB BOOT 模式 需要安裝兩個文件 start.elf
bootcode.bin
這兩個文件存在於 github倉庫 rpi-firmware的next分支裏
https://github.com/Hexxeh/rpi-firmware/tree/next
開始
首先,下載raspbian的系統鏡像。 下載地址
我推薦下載lite版本的
不過 lite版本需要一個額外的步驟:sudo apt-get install rpi-update
然後進行raspberry的更新 和 rpi-update的安裝
$ sudo apt-get update;
$ sudo apt-get install rpi-update
因為需要從github的倉庫裏下載文件,所以需要一個比較好的網絡環境
我經過測試發現最好的環境是:
樹莓派上安裝shadowsocks
sudo apt-get install python-pip
pip install shadowsocks
然後安裝 配置 proxychains 代理socks5
sudo apt-get install proxychains
sudo nano /etc/proxychains.conf
將socks4 127.0.0.1 9095改為
socks5 127.0.0.1 port 這邊port取決於sslocal配置的本地端口號,我的就是1080
然後
sudo BRANCH=next proxychains rpi-update
PS: 這是我網絡環境,即使路由器FQ了依舊有點問題,所以需要proxychains進行代理,不然會出現很多錯誤(見 最下面的 More )
BRANCH=next 是將環境變量 BRANCH 設置為 next, 這樣固件更新的時候會選擇next分支而不是branch分支
大致升級過程的顯示信息是這樣的,期間會有curl進行文件的下載,不過我沒截圖
允許USB啟動:
echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
重啟
sudo reboot
這邊我們對重啟前後的信息進行對比
重啟前
固件版本:
顯示OTP寄存器的信息:
重啟後
這邊顯示 17:3020000a才說明更新成功
USB存儲設備的系統安裝
準備一個USB存儲設備,我用的是U盤,硬盤應該也行。需要格式化,所以註意備數據的備份。
sudo parted /dev/sda # 使用parted對U歐盤進行分區
(parted) mktable msdos # 創建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 # 分 100M 格式成fat32
(parted) mkpart primary ext4 100M 100% # 剩下的全都格式成ext4
一般都是sda,不過分不清楚的話可以用 $sudo fdisk -l | grep sd
查看。
創建BOOT 和root 文件系統
sudo mkfs.vfat -n BOOT -F 32 /dev/sda1
sudo mkfs.ext4 /dev/sda2
創建文件掛載U盤
sudo mkdir /mnt/target
sudo mount /dev/sda2 /mnt/target/
sudo mkdir /mnt/target/boot
sudo mount /dev/sda1 /mnt/target/boot/
安裝rsync
sudo apt-get update
sudo apt-get install rsync
將root和boot文件系統同步到U盤上去
sudo rsync -ax --progress / /boot /mnt/target
重新生成SSH key
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
編輯 cmdline.txt
文件,fstab
文件
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
也可以手動修改
卸載U盤, 關機
cd ~
sudo umount /mnt/target/boot
sudo umount /mnt/target
sudo poweroff
接下來要做的就是拔掉microSD卡然後用U盤啟動了
無microSD卡 U盤啟動
More
A :是否能在pi1 pi2 上使用
不能,因為關於boot的代碼只在BCD2837上有(也就是raspberry pi 3 這一代)。
Tips :
最好所用的U盤比microSD卡的容量(準確來說是raspbian的文件系統容量)要大
因為網絡原因出現過的一些問題
error1.png
error2.png
error3.png
參考鏈接
https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/msd.md
https://github.com/raspberrypi/documentation/blob/master/hardware/raspberrypi/bootmodes/msd.md
Youtube : https://www.youtube.com/watch?v=hxV3yrn8FK8
、
------------------------------------------------------------------------------------------------------
用U盤來代替SD卡安裝Raspbian的好處就是,U盤比SD卡更加耐用。不要再擔心SD卡不經用的問題.
準備一張64兆以上的SD卡,一個4G以上U盤。
操作環境windows 7。
1、U盤準備:
下載Raspbian,解壓縮使用win32diskimager(h ttps://launchpad.net/win32-image-writer/0.6/0.6/+download/win32diskimager-binary.zip)將解壓後的IMG文件寫入到U盤,這個過程完全和官方寫入到SD卡一樣,只不過SD卡換成了U盤。
2、SD卡準備:
使用HPUSBBoot(ht tp://rapidshare.com/files/107282064/HPUSBFW.zip)下載Dos boot文件(ht tp://rapidshare.com/files/107282214/USB-Boot.zip,解壓縮到一個目錄),使用管理員身份用HPUSBBoot格式化SD卡並寫入BOOT文件,如圖:
<ignore_js_op>
第三項要選中你剛才解壓縮生成的目錄。
在制作好的u盤裏,找到
cmdline.txt文件,用windows記事本打開,修改
root=/dev/mmcblk0p2為
root=/dev/sda2,保存退出記事本,再把所有文件
ctrl+A全選,復制到SD卡裏。
搞定,然後就把U盤插在樹莓派上開機吧
樹莓派3 U盤啟動 配置