精华内容
下载资源
问答
  • 拿到一块AT91SAM9X25板子, ... 看到他的根文件系统只读的,这个特色是由squashfs 只读文件系统决定的。 还是需要配置Linux内核才能这样(有人说要配置),但我不知道配置哪,请问谁知道。谢谢指点。
  • 制作linux根文件系统

    2017-08-04 22:03:41
    制作linux根文件系统 1、cramfs只读闪存文件系统,只读,通过建立目录,拷贝需要放到文件系统的文件到这个目录,例如建立rootfs目录的文件系统镜像命令为 mkcramfs rootfs rootfs.ramfs mkcramfs下载地址...

    制作linux根文件系统

    1、cramfs只读闪存文件系统,只读,通过建立目录,拷贝需要放到文件系统的文件到这个目录,例如建立rootfs目录的文件系统镜像命令为

    mkcramfs rootfs rootfs.ramfs

    mkcramfs下载地址http://sourceforge.net/projects/cramfs/

    2、jfss2日志闪存文件系统,可读写,日志结构的文件系统,包含数据和元数据,jfss2记录了每个擦写块的擦写次数,当闪存上各个擦写块的擦写次数差距达到某个预订阀值,开始进行磨损平衡的调整,将擦写次数小的擦写块上的数据迁移到擦写次数大的擦写块上以达到磨损平衡的目的

    ,例如制作/bin目录为jffs2文件系统的命令为

    mkfs.jffs2 -d /bin -o jffs2.img

    3、jaffs,可读写,为嵌入式系统设计的闪存设备读写,比jffs2更快的启动速度和更好的闪存使用寿命保护机制,通过将其对应的驱动加入到内核中fs/yaffs/,并修改内核配置文件

    mkyaffs可以将nand flash中的分区格式化为yaffs格式,如/bin/mkyaffs /dev/mtdblock/0将第一个mtd块设备分区格式化为yaffs

    mkyaffsimage可以将某个目录生成为yaffs文件系统镜像

    yaffs2用在chunk大于1k的nand flash,512+16B类型的只能用yaffs

    在/dev/mtd/dev/mtdblock目录下创建一个新的mtd设备,然后就可以在上面创建yaffs系统,mount或umount

    4、nfs网络文件系统,经常用来作为调试使用的文件系统,通过在挂接主机上生成交叉编译版本的目标文件,直接装载执行

    5、修改bootloader的启动参数来支持不同文件系统启动,如

    root=/dev/bon/2()

    root=/dev/mtdblock/0

    root=/dev/nfs

    bootargs root=/dev/mtdblock2 rootfstype=cramfs rw console=ttySAC0,115200 init=/linuxrc mem=64m

    bootargs noinitrd init=/linuxrc  root=/dev/nfs nfsroot=192.168.8.16:/home/tetra/liangshoulong/cram ip=192.168.8.33:192.168.8.16 console=ttySAC0,115200

    几个u-boot工具

    printenv、setenv修改环境变量

    tftp 0x33000000 uImage

    bootm 0x33000000

    如果设置了bootcmd,那么自动启动内核,设置为空,则手动启动内核

    set bootcmd tftpboot 0x33000000 uImage\; bootm 0x33000000\;

    6、使用busybox裁剪bin工具包

    下载地址http://www.busybox.net

    编译时选交叉编译前缀和安装目录,在gcc-4.3.2、linux-2.6.26.8、glibc-2.9、binutils-2.19.1和busybox-1.14.2环境下编译通过

    7、文件说明

    /dev是devfs或udev的挂载点,devfs的shell启动需要/dev/console,udev需要/dev下的console和null两个节点

    /bin,/sbin,/usr/bin,/usr/sbin是安装busybox时产生

    /lib,存放动态链接库

    /etc,存放初始化脚本和其他配置

    /proc,用来挂载系统信息虚拟文件系统,例如ifconfig就是使用/proc下的信息,proc文件系统使用初始化脚本挂载

    /sys,用于挂载sysfs文件系统,配置内核时可选,使用初始化脚本挂载

    /tmp,/mnt,/swp,/var不是必须

    8、制作根文件系统root filesystem,包括使用busybox编译shell,编译库,制作脚本,制作根文件系统四部分

    建立rootfs目录,拷贝busybox默认安装下的_install到rootfs下,建立dev,etc,lib,proc,sys,tmp文件夹,进入dev目录下,建立2个静态节点

    mknod -m 660 null c 1 3

    mknod -m 660 console c 5 1

    使用udev时需要拷贝udevd,udevstart,udevadmin三个文件到/sbin下

    访问映像文件的方法,如rootfs.cramfs

    建立目录evb_rootfs,然后挂载

    mount -o loop rootfs.cramfs evg_rootfs

    进入evg_rootfs的lib,就可以进行拷贝库等操作了

    制作根文件系统的方法

    kernel command line:

    console=ttyAM1,115200 init=/linuxrc1

    表示从设备ttyAM1引导执行linuxrc1脚本

    格式如下

    #! /bin/ash

    /bin/busybox init

    制作脚本,配合busybox-1.14.2版时拷贝example下面的etc目录

    /etc/inittab是根文件系统挂载之后必须的一个文件,列角了shell和整个系统初始化、关闭所需的命令,修改/etc/inittab加入一行

    ::askfirst:/bin/bash

    表示启动这个叫bash的shell,shell名字取决于busybox编译时选择的shell,如hush,lash,msh之类

    完整脚本参考busybox的example目录下文件,busybox可以支持没有inittab文件的环境,通过固定执行格式

    还需要增加

    /etc/fstab和/etc/init.d/rcS两个文件

    文件/etc/fstab是用来执行mount -a命令的,是文件系统的挂载表,内容如下

    # <file system> <mount pt>     <type>   <options>                <dump> <pass>

    /dev/root       /              ext2     rw,noauto                0      1

    proc            /proc          proc     defaults          0      0

    devpts          /dev/pts       devpts   defaults,gid=5,mode=620  0      0

    tmpfs           /tmp           tmpfs    defaults                 0      0

    sysfs           /sys           sysfs    defaults                 0      0

    文件/etc/init.d/rcS是用来执行/etc/init.d下所有初始化脚本的一个脚本,对于嵌入式系统,可直接写在/etc/init.d/rcS里面,内容如下

    #! /bin/ash

    /bin/mount -a

    # Start udev

    /bin/mount -t tmpfs tmpfs /dev

    /sbin/udevd --daemon

    /sbin/udevstart

    # Configure net interface

    /sbin/ifconfig lo 127.0.0.1 up

    /sbin/ifconfig eth0 192.168.8.33 netmask 255.255.255.0 hw ether 33:33:33:33:33:33 up

    /sbin/route add default gw 192.168.8.1 eth0

    /sbin/inetd

    /usr/sbin/makelinks

    这里面使用的是udev,还需要有udev的配置脚本,可以直接拷贝使用udev目录下的etc/udev/udev.conf和etc/udev/rules.d里面的文件,到对应根目录下的/etc/udev目录

    最后一步是制作文件映像,使用mkcramfs或mkyaffs之类工具

    展开全文
  • 学习linux系统移植的时候,自己做了个根文件系统,然后把他移植到2410的板子上,结果移植成功,在板子上看到了我移植的文件系统,然后兴高采烈地做tslib的移植,最后悲剧了,发现在触摸屏校验的时候出现一个问题,...

            学习linux系统移植的时候,自己做了个根文件系统,然后把他移植到2410的板子上,结果移植成功,在板子上看到了我移植的文件系统,然后兴高采烈地做tslib的移植,最后悲剧了,发现在触摸屏校验的时候出现一个问题,导致每次触摸屏都校验失败:

            failed to read calibrate ,no find the file /etc/pointercal。

    然后分析,pointercal是在校验完成后记录校验坐标的文件啊,会被自动创建的啊,既然通过校验了怎么没有这个文件呢?于是,到根目录下mkdir aaaa,结果令我无语,错误既然是:

            说我的文件系统是read only 。

    然后就到处找文件系统的错误。把文件系统和内核都换了同学做好的,结果还是一样。----这样可以下定不是文件系统和内核的问题。

             到网上看了一圈,很多同志都有同样的错误,但是都没有说怎么解决。于是开始了漫长的探索之路(主要是自己是菜鸟)。最后怀疑到linux系统问题,把nfs服务重新搭建了一次,发现还是有这个问题:这样就可以确定是nfs服务的问题了,于是看服务的环境变量有没有修改正确。核对了一番后来到了问题的根源:搭建nfs服务时,需要配置挂载的权限和目录:/home/nfsdir *(rw,sync,no_root_squash)只读的,原来在linux根目录下/etc/export里面登记的时候,把*号后面加了一个空格。这个是个shell脚本是不识别空格的。改了后权限就被改过来了,重启nfs服务后就解决了问题。

         PS:其实设置权限的就这一个地方出口脚本处,大家在更文件系统读写权限上的问题多半就是在用nfs挂载的时候权限设置不对。希望对大家有帮助!

        

    展开全文
  • 问题原因:系统没有正常关机,导致虚拟磁盘出现文件系统错误。 解决方法:使用fsck手动修复,具体操作如下: 重启系统后使用root进入单用户模式,运行 fsck.ext3 -y /dev/vda3 说明:ext3的文件系统使用fsck.ext3...

    问题原因:系统没有正常关机,导致虚拟磁盘出现文件系统错误。

    解决方法:使用fsck手动修复,具体操作如下:

    重启系统后使用root进入单用户模式,运行

    fsck.ext3 -y /dev/vda3

    说明:ext3的文件系统使用fsck.ext3,ext4文件系统使用fsck.etx4。/dev/vda3是系统/根分区。运行完毕后,reboot重启系统就恢复正常。20多台出问题的都是这样修复的,无失败案例。fsck.ext3开始进入扫描、修正文件系统,这个过程有时很快,有时比较长,中间有数次停顿的过程,只需等待即可,千万不要以为死机而重启服务器。修正完文件系统后,如果没有提示重启系统,也需要reboot来重启系统。

    扩展知识:fsck简介

    fsck不仅可以对文件系统进行扫描,还能修正文件系统的一些问题。注意的是fsck扫描文件系统时一定要在单用户模式、修复模式或把设备umount后进行。建议在单用户模式下运行。如果扫描正常运行中的系统,会造成系统文件损坏。

    文件系统扫描工具有fsck、fsck.ext2、fsck.ext3、fsck.ext4、fsck.msdos、fsck.cramfs、fsck.ext4dev、fsck.vfat。最好是根据不同的文件系统来调用不同的扫描工具,比如ext3的文件系统使用fsck.ext3,ext4文件系统使用fsck.ext4等。

    /dev/vda3是ext3的文件系统,这里介绍fsck.ext3的参数:

    fsck.ext3

    [语法]
    fsck.ext3[必要参数][选择参数][设备代号]

    [功能]
    fsck.ext3命令:针对ext3文件系统进行检测修复

    [执行权限]
    root

    [参数]

    必要参数

    -a非互交模式,自动修复
    -c检查是否存在有损坏的区块。
    -C fsck.ext3命令会把全部的执行过程,都交由其逆向叙述,便于监控程序
    -d详细显示命令执行过程
    -f强制进行检查
    -F检查文件系统之前,先清理该保存设备块区内的数据
    -l把文件中所列出的损坏区块,加入标记
    -L清除所有损坏标志,重新标记
    -n非交互模式,把欲检查的文件系统设成只读
    -P 设置fsck.ext2命令所能处理的inode大小为多少
    -r交互模式
    -R忽略目录
    -s顺序检查
    -S效果和指定“-s”参数类似
    -t 显示fsck.ext2命令的时序信息。
    -v显示详细的处理过程
    -y关闭互动模式

    选择参数

    -b指定分区的第一个磁区的起始地址/Super Block
    -B 设置该分区每个区块的大小
    -I设置欲检查的文件系统,其inode缓冲区的区块数目
    -V显示版本信息

    --------------------- 本文来自 wackycrazy 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/wackycrazy/article/details/50012385?utm_source=copy

    展开全文
  • 问题描述: 周末运行盘平台服务程序,周一来操作系统卡顿,主进程...重启系统,提示分区error,原因是磁盘出现文件系统错误。 解决方法: 使用fsck手动修复,具体操作如下: 切换到root用户,运行fsck.ext4 -...

    问题描述:

    周末运行盘平台服务程序,周一来操作系统卡顿,主进程已退出,重启进程时提示Read-only file system;新建目录和其他chmod -R等等操作都提示Read-only file system。

    问题原因:

    重启系统,提示根分区error,原因是磁盘出现文件系统错误。

    解决方法:

    使用fsck手动修复,具体操作如下:

    切换到root用户,运行fsck.ext4 -y /dev/vdb1

     

    说明:文件系统采用fsck.ext4,/dev/vdb1是系统/根分区。运行完毕后reboot重启系统就恢复正常。

     

    扩展知识:

    查看系统分区信息命令:df -T-h

     

    转载于:https://www.cnblogs.com/ranxf/p/8649736.html

    展开全文
  • 前言:本章内容仅做了解,实际开发中,从安全和资源要求为出发点,根文件系统必须是只读的;下个章节会介绍一种系统和用户数据解耦的方法。 1 简述 我们在buildroot后会得到两个根文件系统,目录如下: 一个...
  • mount -t ext4 -o romount,rw /  ...##如果上面不成功的话,按F2设置光盘启动进入救援模式(linux rescue)修复,执行"fsck.ext4 -y /dev/sda2" (假如只读的分区类型为ext4,分区为/dev/sda2) ...
  • 嵌入式Linux中都需要构建根文件系统,构建根文件系统的规则在FHS(Filesystem Hierarchy Standard)文档中,下面是根文件系统顶层目录。  目录 内容  bin 存放所有用户都可以使用的、基本的命令。  sbin 存放的...
  • 嵌入式Linux中都需要构建根文件系统,构建根文件系统的规则在FHS(Filesystem Hierarchy Standard)文档中,下面是根文件系统顶层目录。 目录 内容 bin 存放所有用户都可以使用的、基本的命令。 sbin 存放的是...
  • linux xxx/xx: 只读文件系统

    千次阅读 2017-02-23 22:46:43
    只需要以读写的方式挂载分区即可 #:mount -o remount,rw /
  • 根文件系统制作

    2012-12-27 17:00:33
    嵌入式Linux中都需要构建根文件系统,构建根文件系统的规则在FHS(Filesystem Hierarchy Standard)文档中,下面是根文件系统顶层目录。  目录 内容  bin 存放所有用户都可以使用的、基本的命令。  sbin 存放的...
  • 摘 要:根文件系统是构建一个Linux 嵌入式系统的重要组成部分,目前嵌入式系统可以选 择的根文件系统有:Romfs、Cramfs、Ramfs、Jffs2、Ext2 等,而目前广泛使用的Cramfs 根文件系统只读型文件系统,在实际应用中,...
  • 根文件系统 • RamFS:利用VFS自身结构而形成的内存文件系 统,使用系统的RAM空间 • JFFS/JFFS2:为Flash设计的日志文件系统 • Yaffs:专门为Nand Flash设计 • proc:为内核和内核模块将信息发送给进
  • 目前嵌入式系统可以选择的根文件系统有:Romfs、CramFS、Ramfs、Jffs2、Ext2等等,本系统采用 CramFS作为uCLinux嵌入式系统的只读根文件系统。本文讨论了CramFS文件系统的特点,并详细的说明了Nor Flash上建立一个...
  • 在本系列教程中所构建的网络引导服务器有一个很重要的限制,那就是所提供的操作系统镜像是只读的。一些使用场景或许要求终端用户能够修改操作系统镜像。-- Gregory Bartholomew致谢译自 |fedoramagazine.org作者 | ...
  • 一切顺利,移植UBOOT至MINI2440,裁剪内核,制作根文件系统,但在tfpt 下载内核到开发板的时候遇到了三个个错误。第一个错误是比较低级的,由于用的是虚拟机linux,所以Vmware里面的网络设置设置错了。  我用的是...
  • 在系统启动过程中,这些 Image 被直接挂载到根文件系统, 然而这时的根文件系统只读的, 用户不能在这个文件系统中进行任何写的操作。 如果把 Image 解压后直接拷贝到内存中,也可以实现写的功能,但是嵌入式系统...
  • 嵌入式linux下常见的文件系统• RomFS:只读文件系统,可以放在ROM空间,也可以在系统的RAM中,嵌入式linux中常用来作根文件系统• RamFS:利用VFS自身结构而形成的内存文件系统,使用系统的RAM空间• JFFS/JFFS2:...
  • cramfs根文件系统制作启动总结

    千次阅读 2016-11-04 18:00:02
    cramfs启动根文件系统   Cramfs:Compressed ROM File System  Cramfs是Linux的创始人 Linus Torvalds参与开发的一种只读的压缩文件系统。它也基于MTD驱动程序。  cramfs拥有以下一些特性:  采用实时解...
  • 在系统启动过程中,这些 Image 被直接挂载到根文件系统, 然而这时的根文件系统只读的, 用户不能在这个文件系统中进行任何写的操作。 如果把 Image 解压后直接拷贝到内存中,也可以实现写的功能,但是嵌入式系统...
  • 摘 要:根文件系统是构建一个Linux 嵌入式系统的重要组成部分,目前嵌入式系统可以选 择的根文件系统有:Romfs、Cramfs、Ramfs、Jffs2、Ext2 等,而目前广泛使用的Cramfs 根文件系统只读型文件系统,在实际应用中,...
  • 你可以使用 chmod 命令对 Linux/Unix/macOS/OS X/*BSD 操作系统上的所有文件来设置只读权限。这篇文章介绍如何在 Linux/Unix 的 web如何设置文件只读模式语法为:### 仅针对文件 ###chmod 0444 /var/www/html/*...
  • 只读方式挂载根文件系统,开机出现以下错误 原因: 以只读方式挂载 / 文件系统 #mount –o remount,ro / #partprobe 此时无法编辑任何文件,如果要编辑/etc/fstab,出现以下错误 创建文件会出现以下...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 177
精华内容 70
关键字:

linux根文件系统只读

linux 订阅