文件系统制作

文章目录

  • 什么是文件系统
  • 如何制作根文件系统文件
  • 添加登录密码
  • 文件系统制作
    • Squashfs
      • 制作方式
        • gzip & lzo & xz 压缩
    • Jffs2
      • 制作方式
    • Ubi文件系统

什么是文件系统

Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中

如何制作根文件系统文件

下载busybox
官网:
以君正提供Busybox为例子
make isvp_uclibc_mini_defconfig
make -j
make install
将_install拷贝出来,即可制作根文件系统

添加登录密码

注意busybox需要证明
Uer internal password and group functions rather than system function 是被选中的状态

打开/etc/inittab文件,增加::sysinit:-/bin/login命令

针对/etc/passwd

root:x:0:0:root:/root:/bin/sh

用户名:用户登录时使用。长度应在 1 到 32 个字符之间。
密码:x 字符表示加密的密码存储在 /etc/shadow 文件中。请注意,您需要使用 passwd 命令来计算在 CLI 中输入的密码的哈希值,或者在 /etc/shadow 文件中存储/更新密码的哈希值,在这种情况下,密码哈希值存储为“x”。
用户 ID ( UID ):必须为每个用户分配一个用户 ID (UID)。UID 0(零)为 root 保留,UID 1-99 为其他预定义帐户保留。另外 UID 100-999 由系统保留用于管理和系统帐户/组。
组 ID (GID):主要组 ID(存储在 /etc/group 文件中)
用户 ID 信息:评论字段。它允许您添加有关用户的额外信息,例如用户的全名、电话号码等。该字段通过手指命令使用。
主目录:用户登录时所在目录的绝对路径。如果该目录不存在,则用户目录将变为 /
Command/shell:命令或 shell 的绝对路径 (/bin/bash)。通常,这是一个外壳。请注意,它不一定是外壳。arm Linux中是/bin/sh而不是/bin/bash。

shadow文件中内容为:

root:Wdfdfqwe:17226:::::

第一段表示登录的用户名
第二段表示密文密码。
设置用户密码:
passwd root
之后输入该用户的密码,之后在shadow中就会生成密文密码,你是无法知道具体含义的,生成密文密码后,可以将shadow文件中的密文密码放入到制作根文件系统的文件夹中,然后烧录以便不用每次都设置密码

文件系统制作

文件系统格式有三种:

  1. Squashfs
  2. Jffs2
  3. Ubi文件系统

Squashfs

SquashFS是一套基于Linux内核使用的压缩只读文件系统。该文件系统能够压缩系统内的文档,inode以及目录,文件最大支持2^64字节

制作方式

mksquashfs root-uclibc xxx.squashfs -comp xz
mksquashfs 是制作文件系统的工具
root-uclibc需要压缩的文件系统 文件夹
xxx.squashfs输出的可烧录的压缩文件
-comp xz 压缩格式: gzip (默认), lzo, xz
注意其中-b缺省,默认为128KB块大小,可指定

gzip & lzo & xz 压缩

gzip & lzo & xz【可以理解为不同压缩软件比如rar, 7z等等】
三大类型压缩算法对比
在这里插入图片描述

Jffs2

主要用于NOR型闪存,基于MTD驱动层,特点是:可读写的、支持数据压缩的、基于哈希表的日志型文件系统,并提供了崩溃/掉电安全保护,提供“写平衡”支持等。缺点主要是当文件系统已满或接近满时,因为垃圾收集的关系而使jffs2的运行速度大大放慢。

制作方式

mkfs.jffs2 -o xxx.jffs2 -r root-uclib -e 0x10000 -s 0x1000 -n -l -x zlib --pad
mkfs.jffs2:制作jffs2文件系统的工具
-o xxx.jffs2 : 输出的可烧录压缩文件
-r root-uclib: 输入的要压缩的文件夹
-e 0x10000:设定擦除块的大小为(默认: 64KB)
-s 0x1000:设定擦除块的大小为(默认: 64KB)
-n:指明不添加清楚标记(nand flash 有自己的校检块,存放相关的信息。) 如果挂载后会出现类似:CLEANMARKER node found at
0x0042c000 has totlen 0xc != normal 0x0 的警告,则加上-n 就会消失
-l:指定使用小端格式
-x zlib:指压缩格式
–pad:通常用 16 进制表示输出文件系统大小,不足部分用 0xff 补充

