昨天由于更换控制器导致设备号又乱了。。修改fstab的时候却出现不能修改的问题,显示Read-only file system,搜索了一下找了个临时解决办法搞定了
/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
相关推荐
### 解决Read-only file system问题 **步骤1:修改文件系统属性** - 打开Android模拟器所在的目录,默认路径为`C:\Users\你的名称\.android`(这里的“你的名称”应替换为当前电脑用户的用户名)。 - 查看`....
Xposed安装无法复制文件的解决方案 Xposed是一个功能强大的Android模块化框架,允许用户安装和管理各种模块以增强Android系统的功能。然而,在安装Xposed时,有些用户可能会遇到无法复制文件的问题,特别是当需要将...
rp2-pico-20230426-v1.20.0.uf2固件
read_only_csv_terminal 设定步骤下放仓库转到存储库文件chmod + x read_csv和install_dependendies文件bash read_csv --install_dependency或./read_csv --install_dependency来运行和下载所需的所有依赖项如何使用...
title里也写了是啥,不懂的还是不要随便刷,我家的机器上还算稳定,wifi驱动是2月6号最新的了。 ... 自带试用正常的K-X-S-W、FRP、MiniUPnP 、miniDLNA、samba、transmission。 没试用的:Adbyby P+、上网时间控制、...
在设置fiddler进行HTTPS抓包时,需要配置信任根证书,按照指引一步步操作,系统会提示“无法将Windows配置为信任fiddler根证书”, 这时使用该证书即可
FileStream stream = new FileStream(filePath, FileMode.Create); workbook.Write(stream); stream.Close(); } ``` 4. **运行与调试**:在Unity编辑器或构建后的游戏中,你可以调用这些方法来读写Excel文件,...
adb shell命令.txt
在IT行业中,驱动程序是操作系统与硬件设备之间的重要桥梁,它们负责协调和管理硬件设备的运作,确保系统能正确地识别和使用硬件功能。本文将深入探讨GT928触摸屏在Android内核中的驱动实现,以及相关源代码文件的...
AppInfoCollection 一款监视前台应用,性能状况,并且记录以便导入 Excel 中形成可视化...注4: 如果 adb push 的时候提示 Read-only file system 输入 adb remount 然后再重新 push 即可 注5: 记得给 app 悬浮窗权限
挂载光盘镜像文件到 /mnt mount /dev/cdrom /mnt/ 复制 /mnt/Packages目录下的所有...3.使用createrepo创建本地源 yum install createrepo * -y ...createrepo centos/ ...yum install httpd httpd-devel-y useradd apach
为了解决这个问题,我们需要通过 TTL 接口来恢复设备的正常工作状态。 首先,我们需要准备 TTL 连线工具,正确连接顺序是:1-TXD、2-空、3-空、4-GND、5-RXD。确保这些连接正确无误,因为这是与光猫通信的关键。 ...
标题“EROFSACompression-friendlyReadonlyFi.zip”和描述“EROFSACompression-friendlyReadonlyFile”暗示了我们讨论的主题是关于一种名为EROFS(Extended Read-Only File System,扩展只读文件系统)的技术,它...
-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 内容格式...
cd /system/etc ``` 3. 备份原文件: 在修改系统配置前,建议先备份原始文件,以防出现问题可以恢复: ``` cp ip.txt ip.txt.bak ``` 4. 编辑`ip.txt`文件: 使用文本编辑器(如`vi`或`nano`)打开`ip.txt`...
参考圈圈的USB代码,自己在STM32上修改的假U盘(红牛开发板). 也请大家帮忙指点一下,为什么这个U盘在windows下读写没问题,在安卓下只能写一次,然后就提示 read-only file system.
JavaFX_SqliteDB 与SQLite数据库集成 这是一个简单的应用程序,它: 创建一个SQLite数据库 使用javabeans 扩展菜单 SQL查询:preparedstatement 枚举 XML文件 下载正在运行的应用程序的副本: ...
在Android6.0 (Android M)userdebug版本上(eng版本不存在该问题),发现使用adb remount 系统之后,还是不能对system分区进行操作,提示没有写权限,为只读文件系统Read-only file system,此adb脚本能解决此问题 ...