首页 > 其他分享 >树莓派3B修改根文件系统为f2fs

树莓派3B修改根文件系统为f2fs

时间:2024-02-29 21:44:53浏览次数:30  
标签:tmp 树莓 f2fs 分区 dev TF 3B

目录

前言

在TF卡、固态硬盘之类的nand存储介质上,f2fs比起ext4之类的文件系统在性能和寿命上都有较大优化。所以我决定使用f2fs来作为我树莓派3B的根分区。

操作简述

1.使用常规流程给树莓派3B安装Raspberry PI OS(其实就是debian11),此时根分区是ext4文件系统。关机,拔掉TF卡。
2.启动debian liveCD系统,然后读卡器插入TF卡,挂载TF卡根分区,使用tar命令备份TF卡下的根分区。
3.在live系统安装f2fs-tool后把TF卡的根分区格式化成f2fs, 再使用tar命令将刚才的系统备份恢复到f2fs的根分区。
4.tar恢复完系统后,修改/etc/fstab和cmdline.txt中文件系统为f2fs。

我的实际操作步骤

1. 准备

为了方便和安全起见,最好准备两个u盘:
   一个用于存放树莓派操作系统的备份。
   一个用于启动debian liveCD,可以用ultraISO或dd将下载的debian liveCD的ISO文件刻录到u盘。

2. 查看树莓派分区信息

使用lsblk -f命令我们发现树莓派的有两个分区,第一个分区是树莓派系统的启动分区,挂载到/boot,文件系统是vfat。第二个分区是根分区,挂载到/,文件系统是ext4。

3. 备份根分区

   把已经插入TF卡的读卡器链接到PC,把备份U盘也插到PC上,使用刻录了liveCD的U盘启动,进入live系统。以下命令在live系统中执行。
   sudo su -  # live系统切换到root用户
   mkdir /tmp/raspi-root; mount /dev/sdX2  /tmp/raspi-root  # 假设树莓派TF卡的根分区位于sdX2(可以用lsblk -f命令或fdisk -lu命令判断), 这里把还是ext4的树莓派TF卡根分区挂载到/tmp/raspi目录
   mkdir /tmp/u; mount /dev/sdY1  /tmp/u  #这里假设/dev/sdY1是备份u盘的第一分区, 执行完命令后,备份树莓派系统用的u盘就挂载到/tmp/u目录了
   cd /tmp/raspi-root  #cd的树莓派TF卡的根分区
   tar zcpf /tmp/u/rootfs.tar.gz --one-file-system --exclude=lost+found --exclude=dev  .  # 将当前目录(TF的根分区)下的所有文件备份到/tmp/u/root.tar文件。这里是冷备份,排除掉lost+found、dev两个目录即可,proc、sys、boot目录是空的,不需要排除它们。*** 注意 ***,这里有个英文点号,表示当前目录(TF卡根分区挂载目录)。此时树莓派TF卡根分区已经备份到备份u盘中了。继续下面的第4大步
   ls -l >/tmp/u/raspi-rootfs-dir.txt  # 把树莓派TF卡根分区的目录详情记录到备份u盘的txt文件,方便后面恢复使用。

4. 格式化树莓派TF卡根分区为f2fs文件系统

1-apt install f2fs-tools # 此时live系统就具备了格式化f2fs的能力
3-umount /dev/sdX2   #取消树莓派TF卡根分区的挂载,准备格式化分区为f2fs
4-fdisk /dev/sdX进入fdisk的交互命令中
        执行p命令查看当前分区,找到树莓派TF卡的linux根分区(如前文说的,通过lsblk -f或fdisk -lu命令判断是不是linux根分区)
        执行d命令删除固态硬盘linux根分区
        执行n命令新建分区
        执行w命令将刚才的变更写入固态硬盘
   执行mkfs.f2fs  /dev/sdXn  (执行前,务必使用fdisk -lu  /dev/sdX来确认根分区是哪个,因为序号会在上面的分区操作中发生变化)
   现在执行lsblk -f就可以看到固态硬盘的linux根分区变成f2fs格式了。

5.恢复备份

    mount /dev/sdX2 /tmp/raspi-root  
    cd /tmp/raspi-root
    mkdir dev; chmod 755 dev  # 前面tar备份的时候排除了dev目录,所以这里要新建。这里只是举个例子,对比第4步末尾的txt文件,缺什么目录就建什么目录,并修改权限。
    tar xpf /tmp/raspi-root/rootfs.tar.gz --numeric-owner  # 恢复树莓派系统到新的f2fs根分区
    vi etc/fstab  # 修改树莓派TF卡f2fs分区下的etc/fstab文件中的文件系统为f2fs,我看里面的分区UUID和ext4下的没有变化,所以文件中的分区UUID不用动
    mkdir /tmp/tf-boot; mount /dev/sdX1 /tmp/tf-boot  #把树莓派TF卡boot分区挂载到/tmp/tf-root目录下
    vi /tmp/tf-root/cmdline.txt  #修改树莓派TF卡boot分区下的cmdline.txt
    最后umount树莓派TF卡的boot分区和根分区,拔卡,插入树莓派,启动。大功告成。

