写入树莓派官方镜像的时候,我们会发现当树莓派第一次启动后,磁盘空间会自动扩充到整个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”识别并刷写。

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

  1. excel怎么设置自动计算_怎么用wps设置自动备份 wps设置自动备份的步骤方法 - Wps...

    在制作wps时,有时候我们会忘记保存就关闭了软件,导致之前的辛苦白费,如果我们设置了自动备份就好了,就算忘记保存wps也会帮我们自动保存,那么wps怎么设置自动保存呢?方法很简单,下面教程之家网为大家 ...

  2. 树莓派Pi OS Lite安装桌面

    树莓派Raspberry Pi OS Lite怎么用VNC 树莓派安装Zoom 安装Raspberry Pi OS Lite 安装Pi-apps 安装图形界面 树莓派安装Zoom 现在会议要用到Zoo ...

  3. android设置自动旋转屏幕,android怎样实现关闭系统自动旋转屏幕时能够自动横竖屏...

    android 系统关闭系统自动旋转屏幕情况下利用设备感应器(方向传感器)实现横竖屏切换 2.SensorManager sm=(SensorManager)getSystemService(SENS ...

  4. 鸿蒙系统是基于微内核的全场景分布式,鸿蒙系统是基于微内核的全场景分布式OS,可按需扩展,实现更广泛的系统安全。...

    _ 三段式指应用文书的三层次结构形式,包括() A发文缘由 B事项 C提出问题 D尾语 为了测定人体新陈代谢呼出气体中CO2的体积分数,某学生课外小组设计了如下图的实验装置.实验中用过量NaOH溶 下 ...

  5. 树莓派4初次使用笔记(Pi OS ROS Kinetic安装)

    树莓派4初次使用笔记 下载Pi OS 树莓派显示黑边问题 远程连接(Remote) 内置远程桌面 Xshell SSH命令行连接 换源[此步十分重要] 安装ROS 问题合集 [opencv3] sti ...

  6. 【树莓派】做一个备份镜像

    在做树莓派镜像时候,遇到了一点问题,参考这篇文章,再重试一下. Adafruit的树莓派教程第一课福利:做一个备份镜像 04/08/2014 Boyd Wang Adafruit树莓派教程 , 树莓派 ...

  7. 树莓派4b风扇安装方法_树莓派安装Raspberry Pi OS系统

    给树莓派植入灵魂,作为一个微型电脑,必须要有操作系统才能使用,就像手机的安卓,电脑的Windows,进入树莓派官网www.raspberrypi.org/downloads/根据自己的电脑系统下载烧录 ...

  8. 树莓派CM4烧录Ubuntu20镜像与ROS2的安装(无屏)

    树莓派CM4烧录Ubuntu20镜像与ROS2的安装(无屏) 文章目录 树莓派CM4烧录Ubuntu20镜像与ROS2的安装(无屏) 需要的软件 说明 一.镜像烧录 1.1 EMMC版本烧录bootl ...

  9. OpenStack 企业私有云的若干需求(2):自动扩展支持

    本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...

最新文章

  1. Python3中raise用法
  2. 话里话外:新顾问答疑解惑对话大公开
  3. toString,toLocaleString,valueOf的不同
  4. python做直方图-python实现直方图的应用
  5. Cannot place PIO comp S on the proposed PIO site PB6C / F5 because the types of their IOLOGICs a...
  6. 二十五、求单点的最短路径
  7. Tkinter的listbox组件
  8. 四十四、Python中的statsmodels模块
  9. 连贯的学习黑树(插入节点)
  10. ZOJ - 3777 Problem Arrangement(状压dp)
  11. mysql sp who_对ASE系统存储过程的剖析-sp_who
  12. isnull PK <=>
  13. RHEL账号总结一:账号的分类
  14. [leetcode]207. Course Schedule课程表
  15. Bootstrap页面布局10 - BS表格
  16. JVM内存分配与垃圾回收
  17. 如何使用EasyRecovery进行深度扫描和继续扫描
  18. DELMIA软件物流仿真:操作对象显示与隐藏功能介绍与使用方法
  19. VS2019详细安装教程
  20. EasyCVR通过Ehome协议接入设备,获取RTSP流地址异常如何解决?

热门文章

  1. 基于python的人脸识别检测开题报告_人脸识别系统的研究与实现(开题报告+论文+源程序)...
  2. Zsh与Oh-My-Zsh的安装与设置
  3. 一个类如何实现自杀?
  4. 【Linux】C语言缓冲区、缓冲区的实现
  5. [票据打印]打印走纸控制(1)
  6. 光通讯元件的程序烧录
  7. 热能与动力工程毕业论文题目
  8. PS 处理增加图片阴影
  9. Linux6安装bind错误,CentOS 7.6环境下Bind 9的安装与配置
  10. 代码随想录算法训练营第二天|LeetCode977.有序数组的平方、LeetCode209.长度最小的子数组、LeetCode59.螺旋矩阵Ⅱ