【发布时间】:2012-07-04 11:35:06
【问题描述】:
出于调试目的,我想在特定的预定义块上打开一个文件。例如,如果我怀疑某个特定块已损坏,我想对其进行写入和读取,我宁愿在挂载分区时在用户模式下执行此操作。
有没有办法告诉 Linux,“嘿!如果它是免费的,请打开块 4579 上的这个新文件”。
是的,我可以直接编辑块设备,但如果驱动器已安装,这可能会破坏文件系统。
欢迎通用答案,但即使是 ext 文件系统系列的答案也足够好。
【问题讨论】:
-
这将高度依赖于使用的特定文件系统。一些文件系统甚至没有块的概念。但是您已将问题标记为 ext4。我非常怀疑 ext4 或任何其他类似文件系统是否有这样的功能。
-
@Celada 他们必须有块的概念,因为这是他们写入物理设备的基本单位,不是吗?
-
我说一些文件系统没有块的概念。 nfs、tmpfs、虚拟文件系统、大多数 fuse 文件系统、jffs2(虽然那个确实是按块擦除)等等……但我只是顺便说一下,因为我收集到你是专门询问 ext4 的。
-
@Celada,您能否解释一下(我是块设备的新手),jffs2 最终不会将 4K 写入底层闪存中的第二个块吗? (管他呢)。也许它会为许多文件分配一个特定的块,也许它根本没有文件的概念,但在一天结束时,它会将 4K(或任何块大小)的数据写入底层块设备(可能是一个伪装成块设备的文件,但它仍然会认为它是块设备)。我错了吗?
-
这个问题让我想起了想从用户空间访问特定物理内存地址的人。叹息……
标签: linux filesystems ext4