Ubi文件系统

在某种程度上,UBIFS可以被认为是JFFS2文件系统的下一代。
可以在其上运行标准文件系统,如ext2/ext3/ext4 等

制作方式:
mkfs.ubifs -e 0x1f000 -c 568 -m 2048 -d config/ -o config.ubifs -v

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/267401.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华硕ROG玩家国度幻16air 2024原装系统恢复安装教程方法

华硕ROG玩家国度幻16air 2024原装系统恢复安装教程方法 重建ASUSRECOVERY恢复功能 支持型号: GU605MI,GU605MY,GU605MZ GU605MV,GU605MU 分3种安装方法 远程恢复安装:https://pan.baidu.com/s/166gtt2okmMmuPUL1…

设计模式七:责任链模式

文章目录 1、责任链模式2、spring中的责任链模式Spring InterceptorServlet FilterNetty 1、责任链模式 责任链模式为请求创建了一个接收者对象的链,在这种模式下,通常每个节点都包含对另一个节点者的引用。每个节点针对请求,处理自己感兴趣…

【k8s相关资源api操作】

k8s相关资源api操作 文章目录 k8s相关资源api操作AdmissionregistrationApiextensionApiregistrationAppsV1ApiAutoscalingV1ApiBatchV1ApiCertificatesApi 证书相关CoordinationV1Api 最重要的CoreV1Api !!!CustomObjectsApiDiscoveryV1ApiEventsV1ApiFlowcontrolApiserverApi…

react-组件基础

1.目标 能够使用函数创建组件 能够使用class创建组件 能够给React元素绑定事件 能够使用state和setState() 能够处理事件中的this指向问题 能够使用受控组件方式处理表单 2.目录 React组件介绍 React组件的两种创建方式 React事件处理 有状态组件和无状态组件 组件中的state…

安卓14/aosp14相比安卓13录屏多了MirrorRoot深入剖析解密-千里马android framework实战开发

背景: 在马哥付费课群里技术讨论时候,有一个学员朋友提出一个问题,那就是录屏时候他提到了,aosp14会使用到一个Mirror对应图层的情况,针对录屏需要对录屏这个虚拟的display进行mirror原来的display。 可以用如下图来表…

C#入门:简单数据类型和强制类型转换

本文由 简悦 SimpRead 转码, 原文地址 mp.weixin.qq.com 本期来讲讲 unity 的脚本语言 —C#,C# 的简单数据类型及范围和强制类型转化的方法。这可是 unity 游戏开发必备技能。 1. 简单数据类型 各个类型的范围: byte -> System.Byte (字节…

手动实现一个简单的 HTTP 请求

本文我们通过 Socket,写一个 HTTP 协议,直观的感受一下上篇文章中的请求和响应。 定义 socket server 通过上篇文章,我们知道 HTTP 协议底层是通过 Socket 实现的,所以我们先通过 socket 定义一个 server import socket#初始化 …

Thread多线程(创建,方法,安全,通信,线程池,并发,并行,线程的生命周期)【全详解】

目录 1.多线程概述 2.多线程的创建 3.Thread的常用方法 4.线程安全 5.线程同步 6.线程通信 7.线程池 8.其它细节知识:并发、并行 9.其它细节知识:线程的生命周期 1.多线程概述 线程是什么? 线程(Thread)是一个程序内部的一条执行…

day04_拦截器Apifox角色管理(登录校验,API接口文档,权限管理说明,角色管理,添加角色,修改角色,删除角色)

