树莓派镜像制作

树莓派镜像 DIY 制作 的64位的主机 或者直接在树莓派系统上进行编译;安装内核, 将编译好的内核以及设备树复制到系统中。烧录工具制作系统启动的 SD 卡。调整config.txt。挂在镜像分区到文件系统。 阅读详情


原文章地址http://www.crazydeveloper007.com/raspi-custom-img/

引言:概括的说本案中先使用dd命令对TF设备进行.img镜像的制作,而后使用GitHub上面开源的PiShrink.sh脚本对制作好的.img镜像文件进行"压缩"处理(实际是调整了镜像分区的大小)。

1 准备工作

(1)要制作为镜像的TF卡,TF卡读卡器;
(2)一台Linux操作系统的电脑;
(3)PiShrink.sh脚本(GitHub开源项目) ,见本文附录

PS:笔者TF卡中为Ubuntu Server 20.04.3 LTS 系统,并且部署了好多服务,如果需要建集群,一个一个的树莓去装环境,部署服务,我会崩溃的……

2 使用dd命令为TF卡制作做镜像

2.1 查找设备文件(Linux系统一切皆文件)

终端下输入lsblk查找TF设备文件,笔者的是sdb,即一张16GB的TF卡

图1 lsblk查看设备文件

2.2 使用dd命令将sdb设备(TF卡)制作成镜像文件

PS:本步骤前请确保磁盘空间足够,确保能够存放16GB-TF卡镜像文件

# 以下命令将sdb压缩到/home目录的rpi.img文件中
dd if=/dev/sdb of=/home/rpi.img bs=8M

图2 .img镜像制作过程中

PS:制作.img需要点时间,请耐心等待,笔者的16GB-TF卡这一步骤制作镜像花费了3分钟左右(终端回显数据中显示为175.129s),在制作过程中终端无任何回显,要稍加等待,笔者使用的是品胜USB3.0的读卡器,电脑上USB口同为3.0接口。

图3 .img镜像制作完成

3 使用PiShrink(Shell脚本)“压缩”制作的.img镜像

这里可以理解为dd命令是将TF卡,整盘克隆了下来(包括分区中未用到的空间),我们使用PiShrink将.img文件进行瘦身处理

3.1 使用vim工具新建PiShrink.sh脚本文件

PS:这一步可将从GitHub上面down下来的PiShrink.sh文件拷贝至/home目录下

# PiShrink.sh文件内容见附录,vim的使用方式这里不做说明,用vim工具新建PiShrink.sh文件,并将附录中的脚本源码Copy至/home/PiShrink.sh文件中保存
 
vim /home/PiShrink.sh

3.2 执行PiShrink.sh

# 进入/home目录
cd /home
 
# 修改PiShrink.sh文件权限,使之变为可执行文件
sudo chmod 755 PiShrink.sh
 
# 执行脚本进行压缩,其中rpi.img为dd命令生成的img文件,my-raspi.img为用Shell脚本生成的新.img文件
sudo ./PiShrink.sh -s rpi.img my-raspi.img

图4 使用PiShrink.sh脚本压缩.img镜像

PS:该步骤需要稍加等待,如图所示15G的源.img文件(dd命令制作)被该脚本“压缩”为了3.1G,我们将3.1G的镜像文件拷贝出来,使用Win32DiskImager工具便可向新的TF卡中烧录制作的镜像。烧录完后不要忘记给分区进行扩容(原TF卡中未使用到的空间被PiShrink"压缩"掉了)

4 附录:

4.1 PiShrink脚本源码

PS:这里由衷感谢PiShrink脚本作者,向您学习开源精神!制作树莓派镜像用这个方法,简直是太方便了!

PiShrink项目地址:https://github.com/Drewsif/PiShrink

PiShrink.sh(Shell脚本)内容如下:

#!/bin/bash
 
version="v0.1.2"
 
CURRENT_DIR="$(pwd)"
SCRIPTNAME="${0##*/}"
MYNAME="${SCRIPTNAME%.*}"
LOGFILE="${CURRENT_DIR}/${SCRIPTNAME%.*}.log"
REQUIRED_TOOLS="parted losetup tune2fs md5sum e2fsck resize2fs"
ZIPTOOLS=("gzip xz")
declare -A ZIP_PARALLEL_TOOL=( [gzip]="pigz" [xz]="xz" ) # parallel zip tool to use in parallel mode
declare -A ZIP_PARALLEL_OPTIONS=( [gzip]="-f9" [xz]="-T0" ) # options for zip tools in parallel mode
declare -A ZIPEXTENSIONS=( [gzip]="gz" [xz]="xz" ) # extensions of zipped files
 
function info() {
   
   
    echo "$SCRIPTNAME: $1 ..."
}
 
function error() {
   
   
    echo -n "$SCRIPTNAME: ERROR occured in line $1: "
    shift
    echo "$@"
}
 
function cleanup() {
   
   
    if losetup "$loopback" &>/dev/null; then
        losetup -d "$loopback"
    fi
    if [ "$debug" = true ]; then
        local old_owner=$(stat -c %u:%g "$src")
        chown "$old_owner" "$LOGFILE"
    fi
 
}
 
function logVariables() {
   
   
    if [ "$debug" = true ]; then
        echo "Line $1" >> "$LOGFILE"
        shift
        local v var
        for var in "$@"; do
            eval "v=\$$var"
            echo "$var: $v" >> "$LOGFILE"
        done
    fi
}
 
