2

我有一个只读分区,其数据正在更改。更改仅在第一次安装时发生。后续挂载不会更改分区数据。

尝试使用 ext3 和 ext2 记录日志是一个问题……没有帮助。尝试使用 -c -1 -i 0 进行 tune2fs 以禁用更新时间戳或任何其他可能被执行检查触及的数据......没有帮助

通常我不会在意,但出于数据完整性的目的,我需要对这个分区进行哈希计算。

4

1 回答 1

4

在极少数情况下,Linux 可以对只读 fs 进行写入。例如,当它检测到处于不一致状态的 fs(冷重启后)并能够进行快速、安全的数据修复时。

在使用 Ubuntu Rescue Remix 时,我有一种这样的修复,并且写入是在第二个硬盘驱动器上,甚至在安装任何东西之前(在启动时)。这方面的信息在 dmesg 中,所以也要检查 dmesg。

例如,这是一个orphan cleanup可能的on readonly fs它会临时禁用 READONLY 标志

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(问是的!)

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”标志

于 2011-08-23T19:33:15.273 回答