`

解决Read-only file system

阅读更多
昨天由于更换控制器导致设备号又乱了。。修改fstab的时候却出现不能修改的问题,显示Read-only file system,搜索了一下找了个临时解决办法搞定了

1)
应急措施:
chmod 666 /dev/null
mount -o remount,rw /
 
2) 编辑/etc/fstab 然后重启

不明白

特意查了一下/dev/null是什么

引用


/dev/zero和/dev/null

使用/dev/null
把/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和脚本都非常的有用.

引用
禁止标准输出.   
1 cat $filename >/dev/null
2 # 文件内容丢失,而不会输出到标准输出.



引用

禁止标准错误 (来自例子 12-3).    1 rm $badname 2>/dev/null
   2 #           这样错误信息[标准错误]就被丢到太平洋去了.




引用
禁止标准输出和标准错误的输出.    1 cat $filename 2>/dev/null >/dev/null
   2 # 如果"$filename"不存在,将不会有任何错误信息提示.
   3 # 如果"$filename"存在, 文件的内容不会打印到标准输出.
   4 # 因此Therefore, 上面的代码根本不会输出任何信息.
   5 #
   6 #  当只想测试命令的退出码而不想有任何输出时非常有用。
   7 #
   8 #
   9 # cat $filename &>/dev/null
  10 #     也可以, 由 Baris Cicek 指出.




Deleting contents of a file, but preserving the file itself, with all attendant permissions (from Example 2-1 and Example 2-3):    1 cat /dev/null > /var/log/messages
   2 #  : > /var/log/messages   有同样的效果, 但不会产生新的进程.(因为:是内建的)
   3
   4 cat /dev/null > /var/log/wtmp



自动清空日志文件的内容 (特别适合处理这些由商业Web站点发送的讨厌的"cookies"):


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

例子 28-1. 隐藏cookie而不再使用

   1 if [ -f ~/.netscape/cookies ]  # 如果存在则删除.
   2 then
   3   rm -f ~/.netscape/cookies
   4 fi
   5
   6 ln -s /dev/null ~/.netscape/cookies
   7 # 现在所有的cookies都会丢入黑洞而不会保存在磁盘上了.


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

使用/dev/zero
像/dev/null一样, /dev/zero也是一个伪文件, 但它实际上产生连续不断的null的流(二进制的零流,而不是ASCII型的). 写入它的输出会丢失不见, 而从/dev/zero读出一连串的null也比较困难, 虽然这也能通过od或一个十六进制编辑器来做到. /dev/zero主要的用处是用来创建一个指定长度用于初始化的空文件,就像临时交换文件.


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

例子 28-2. 用/dev/zero创建一个交换临时文件

   1 #!/bin/bash
   2 # 创建一个交换文件.
   3
   4 ROOT_UID=0         # Root 用户的 $UID 是 0.
   5 E_WRONG_USER=65    # 不是 root?
   6
   7 FILE=/swap
   8 BLOCKSIZE=1024
   9 MINBLOCKS=40
  10 SUCCESS=0
  11
  12
  13 # 这个脚本必须用root来运行.
  14 if [ "$UID" -ne "$ROOT_UID" ]
  15 then
  16   echo; echo "You must be root to run this script."; echo
  17   exit $E_WRONG_USER
  18 fi 
  19  
  20
  21 blocks=${1:-$MINBLOCKS}          #  如果命令行没有指定,
  22                                  #+ 则设置为默认的40块.
  23 # 上面这句等同如:
  24 # --------------------------------------------------
  25 # if [ -n "$1" ]
  26 # then
  27 #   blocks=$1
  28 # else
  29 #   blocks=$MINBLOCKS
  30 # fi
  31 # --------------------------------------------------
  32
  33
  34 if [ "$blocks" -lt $MINBLOCKS ]
  35 then
  36   blocks=$MINBLOCKS              # 最少要有 40 个块长.
  37 fi 
  38
  39
  40 echo "Creating swap file of size $blocks blocks (KB)."
  41 dd if=/dev/zero of=$FILE bs=$BLOCKSIZE count=$blocks  # 把零写入文件.
  42
  43 mkswap $FILE $blocks             # 将此文件建为交换文件(或称交换分区).
  44 swapon $FILE                     # 激活交换文件.
  45
  46 echo "Swap file created and activated."
  47
  48 exit $SUCCESS


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

关于 /dev/zero 的另一个应用是为特定的目的而用零去填充一个指定大小的文件, 如挂载一个文件系统到环回设备 (loopback device) (参考例子 13-8) 或"安全地" 删除一个文件(参考例子 12-55).


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

例子 28-3. 创建ramdisk

   1 #!/bin/bash
   2 # ramdisk.sh
   3
   4 #  "ramdisk"是系统RAM内存的一段,
   5 #+ 它可以被当成是一个文件系统来操作.
   6 #  它的优点是存取速度非常快 (包括读和写).
   7 #  缺点: 易失性, 当计算机重启或关机时会丢失数据.
   8 #+       会减少系统可用的RAM.
   9 #
  10 #  那么ramdisk有什么作用呢?
  11 #  保存一个较大的数据集在ramdisk, 比如一张表或字典,
  12 #+ 这样可以加速数据查询, 因为在内存里查找比在磁盘里查找快得多.
  13
  14
  15 E_NON_ROOT_USER=70             # 必须用root来运行.
  16 ROOTUSER_NAME=root
  17
  18 MOUNTPT=/mnt/ramdisk
  19 SIZE=2000                      # 2K 个块 (可以合适的做修改)
  20 BLOCKSIZE=1024                 # 每块有1K (1024 byte) 的大小
  21 DEVICE=/dev/ram0               # 第一个 ram 设备
  22
  23 username=`id -nu`
  24 if [ "$username" != "$ROOTUSER_NAME" ]
  25 then
  26   echo "Must be root to run \"`basename $0`\"."
  27   exit $E_NON_ROOT_USER
  28 fi
  29
  30 if [ ! -d "$MOUNTPT" ]         #  测试挂载点是否已经存在了,
  31 then                           #+ 如果这个脚本已经运行了好几次了就不会再建这个目录了
  32   mkdir $MOUNTPT               #+ 因为前面已经建立了.
  33 fi
  34
  35 dd if=/dev/zero of=$DEVICE count=$SIZE bs=$BLOCKSIZE  # 把RAM设备的内容用零填充.
  36                                                       # 为何需要这么做?
  37 mke2fs $DEVICE                 # 在RAM设备上创建一个ext2文件系统.
  38 mount $DEVICE $MOUNTPT         # 挂载设备.
  39 chmod 777 $MOUNTPT             # 使普通用户也可以存取这个ramdisk.
  40                                # 但是, 只能由root来缷载它.
  41
  42 echo "\"$MOUNTPT\" now available for use."
  43 # 现在 ramdisk 即使普通用户也可以用来存取文件了.
  44
  45 #  注意, ramdisk是易失的, 所以当计算机系统重启或关机时ramdisk里的内容会消失.
  46 #
  47 #  拷贝所有你想保存文件到一个常规的磁盘目录下.
  48
  49 # 重启之后, 运行这个脚本再次建立起一个 ramdisk.
  50 # 仅重新加载 /mnt/ramdisk 而没有其他的步骤将不会正确工作.
  51
  52 #  如果加以改进, 这个脚本可以放在 /etc/rc.d/rc.local,
  53 #+ 以使系统启动时能自动设立一个ramdisk.
  54 #  这样很合适速度要求高的数据库服务器.
  55
  56 exit 0


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

最后值得一提的是, ELF二进制文件利用了/dev/zero.

来自:http://www.linuxsir.org/main/doc/abs/abs3.7cnhtm/zeros.html
分享到:
评论

相关推荐

    WAC启动Android模拟器 transfer error: Read-only file system错误解决方法

    主要为大家分享下WAC启动Android模拟器时出现transfer error: Read-only file system 问题的解决方法

    LINUX下tftp开启问题

    Linux下嵌入式开发,用于解决tftp配置不成功的问题。

    rp2-pico-20230426-v1.20.0.uf2

    rp2-pico-20230426-v1.20.0.uf2固件

    read_only_csv_terminal:只读linux和termux的csv bash文件

    read_only_csv_terminal 设定步骤下放仓库转到存储库文件chmod + x read_csv和install_dependendies文件bash read_csv --install_dependency或./read_csv --install_dependency来运行和下载所需的所有依赖项如何使用...

    LEDE_20200227.tar.gz

    title里也写了是啥,不懂的还是不要随便刷,我家的机器上还算稳定,wifi驱动是2月6号最新的了。 ... 自带试用正常的K-X-S-W、FRP、MiniUPnP 、miniDLNA、samba、transmission。 没试用的:Adbyby P+、上网时间控制、...

    adb shell命令.txt

    adb shell命令.txt

    Android代码-AppInfo

    AppInfoCollection 一款监视前台应用,性能状况,并且记录以便导入 Excel 中形成可视化...注4: 如果 adb push 的时候提示 Read-only file system 输入 adb remount 然后再重新 push 即可 注5: 记得给 app 悬浮窗权限

    JavaFX_SqliteDB:与SQLite数据库集成

    JavaFX_SqliteDB 与SQLite数据库集成 这是一个简单的应用程序,它: 创建一个SQLite数据库 使用javabeans 扩展菜单 SQL查询:preparedstatement 枚举 XML文件 下载正在运行的应用程序的副本: ...

    crud-file-server:基本文件服务器,支持创建,读取,更新和删除

    -r read only -v virtual path to host the file server on 例子: crud-file-server -f c:/ -p 8080 -q -v filez 支持的运营 GET以正确的mime类型返回文件的内容,否则以html形式返回目录的内容。 GET 内容格式...

    Android 用Shell命令设置静态ip

    Android 用Shell命令设置静态ip https://blog.csdn.net/qq_31939617/article/details/81530531

    RAM模拟U盘_Stm301003ZE芯片

    参考圈圈的USB代码,自己在STM32上修改的假U盘(红牛开发板). 也请大家帮忙指点一下,为什么这个U盘在windows下读写没问题,在安卓下只能写一次,然后就提示 read-only file system.

    dmi-sysfs.rar_DMI_Only

    This module exports the DMI tables read-only to userspace through the sysfs file system.

    install_adb.sh

    在Android6.0 (Android M)userdebug版本上(eng版本不存在该问题),发现使用adb remount 系统之后,还是不能对system分区进行操作,提示没有写权限,为只读文件系统Read-only file system,此adb脚本能解决此问题 ...

    PyticularsTCT:Python软件包以使用扫描TCT(按细节)

    如果收到诸如ERROR: Could not install packages due to an EnvironmentError: [Errno 30] Read-only file system: BLA BLA BLA类的ERROR: Could not install packages due to an EnvironmentError: [Errno 30] Read...

    MS-DOS 5.0

    In this file the following topics are covered: 1. Introduction 2. Solving Setup Problems 2.1 Priam and Everex Hard Disks 2.2 SyQuest Removable Hard Disk 2.3 Bernoulli Drive 2.4 Disk Manager 2.5...

    mac php zip 扩展

    make install fails to install the extension, again because of the read-only file system. So instead I created an extension directory under /usr/local/php. mkdir -p /usr/local/php/extensions cp ...

    gun tar for windows

    -l, --one-file-system stay in local file system when creating archive -K, --starting-file=NAME begin at file NAME in the archive -N, --newer=DATE only store files newer than DATE --newer-mtime ...

    CPU-Z 1.47,CPU 查看工具

    - New parameter "-console" to generate output in a command prompt (Windows XP only). - New icon. -------------------------------------------------------------------------------------------------- ...

    cpuz-ReadMe.txt

    - New parameter "-console" to generate output in a command prompt (Windows XP only). - New icon. -------------------------------------------------------------------------------------------------- ...

Global site tag (gtag.js) - Google Analytics