function checkFilesystem() {
   
   
    info "Checking filesystem"
    e2fsck -pf "$loopback"
    (( $? < 4 )) && return
 
    info "Filesystem error detected!"
 
    info "Trying to recover corrupted filesystem"
    e2fsck -y "$loopback"
    (( $? < 4 )) && return
 
if [[ $repair == true ]]; then
    info "Trying to recover corrupted filesystem - Phase 2"
    e2fsck -fy -b 32768 "$loopback"
    (( $
嵌入式系统篇--系统镜像制作与备份 整个构建过程可以在安装Linux系统的PC或服务器上进行,也可以在64位树莓派上进行(推荐使用基地2.0最新的u3),我使用x64平台的Debian进行演示,过程中我会说明与使用树莓派不同的地方,没有说明的就是通用的。我们首先来创建镜像文件,这次我们构建的是lite系统不包含桌面环境,所以我创建一个3G的镜像(其实2G就够),这里可以根据自己定制的需要改变镜像的大小。树莓派系统镜像有两个分区,一个boot分区类型为FAT32,一个rootfs根分区类型为ext4,下面开始分区。fat32分区格式化工具。 阅读详情

相关推荐

树莓派4B开发记录(二):为树莓派MicroSD制作镜像及从镜像恢复系统到MicroSD

为树莓派MicroSD制作镜像及从镜像恢复系统到MicroSD

2401_86981241的博客 1079

制作树莓派最小镜像-img裁剪瘦身

备份树莓派系统固件,并缩减固件大小,可以用系统变量来扩展大小 已经经过两版固件测试

talkxin的博客 3万+

制作树莓派镜像img,并在其他新板上使用,实现批量克隆树莓派板

1.      将现有的系统制作成镜像img 2.      配置网络     1. 将现有的系统制作成镜像img 1.1    先将新买的sd卡用SDFormatter工具格式化,以作备用 1.2    将带有系统的sd卡用Win32DiskImager.exe工具Read成镜像文件rpi2_owner.img 1.3    然后插入新卡到PC,将rpi2_owner.img写入新

Mars_WH的专栏 1万+

在ubuntu系统下制作并刷写树莓派镜像

在ubuntu系统下制作并刷写树莓派镜像需求第一步:制作microSD卡镜像第二步:压缩microSD卡镜像第三步:写入镜像 需求 自动化测试台架需要批量搭建,如果挨个地刷树莓派原生系统再配置会浪费大量时间,于是研究了一下怎么制作树莓派镜像,总共分3步: 参考的链接: Linux 下的dd命令使用详解(摘录) dd命令的解释 第一步:制作microSD卡镜像 将已经配置好生产环境的microSD卡插入读卡器,然后读卡器插入ubuntu电脑。 终端输入fdisk -l查看所有分区,通过插入前后的对比可以发现

qq_30669191的博客 1846

pishrink.sh

树莓派备份的系统后太大,需要使用pishrink进行缩小,该脚本用于将备份的树莓派 img 缩小到系统大小。需要将脚本放在/usr/bin下,然后cd到U盘中的img镜像所在目录,运行脚本对镜像进行缩小。

VBA学习笔记6:将多个工作表中满足条件的数据汇总到同一个工作表

VBA学习笔记6:将多个工作表中满足条件的数据汇总到同一个工作表

weixin_45355881的博客 4708

思科路由器重分发(静态路由+OSPF动态路由+RIP动态路由)

思科路由器重分发(静态路由+OSPF动态路由+RIP动态路由)

2301_81256766的博客 1264

Unity Shader学习笔记/Urp/水墨风效果

Unity Shader学习

qq_63133691的博客 2118

华为OD机试真题 新系统【小花获胜的奶茶】

华为OD机试真题 新系统【小花获胜的奶茶】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【小花获胜的奶茶】多语言题解。

qq_45776114的博客 388

华为OD机试双机位C卷-FLASH坏块监测系统(Py/Java/C/C++/Js/Go)

华为OD机试(机考)双机位C卷 【FLASH坏块监测系统】,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - FLASH坏块监测系统。

qq_45776114的博客 1928

【100分- 求最多可以派出多少支团队】(题目+思路+Java&C++&Python解析+在线测试)

用数组代表每个人的能力,一个比赛活动要求参赛团队的最低能力值为N,每个团队可以由1人或者2人组成,且1个人只能参加1个团队,计算出最多可以派出多少只符合要求的团队。

m0_73659489的博客 313

DC/DC开关电源学习笔记(十三)Buck-Boost升降压电路工作原理

Buck-Boost电路是一种能够实现输出电压高于或低于输入电压的DC-DC变换器,且输出电压极性与输入电压相反。它结合了Buck(降压)和Boost(升压)两种拓扑的特点,广泛应用于需要灵活电压调整的场合,如电池供电设备、LED驱动和工业控制系统。本文将从电路结构、工作原理、关键公式推导及实际应用等方面进行详细分析。

小幽余生不加糖 3505

62. 如何通过增强(Enhancement) 的方式给 SAP ABAP 标准程序增添新功能

本文通过一个实际的例子,介绍了如何不通过修改 SAP 标准 ABAP 程序源代码的方式,对其的功能进行增强,即采取 ABAP 增强开发的方式进行二次开发,这是一种在实际 SAP 项目实施过程中使用非常广泛的技术。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 3311

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: 树莓派4B安装Ubuntu Server 20.04.1 LTS系统
下一篇: Docker的安装(CentOS 7.8)
「已注销」
博客等级 码龄10年 3粉丝 16原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值