Linux rootfs、User 分区均设置为 EXT4 ro,请问文件系统还会向磁盘写入数据吗?

2021-03-05 10:51:16 +08:00
 ReputationZh

对标题横展有几点疑问:

  1. EXT4 的文件系统日志存放位置在什么地方?不在文件系统吗?由什么指定地址呢?
  2. EXT4 的文件系统产生日志的逻辑是什么?仅写入磁盘会产生日志,还是读也会?
  3. 其他文件系统的日志跟 EXT4 有何区别?
1677 次点击
所在节点    Linux
7 条回复
vk42
2021-03-05 11:11:29 +08:00
- 你要是 mount 时指定 ro 的话,应该是不会写入的。
- 如果是正常 mount 的 Ext4,读操作会不会写入要看文件系统有没有设置 atime 。
- 日志的存放位置默认是在文件系统里面分一个 block group 存,也可以 mkfs 时指定一个专门的设备存 journal 。
- 不同文件系统的日志和实现相关性很强,区别没有办法简单说清楚。比如 Ext4 和其它一些系统共用 JBD,而 ZFS 是自己实现的 Journal,没有可比性。
想具体了解去看看 Ext4 文档写得更清楚:
https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout
yanqiyu
2021-03-05 11:40:46 +08:00
印象中 ro 依然会做 log replay, 你应该 ro,noload 来避免任何写入
日志当然在文件系统里面,只不过不是文件
日志是为了保证操作事务性的机制,需要事务性的写入操作才需要日志
3 的问题就太宽泛了...难以回答
ReputationZh
2021-03-05 11:54:22 +08:00
@vk42 不好意思,标题没有表述清除,设为只读状态后,还会不会有日志文件写入磁盘呢?
ReputationZh
2021-03-05 11:55:00 +08:00
@yanqiyu 我去查阅了一下资料,没有发现 noload 的 options,能辛苦解释一下这个 options 的作用吗?
yanqiyu
2021-03-05 12:07:09 +08:00
whee1
2021-03-05 12:15:31 +08:00
搭个便车问一下:zpool history,能禁用或者清理掉吗?
vk42
2021-03-05 13:51:15 +08:00
@ReputationZh 用了 ro 之后不会写新日志,不过如#2 所说如果文件系统上次没有正常 umount 即使用 ro 选项挂载时也会 replay

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/758708

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX