精华内容
下载资源
问答
  • linux只读文件系统

    2020-02-08 10:42:50
    一般方法如下 ...1. mount命令查看变成只读文件的位置,比如/dev/sda3 2. umount /dev/sda3 #必须要先解除挂载! 3. fsck -y /dev/sda3 需要注意的是用fsck自动修复,可能会自动删除一些有问题的文件 ...

    一般方法如下

    首先试下重新挂载行不行

    mount -o remount,rw /dev/sda3
    

    不行的话用fsck,具体方法如下

    1. mount命令查看变成只读文件的位置,比如/dev/sda3
    2. umount /dev/sda3  #必须要先解除挂载!
    3. fsck -y /dev/sda3
    

    需要注意的是用fsck自动修复,可能会自动删除一些有问题的文件

    长期挂载

    查看硬盘信息

    $ sudo blkid
    /dev/sda3: LABEL="CODE" UUID="73A53DCD34A091A8" TYPE="ntfs" PTTYPE="dos" PARTUUID="d3d96a52-2dd5-48d9-93e0-a4724a0d08ba"
    /dev/sda4: LABEL="M-hM-=M-,M-eM--M-^X" UUID="528A649353B89716" TYPE="ntfs" PTTYPE="dos" PARTUUID="b149fec1-b44a-4c3d-8bb3-c52a51957b6e"
    

    编辑 fstab 文件

    $ sudo vim /etc/fstab
    

    加入一行

    /dev/sda3 /media/wukuy/CODE ntfs defaults 0 2
    
    展开全文
  • 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 等其他功能。


    展开全文
  • 问题:从移动硬盘向linux磁盘复制文件时,报错“只读文件系统”,开始以为是权限问题,尝试通过chmod添加权限,同样报错“只读文件系统”。 后来发现可能是磁盘挂载的问题,需要重新挂载,解决方案如下: 1. ...

    问题:向该目录复制文件以及在该目录新建文件时,均报错“只读文件系统”,开始以为是权限问题,尝试通过chmod添加权限,同样报错“只读文件系统”。

                                                              

     

    后来发现可能是磁盘挂载的问题,需要重新挂载,解决方案如下:

    1. 磁盘卸载:

    umount /dev/sda2

    报错“target is busy”

                                

    2.  杀死使用该目录的进程:

    fuser  -mv -k /dev/sda2

    再次卸载,卸载成功后重新挂载:

    mount /dev/sda2 /data

                                  

    3. 报错解决:

    报错1:“The disk contains an unclean file system (0, 0). Metadata kept in Windows cache, refused to mount. Falling back to read-only mount because the NTFS partition is in an unsafe state. Please resume and shutdown Windows fully (no hibernation or fast restarting.)”。说明是NTFS分区格式错误

    解决方法:ntfsfix修复,需要安装工具:

    sudo apt-get install ntfs-3g

    安装完成后进行ntfsfix修复:

    sudo ntfsfix /dev/sda2

    提示修复成功。

                               

    报错2:“没有那个文件或目录”。说明/data目录不存在,需要创建。

    解决方法:media根目录下创建新目录:

    mkdir /media/jngk/data

    然后重新挂载,即可挂载成功。

    mount /dev/sda2 /media/jngk/data

                               

    现在该目录就不是只读文件系统了,在该目录下右键,新建文件夹选项也不再是灰色不可选状态了。

                              

    展开全文
  • 1. 无法启动服务,提示只读系统 2. 输入 mount 命令,发现磁盘处于只读状态 三、原因: 系统重启导致磁盘挂载错误 四、 解决办法: 1. 重置 /etc/fstab 文件:复制 /etc/fstab_back 文件覆盖 /etc/...

    一. 系统:

    Centos 7.5

     

    二、表现:

    1. 无法启动服务,提示只读系统

    2. 输入 mount 命令,发现磁盘处于只读状态

     

    三、原因:

    系统重启导致磁盘挂载错误

     

    四、 解决办法:

    1. 重置 /etc/fstab 文件:复制 /etc/fstab_back 文件覆盖 /etc/fstab 文件

    2. 重新挂载系统:mount -o remount, rw /

     

     

     

    展开全文
  • mount -o rw,remount /dev/mapper/vg_nips-lv_root / 转载于:https://www.cnblogs.com/lupeng2010/p/8047348.html
  • Linux文件系统简介;Linux文件系统简介;Linux文件系统简介;Linux文件系统简介;Linux Shell简介;Linux Shell简介;Linux Shell简介;Linux Shell简介;Linux Shell简介;Linux Shell简介;Linux Shell简介;Linux Shell简介;...
  • 很奇怪的问题,由以下方法解决:1、mount:用于查看哪个模块输入只读,一般显示为:/dev/hda1 on / type ext3 (rw)none on /proc type proc (rw)usbdevfs on /proc/bus/usb type usbdevfs (rw)none on /dev/pts type ...
  • linux创建只读文件系统。用root也无法创建,无法删除文件.zip
  • 三行命令教你解决linux系统下U盘只读文件系统问题 1.问题: 使用linux不管是centos还是ubuntu的小伙伴都难免遇到插入U盘的时候,不能对U盘进行操作。提示权限不足或者是只读文件系统。 现在教你三行命令教你...
  • 只读文件系统不能写的文件不能保存(掉电丢失),此代码是通过linux应用层直接掉用mtd子系统提供API对flash的分区进行读写、擦除,实现文件的保存。
  • 2、使用用fsck – y /dev/hdc6(/dev/hdc6指你需要修复的分区)来修复文件系统。3、若,在进行修复的时候有的分区会报错,重新启动系统问题依旧。查看下分区结构[root@localhost ~]# mount/dev/sda3 on / type ext3 ...
  • linux 64位只读文件系统 内核 2.6.32, 其它内核可能需要相应调整 扩展:从32位到64位 提高文件读取效率。 优化方式: 文件节点读入内存,采用数组管理,实现对分搜索,hash 搜索 性能不是很完美,仅供参考
  • 第二步 mount ro为只读,rw为可读可写 可以用mount命令看看ro的分区,如果发现有ro,就重新mount,如: umount /dev/sda1 mount /dev/sda1 /boot 如果发现有提示“device is busy”。 fuser -m /boot 将会显示使用...
  • linux文件系统的权限王国(二) Linux 文件系统的权限 王国 二作者池建强 对世界的认知很多 人通过各种 方式和模式进 行探求 比如科学宗教神学当然还包括 一些实践 入世旅 行禅修等等这些都是认知世界的 方式作为 一个...
  • Linux无法删除只读文件系统

    万次阅读 2019-07-15 14:10:17
    今天在启动机器后,发现使用rm -rf删除命令无法删除文件,现象如下解决此问题只需用读写的方式重新挂载磁盘就好 命令如下: mount -o remount,rw / 下面说一下为什么mount盘是 /,需要查看我无法删除文件的...
  • Linux只读文件系统的问题如何解决

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

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

    2020-09-12 10:29:34
    问题现象:在某个路径下创建文件或者写入文件内容,系统回显类似于read-only file system,文件无法编辑 cat /proc/mounts | grep ro, 可以查看哪些磁盘出现只读情况 原因:查了好多资料都不知道原因 解决办法:...
  • Linux 下 SD 卡 只读文件系统

    千次阅读 2015-11-18 14:52:27
    SD卡有时会显示只读文件系统,无法拷贝,删除,查看文件: ①sudo fdisk -l 查看文件分区,例如该SD卡为sde1。 ②umount /dev/sde1。 ③sudo dosfsck -v -a /dev/sde1,修复该文件系统。
  • 为什么需要只读压缩文件系统?在存储容量有限的嵌入式设备上,一般对于系统分区在使用过程中...Linux早期的只读文件系统有CramFS和SquashFS,以及参考了上述两个文件系统设计的用户态只读压缩文件系统CromFS。另外...
  • U盘插入linux下后变成了只读文件系统,不能再往u盘里拷贝文件。 总结:产生这个问题的原因可能是u盘文件系统损坏,操作系统为了防止它损坏系统,将它设置成了只读 修复方法:  在windows下运行CMD,并进行磁盘...
  • 背景:某天当我打开自己的设备,突然发现ntfs分区无法写入任何文件,提示为只读文件系统,具体现象如下: 修复过程:排除权限问题,使用fsck进行修复无果后,使用e2fsck进行修复 显示超级快损坏,这样就好做了...
  • 查阅资料发现造成这种情况的因素很多,代码中实在找不到是什么原因导致的,故只能检测是否变成了只读文件系统,使用如下命令修改回来。 mount -o rw,remount /media/mmcblk0p1/ 此时变正常了,可以正常读写 ...
  • linux只读文件修改无法退出

    千次阅读 2020-07-20 15:31:23
    输入i插入数据,点i命令时系统已经提示只读了 这时候想起来的进入的用户不是root,没有权限,想退出。 点ESC退出编辑模式,:q报错 :wq报错, 解决办法:(这个命令是不保存强制退出) :q! 到这里这个问题就解决...
  • linux 文件系统只读

    2019-05-20 14:52:09
    linux 文件系统只读 重启系统看是否可以自动修复。 使用fsck -y /dev/sda1 进行自动修复。(用”-y”选项来执行该命令对硬盘进行检查和修复) 添加参数:fsck -y -C -t ext3 /dev/sda1 (一般情况下修复完成后,...
  • linux只读系统

    2017-07-10 13:24:36
    linux进入系统后只能只读readonly解决方法: 方法一:重新挂载,使fstab等文件可写。命令:  mount / -o remount 修改fstab文件:  vi /etc/fstab  ...方法二:fsck -y 修复以下文件系统,然后重启

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,193
精华内容 877
关键字:

linux只读文件系统

linux 订阅