我当时正在学习linux文件系统是如何工作的,我遇到了inode的概念。我编写了一个C程序来读取特定的inode并打印其内容。
现在,我不打算从C代码中修改inode的内容。我知道,如果出了问题,这可能会破坏文件系统,但我还是想尝试一下。
我怎样才能做到这一点?
发布于 2016-06-17 12:43:19
您需要访问驱动器的所谓“元”信息--驱动器上的信息--而不是正常的信息。要做到这一点,您需要打开驱动器本身,而不是驱动器中的任何文件或目录。
如果您说的是i节点,那么您是在Linux和ext文件系统上,所以驱动器名将类似于/dev/sdb。小心:这是整个磁盘,而不是其中的一个分区/卷/片。这可能被称为/dev/sdb2或其他什么-不同类型的Linux称之为不同的东西。
一旦打开了分区,您就可以把它当作一个(非常大的!)文件:碰巧被排列成硬盘上扇区的一连串字节。你可以寻找任何位置,并阅读那里的数据。如果你想覆盖它,你可以--但正如你说的:
您可能会完全销毁您的硬盘上的数据!
也许安装一个USB棒(上面没有什么重要的东西)并对其进行实验?让非常,确保您打开它的名称而不是主磁盘的名称!
https://stackoverflow.com/questions/37881664
复制相似问题