自己制作树莓派启动盘
所需材料
- 1个存储介质,U盘/SD卡,存储容量不小于16G
- 树莓派官方镜像,传送门
Step1 对存储介质分区
利用fdisk命令给存储介质分析,本例子存储介质为SD卡,分两个区,第一个分析存储boot信息,第二个分区为根目录分区
create 2 partition(boot and rootfs) by fdisk (attention: the rootfs must be the last partition)
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 2048 526335 524288 256M c W95 FAT32 (LBA)
/dev/mmcblk0p2 526336 124735487 124209152 59.2G 83 Linux
#mkfs.vfat /dev/mmcblk0p1
#mkfs.ext4 /dev/mmcblk0p2
Step2 把系统数据拷贝到存储介质
查看树莓派官方镜像分区情况
通过fdisk -l 查看镜像分区情况
#fdisk -l 2018-10-09-raspbian-stretch.img
Disk 2018-10-09-raspbian-stretch.img: 3.9 GiB, 4135583744 bytes, 8077312 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: 0x2ee8b6fe
Device Boot Start End Sectors Size Id Type
2018-10-09-raspbian-stretch.img1 8192 97890 89699 43.8M c W95 FAT32 (LBA)
2018-10-09-raspbian-stretch.img2 98304 8077311 7979008 3.8G 83 Linux
计算分区偏移并挂载
首先把存储卡两个扇区挂载到本地目录
#mount -t vfat /dev/mmcblk0p1 boot
#mount -t ext4 /dev/mmcblk0p2 rootfs
接下来把官方镜像分区内容拷贝到存储卡中
每个扇区512byte, 所以第一个分区从8192 * 512 = 4194304开始, 第二个分区从98304 * 512 = 50331648开始 依次挂载官方镜像分区,并把内容拷贝到存储卡(通过挂载会出错,只能分开挂载)
#mount -v -o offset=4194304 -t vfat 2018-10-09-raspbian-stretch.img img1
#cp -rav img1/* boot
umount img1
#mount -v -o offset=50331648 -t ext4 2018-10-09-raspbian-stretch.img img2
#cp -rav img2/* rootfs
umount img2
Step3 修改系统文件
首先查看存储介质的分区UUID信息
#blkid
/dev/mmcblk0p1: SEC_TYPE="msdos" UUID="boot" TYPE="vfat" PARTUUID="xx31278f-01"
/dev/mmcblk0p2: UUID="rootfs" TYPE="ext4" PARTUUID="xx31278f-02"
修改boot分区的cmdline.txt文件,因为引导启动,需要知道root分区的UUID
#vim boot/cmdline.txt
change from
root=PARTUUID=2ee8b6fe-02
to
root=PARTUUID=xx31278f-02
修改fstab文件,让能正常挂载
#vim rootfs/etc/fstab
change from
proc /proc proc defaults 0 0
PARTUUID=2ee8b6fe-01 /boot vfat defaults 0 2
PARTUUID=2ee8b6fe-02 / ext4 defaults,noatime 0 1
to
proc /proc proc defaults 0 0
PARTUUID=xx31278f-01 /boot vfat defaults 0 2
PARTUUID=xx31278f-02 / ext4 defaults,noatime 0 1
自己制作树莓派启动盘的意义
在进行上述操作后,我对系统镜像的理解更加清晰了
DIY很有趣,自己可以定制系统,可以修改引导文件,可以修改内核文件
事实上,除了启动过程的部分文件没有开源之外,其他任何文件都是可以修改定制的,这真正是树莓派有趣,好玩的地方。