当前位置: 首页 > news >正文

debian根文件系统制作

文章目录

  • 前言
  • 一、debian根文件系统是什么?
  • 二、构建步骤
    • 1.准备工作-第一阶段
    • 2.构建系统-第二阶段
    • 3.打包
    • 4.遇到的问题
  • 三、结果展示


前言

在这里介绍debian根文件系统的构建,builtroot根文件系统的不是不能用,只是这个能更方便的下载一些软件,更好用!


提示:以下是本篇文章正文内容,下面案例可供参考

一、debian根文件系统是什么?

deepseek:Debian 的根文件系统(Root Filesystem,简写为 /)是 Debian 操作系统的基础文件系统结构,它是整个操作系统的核心组成部分,包含了启动、运行和管理系统所需的全部目录、文件、配置和工具。根文件系统是所有其他文件系统(如 /home、/boot 等)的挂载起点,是系统运行的基石:)

二、构建步骤

1.准备工作-第一阶段

安装构建文件系统的工具,一个是用来chroot,一个是用来构建文件系统。chroot的作用是改变根目录,qemu是为了在x86架构的ubuntu上模拟arm架构系统。

sudo apt install qemu-user-static
sudo apt install debootstrap
mkdir debian11  // 可以建一个目录用来和别的目录区别,这个随意
cd debian11
mkdir rootfs  // 用来存放要构建的根文件系统

看你想要构建Debian10还是Debian11或者其他的,需要找到对应的源。而且要找到自己开发板架构对应的源。licheepi nano的架构是armel。

// debian 10 ,有armel
http://mirrors.huaweicloud.com/debian-archive/debian/
// debian 11 ,有armel
https://mirrors.huaweicloud.com/debian/

我这里使用的debian11,10的话也试过是ok的

// 网上的命令,licheepi nano 直接debootstrap会有证书的问题
sudo debootstrap --foreign --verbose --arch=armel  buster rootfs http://mirrors.huaweicloud.com/debian/

// licheepi nano 解决证书的问题,需要额外执行这一步
wget https://ftp-master.debian.org/keys/release-10.asc -qO- | gpg --import --no-default-keyring --keyring ./debian-release-10.gpg
debootstrap --keyring=./debian-release-10.gpg --foreign --verbose --arch=armel  buster rootfs https://mirrors.huaweicloud.com/debian-archive/debian/

然后在rootfs目录下执行以下命令,挂载一些目录。并把qemu放到rootfs/usr/bin/目录下,一般qemu有执行权限,可以看一下,没有的话chmod一下。

sudo cp /usr/bin/qemu-arm-static rootfs/usr/bin/
sudo chmod +x rootfs/usr/bin/qemu-arm-static  // 加权限
mount -t proc proc rootfs/proc
mount -t sysfs sys rootfs/sys
mount -o bind /dev rootfs/dev
mount -o bind /dev/pts rootfs/dev/pts

2.构建系统-第二阶段

// 执行第一句会有很长的时间--第二阶段!!!
sudo LC_ALL=C LANGUAGE=C LANG=C chroot rootfs /debootstrap/debootstrap --second-stage --verbose
// 执行这一句就是改变了根目录
sudo LC_ALL=C LANGUAGE=C LANG=C chroot rootfs

改变根目录可能不太还理解,看下图可以更好理解:
在这里插入图片描述
注解:为啥要改变根目录,这样你的一些操作就能留在该根文件系统中,apt-get安装一些软件啥啥的。

apt-get gcc  		//不知道为啥对gcc有一种执念,别的可以没有,这个必须有!
apt-get install wpasupplicant // 安装WIFI配置相关的组件
apt-get install net-tools     // 安装网络基础组件、如使用ifconfig等
apt-get install udhcpc        // 当wifi连接成功后,需要用这个组件去获取IP地址

// 其他组件
apt-get install wireless-tools 
apt install sudo vim openssh-server htop
apt install pciutils usbutils acpi

修改root登录密码的方式如下

