debugfs 和“糟糕的魔法数字”

debugfs 和“糟糕的魔法数字”

我正在尝试使用我在互联网上找到的任何内容来获得文件创建时间,并且通常有一种适合每个人的解决方案,这就是教程:https://tecadmin.net/file-creation-time-linux/

这就是出错的地方:

root@namename:/home/name# debugfs -R 'stat <33567136>' /dev/sda1
debugfs 1.42.13 (17-May-2015)
/dev/sda1: Bad magic number in super-block while opening filesystem
stat: Filesystem not open
root@namename:/home/name# 

我不知道该怎么处理它,我是一个简单的人,有一个简单的愿望,得到 33567136 的创建时间(以及之后的所有其他文件)。

当我谷歌这个时,结果显示文件系统需要修复,因为它已损坏。然而,我的电脑运行良好。没有什么是我无法访问的,没有延迟,没有阻塞,没有无法访问的情况。它也是唯一的操作系统。

我也无法找到有关如何在兼容性情况下更新 debugfs 的明确教程。sudo apt-get install debugfs并且apt-get install --only-upgrade debugfs 不会削减它:E: Unable to locate package debugfs.我无法找到该回购协议。

我想获得创建时间,但由于我不明白的问题而无法获得。

答案1

debugfs -R 'stat <33567136>' /dev/sda1至于尝试从 inode 33567136 获取信息时命令 失败:

  • 我怀疑您只是盲目地遵循您链接的教程;
  • 将示例逐字复制到您的系统;
  • 因此,您的系统上实际上没有 inode 33567136 的文件。

stat因此给出了一个错误,这又导致了debugfs另一个错误。

忘记要求您使用索引节点来查找文件创建时间的教程吧。stat也接受文件名作为参数。

因此你可以这样做:

$sudo debugfs -R 'stat /bin/ls' /dev/sda1
Inode: 97034   Type: regular    Mode:  0755   Flags: 0x0
Generation: 388006688    Version: 0x00000000:00000001
User:     0   Group:     0   Project:     0   Size: 130736
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 264
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x58bc61b1:cf0b33e8 -- Sun Mar  5 19:06:25 2017
 atime: 0x58bc61ac:00000000 -- Sun Mar  5 19:06:20 2017
 mtime: 0x58ad82d1:00000000 -- Wed Feb 22 12:23:45 2017
crtime: 0x58bc61b0:a1448018 -- Sun Mar  5 19:06:24 2017
Size of extra inode fields: 32
BLOCKS:
(0-11):196420-196431, (IND):164667, (12-15):196432-196435, (16-31):531568-531583
TOTAL: 33

不过,我要指出的是man debugfsdebugfs仅适用于 extfs 文件系统:

名称 debugfs - ext2/ext3/ext4 文件系统调试器

描述 debugfs 程序是一个交互式文件系统调试器。它可用于检查和更改 ext2、ext3 或 ext4 文件系统的状态。

附言。提醒一下,如果您有多个分区,文件系统 (/dev/sdax) 必须与文件所在的分区相匹配。

也可以看看什么是超级块、索引节点、目录项和文件?

相关内容