本章目标 l 了解Linux的文件系统层次标准(FHS) l 了解根文件系统下各目录的作用 l 掌握构建根文件系统的方法:移植Busybox、构造各个目录、文件等 l 掌握制作yaffs、jffs2文件系统映象文件的方法...这些必需的、基本的文件,合称为根文件系统,它们存放在一个分区中。Linux系统启动后首先挂接这个分区──称为挂接(mount)根文件系统。...17.1.2 Linux根文件系统目录结构 为了在安装软件时能够预知文件、目录的存放位置,为了让用户方便地找到不同类型的文件,在构造文件系统时,建议遵循FHS标准(Filesystem Hierarchy...本节根据FHS标准描述Linux根文件系统的目录结构,并不深入描述各个子目录的结构,读者可以自行阅读FHS标准了解这些内容。...Linux根文件系统中一般有如图17.1所示的几个目录。 图17.1 Linux根文件系统结构 下面依次讲述这几个目录的作用。 1.
我们首先从主机上所安装的Linux操作系统中了解一些根文件系统的信息。...根文件系统一直以来都是所有类Unix操作系统的一个重要组成部分,也可以认为是嵌入式Linux系统区别于其他一些传统嵌入式操作系统的重要特征,它给Linux带来了许多强大和灵活的功能,同时也带来了一些复杂性...根文件系统的基本目录结构 Linux的根文件系统以树型结构组织,包含内核和系统管理所需要的各种文件和程序,一般说来根目录”/”下的顶层目录都有一些比较固定命名和用途。 ...对于嵌入式Linux系统的根文件系统来说,一般可能没有上面所列出的那么复杂,比如嵌入式系统通常都不是针对多用户的,所以/home这个目录在一般嵌入式Linux中可能就很少用到,而/boot这个目录则取决于你所使用的...根文件系统有两种,一种是虚拟根文件系统,另外一种是真实的根文件系统。一般情况下,会首先在虚拟的根文件系统中做一部分工作,然后切换到真实的根文件系统下面。
3 根文件系统为什么这么重要 根文件系统之所以在前面加一个”根“,说明它是加载其它文件系统的”根“,那么如果没有这个根,其它的文件系统也就没有办法进行加载的。...例如: init进程的应用程序必须运行在根文件系统上; 根文件系统提供了根目录“/”; linux挂载分区时所依赖的信息存放于根文件系统/etc/fstab这个文件中; shell命令程序必须运行在根文件系统上...Linux启动时,第一个必须挂载的是根文件系统;若系统不能从指定设备上挂载根文件系统,则系统会出错而退出启动。成功之后可以自动或手动挂载其他的文件系统。因此,一个系统中可以同时存在不同的文件系统。...在 Linux 中将一个文件系统与一个存储设备关联起来的过程称为挂载(mount)。使用 mount 命令将一个文件系统附着到当前文件系统层次结构中(根)。...6 顺便说下linux文件系统的常用目录 Linux文件系统中一般有如下几个目录: /bin目录 该目录下存放所有用户都可以使用的、基本的命令,这些命令在挂接其它文件系统之前就可以使用,所以/bin目录必须和根文件系统在同一个分区中
有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Android 系统的自带的shell。...BusyBox提供了一个比较完善的环境,可以适用于任何小的嵌入式系统。 这篇文章就介绍如何使用BusyBox制作一个最小根文件系统,让Linux系统能够正常跑起来,能进入Linux命令行终端。...uboot环境变量的时候,就设置好nfs服务器的ip地址,目录等参数,等Linux内核启动后根据参数指引去挂载根文件系统,挂载成功之后,最终进入到命令行终端,接下来就可以愉快的进行Linux编程了。...编译根文件系统需要的基本文件 [wbyq@wbyq ~]$ mkdir ~/work/busybox -p [wbyq@wbyq ~]$ tar xvf busybox-1.23.2.tar.bz2 -...挂载文件系统 挂载文件系统分为两种: 本地挂载. 产品发布使用这种. 将文件系统放在SD卡或者EMMC上 网络挂载(NFS). 产品开发阶段使用这种.
(1) jffs2 JFFS文件系统最早是由瑞典Axis Communications公司基于Linux2.0的内核为嵌入式系统开发的文件系统。...JFFS2是RedHat公司基于JFFS开发的闪存文件系统,最初是针对RedHat公司的嵌入式产品eCos开发的嵌入式文件系统,所以JFFS2也可以用在Linux, uCLinux中。 ...yaffs/yaffs2自带NAND芯片的驱动,并且为嵌入式系统提供了直接访问文件系统的API,用户可以不使用Linux中的MTD与VFS,直接对文件系统操作。...ext2也可以作为嵌入式Linux的文件系统,不过将它用于 FLASH闪存会有诸多弊端。...在嵌入式Linux系统的开发调试阶段,可以利用该技术在主机上建立基于NFS的根文件系统,挂载到嵌入式设备,可以很方便地修改根文件系统的内容。
保护操作系统中的敏感数据对于确保计算机的安全至关重要。在 Linux 系统中,你可以使用加密技术来保护根文件系统中的数据。加密根文件系统可以防止未经授权的访问和数据泄露。...本文将介绍如何在 Linux 上加密根文件系统,并提供详细的步骤。...图片步骤以下是在 Linux 上加密根文件系统的详细步骤:步骤1:选择适当的加密技术在加密根文件系统之前,你需要选择适合你的系统和需求的加密技术。...步骤6:验证加密根文件系统一旦系统启动,你需要验证加密根文件系统是否成功工作。以下是一些验证步骤:登录系统:使用你设置的用户名和密码登录系统。查看已挂载的文件系统:执行以下命令查看已挂载的文件系统。...结论通过执行以上步骤,你可以在 Linux 上成功加密根文件系统,保护系统中的敏感数据免受未经授权的访问。
1. rcS文件的作用 rcS是一个脚本文件,在inittab文件中本解析调用,用于配置Linux系统。 2.rcS文件分析 #!.../bin/sh #指定系统使用的shell #初始化环境变量PATH,操作系统执行程序默认到PATH指定的目录下寻找该程序 PATH=/sbin:/bin:/usr/sbin:/usr/bin:...,-t指明文件系统的类型,-n只是单纯的mount,而不会去写/etc/mtab文件。...#否则,如果/etc在一个只读文件系统上写的话将引发错误。...# 挂载/etc/fstab文件中指定的文件系统 mkdir -p /dev/pts mkdir -p /dev/shm /bin/mount -n -t devpts none /dev/pts
前段时间接到一个兄弟 Team 反馈,发现在他们设计的一批板子跑一个他们开发的工程(为了后面描述方便,我们简称 SLT 工程)的时候,很容易出现文件系统挂载失败或者文件系统被损坏的情况,说排查了很久没有头绪...所以现在的现象是:只要Linux Kernel 看到 DDR 前 64 KB的空间后,文件系统挂载就异常了。...和前面的推测比较接近了,下面要找的是谁在文件系统访问后又冲了这片地址。...把这 64 KB 空间从 Linux Kernel Reserved 掉(这个只要在 dts 里面加一个 reserved-memory 节点就可以做到),这样内核里面正常的软件(包括文件系统)也就申请不到这片内存空间了...crypto 程序如果运行的比较早就不会覆盖 rootfs 中的文件,如果运行的更晚,可能覆盖的文件没有那么关键,文件系统挂载也不会异常。
前言 上篇文章介绍了根文件系统的制作与NFS网络挂载,这篇文章介绍内核如何从本地挂载根文件系统,完成系统启动。本地挂载一般用在产品发布的时候,本地挂载的操作也分为两种。...本地挂载方式1 这种放需要准备一张SD卡,然后需要利用官方光盘里提供的分区工具,对SD卡进行分区,再将内核、uboot、文件系统映像文件拷贝到SD卡上,再修改配置文件,设置启动的系统为Linux系统。...根文件系统映像制作需要用到make_ext4fs命令,这个工具在光盘里也有,是一个压缩包,解压到PC机Linux系统下就可以使用。...制作完成之后,将根文件系统拷贝到SD卡的image文件夹,与烧写安卓系统一样进行烧写。 说明:其中的zImage文件是可以自己编译替换掉的。...配置内核: # cp tiny4412_linux_defconfig .config 制作根文件系统的方式: make_ext4fs -s -l
看完文件系统的基础数据结构。我们接着解析的根文件系统的挂载,因为这是文件系统被使用的起点。根文件系统的挂载是在操作系统初始化的时候进行的。对应的函数是mount_root。...,即根文件系统的超级块 if (!...it is logically used 4 times, not 1 */ // 超级块挂载到了mi对应的inode节点,p->s_isup设置根文件系统的根节点 p->s_isup = p-...,然后申请一个inode节点作为根文件系统的根节点。...后续的对文件系统的使用都是基于这个根文件系统的根节点的。
最小根文件系统的组成:1.dev/console /dev/null 2.init程序(来源busybox)3....也可以使用mount -a命令挂载根文件系统。使用vi etc/init.d/rcS打开文件,注释掉之前的脚本内容,加入mount -a。...具体参考嵌入式linux开发完全手册371页或者韦东山衔接视频第十一课第四节6min中处。 (7)进入开发板的文件系统之后,使用cat /proc/mounts查看挂在了那些文件系统。...手工挂接根文件系统!!! 挂接NFS条件: 1.服务器允许目录可被别人挂接。在first_fs目录下sudo vi /etc/exports,打开配置文件,加上要挂接的目录 ? ...2.单板去挂接 从flash上启动根文件系统,再用命令挂接NFS。
如果想做一个极简的文件系统,可以使用Busybox手工制作。...-1.34.0版本的时候,出现: 我的交叉编译工具是4.9的,所以是没有这一条命令的, 此时你可以下载更高版本的交叉编译工具,或者更低版本的busybox,据我所知,这个版本是的交叉编译工具的命令是没有变化的...错误 2 zh@zh-lpc:~/soft/software/busybox-1.34.0$ zh@zh-lpc:~/soft/software/busybox-1.34.0$ 解决办法: 这时因为系统中缺少一个套件...ncurses devel ,把此套件安装下即可 Ubuntu中使用如下命令安装即可,其他系统可以参考。...~/soft/linux_tools$ mkdir rootfs 2、把生成的所有文件都拷贝到创建好的rootfs目录下 zh@zh-lpc:~/soft/linux_tools/rootfs$ zh@
前言 如果大家做过linux系统移植、或者Linux相关开发,对根文件系统这个名词应该很熟悉,在搭建嵌入式开发环境过程中,移植bootloader,移植kernel制作根文件系统是必须要做3件事情。...根文件系统是内核启动时所挂载mount的第一个文件系统,系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和服务等加载到内存中去运行。...Linux启动时,第一个必须挂载的是根文件系统;若系统不能从指定设备上挂载根文件系统,则系统会出错而退出启动。成功之后可以自动或手动挂载其他的文件系统。因此,一个系统中可以同时存在不同的文件系统。...根文件系统作为系统的根,系统启动之后为完成一些初始化配置,操作。比如:系统登录输入的开机密码、开机账户这些信息就是存放在根文件系统里的。...切换根目录,再挂载具体的根文件系统,根文件系统执行完之后,执行init的进程,也就第一个用户进程,对系统进行各种初始化的操作。
前言 根文件系统是Linux内核启动之后挂载的第一个文件系统,上篇文章里已经介绍过,如何使用busybox来制作根文件系统。...这篇文章介绍根文件系统制作成功后,如何让内核找到文件系统,并完成挂载,进入到系统命令行终端。...根文件系统支持从网络挂载和本地挂载两种方式: (1)如果是采用网络挂载就将路径设置为/dev/nfs,NFS是Linux下常用的网络文件系统,这种方式挂载一般是在系统开发阶段,方便修改调试代码,也就是将根文件系统放在...(2)本地挂载就是让内核从SD卡、EMMC、光盘等设备里加载根文件系统,设备路径设置为/dev/sda、/dev/ram等等。具体设备节点名称是什么就填什么。...NFS网络方式挂载 前提是先把根文件系统制作好才能继续这一步。当前的宿主机采用redhat6.3,这个系统比较老,但是功能是很齐全的,运行起来很流畅。
根文件系统原理 1.1 为什么需要根文件系统 init进程的应用程序在根文件系统上 根文件系统提供了根目录 / 内核启动后的应用层配置( etc 目录)在根文件系统上。...1.2 根文件系统的实质 根文件系统是特殊用途的文件系统。 根文件系统也必须属于某种文件系统格式。...1.3 根文件系统的形式 使用专用工具软件制作的可供烧录的镜像文件 镜像中包含了根文件系统中的所有文件 烧录此镜像类似于对相应分区格式化。...以文件夹形式构成的文件系统: 根文件系统其实就是一个包含特定内容的文件夹 根文件系统可由任何一个空文件夹添加必要文件构成而成 根文件系统的雏形就是在开发主机中构造的文件夹形式的 镜像文件形式的根文件系统主要目的是用来烧录到块设备上...镜像文件形式的根文件系统是由文件夹形式的根文件系统使用专用的镜像制作工具制作而成的。
Buildroot 简介 制作根文件系统有归多种方法: ① 使用Busybox手工制作 Busybox本身包含了很了Linux命令,但是要编译其他程序的话需要手工下载、编译,如果它需要某些依赖库,你还需要手工下载...如果想做一个极简的文件系统,可以使用Busybox手工制作。 ② 使用Buildroot自动制作 它是一个自动化程序很高的系统,可以在里面配置、编译内核,配置编译u-boot、配置编译根文件系统。...Buildroot可以自动构建所需的交叉编译工具链,创建根文件系统,编译Linux内核映像,并生成引导加载程序用于目标嵌入式系统,或者它可以执行这些步骤的任何独立组合。...例如,可以单独使用已安装的交叉编译工具链,而Buildroot仅创建根文件系统。...配置文件说明 下面介绍如何构建 100ASK_STM32MP157_PRO 全功能版的根文件系统。 4.
在上一篇文章鸿蒙系统研究之三:迈出平台移植第一步,我们将内核加载并启动,但缺少根文件系统。这篇文章我们来探讨一下根文件系统的制作。...但是 Vexpress A9 模拟器支持加载 SD 存储,所以咱们先采取一个变通的方法,将根文件系统和系统文件都放入到 SD 存储中,然后挂载到模拟器中。...可以看到,内核加载了,根文件系统也加载了,也执行了超级用户进程 init,遗憾的是,执行中还存在错误。不用担心,我们一步一步来解决问题。...可以看出,这篇文章介绍的方法的不足,系统镜像的文件和根文件系统混在一起。一般而言,根文件系统是加载到内存中,这样做出来的根文件系统太大,比较占内存。...一般根文件系统和系统镜像分开加载,在下一篇文章中,我们采用 uboot 来加载内核、根文件系统以及系统镜像。 敬请关注!
::sysinit:/etc/init.d/rcS ::respawn:/bin/login #::respawn:-/bin/sh ::restart:...
使用Petalinux的boot文件、根文件系统,和开源Linux的Image启动 概述 作者: 付汉杰 hankf@xilinx.com hankf@amd.com 测试环境: Vivado/PetaLinux...image.ub已经带文件系统,可以独立启动。查看boot.scr,可以看到uboot加载image.ub后,执行命令“bootm 0x10000000”,启动了Linux。...使用Petalinux的boot文件、根文件系统,和开源Linux的Image启动 使用PetaLinux编译时,会自动生成根文件系统,耗时较长,导致调试不方便。...在编译PetaLinux工程后,把Linux kernel的代码和配置文件复制出来。修改Linux kernel的代码后,直接编译,得到对应的Image和ko文件,也可以使用上述命令启动。...相对PetaLinux编译,这种方式更快,也能使用PetaLinux的boot文件和根文件系统。
STEP 1:构建目录结构 创建根文件系统目录,主要包括以下目录 /dev /etc /lib /usr /var /proc /tmp /home /root /mnt /bin /sbin /sys...STEP 3 构建etc目录:(主要有etc/inittab文件 、etc/init.d/rcs、etc/fstab) 1)进入根文件系统rootfs的etc目录,执行如下操作: 拷贝Busybox-1.16.1.../arm-zch-linux-gnueabi/sysroot/lib我的只是把这个目录下的SO文件复制就可以了) 1)#cd /usr/local/arm/4.3.2/arm-none-linux-gnueabi...mknod mtdblock0 b 31 0 方法2:使用mdev创建设备文件 确保内核设置CONFIG_SYSFS CONFIG_TMPFS 在内核启动时,自动运行mdev 修改etc/fstab来自动挂载根文件系统...总结 以上所述是小编给大家介绍的移植busybox构建最小根文件系统的步骤详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。
领取专属 10元无门槛券
手把手带您无忧上云