精华内容
下载资源
问答
  • Linux根文件系统介绍

    千次阅读 2013-07-10 08:52:42
    系统 根文件系统首先是一种文件系统,但是相对于普通的文件系统,它的特殊之处... 我们首先从主机上所安装的Linux操作系统中了解一些根文件系统的信息。比如在笔者工作的Linux桌面系统中可以得到下面的结果: # mou

    系统

      根文件系统首先是一种文件系统,但是相对于普通的文件系统,它的特殊之处在于,它是内核启动时所mount的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和服务等加载到内存中去运行。

      我们首先从主机上所安装的Linux操作系统中了解一些根文件系统的信息。比如在笔者工作的Linux桌面系统中可以得到下面的结果:

      # mount

      /dev/hda2 on / type ext3 (rw)

      none on /proc type proc (rw)

      /dev/hda1 on /boot type ext3 (rw)

      none on /dev/pts type devpts (rw,gid=5,mode=620)

      none on /dev/shm type tmpfs (rw)

      # df

      Filesystem           1K-blocks      Used Available Use% Mounted on

      /dev/hda2             16216016   5667*   9724600  37% /

      /dev/hda1               101089      9321     8*9  10% /boot

      none                     63028         0     63028   0% /dev/shm

      从上面的mount命令我们可以看到,在桌面Linux中,根文件系统”/”被mount到/dev/hda2设备上,文件系统类型为ext3,属性为rw即可读写。从df命令则可以得到更多根文件系统使用空间的相关信息。

      根文件系统一直以来都是所有类Unix操作系统的一个重要组成部分,也可以认为是嵌入式Linux系统区别于其他一些传统嵌入式操作系统的重要特征,它给Linux带来了许多强大和灵活的功能,同时也带来了一些复杂性。我们需要清楚的了解根文件系统的基本结构,以及细心的选择所需要的系统库、内核模块和应用程序等,并配置好各种初始化脚本文件,以及选择合适的文件系统类型并把它放到实际的存储设备的合适位置。

      根文件系统的基本目录结构

      Linux的根文件系统以树型结构组织,包含内核和系统管理所需要的各种文件和程序,一般说来根目录”/”下的顶层目录都有一些比较固定命名和用途。

      下面列出了一个Linux根文件系统中的比较常见的目录结构:

      /bin 存放二进制可执行命令的目录

      /dev 存放设备文件的目录

      /etc 存放系统管理和配置文件的目录

      /home 用户主目录,比如用户user的主目录就是/home/user,可以用~user表示

      /lib 存放动态链接共享库的目录

      /sbin存放系统管理员使用的管理程序的目录

      /tmp 公用的临时文件存储点

      /root 系统管理员的主目录

      /mnt 系统提供这个目录是让用户临时挂载其他的文件系统。

      /proc 虚拟文件系统,可直接访问这个目录来获取系统信息。

      /var 某些大文件的溢出区

      /usr 最庞大的目录,要用到的应用程序和文件几乎都在这个目录。

      对于经常使用Linux系统的读者来说,这些目录大部分应该很熟悉了。不过有几个目录对初学者来说容易混淆,如/bin,/sbin,/usr/bin和/usr/sbin。这里简单介绍一下它们的区别:/bin目录一般存放对于用户和系统来说都是必须的二进制文件,而/sbin目录要存放的是只针对系统管理的二进制文件,该目录的文件将不会被普通用户使用。相反,那些不是必要的用户二进制文件存放在/usr/bin下面,那些不是非常必要的系统管理工具放在/usr/sbin下。此外,对于一些本地的库也非常类似,对于那些要求启动系统和运行的必须命令要存放在/lib目录下,而对于其他不是必须的库存放在/usr/lib目录就可以。

      对于嵌入式Linux系统的根文件系统来说,一般可能没有上面所列出的那么复杂,比如嵌入式系统通常都不是针对多用户的,所以/home这个目录在一般嵌入式Linux中可能就很少用到,而/boot这个目录则取决于你所使用的BootLoader是否能够重新获得内核映象从你的根文件系统在内核启动之前。一般说来,只有/bin,/dev,/etc,/lib,/proc,/var,/usr这些需要的,而其他都是可选的。

    展开全文
  • linux 根文件系统制作

    千次阅读 2013-01-19 12:54:26
    (一):首先linux根文件系统的制作需要的开发环境。 1:移植Linux内核版本: linux-3.0.1 (只要能用就行) 2:交叉编译工具:arm-linux-gcc 4.3.2(任选) 3:文件系统制作工具:Busybox-1.13.3(任选) 4:etc...
    昨天花了我几个小时的时间,最后终于把那个根文件系统制作好了~
    

    (一):首先linux根文件系统的制作需要的开发环境。

    1:移植Linux内核版本:  linux-3.0.1  (只要能用就行)

    2:交叉编译工具:arm-linux-gcc 4.3.2(任选)

    3:文件系统制作工具:Busybox-1.13.3(任选)

    4:etc.tar.gz

    (二):交叉编译环境的搭建(这一步我在我的博客其他文章里面有 详细的搭建过程,很简单滴~)

    (三):创建根文件系统的目录

    1:在主目录下面新建一个文件夹rootfs

    [root@localhost fs]# ls
    [root@localhost fs]# mkdir rootfs
    [root@localhost fs]# cd rootfs/
    [root@localhost rootfs]# mkdir bin dev etc lib proc sbin sys usr mnt tmp var
    [root@localhost rootfs]# mkdir usr/bin usr/lib usr/sbin lib/modules

    说明:

      根文件系统是Linux启动的时候使用的第一个文件系统,没有他系统将无法正常的启动

           然而在这个根文件系统中又包含了一系列的目录,接下来对这些目录做一个简单的介绍。其实这个大家都很懂的

    bin
     存放所有用户都可以使用的、基本的命令。
     
    sbin

     存放的是基本的系统命令,它们用于启动系统、修复系统等。

    sys

    一些总线啊设备啊驱动啊。等等都在这里。好像都是动态生成的吧

     
    usr
     里面存放的是共享、只读的程序和数据。
     
    proc
     这是个空目录,常作为proc文件系统的挂载点。
     
    dev
     该目录存放设备文件和其它特殊文件。
     
    etc
     存放系统配置文件,包括启动文件。
     
    lib

     存放共享库和可加载块(即驱动程序),共享库用于启动系统、运行根文件系统中的可执行程序。

    mnt
     用于临时挂接某个文件系统的挂接点,通常是空目录。也可以在里面创建空的子目录。
    boot
     引导加载程序使用的静态文件
     
    home
     用户主目录,包括供服务账号锁使用的主目录,如FTP
     
    opt
     给主机额外安装软件所摆放的目录。
     
    root
     root用户的主目录
     
    tmp
     存放临时文件,通常是空目录。
     
    var

     存放可变的数据。


    2:创建设备文件

    [root@localhost rootfs]#cd dev/

    [root@localhost dev]# mknod -m 666 console c 5 1
    [root@localhost dev]# mknod -m 666 null c 1 3

    说明:mknod  -m 666 console c 5 1

    console 为设备文件名,自己可以随便取,c代表是字符型设备(可选b,块设备)

    5是主设备号   /dev/devices里面记录现有的设备

    1是次设备号当你要给两个同样的设备上一个驱动的时候就要分了,从0开始,1就是第二个了 ,对于字符设备,次设备号就表示同类型设备的不同设备。666代表访问的权限


    3:配置/etc/

    这里有两种方法

    1:可以把系统上面的/etc/下面一些比较重要的文件拷贝过来

    2:也可以直接在网上下载一个etc.tar.gz

      #tar   -zxvf   etc.tar.gz 

    将解压出来的文件etc下面的东西全部拷贝到上面新建的根目录下面/rootfs/etc/下面

    etc/inittab
    etc/profile
    etc/fstab
    etc/init.d/
    etc/init.d/rcS


    4:编译内核模块

    首先进入内核目录下面(内核目录和根文件系统目录不是在同一个目录下面的)

    # cd  linux-3.0.1

    #make  modules  ARCH=arm  CROSS_COMPILE=arm-linux-

    说明:在这一步出现一些问题,发现怎么编译也不行,后来由下载了一个内核,编译通过

    5:安装内核模块

    #make  modules_install  ARCH=arm  INSTALL_MOD_PATH=/home/xiongyao/rootfs

    说明:将内核里面编译好的模块放在根文件系统目录下面(其实就是把模块拷贝到目录下面的过程)

    6:配置busybox

    说明:关于busybox:(百度百科)

    busybox是一个集成了一百多个最长用linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如lscatecho等等,还包含了一些更大、更复杂的工具,例如grepfindmount 以及telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Android 系统的自带的shell。

    # tar -xvzf busybox-1.13.3.tar.gz

    # cd  busybox-1.13.3

    #make menuconfig

    说明:这一步是要配置busybox的图形界面,使之生效,运行这个命令可能会出错,原因是因为你没有

    安装那个图像界面的依赖库,在终端里面输入apt-get install libncurses5-dev  就ok了~

    Busybox Settings-----> build Options----->

    选中Build BusyBox as a static binary(no shared libs)

     Busybox Settings-----> InstallationOptions ------------>     

    选中 “don't use /usr”    选中此项可以避免busybox被安装到宿主系统的/usr目录下,破坏宿主系统

    Busybox Installation Prefix(/home/fs/myrootfs)   这里要输入busybox安装的绝对路径

    7:编译安装busybox

    #make  ARCH=arm  CROSS_COMPILE=arm-linux-

    #make  install

    到现在为止,根文件系统就完全做好了,你可以把这个根文件系统制作成ramdisk系统

    8:、将根文件系统制作 成ramdisk

    #genext2fs -b 8192 -d /home/fs/myrootfs/  ramdisk

    说明:这一步出现问题,后来发现是这个分配的空间太小,于是将8192改为120400

    #genext2fs   -b   /home/xiongyao/rootfs/  ramdisk  

    #gzip  -9  -f  ramdisk

    这样就可以将ramdisk.gz下载到开发板上面去了


    在制作的过程中可能会遇到各种各样的问题,遇到问题没事,我一般直接上百度,里面有各种解决方案,只要用心去理解,相信肯定能制作成功!

    展开全文
  • Linux根文件系统种类

    千次阅读 2020-06-19 15:17:29
    最小系统根文件系统,只用来跑Linux C或者C++; 最小系统+Qt库,用来泡Qt界面; ubuntu桌面系统,很少人用; Android系统,常用,但是系统庞大。

    最小系统根文件系统,可以用Yocto来构建,只用来跑Linux C或者C++;

    最小系统+Qt库,用来跑Qt界面;

    ubuntu桌面系统,很少人用;

    Android系统,常用,但是系统庞大。

    展开全文
  • linux根文件系统的制作

    千次阅读 2012-12-09 09:04:07
    (一):首先linux根文件系统的制作需要的开发环境。 1:移植Linux内核版本: linux-3.0.1 (只要能用就行) 2:交叉编译工具:arm-linux-gcc 4.3.2(任选) 3:文件系统制作工具:Busybox-1.13.3(任选) 4:etc...

          昨天花了我几个小时的时间,最后终于把那个根文件系统制作好了~得意

    (一):首先linux根文件系统的制作需要的开发环境。

    1:移植Linux内核版本:  linux-3.0.1  (只要能用就行)

    2:交叉编译工具:arm-linux-gcc 4.3.2(任选)

    3:文件系统制作工具:Busybox-1.13.3(任选)

    4:etc.tar.gz

    (二):交叉编译环境的搭建(这一步我在我的博客其他文章里面有 详细的搭建过程,很简单滴~)

    (三):创建根文件系统的目录

    1:在主目录下面新建一个文件夹rootfs

    [root@localhost fs]# ls
    [root@localhost fs]# mkdir rootfs
    [root@localhost fs]# cd rootfs/
    [root@localhost rootfs]# mkdir bin dev etc lib proc sbin sys usr mnt tmp var
    [root@localhost rootfs]# mkdir usr/bin usr/lib usr/sbin lib/modules

    说明:

      根文件系统是Linux启动的时候使用的第一个文件系统,没有他系统将无法正常的启动

           然而在这个根文件系统中又包含了一系列的目录,接下来对这些目录做一个简单的介绍。其实这个大家都很懂的

    bin
     存放所有用户都可以使用的、基本的命令。
     
    sbin

     存放的是基本的系统命令,它们用于启动系统、修复系统等。

    sys

    一些总线啊设备啊驱动啊。等等都在这里。好像都是动态生成的吧

     
    usr
     里面存放的是共享、只读的程序和数据。
     
    proc
     这是个空目录,常作为proc文件系统的挂载点。
     
    dev
     该目录存放设备文件和其它特殊文件。
     
    etc
     存放系统配置文件,包括启动文件。
     
    lib

     存放共享库和可加载块(即驱动程序),共享库用于启动系统、运行根文件系统中的可执行程序。

    mnt
     用于临时挂接某个文件系统的挂接点,通常是空目录。也可以在里面创建空的子目录。
    boot
     引导加载程序使用的静态文件
     
    home
     用户主目录,包括供服务账号锁使用的主目录,如FTP
     
    opt
     给主机额外安装软件所摆放的目录。
     
    root
     root用户的主目录
     
    tmp
     存放临时文件,通常是空目录。
     
    var

     存放可变的数据。


    2:创建设备文件

    [root@localhost rootfs]#cd dev/

    [root@localhost dev]# mknod -m 666 console c 5 1
    [root@localhost dev]# mknod -m 666 null c 1 3

    说明:mknod  -m 666 console c 5 1

    console 为设备文件名,自己可以随便取,c代表是字符型设备(可选b,块设备)

    5是主设备号   /dev/devices里面记录现有的设备

    1是次设备号当你要给两个同样的设备上一个驱动的时候就要分了,从0开始,1就是第二个了 ,对于字符设备,次设备号就表示同类型设备的不同设备。666代表访问的权限


    3:配置/etc/

    这里有两种方法

    1:可以把系统上面的/etc/下面一些比较重要的文件拷贝过来

    2:也可以直接在网上下载一个etc.tar.gz

      #tar   -zxvf   etc.tar.gz 

    将解压出来的文件etc下面的东西全部拷贝到上面新建的根目录下面/rootfs/etc/下面

    etc/inittab
    etc/profile
    etc/fstab
    etc/init.d/
    etc/init.d/rcS


    4:编译内核模块

    首先进入内核目录下面(内核目录和根文件系统目录不是在同一个目录下面的)

    # cd  linux-3.0.1

    #make  modules  ARCH=arm  CROSS_COMPILE=arm-linux-

    说明:在这一步出现一些问题,发现怎么编译也不行,后来由下载了一个内核,编译通过

    5:安装内核模块

    #make  modules_install  ARCH=arm  INSTALL_MOD_PATH=/home/xiongyao/rootfs

    说明:将内核里面编译好的模块放在根文件系统目录下面

    6:配置busybox

    说明:关于busybox:(百度百科)

    busybox是一个集成了一百多个最长用linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如lscatecho等等,还包含了一些更大、更复杂的工具,例如grepfindmount 以及telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Android 系统的自带的shell。

    # tar -xvzf busybox-1.13.3.tar.gz

    # cd  busybox-1.13.3

    #make menuconfig

    说明:这一步是要配置busybox的图形界面,使之生效,运行这个命令可能会出错,原因是因为你没有

    安装那个图像界面的依赖库,在终端里面输入apt-get install libncurses5-dev  就ok了~

    Busybox Settings-----> build Options----->

    选中Build BusyBox as a static binary(no shared libs)

     Busybox Settings-----> InstallationOptions ------------>     

    选中 “don't use /usr”    选中此项可以避免busybox被安装到宿主系统的/usr目录下,破坏宿主系统

    Busybox Installation Prefix(/home/fs/myrootfs)   这里要输入busybox安装的绝对路径

    7:编译安装busybox

    #make  ARCH=arm  CROSS_COMPILE=arm-linux-

    #make  install

    到现在为止,根文件系统就完全做好了,你可以把这个根文件系统制作成ramdisk系统

    8:、将根文件系统制作 成ramdisk

    #genext2fs -b 8192 -d /home/fs/myrootfs/  ramdisk

    说明:这一步出现问题,后来发现是这个分配的空间太小,于是将8192改为120400

    #genext2fs   -b   /home/xiongyao/rootfs/  ramdisk  

    #gzip  -9  -f  ramdisk

    这样就可以将ramdisk.gz下载到开发板上面去了


    在制作的过程中可能会遇到各种各样的问题,遇到问题没事,我一般直接上百度,里面有各种解决方案,只要用心去理解,相信肯定能制作成功!









    展开全文
  • Linux根文件系统的制作什么是文件系统计算机的文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易,文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念,...
  • Linux根文件系统(rootfs原理详解)

    千次阅读 2020-09-23 16:22:31
    linux中有一个让很多初学者都不是特别清楚的概念,叫做“根文件系统”。我接触linux前前后后也好几年了,但是对这个问题,至今也不是特别的清楚,至少没法给出一个很全面很到位的解释。于是,今天我们就来理一理这个...
  • 嵌入式Linux根文件系统制作和挂载

    万次阅读 多人点赞 2016-05-02 20:33:53
    嵌入式Linux系统由三部分组成: uboot、kernel、根文件系统, 还是这张老图 这里的根文件系统可以说是包含两个部分: 一个是根,一个是文件系统 那么什么是根呢?哈哈 其实根表示的就是第一个的意思 下面贴...
  • 使用busybox制作Linux根文件系统

    千次阅读 2011-08-08 12:45:23
    构建最简单的嵌入式Linux根文件系统,下面我们一步步教大家做起。。 硬件环境: S3C2440 软件环境:  Busybox-1.16.1  cross-4.3.2 STEP 1:构建目录结构  创建根文件系统目录
  • Linux根文件系统结构再认识

    万次阅读 热门讨论 2010-03-17 23:16:00
    Linux根文件系统结构再认识刘建文(http://blog.csdn.net/keminlau ) INTRO尽管Linux的根文件系统在形式表现上是一体的(所有数据目录均为根目录下的子目录),但实际它们是多个不同的【逻辑主体】(为了实现不同的...
  • 嵌入式Linux系统由linux内核与根文件系统两部分构成,两者缺一不可(无根文件系统的内核无法启动) 使用busybox构建嵌入式根文件系统目录结构,配置内核,并且使用Initramfs制作成根文件系统根文件系统与内核都...
  • 制作嵌入式Linux根文件系统

    千次阅读 2018-09-29 17:17:43
    解压源码并进入目录3. 配置BusyBox3-1. 选择编译静态库3-2. 选择交叉编译工具链3-3. 选择安装目录3-4. 编译安装 1. 获取BusyBox源码   Busybox的官方源码下载路径为:https://busybox.net/downloads/。   ...
  • 嵌入式Linux根文件系统和挂载

    千次阅读 2017-12-21 17:12:47
    嵌入式Linux系统由三部分组成: uboot、kernel、根文件系统, 还是这张老图 这里的根文件系统可以说是包含两个部分: 一个是根,一个是文件系统 那么什么是根呢?哈哈 其实根表示的就是第一个的意思 ...
  • Linux根文件系统裁剪 论文阅读笔记

    千次阅读 2016-05-06 09:12:47
    Linux嵌入式系统根文件系统的选择与制作 2006 3 Linux嵌入式系统根文件系统的选择与制作 2006 3 基于ARM的嵌入式Linux操作系统移植的研究 2006 5 基于ARM的嵌入式文件系统研究与设计 2010 6 基于嵌入式...
  • linux 根文件系统的制作

    千次阅读 2011-09-24 23:43:54
    Linux 内核在系统启动期间的最后操作之一就是安装根文件系统根文件系统一直都是所有Unix 系统不可或缺的组件。根文件系统目前的结构有点独特,而且包含了一些多余之处,这是因为它与日俱进的成长深受 Unix 发展的...
  • Linux根文件系统制作

    千次阅读 2016-05-08 15:28:54
    1 开发环境 宿主机:Ubuntu14.04(32bit) ...(1)创建目录rootfs,这个目录就是要移植到Mini2440开发板的目录: mkdir rootfs (2)进入rootfs并创建目录bin、dev、etc、usr、lib、sbin...
  • 嵌入式Linux根文件系统:终端用户登录验证实现 内核:linux2.6.21 文件系统:busybox1.19.2、yaffs2 开发板:loongson-1b开发板 一、 配置Busybox  Login/Password Management Utilities --->  [*] Use ...
  • linux根文件系统与内核合二为一

    千次阅读 2014-01-08 14:54:35
    内核文件和根文件系统在Flash中一起压缩放置可节省大量的Flash存储空间,也便于固件的存档和升级,把根文件系统放到内核中一起压缩如以下步骤: 1、配置内核 #make menuconfig 在以下选择项中填入已经做好的根...
  • linux根文件系统的类别和区别

    千次阅读 2014-01-16 10:29:13
    根文件系统一直以来都是所有类Unix操作系统的一个重要组成部分,也可以认为是嵌入式Linux系统区别于其他一些传统嵌入式操作系统的重要特征,它给 Linux带来了许多强大和灵活的功能,同时也带来了一些复杂性。...
  • 昨晚对busybox这个工具有了初步的了解,今天继续深入研究,终于成功的制作出了一套完整可用的最简linux rootfs根文件系统。现记录详细步骤以备日后查阅。一、准备工作1、首先交代系统版本和开发环境 操作系统:...
  • 大家好,今天51开源给大家介绍一个在配置文件,那就是/etc/resolv.conf。很多网友对此文件的用处不太了解。其实并不复杂,它是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序...
  • Arm-Linux根文件系统网络配置小结

    千次阅读 多人点赞 2013-04-16 09:42:51
    原创作品,转载时请务必以超链接形式标明文章原始出处:... 本文分三点来记录嵌入式Linux根文件的一些网络配置技巧: 1、对开发板配置静态IP:  将根文件系统/etc/network/interface文件中 auto eth0 iface eth0 ine
  • linux根文件系统与initrd

    千次阅读 2009-11-09 11:59:00
    1 根文件系统简单来说,(根文件系统)就是系统第一个mount的文件系统 Filesystem Handling Like every traditional Unix system, Linux makes use of a system s root filesystem : it is the ...
  • 一步一步学ZedBoard & Zynq(七):制作ZedBoard上linux根文件系统(ramdisk) 网址:http://xilinx.eetrend.com/blog/3935 Digilent的OOB设计给出了一个ZedBoard上完整的运行的linux系统所需要的...
  • linux根文件系统与initrd

    千次阅读 2008-09-20 11:13:00
    1 根文件系统简单来说,(根文件系统)就是系统第一个mount的文件系统 Filesystem Handling Like every traditional Unix system, Linux makes use of a system s root filesystem : it is the ...
  • linux根文件系统 /etc/shadow文件详解

    千次阅读 2013-08-18 14:39:07
    Linux /etc/passwd文件不同,Linux /etc/shadow文件是只有系统管理员才有权利进行查看和修改的文件系统管理员应该弄明白Linux /etc/shadow文件中每个字符段的相应的意义,清楚管理时的具体意义。 Linux /etc/...
  • linux根文件系统/etc/group文件详解

    千次阅读 2013-08-18 14:00:52
    Linux /etc/group文件与/etc/passwd和/etc/shadow文件都是有关于系统管理员对用户和用户组管理时相关的文件Linux /etc/group文件相对另外两个文件内容相对较少,这里对这一文件进行以下分析。 用户组的所有信息都...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 307,631
精华内容 123,052
关键字:

linux根文件系统

linux 订阅