树莓派Pi OS备份镜像设置自动扩展磁盘,完全基于树莓派原版系统实现方式(镜像备份全流程)

2023-05-16

写入树莓派官方镜像的时候,我们会发现当树莓派第一次启动后,磁盘空间会自动扩充到整个TF卡。那么当我们自己制作镜像的时候,能不能去除未使用的空间,制作体积较小的镜像,并在该镜像启动时自动扩展,从而适应不同大小的新TF卡呢?答案是当然可以,通过在国内外各种论坛的探索,本文将介绍完全基于树莓派原版系统实现方式的自动磁盘扩展。

由于我们备份镜像需要对磁盘空间进行更改,需要另一个Linux系统对需要创建镜像的磁盘进行操作。如果你的电脑装有Linux系统,可以直接使用读卡器读取需要创建镜像的TF卡。如果没有,也可以将另一张安装了Linux系统的TF卡插入树莓派,再使用读卡器挂载需要创建镜像的TF卡。本文使用后一种方式,如果是前一种方式也是雷同。

目录

1、重新放入“resize2fs_once”文件

2、修改“cmdline.txt”

3、缩小磁盘大小

4、制作镜像并进一步压缩


1、重新放入“resize2fs_once”文件

其实在树莓派的官方镜像中,在“/etc/init.d”路径下,共有33个文件,而不是启动后的32个。原因是有一个名叫“resize2fs_once”的文件,顾名思义只在启动时运行一次,然后自我删除,它就是官方用来自动扩展磁盘的脚本。那么事情就简单了,只需重新在需要做镜像的磁盘中放入即可。

“resize2fs_once”文件可以直接从官方镜像文件中获取,只要是全新未启动过的都会含有,建议从自己的全新镜像中提取。

这里提供一个提取自“raspios_arm64-2021-05-28”的“resize2fs_once”,不保证全版本适用。https://raw.githubusercontent.com/TimeFlyingAway/Raspberry_Pi_OS-resize/main/resize2fs_once

首先插入另一块TF卡启动树莓派,系统正常启动后将需要制作镜像的TF卡插入读卡器连接到树莓派的USB接口。此时,正常情况下,树莓派会自动挂载插入的TF卡并在桌面显示两个磁盘,“boot”和“rootfs”(默认挂载在路径“/media/pi”下)。

打开“rootfs”,依次进入“etc”,“init.d”(默认路径“/media/pi/rootfs/etc/init.d”),放入“resize2fs_once”文件。任何放入方法均可,这里不再赘述。

然后授予“resize2fs_once”,755权限。

sudo chmod 755 resize2fs_once

*需要注意,“resize2fs_once”在第一次启动,扩展至全磁盘时,会导致swap分区恢复到默认大小,但如果swap分区配置正确,无需任何操作再次重启即可恢复用户设置。

【树莓派】永久修改swap分区大小的正确方式,简单只需一步

2、修改“cmdline.txt”

完成“resize2fs_once”的放入后,还需将“cmdline.txt”复原。

打开挂载的“boot”磁盘(默认路径“/media/pi/boot”),编辑“cmdline.txt”后保存。

#可以使用任何你喜欢的方式编辑,比如
sudo nano /media/pi/boot/cmdline.txt
sudo vi /media/pi/boot/cmdline.txt

#在“quiet”和“splash”中间添加
init=/usr/lib/raspi-config/init_resize.sh

#比如,如果原先是
console=serial0,115200 console=tty1 root=PARTUUID=0a1b2c3d-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

#则改为
console=serial0,115200 console=tty1 root=PARTUUID=0a1b2c3d-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh splash plymouth.ignore-serial-consoles

###请务必保留其余部分不变###

至此,有关自动扩展磁盘的设置已经结束,以下内容为如何创建占用空间较小的符合官方镜像烧写软件“Raspberry Pi Imager” 的镜像。


3、缩小磁盘大小

然后使用GParted对磁盘大小进行调整。GParted是图形化界面,易于理解同时自带校验等,当然也可以直接使用parted、fdisk或resize2fs等命令进行操作,这里不再赘述。(Windows对于ext4的支持十分差,虽然个别软件也能分区,但还是建议直接使用Linux,不给自己找麻烦,是吧)

