在极少数情况下,Linux 可以在只读 fs 上进行写入。例如。当它检测到处于不一致状态的 fs(冷重启后)并能够进行快速、安全的数据修复时。
在使用 Ubuntu Rescue Remix 时,我有一种这样的修复,写入是在第二个硬盘驱动器上,甚至在安装任何东西之前(在启动时)。这方面的信息在 dmesg 中,所以也要检查 dmesg。
例如这是orphan cleanup 可能的on readonly fs, it will temporary DISABLE READONLY flag
1485 if (s_flags & MS_RDONLY) {
1486 ext3_msg(sb, KERN_INFO, "orphan cleanup on readonly fs");
1487 sb->s_flags &= ~MS_RDONLY;
1488 }
... writes...
1549 sb->s_flags = s_flags; /* Restore MS_RDONLY status */
这是在 *ext3_mount-> mount_bdev -> (callback) ext3_fill_super -> ext3_orphan_cleanup
中完成的
如果块设备本身没有读保护,linux (ASKING YEAH!)
1463 if (bdev_read_only(sb->s_bdev)) {
1464 ext3_msg(sb, KERN_ERR, "error: write access "
1465 "unavailable, skipping orphan cleanup.");
1466 return;
1467 }
将在只读 FS 上提交写入
更新:这是一个列表
http://www.forensicswiki.org/wiki/Forensic_Linux_Live_CD_issues
Ext3 文件系统需要日志恢复 要禁用恢复:使用“noload”标志,或使用“ro,loop”标志,或使用“ext2”文件系统类型
Ext4 文件系统需要日志恢复 要禁用恢复:使用“noload”标志,或使用“ro,loop”标志,或使用“ext2”文件系统类型
ReiserFS 文件系统有未完成的事务“nolog”标志不起作用(参见 man mount)。要禁用日志更新:使用“ro,loop”标志
XFS 总是(卸载时)“norecovery”标志没有帮助(在最近的 2.6 内核中修复)。要禁用数据写入:使用“ro,loop”标志