标签:tmp,树莓,f2fs,分区,dev,TF,3B
From: https://www.cnblogs.com/mind-water/p/18045567

相关文章

  • 树莓派烧录系统以及SSH连接、远程桌面连接
    趁这段时间树莓派似乎便宜了,搞了一个rasberrypi4b,说不定还能用到毕业设计上。虽然不知道这玩意到底能干啥,不过跟云服务器的用法倒也差不多,就算不搞什么嵌入式之类乱七八糟的东西......哪怕拿来当minecraft的本地服务器主机也挺爽的,玩法似乎不少,记录一下这个使用步骤吧。一块......
  • [ARC133B] Dividing Subsequence
    DividingSubsequence这道题与最长公共子序列类似,可以先去水一水那道题。题意本题就是让你从\(p\)里面选出一个子序列\(b_i\)和\(q\)里面选出一个子序列\(a_i\),我们要使\(b_i\)是\(a_i\)的倍数。解法本题直接用动态规划,是\(O(n^2)\)做法,会超时,因此我们用树状数......
  • CF1893B Neutral Tonality 题解
    很巧妙的一道题。为了让\(\text{LIS}\)长度最小,我们肯定先将\(b\)数组降序排序,这样\(b\)自身对\(\text{LIS}\)的贡献最小。考虑是否存在一种插入方式使得最终\(a\)的\(\text{LIS}\)长度和最初\(a\)的\(\text{LIS}\)长度相等。这时我们会发现,如果我们插入\(b\)......
  • 一、在树莓派上学习C#和Linux:常用指令和软件包管理
    在树莓派上学习C#和Linux:常用指令和软件包管理最近AI特别火,就想在空余时间系统性的学习一下Linux中使用C#操作硬件开发。选择了树莓派平台入手学习。它是一款小巧的单板计算机,运行基于Linux的操作系统。学习Linux命令是管理和使用树莓派的关键一步。这篇博客记录一些常用的Linux......
  • 树莓派相关配置
    树莓派配置记录1、网络配置系统为ubuntu16.04,配置wifi连接固定wifi网络,以及配置静态IP方便ssh登录,配置步骤:sudovim/etc/network/interfaces添加以下内容:autowlan0allow-hotplugwlan0ifacewlan0inetstaticaddress192.168.x.xxnetmask255.255.255.0gateway......
  • 树莓派上基于Python控制GPIO
    树莓派上基于Python控制GPIO希望做到可以自动给阳台的花儿浇水~有以下几点:控制GPIO的拉高/拉低,并保持一段时间间隔加锁,避免重复有日志记录具体情况#!/usr/bin/envpython3#-*-coding:UTF-8-*-importRPi.GPIOasGPIOimporttimeimportfcntlimportloggingcl......
  • Stable Code 3B:轻量级编程助手,无GPU本地运行
    引言StabilityAI近期发布了StableCode3B,这是一个集中了多项创新技术的轻量级编程辅助模型。它在保持轻量的同时,展现出了与大型模型如CodeLLaMA7B相媲美的性能,这一特性使其在没有GPU的环境中也能运行,极大地拓宽了其应用范围。模型概述StableCode3B,作为一款拥有30亿参数的编程......
  • 基于Deepspeed实现LLaMA-13B或70B模型的微调
    写在前面事实证明,在部分情况下,依然有开启deepspeed的必要性这是上一篇文章,讲述使用双卡/8卡3090微调llama2-70B/13B模型-AlphaInf-博客园(cnblogs.com)但这一篇文章,存在下面的几个问题:如果训练的数据的seq_len过长,那么很有可能出现OOM,无法训练长的数据如果需要调的参数......
  • 北理工开源MindLLM-1.3B:超越大小,中英双语对话新标杆
    引言在人工智能的发展浪潮中,自然语言处理技术的进步尤为引人注目。特别是大型语言模型(LLM),在推动语言理解和生成领域取得显著成就。北京理工大学-东南信息研究院自然语言处理团队的最新力作MindLLM-1.3B模型,在中英双语对话处理上实现了重大突破。MindLLM-1.3B模型概述MindLLM-1.3B是......
  • 专注工业产品开发的瑞米派,双核A55,兼容树莓派扩展模块
    近日,米尔电子和瑞萨电子共同定义和开发了瑞萨第一款MPU生态开发板——瑞米派(RemiPi)正式上市了!在各种Pi板卡琳琅满目的当下,RemiPi是一款与众不同的开发板,他兼顾了严肃产品开发和爱好者创意实现两种需要。告诉你,选择它的五大理由:1.工业芯片:采用瑞萨RZ/G2L双核A55芯片,芯片是工业级,结......