精华内容
下载资源
问答
  • linux创建只读文件系统。用root也无法创建,无法删除文件.zip
  • 只读文件系统不能写的文件不能保存(掉电丢失),此代码是通过linux应用层直接掉用mtd子系统提供API对flash的分区进行读写、擦除,实现文件的保存。
  • linux 64位只读文件系统 内核 2.6.32, 其它内核可能需要相应调整 扩展:从32位到64位 提高文件读取效率。 优化方式: 文件节点读入内存,采用数组管理,实现对分搜索,hash 搜索 性能不是很完美,仅供参考
  • 快速的高压缩率只读文件系统 目录 概述 DwarFS是一个只读文件系统,其重点是实现非常高的压缩率,尤其是对于非常冗余的数据。 这听起来可能并不令人兴奋,因为如果有多余的话,它应该可以很好地压缩。 但是,我...
  • 首先备份重要数据 fsck.ext4 -p /dev/sdb5 reboot 像pro的机器,就用 fsck.ext4 -p /dev/mmblk0p7

    首先备份重要数据

    fsck.ext4 -p /dev/sdb5
    reboot
    

    像pro的机器,就用

    fsck.ext4 -p /dev/mmblk0p7
    
    展开全文
  • Linux只读文件系统

    千次阅读 2018-03-15 10:54:15
     简介文件系统对于嵌入式系统,正如记忆对于大脑,嵌入式系统失去了文件系统,这往往是严重的问题,轻则导致应用无法启动,数据丢失,严重的情况可能是整个系统启动失败。Windows 电脑的蓝屏、手机变砖,这其中很...

    By Toradex 胡珊逢

    1.     简介

    文件系统对于嵌入式系统,正如记忆对于大脑,嵌入式系统失去了文件系统,这往往是严重的问题,轻则导致应用无法启动,数据丢失,严重的情况可能是整个系统启动失败。Windows 电脑的蓝屏、手机变砖,这其中很大比例是由于重要系统文件丢失、损坏所致。如何保护嵌入式文件系统的安全,这是系统开发人员打造一款稳定、可靠产品时应该考虑的事情。


    损坏文件系统,除了外部因素如高压、高温、强磁场干扰存储器外,写文件系统那时的突然掉电往往会造成文件系统结构本身的损坏,例如分区信息。在 Linux 嵌入式系统常见的挂载 VFS 失败就是由于rootfs 受损所致,而这之前的 U-Boot 和 Linux kernel 往往任可以正常工作。文件针对此类情况,将介绍如何在 iMX6 平台上,如何使用只读文件系统,并将用户应用和数据保存在独立的分区,以及利用 Toradex Easy Installer 完成分区和系统安装操作。


    2.     生成只读文件系统

    Yocto/OpenEmbedded 构建框架的一个特点是,系统软件会根据所构建的目标镜像的要求自动调整编译软件的功能。例如在 IMAGE_FEATURES 中添加 read-only-rootfs,那么 BSP 中包含的软件将不会往 Flash上写入文件,包括系统日志。


    在 local.conf 配置

    ------------------------------------

    EXTRA_IMAGE_FEATURES = "debug-tweakspackage-management read-only-rootfs"

    DISTRO_EXTRA_RDEPENDS_remove = " angstrom-libc-fixup-hack"

    ------------------------------------


    3.     设置分区挂载


    修改用户分区挂载目录

    ------------------------------------

    layers/meta-toradex-demos/recipes-core/base-files/base-files/fstab


    /dev/root           /                   auto      ro,noatime              1  1

    proc                /proc               proc      defaults             0  0

    devpts              /dev/pts            devpts     mode=0620,gid=5       0  0

    usbdevfs            /proc/bus/usb        usbdevfs   noauto               0  0

    tmpfs               /run                tmpfs      mode=0755,nodev,nosuid,strictatime0  0

    tmpfs               /var/volatile        tmpfs      defaults             0  0


    # uncomment this if your device has aSD/MMC/Transflash slot

    #/dev/mmcblk0p1      /media/card         auto      defaults,sync,noauto  0 0

    /dev/mmcblk0p3       /mnt         ext4      defaults,sync,noauto  0 0

    ------------------------------------


    将系统根目录设置为只读状态,并将独立的用户分区挂载到 /mnt 目录,该目录任具有读写权限。用户应用可以在该分区下保存用户配置文件、应用日志,甚至升级用户应用本身。


    4.     设置应用自启动脚本

    由于文件系统需要配置为只读属性,我们需要在 Yocto/OpenEmbedded 构建时直接包含应用开机启动脚本。目前 Toradex 的 Linux BSP 已经采用 systemd 启动管理,用户需要添加对应的 systemd service 文件。为了方便演示,我们直接在 layers/meta-toradex-bsp-common/recipes-core/ 目录下创建用户自己的recipe 文件,如 user-demo,当然你也可以在 Yocto/OpenEmbedded  根目录中添加自己的  layer,将所需的 recipe 都包含进来,具体方法请参考这里

    ------------------------------------

    tdx_cn_ben@LinuxDevSH1:~/Toradex/OE/v2.7/layers/meta-toradex-bsp-common/recipes-core/user-demo$tree -L 2

    .

    ├── files

    │   └── user-demo.service

    └── user-demo.bb

    ------------------------------------


    user-demo.bb

    ------------------------------------

    SUMMARY = "Add user demo"

    DESCRIPTION = "create folder withinhome and install auto-run service script"

    LICENSE = "CLOSED"

    PR = "r3"


    SRC_URI =  " \

        file://user-demo.service \

    "


    do_install () {

        install-m 0644 ${WORKDIR}/user-demo.service ${D}${systemd_unitdir}/system


    }


    NATIVE_SYSTEMD_SUPPORT = "1"

    SYSTEMD_PACKAGES = "${PN}"

    SYSTEMD_SERVICE_${PN} = "user-demo.service"


    inherit allarch systemd

    ------------------------------------


    user-demo.service

    ------------------------------------

    [Unit]

    Description=launch user's demo on dedicatedpartition

    ConditionFileIsExecutable=/mnt/helloworld

    StartLimitIntervalSec=200

    StartLimitBurst=5

    After=multi-user.target


    [Service]

    Type=simple

    ExecStart=/mnt/helloworld

    Restart=on-failure

    RestartSec=10


    [Install]

    WantedBy=multi-user.target

    ------------------------------------


    启动脚本中使用 ConditionFileIsExecutable来判断用户分区是否成功挂载并存在可执行文件,等待分区文件准备完成后才启动,同时设置Restart ,当启动失败后会再次尝试。


    最后执行命令,生成用于 ToradexEasy Installer 的安装文件

    ------------------------------------

    bitbake console-tdx-image

    ------------------------------------


    将下面文件复制到 SD 或者 U盘中

    ------------------------------------

    ├── Colibri-iMX6_Console-Image.bootfs.tar.xz

    ├──Colibri-iMX6_Console-Image.rootfs.tar.xz

    ├── image.json

    ├── prepare.sh

    ├── slides_vga

    ├── SPL

    ├── toradexlinux.png

    ├── u-boot.imx

    ├── userapp.tar.xz

    └── wrapup.sh

    ------------------------------------



    5.     修改 image.json 配置文件

    Toradex Easy Installer 中的 image.json  文件可用于配置 iMX 6 模块上 Flash 的分区情况,并将文件写入对应的分区中。我们需要在 Flash 创建分区,存放用户文件  userapp.tar.xz,并去掉 rootfs 分区  want_maximised属性。

    ------------------------------------

    {

                       "want_maximised": false,

                       "content": {

                           "mkfs_options": "-E nodiscard",

                           "filesystem_type": "ext4",

                           "uncompressed_size": 140.03515625,

                           "filename":"Colibri-iMX6_Console-Image.rootfs.tar.xz",

                           "label": "RFS"

                       },

                       "partition_size_nominal": 512

                   },

                   {

                       "want_maximised": true,

                       "content": {

                           "mkfs_options": "-E nodiscard",

                           "filesystem_type": "ext4",

                           "uncompressed_size": 7.01,

                           "filename": "userapp.tar.xz",

                           "label": "UserData"

                       },

                       "partition_size_nominal": 512

          }

    ------------------------------------


    userapp.tar.xz 压缩包中包含了用户文件,如 helloworld和 taq.mp4,直接将其压缩成 xz 格式即可。


    6.     用户应用

    由于用户应用存放在独立的分区上,因此并不需要将其集成到  Yocto/OpenEmbedded,借助 Toradex Easy Installer 可以直接将程序、数据等写入分区。以下面应用为例,应用将打印“Hello world!”,并在用户分区上写如数据文件。该应用由上面的 user-demo.service 脚本在开机时启动。

    ------------------------------------

    int main(int argc,char *argv[]){

     int file_hd;

     unsigned chardata[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};


     file_hd = open ("/mnt/log-file",O_CREAT |O_WRONLY | O_TRUNC);

     if(file_hd==-1)

     {

          printf("filecreate failed");

          return -1;

     }

     write (file_hd,(unsigned char *)data, 16);

     close(file_hd);


     printf("Hello world!\n");

     return 0;

    }

    ------------------------------------


    7.     测试文件系统

    查看挂载情况

    ------------------------------------

    root@colibri-imx6:/etc/udev/rules.d# mount -l

    /dev/mmcblk0p2 on / type ext4 (ro,noatime,data=ordered) [RFS]

    …… 

    /dev/mmcblk0p3 on /media/mmcblk0p3 typeext4 (rw,relatime,data=ordered)[UserData]

    ------------------------------------


    在只读文件系统上无法创建目录

    ------------------------------------

    root@colibri-imx6:~# pwd

    /home/root

    root@colibri-imx6:~# mkdirtestfolder

    mkdir: can't create directory 'testfolder':Read-only file system

    ------------------------------------


    UserData 分区下的用户文件

    ------------------------------------

    root@colibri-imx6:/media/mmcblk0p3# ls

    helloworld      lost+found       taq.mp4

    ------------------------------------


    应用启动情况

    ------------------------------------

    root@colibri-imx6:~# journalctl-u user-demo.service

    -- Logs begin at Wed 2018-03-07 04:48:18UTC, end at Mon 2018-03-12 08:30:56 UTC. --

    Mar 12 08:30:51 colibri-imx6 systemd[1]:Started launch user's demo on dedicated partition.

    Mar 12 08:30:51 colibri-imx6 helloworld[522]:Hello world!


    root@colibri-imx6:~# hexdump-b /mnt/log-file 

    0000000 000 001 002 003 004 005 006 007 010011 012 013 014 015 016 017

    0000010

    ------------------------------------


    8.     总结

    通过将 rootfs 设置为只读模式,用户的写操作只缩小到一个单独分区,可以降低由于 rootfs 损坏导致系统启动失败的发生。只读模式的 rootfs 也会带来其他影响,有些文件是在系统运行时必须创建或者更新的,如密码、random seed、SSH Keys、网络配置参数等。这些文件的缺失使得系统无法保存之前的配置,每次使用时都需重新建立。以上只是一个简单的说明,如何使用只读文件系统提高系统稳定性。用户也可以将应用直接集成到 BSP 中,当用户分区上的文件损坏或者丢失时,可以将其用作备份恢复。甚至采用额外的存储介质,实现系统恢复、A/B 分区、OTA 等其他功能。


    展开全文
  • CentOS只读文件系统

    2020-04-24 10:16:52
    2、使用用 fsck – y /dev/hdc6 (/dev/hdc6指你需要修复的分区) 来修复文件系统 3、通过看分区 [root@localhost ~]# mount /dev/sda3 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type ...

    解决方法

    1、重启看是否可以修复(很多机器可以)

    2、使用用 fsck – y /dev/hdc6 (/dev/hdc6指你需要修复的分区) 来修复文件系统

    3、通过看分区

    [root@localhost ~]# mount
    
    /dev/sda3 on / type ext3 (rw)
    
    proc on /proc type proc (rw)
    
    sysfs on /sys type sysfs (rw)
    
    devpts on /dev/pts type devpts (rw,gid=5,mode=620)
    
    /dev/sda1 on /boot type ext3 (ro)
    
    tmpfs on /dev/shm type tmpfs (rw)
    
    none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
    
    sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
    

    查看ro挂载的分区,如果发现有ro,就重新mount

    方式1:umount /dev/sda1
    
                 mount /dev/sda1 /boot
    
                 如果发现有提示“device is busy”,找到是什么进程使得他busy
    
                 fuser -m /boot 将会显示使用这个模块的pid
    
                 fuser -mk /boot 将会直接kill那个pid
    
                 然后重新mount即可。
    
    方式2:直接remount,命令为 u
    
    [root@localhost ~]# mount -o rw,remount /boot
    
    或者mount -o remount,rw /boot
    
    展开全文
  • Linux文件系统简介;Linux文件系统简介;Linux文件系统简介;Linux文件系统简介;Linux Shell简介;Linux Shell简介;Linux Shell简介;Linux Shell简介;Linux Shell简介;Linux Shell简介;Linux Shell简介;Linux Shell简介;...
  • 解决只读文件系统问题

    千次阅读 2020-03-23 15:21:52
    tomcat启动报只读文件系统错误。 -bash-3.00# dmesg EXT3-fs error (device dm-0) in start_transaction: Journal has aborted 在dmesg命令下发现了上面的错误,使用fsck进行修复。 -bash-3.00# df -Th Filesystem ...

    tomcat启动报只读文件系统错误。

    -bash-3.00# dmesg
    EXT3-fs error (device dm-0) in start_transaction: Journal has aborted
    

    在dmesg命令下发现了上面的错误,使用fsck进行修复。

    -bash-3.00# df -Th
    Filesystem    Type    容量  已用 可用 已用% 挂载点
    /dev/mapper/VolGroup00-LogVol00
                  ext3    267G  225G   29G  89% /
    /dev/sda1     ext3     99M   15M   80M  16% /boot
    none         tmpfs    2.0G     0  2.0G   0% /dev/shm
    

    重启电脑出现
    在这里插入图片描述
    执行如下命令

    fsck /dev/mapper/VolGroup00-LogVol00
    

    在这里插入图片描述
    后面一直输入y
    重启电脑reboot即可。

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程

    展开全文
  • 之前把U盘借出论文,还回来之后我再想用,发现U盘里的文件只能读取或者复制出去,但是不能修改删除,也不能添加新文件进来,显示该U盘是只读文件系统。 用了以下方法来解决这个问题: 在终端执行以下命令,作用是...
  • Linux无法删除只读文件系统

    千次阅读 2020-02-24 10:23:17
    原因是磁盘的文件太多了; 命令如下 1.查看文件存储的挂载点 df -h //查看挂载的盘的情况 2.重新挂载 命令:mount -o remount,rw / 3.测试结果
  • 按照修电脑三大秘籍重启,重装,换电脑第一式重启了一下系统,结果直接给怼到initramfs里面了 手动运行fsck校验了一遍磁盘,蹦了一堆fix以后系统是起来了 重新启动supervisord也正常了,然鹅!过了没俩小时,服务又tm挂了...
  • 三行命令教你解决linux系统下U盘只读文件系统问题 1.问题: 使用linux不管是centos还是ubuntu的小伙伴都难免遇到插入U盘的时候,不能对U盘进行操作。提示权限不足或者是只读文件系统。 现在教你三行命令教你...
  • 结果不允许修改,提示是只读文件,尝试修改权限: chmod 777 idea64.vmoptions 失败,尝试修改所有的idea bin目录下所有的文件权限: 即使我是先切换到了root用户,也无法修改。(记录一下) 最后我选择卸载idea,...
  • 由于学习需要,安装了双系统,两个多月没用Linux系统,想在Linux下写一个作业,在NTFS(Window所用的文件系统)类型的分区下创建工程文件,却提醒文件为只读文件系统。 sudo touch aaa.txt 创建文件 查看文件权限,...
  • 问题:从移动硬盘向linux磁盘复制文件时,报错“只读文件系统”,开始以为是权限问题,尝试通过chmod添加权限,同样报错“只读文件系统”。 后来发现可能是磁盘挂载的问题,需要重新挂载,解决方案如下: 1. ...
  • U盘只读文件系统修复详解

    千次阅读 2018-03-26 18:03:17
    例如不能新建文件和文件夹,不能向U盘中复制文件等,系统提示:只读文件系统。二、分析1、原因大概是U盘的文件系统信息出错(保存在一个硬盘或U盘最前面的头,其中有所有文件的信息)。2、格式化U盘自然可以解决问题...
  • HUBFS是GitHub和Git的只读文件系统。 Git存储库及其内容表示为常规目录和文件,并且可以由任何应用程序访问,而该应用程序不知道它确实在访问远程Git存储库。 HUBFS·GitHub的文件系统HUBFS是GitHub和Git的只读文件...
  • 第二步 mount ro为只读,rw为可读可写 可以用mount命令看看ro的分区,如果发现有ro,就重新mount,如: umount /dev/sda1 mount /dev/sda1 /boot 如果发现有提示“device is busy”。 fuser -m /boot 将会显示使用...
  • 一个避免上述问题的方法是把系统设置为只读系统,这样就不会在突然断电的情况下导致系统出现错误。 参考链接:Protect your Raspberry PI SD card, use Read-Only filesystem 参考链接:How to make your Raspberry...
  • 然而U盘内文件都是只读文件,修改权限也不能改。 解决方法: 1、df -Th查看U盘的分区和挂载点 2、卸载U盘 $ umount /run/media/lianzk/### 3、修复U盘的文件系统 $ sudo dosfsck -v -a /dev/sdb1 这个过程可能...
  • 显示最后一条是我的U盘信息,U盘的文件系统是/dev/sdb4,挂载点是/media/charleswu/Ubuntu 16.0 使用命令卸载U盘(不要拔掉U盘) sudo umount /media/charleswu/Ubuntu 16.0 修复文件系统故障 sudo dosfsc...
  • 只读文件系统下修改文件方法

    千次阅读 2018-01-08 12:57:36
    相信很多人都遇到这样的情况,进行嵌入式开发,遇到只读文件系统时,当修改一个脚本或网页,要把整个工程编译一次,大家都觉得很麻烦,效率低。  那么有没有只读文件系统下修改文件方法呢?答案是肯定的。 mount ...
  • DwarFS-快速高压缩率只读文件系统DwarFS快速高压缩率只读文件系统概述DwarFS是一种只读文件系统,其重点是实现非常高的压缩率,尤其是对于非常冗余的数据。 这听起来可能并不令人兴奋,因为如果有多余的话,它应该...
  • 三行命令教你解决linux系统下U盘只读文件系统问题

    万次阅读 多人点赞 2018-04-12 15:26:47
    Ubuntu插入U盘为只读文件系统,无法新建文件,文件夹或者向U盘中复制文件 1.问题: 使用linux不管是centos还是ubuntu的小伙伴都难免遇到插入U盘的时候,不能对U盘进行操作。提示权限不足或者是只读文件系统。 现在...
  • Linux下只读文件系统的问题如何解决

    千次阅读 2019-05-02 23:35:03
    不知道为什么,突然Linux挂载驱动中很多文件的右下角加了一把锁,变成了只读模式 百度和谷歌了很多方法,什么fsck ext4 ,mount命令的,但都没有解决问题。 问题解决如下: 通过umount命令卸载问题盘驱,再重新...
  • Openwrt开发之SD卡只读文件系统

    千次阅读 2019-03-14 18:11:40
    Opnewrt作为基于Linux内核的嵌入式操作系统,支持市面上很多的路由器产品以及诸如LinkIt Smart 7688这样的物联网核心开发板,为我们快速开发实现不同物理层设备(Wifi,RJ45,Uart,485)之间通信的“网关设备“提供了...
  • 例如不能新建文件和文件夹,不能向U盘中复制文件,可以复制出来,在其他系统就没事,打开属性显示提示:只读文件系统。 原因应该是U盘文件信息出错,要修复,可能格式化能解决吧,我没试过。 查看了一些博客,最后...
  • 最近装了win10和ubuntu20.4双系统,但是在ubuntu下访问D盘时,无法编辑、复制和创建任何文件,提示“只读文件系统”。 解决方法 问题的根本原因是win10开启了快速启动,在win10下关机后电脑并没有完全关机,打开...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 303,653
精华内容 121,461
关键字:

只读文件系统