跳转至

硬盘启动树莓派3B

硬盘启动树莓派,防止TF卡损坏.步骤:

1 在PC上格式化硬盘:

sudo mkfs.ext4 /dev/sdc2  #以ext4格式化分区/dev/sdc2  

sudo e2label /dev/sdc2 ROOT #设置标签为ROOT  

sudo mount /dev/sdc2 /work/2T/ #挂载磁盘到目录/work/2T/

2挂载备份的磁盘镜像到目录:

sudo mount -o loop,offset=209715200 /media/hamilton/work/RPI_dd_20201209.img /mnt/

参考https://www.linuxquestions.org/questions/linux-general-1/how-to-mount-img-file-882386/计算挂载的offset.

如下所示我的镜像里有来两个分区,第二个分区为writable,他的offset计算为512×409600

$ fdisk -l RPI_dd_20201209.img  

Disk RPI_dd_20201209.img: 14.9 GiB, 15931539456 bytes, 31116288 sectors  

Units: sectors of 1 * 512 = 512 bytes  

Sector size (logical/physical): 512 bytes / 512 bytes  

I/O size (minimum/optimal): 512 bytes / 512 bytes  

Disklabel type: dos  

Disk identifier: 0x7fe6d224


Device Boot Start End Sectors Size Id Type  

RPI_dd_20201209.img1 2048 409599 407552 199M c W95 FAT32 (LBA)  

RPI_dd_20201209.img2 409600 30244830 29835231 14.2G 83 Linux

3 同步ROOT分区到磁盘:

sudo rsync -axv /mnt/* /work/2T/

4检查磁盘的UUID:

sudo blkid

5 修改fstab

UUID=45b9a54a-c68e-441d-9fe9-da55966e6f34 / ext4 defaults,noatime 0 0  
并增加 # 到原来的ROOT磁盘(此处指TF卡):
#LABEL=writable / ext4 defaults,noatime 0 0

6 修改 config:

cat /boot/firmware/config.txt  
在文件中发现写有: cmdline=nobtcmd.txt, 所以 :

编辑 /boot/firmware/nobtcmd.txt

修改 root=LABEL="writable"root=LABEL="ROOT", 最终内容如下:

net.ifnames=0 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=LABEL="ROOT" rootfstype=ext4 elevator=deadline rootwait

7 重启,检查

在树莓派上插入TF卡,接入硬盘,开机后输入df -h

确认/挂在在我们的磁盘上, 如下:

/dev/sda2 19G 9.4G 8.7G 52% /

说明:TF在树莓派上还是要的,但是不会被频繁写导致损坏.

原文链接: http://droid10.com/2021/02/25/硬盘启动树莓派3b/