然后打开LX终端,启动GParted。

sudo gparted

如果出现“sudo: gparted:找不到命令”,即没有安装GParted,请先安装。

sudo apt install gparted

 正常打开后会出现图形化界面。

 右侧将磁盘选择为读卡器,一般为“/dev/sda”。选中“rootfs”,右键,选择“卸载(U)”。

 然后继续选中“rootfs”,右键,选择“更改大小/移动(R)”。

 根据实际情况调整分区大小,建议略大于已占用空间,并点击“调整大小/移动”。

 点击工具栏“应用全部操作”,保存修改并执行,同时校验磁盘。弹出警告点击“应用(A)”确认。

 等待进度条完成,完成后点击“关闭(C)”,待GParted自动刷新后,检查分区结果。

4、制作镜像并进一步压缩

 制作镜像的方式也有很多,这里我使用“Win32DiskImager”。“映像文件”选择保存镜像的位置,并新建一个“.img”结尾的文件,选中。“设备”选择TF卡对应的任意一个盘符即可,但请务必选择正确,避免选中其他U盘等。校验值根据喜好选择,也可以选择“无”。务必勾选“仅读取已分配分区”。然后点击读取,等待进度条完成。

完成后将“.img”文件添加到压缩文件,变为“.zip”进一步缩小镜像体积。这里强力推荐使用开源免费小巧的压缩软件7-Zip。使用7-Zip添加压缩文件,压缩格式选择“zip”,压缩等级选择“5 - 标准压缩”,其他默认即可。通过这样生成的压缩文件,可以直接被树莓派官方的镜像刷写软件“Raspberry Pi Imager”识别并刷写。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