passwd root

添加用户

groupadd <用户组>
useradd -m -g <用户组> -s /bin/bash <用户名>
passwd <用户名>
代码如下(示例):

新增账号的操作感觉没必要啊,不加了,详见:墨云:Debian文件系统制作

3.打包

当所有的内容制作完成,就可以清理缓存,打包之后就可以替换你的文件系统了

apt-cache clean #删除安装包 
exit  #退出chroot
rm rootfs/usr/bin/qemu-arm-static

卸载刚在挂载的文件夹。

cd rootfs
sudo umount   dev/pts/
sudo umount   dev/
sudo umount   sys/
sudo umount   proc/
sudo umount   dev/pts/

打包文件。

cd rootfs  #进到文件系统目录,如果已经在该文件夹下,可以忽略
tar cvf ../rootfs.tar .    #要注意那个.  代表当前目录

生成的rootfs.tar任意解压到文件系统即可

4.遇到的问题

① request_module: kmod_concurrent_max (0) close to 0 (max_modprobes: 50), for module binfmt-0000, throttling…
② Starting init: /sbin/init exists but couldn’t execute it (error -8)
③ Starting init: /bin/sh exists but couldn’t execute it (error -8)
在这里插入图片描述
解决:之前的步骤一直按照别人的操作来的试了五六次,排除了操作的问题,最后根文件系统不压缩-解压。直接把rootfs内的所有文件copy到SD卡里,居然解决了,我真的服了!!如果有遇到上述问题的话可以先看看文件的权限是否够,是否在解压的时候改了文件的权限。
还有一件事:关于Starting init: /sbin/init exists but couldn’t execute it (error -8)问题,有的说要换一种启动方式,以下仅供参考:

替换为轻量级 Init 系统
若 systemd 仍失败,改用 sysvinit:
1、在 chroot 环境中操作
sudo chroot rootfs /usr/bin/qemu-arm-static /bin/bash
2、安装 sysvinit
apt-get update
apt-get install sysvinit-core
 3、卸载 systemd
apt-get purge systemd
 4、创建符号链接
ln -sf /sbin/init /sbin/init.sysvinit
修改内核命令行参数:
5、复制
init=/sbin/init.sysvinit

还有二件事:也有说rootfs/lib/ld-linux.so.3文件不能链接,要替换一下,不知道有无屌用。
在这里插入图片描述

三、结果展示

终于进入了~,就是licheepi nano太慢了:)
在这里插入图片描述在这里插入图片描述

相关文章:

  • MySQL 数据库优化与定期数据处理策略
  • C++20的简写函数模板
  • cesium中,获取光标处颜色
  • STM32之BKP
  • Redis主从复制
  • 考前冲刺,消防设施操作员考试最后一击
  • 深入剖析分布式事务:原理、方案与实战指南
  • WebGPT: 基于浏览器辅助的问答系统,结合人类反馈优化答案质量
  • 介绍一下Qt中的动态属性
  • 【leetcode hot 100 206】反转链表
  • Manus开源平替-开源通用智能体
  • TCP7680端口是什么服务
  • 【JAVA架构师成长之路】【Redis】第14集:Redis缓存穿透原理、规避、解决方案
  • 【从零开始学习计算机科学】数字逻辑(九)有限状态机
  • Android Studio右上角Gradle 的Task展示不全
  • 【程序自动分析——并查集,离散化】
  • DeepSeek提问术:解锁AI交互新姿势-20 个精准提问框架
  • MES系统如何实现远程访问?
  • 基于SpringBoot实现旅游酒店平台功能一
  • 10 个玉米重组自交系种群植物结构的遗传基础
  • 网站宣传虚假处罚标准/360优化大师官网
  • 什么网站可以做软件有哪些/网络推广策划方案模板
  • 如何创建一个网站/网络营销品牌
  • 池州网站建设公司/南昌百度搜索排名优化
  • 建设高端网站/竞价开户公司
  • seo在线教学/郑州seo外包服务