文章目录 1. 登录校验1.1 需求说明1.2 实现思路1.3 ThreadLocal1.4 AuthContextUtil1.5 拦截器使用1.5.1 拦截器开发1.5.2 拦截器注册 1.6 代码优化1.6.1 配置优化1.6.2 代码优化1.6.3 前端修改 2. API接口文档2.1 Apifox接口管理平台2.1.1 接口管理平台简介2.1.2 Apifox简介2.…

Python读取hbase数据库

1. hbase连接 首先用hbase shell 命令来进入到hbase数据库,然后用list命令来查看hbase下所有表,以其中表“DB_level0”为例,可以看到库名“baotouyiqi”是拼接的,python代码访问时先连接: def hbase_connection(hbase…

mysql 远程不允许连接 1130 -Host ‘‘ is not allowed to connect to this MySQL server

1、docker 进入mysql 命令 sudo docker exec -it 0c58 /bin/bash 2、连接mysql mysql -u root -ppwd 3、 use mysql; 4、更改表所有root用户都可以连接 update user set host ‘%’ where user‘root’; 5、刷新权限 flush privilege; ok解决;

【前端素材】推荐优质后台管理系统网页Hyper平台模板(附源码)

一、需求分析 1、系统定义 后台管理系统是一种用于管理和控制网站、应用程序或系统的管理界面。它通常被设计用来让网站或应用程序的管理员或运营人员管理内容、用户、数据以及其他相关功能。后台管理系统是一种用于管理网站、应用程序或系统的工具,通常由管理员使…

二维码门楼牌管理系统技术服务的深度解析

文章目录 前言一、标准地址名称的定义与重要性二、二维码门楼牌管理系统的核心技术三、标准地址名称在二维码门楼牌管理中的应用四、二维码门楼牌管理系统的优势与挑战五、展望未来 前言 在数字化浪潮中,二维码门楼牌管理系统以其高效、便捷的特性,正逐…

windows 11 前后端项目部署

目录 1.准备环境: 2.安装jdk 测试:winr 输入cmd 3.安装tomcat 4.安装mysql 远程导入数据: 外部后台访问:192.168.232.1:8080/crm/sys/loginAction.action?usernamezs&password123 5.安装nginx 前后端部署&#xff1…

Mysql 的高可用详解

Mysql 高可用 复制 复制是解决系统高可用的常见手段。其思路就是:不要把鸡蛋都放在一个篮子里。 复制解决的基本问题是让一台服务器的数据与其他服务器保持同步。一台主库的数据可以同步到多台备库上,备库本身也可以被配置成另外一台服务器的主库。主…

C++——模版

前言:哈喽小伙伴们好久不见,这是2024年的第一篇博文,我们将继续C的学习,今天这篇文章,我们来习一下——模版。 目录 一.什么是模版 二.模版分类 1.函数模版 2.类模板 总结 一.什么是模版 说起模版,我们…

flutter 加密安全

前言:数据安全 数据的加密解密操作在 日常网络交互中经常会用到,现在密码的安全主要在于 秘钥的安全,如论 DES 3DES AES 还是 RSA, 秘钥的算法(计算秘钥不固定) 和 保存,都决定了你的数据安全;…

【重温设计模式】享元模式及其Java示例

享元模式的介绍 在编程世界中,我们常常面临着如何有效管理系统资源的挑战。这就好比我们在生活中,面对有限的物质资源,如何做到既满足需求又节约使用,是一门艺术。在设计模式中,有一种模式,恰如其分地解决…

Android之UI Automator框架源码分析(第九篇:UiDevice获取UiAutomation对象的过程分析)

前言 学习UiDevice对象,就需要看它的构造方法,构造方法中有UiDevice对象持有一些对象,每个对象都是我们分析程序的重点,毕竟UiDevice对象的功能,依赖这些组合的对象 备注:当前对象持有的对象,初…

leedcode刷题--day7(字符串)

23 文章讲解 力扣地址 C class Solution { public:void reverseString(vector<char>& s) {int left 0;int right s.size() - 1; // right 应该初始化为 s.size() - 1while (left < right) {swap(s[left], s[right]); // 直接交换 s[left] 和 s[right] 的值lef…