树莓派Pi OS备份镜像设置自动扩展磁盘,完全基于树莓派原版系统实现方式(镜像备份全流程) 的相关文章

  • 连接服务器报错:Key exchange was not finished, connection is closed.

    解决方案 xff1a 在 etc ssh sshd config最后添加如下行内容解决问题 KexAlgorithms diffie hellman group1 sha1 diffie hellman group14 sha1 diffi
  • ros多线程管理

    单线程Spinning ros spin 是最简单的单线程自旋 它会一直调用直到结束 用法 ros spin ros spinOnce 另一个单线程spinning是ros spinOnce 它定期调用等待在那个点上的所有回调 用法 ros
  • (每日一读2019.10.24)一种基于通用优化方法的多传感器全局里程计估计框架(VINS-Fusion)

    参考博文 萌新学VINS Fusion 一 特征跟踪 萌新学VINS Fusion 二 特征跟踪 摘要 精确的状态估计是自主机器人的一个基本问题 为了实现局部精确和全局无漂移状态估计 通常将具有互补特性的多个传感器融合在一起 局部传感器 摄
  • (每日一读2019.10.25)一种基于通用优化方法的多传感器局部里程计估计框架(VINS-Fusion)

    摘要 为了提高机器人的鲁棒性和自主性 越来越多的传感器被安装在机器人上 我们已经看到了不同平台上安装的各种传感器套件 例如地面车辆上的立体摄像机 手机上带有IMU 惯性测量单元 的单目摄像机以及空中机器人上带有IMU的立体摄像机 虽然过去已
  • Gazebo模型下载以及配置--解决Gazebo黑屏原因

    前往ExBot ROS专区下载Gazebo模型 https bitbucket org osrf gazebo models downloads 下载后把文件放在 gazebo下的models文件夹中 span class token fu
  • 相机内外参数以及畸变参数

    关于大佬们的一些见解 下面是引用知乎的一段文字 xff1a 我们从单目视觉说起 平时我们都说要做视觉识别 测量云云 xff0c 然后我们就会去拍照 xff0c 再对数字图像做各种处理 xff0c 颜色处理 灰度化 滤波 边缘检测 霍夫变换
  • cmake学习4--自定义编译选项

    CMake 允许为项目增加编译选项 xff0c 从而可以根据用户的环境和需求选择最合适的编译方案 例如 xff0c 可以将 MathFunctions 库设为一个可选的库 xff0c 如果该选项为 ON xff0c 就使用该库定义的数学函数
  • ROS与C++学习1

    ROS与C 入门教程 构建工作空间 构建Catkin包 搭建开发环境 catkin make 编写简单发布节点和订阅节点 编写简单服务端和客户端 使用类方法作为回调函数 使用Timers类 编写高级的发布器和订阅器 Callbacks和Sp
  • IAR的UI界面优化

    显示行数 Tools Options 点击 Editor Tab size xff1a 设置Tab键占用多少个空格Indent size xff1a 应该是设置过行时缩进多少个空格Insert tab xff1a 选了之后在删除Tab时 x
  • MYNTEYE小觅双目摄像头深度版+VINS测试

    小觅双目深度版性能分析 今年 xff08 18年 xff09 11月9号小觅智能科技的深度版双目相机上市 xff0c 于是我在12月初花了2999软妹币购买了120度视角的相机 其中我比较感兴趣的是 双目 43 惯导 43 结构光 的多传感
  • QT+ROS开发

    Qt Creator for ROS 如果想在Qt上进行ros包的开发和GUI界面开发 建议采用下面的方法 http fumacrom com 1mipW Setup Qt Creator for ROS Setup Ubuntu to a
  • PX4、APM无人机仿真连接QGC地面站记录(udp连接、更改home点等)

    文章目录 一 PX41 gazebo 仿真2 连接地面站3 更改 Home点 二 APM 仿真1 执行仿真指令2 连接地面站3 更改 Home 点 本文仅记录仿真指令 xff0c 搭建安装不在此 一 PX4 首先给飞控源码和子目录权限 sp
  • LeetCode 解题笔记(一)总

    文章目录 一 常用技巧二 常用翻译三 题目x 其他9 回文数 2021 12 0911 盛最多水的容器 2022 01 0515 三数之和 2022 01 14 17 电话号码的字母组合 2022 01 1520 有效的括号 2021 12
  • LeetCode 解题笔记(二)数组篇

    文章目录 一 基础篇26 删除排序数组中的重复 2022 01 16122 买卖股票的最佳时机 II 2022 01 17189 轮转数组 2022 01 18217 存在重复元素 2022 01 19136 只出现一次的数字 2021 1
  • LeetCode 解题笔记(四)链表

    文章目录 一 总结二 题目237 删除链表中的节点 xff08 2022 03 10 xff09 19 删除链表的倒数第 N 个结点 xff08 2022 03 11 xff09 206 反转链表 xff08 2022 03 18 xff0
  • QT Quick QML 实例之 Popup 弹出界面

    QT Quick QML 实例之 Popup 弹出界面 一 演示二 实现过程1 居中弹出2 正下方弹出 所有的热爱都要不遗余力 xff0c 真正喜欢它便给它更高的优先级 xff0c 和更多的时间吧 xff01 GIT工程文件在这里 QmlL
  • QGC(GGroundControl) 系统核心架构图

    关于QGC地面站其它文章请点击这里 QGC地面站 UML 核心类图 xff1a xff08 点击图片放大看效果更好 xff09 核心系统分析图 xff1a xff08 点击图片放大看效果更好 xff09 工程结构 xff1a 整个 QGC
  • Qt 国际化翻译,函数外部字符串、Map 翻译(QT_TRANSLATE_NOOP)

    文章目录 1 Qt 的翻译流程2 利用 QT TRANSLATE NOOP 翻译 GitHub 源码 QmlLearningPro xff0c 选择子工程 xff1a TranslationsDemo pro QML 其它文章请点击这里 Q
  • IAR新建工程

    下载库函数 本文介绍基于 IAR 43 官方标准固件库 xff0c 来新建 STM8S003F 工程 xff0c STM8S 的标准固件库可以到 ST 的官方网站中找到并下载 xff1a ST官网 1 在搜索栏上搜索 STM8S003F x
  • RTSP 推流和拉流记录(运行代码)

    文章目录 1 RTSP 推流2 RTSP 拉流 1 RTSP 推流 用C 43 43 11 实现的RTSP服务器和推流器 xff0c 链接如下 RtspServer GitHub原地址 xff1a https github com PHZ7

随机推荐