AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[inode](unix)

Martin Hope
futurewave
Asked: 2024-01-19 17:37:30 +0800 CST

这个“stat [选项]...inode number...”可能吗?

  • 5

是否可以通过将 File1 的索引节点号作为参数而不是文件名传递来stat检索元数据?File1stat

stat [option - any doing this?] [inode number of File1]

代替

stat /home/$USER/File1

我的意思是直接的,而不是使用任何管道和命令替换技巧。

inode
  • 2 个回答
  • 40 Views
Martin Hope
jp_
Asked: 2023-06-11 15:59:24 +0800 CST

按索引节点号打开文件[重复]

  • 5
这个问题在这里已经有了答案:
文件可以通过其 inode 检索吗? (5 个答案)
昨天关门了。

有没有办法准确找到分配给 inode 的块,并查看该文件?我不在乎我是否必须在现场 CD 上,但我需要这样做,例如:

cat verylongsentice > a
ls -i a
101010 a
ln a /some/random/path
rm a
inode_find 101010
verylongsentice

有什么办法吗?也许作为 root 或从 live CD?我不关心文件名。删除的文件也可以吗?

inode
  • 1 个回答
  • 45 Views
Martin Hope
Izzo
Asked: 2022-04-11 06:30:24 +0800 CST

在设备驱动程序编程的上下文中,结构“cdev”和“inode”有什么区别?

  • 0

我目前正在学习操作系统课程中的设备驱动程序,并且对“inode”结构和“cdev”结构之间的区别感到困惑。有人可以澄清这两种结构之间的区别以及它们要实现的目标吗?

devices inode
  • 1 个回答
  • 86 Views
Martin Hope
davidvandebunte
Asked: 2022-01-28 08:16:28 +0800 CST

重置 ext4 文件系统而不更改文件系统 UUID

  • 15

我有一个文件系统,其中包含许多我定期擦除的小文件(这些文件是可以轻松重新生成的缓存)。rm -rf简单地创建一个新的文件系统而不是运行或rsync删除所有文件(即有效地删除包含数千个文件的大目录)要快得多。

创建一个新的文件系统来擦除文件系统的唯一问题是它的 UUID 发生了变化,导致例如/etc/fstab.

有没有办法简单地从例如 ext4 文件系统中“取消链接”一个目录,或者完全清除它的 inode 列表?

ext4 inode
  • 6 个回答
  • 1597 Views
Martin Hope
bomben
Asked: 2022-01-24 09:52:54 +0800 CST

如何使用文件的 inode 号复制文件?

  • 6

此问题与 Samba 有关,不需要 inode。


我在处理某个包含一些特殊字符的文件时遇到问题。如果我按它搜索它,inode它将列出该文件:

 $ find . -inum 90505400 -exec ls {} \;
./12 String Quartet No. 16 in F Major Op. 135: Der schwer gefa?te Entschlu?: Grave, ma non troppo tratto (Mu? es sein ?) - Allegro (Es mu? sein !).flac

但是,如果我继续使用cp或rm在文件上,它会抛出一个file not found错误(在德语'Datei oder Verzeichnis nicht gefunden'):

 $ find . -inum 90505400 -exec cp {} ne.flac \;
cp: './12 String Quartet No. 16 in F Major Op. 135: Der schwer gefa?te Entschlu?: Grave, ma non troppo tratto (Mu? es sein ?) - Allegro (Es mu? sein !).flac' kann nicht zum Lesen geöffnet werden: Datei oder Verzeichnis nicht gefunden

我想知道,我是否可以使用另一个直接使用 inode 的命令来复制文件。我也有这个问题一段时间了。我可以使用 删除所有文件rm *,但我想修复损坏的文件名。


这是一个ext4文件系统,我使用此行从外部 USB 硬盘安装在 Raspi 上(更改了混淆路径和 IP):

UUID=e3f9d42a-9703-4e47-9185-33be24b81c46   /mnt/test   ext4    rw,auto,defaults,nofail,x-systemd.device-timeout=15 0 2

然后我与 samba 分享它:

[mybook]
path=/mnt/test
public = yes
browseable = yes
writeable = yes
comment = test
printable = no
guest ok = no

我将它安装在 Lubuntu 16 上:

//192.168.1.190/test         /home/ben/test               cifs auto,nofail,username=XXX,password=XXX,uid=1000,gid=1000

VNC我通过Macbook连接到 Lubuntu 16 。或者我SSH直接进去。我只是告诉这个以获得完整的信息。

我还将共享安装在 Finder 中的那台 Macbook(和其他)上。Finder 无法正确显示文件名。

在此处输入图像描述


在用户发表有用的评论后,我意识到我应该尝试使用原始文件系统操作主机上的文件,而不是尝试通过 samba 进行操作。

SSH进入主机会显示此文件名(查看0xF022“135”之后的符号):

'12 String Quartet No. 16 in F Major Op. 135 Der schwer gefa?te Entschlu? Grave, ma non troppo tratto (Mu? es sein ) - Allegro (Es mu? sein !).flac'

然后,我能够cp在主机本身上复制文件。

flac(如果有人想知道我是如何得到文件名的:我将一个带有表格的汇总文件拆分cue为单独的文件,它们会自动命名。)

cp inode
  • 2 个回答
  • 1245 Views
Martin Hope
sickfear
Asked: 2021-12-08 03:40:25 +0800 CST

防止 inode 重用

  • 0

我们正在使用 Logstash 来摄取我们的日志,并且由于 inode 被重用,我们正面临一些问题。我们在 Logstash 方面尝试了所有可能的选项,因此我们正在探索操作系统方面。

据我所见,如果我创建一个文件,将其删除,然后再创建一个新文件,大多数情况下它将获得相同的 inode

[root@XXXX~]# touch a.txt
[root@XXXX~]# stat -c%i a.txt
671092802
[root@XXXX~]# rm a.txt
rm: remove regular empty file ‘a.txt’? y
[root@XXXX~]# touch a.txt
[root@XXXX~]# stat -c%i a.txt
671092802
[root@XXXX~]#  rm a.txt
rm: remove regular empty file ‘a.txt’? y
[root@XXXX~]# touch b.txt
[root@XXXX~]# stat -c%i b.txt
671092802

如何防止带有 XFS 的操作系统将最近使用的 inode 重用于新文件?

理想情况下,我们希望定义从文件被删除到 inode 被重用之间的时间段。磁盘很大,所以我们预计问题不会达到 inode 限制。

谢谢

filesystems inode
  • 1 个回答
  • 183 Views
Martin Hope
Keenan
Asked: 2020-03-04 16:24:55 +0800 CST

为什么 inode 偏移值似乎超过了 inode 大小?

  • 0

我正在研究 Ext4 文件系统,并且对 128 字节的 inode 大小感到困惑,因为它似乎与它存储的最后一个元数据值冲突,该值应该在字节 156 处偏移。

在本文档中,它指出 inode 的长度为 128 字节。我在一个未挂载的 /dev/sdb1 上调用了 dumpe2fs。dumpe2fs 结果证实 inode 大小为 128。

但我很困惑,因为该文档描述了存储在 inode 中的元数据。对于元数据的每个条目,都有一个相应的物理偏移量。最后一个条目是项目 ID。它的偏移量为 0x9c(整数为 156)。

元数据偏移量似乎超过了 inode 的分配大小。我在这里有什么误解?

ext4 inode
  • 1 个回答
  • 343 Views
Martin Hope
slm
Asked: 2020-01-16 07:51:32 +0800 CST

在 XFS 文件系统上查找与 inode 编号关联的文件名

  • 2

我们有一个 inode 编号,我们试图将其与实际文件名相关联。文件系统是 XFS。看看有一些示例声称能够通过xfs_db和/或来实现这一点,xfs_ncheck但到目前为止,我们还没有成功地做到这一点。

例子

我们正在分类一个问题,我们希望找到与 inode 编号相关联的文件名,这些文件名显示在 .procsfdinfo文件中/proc。

$ grep inotify /proc/9652/fdinfo/23 | head
inotify wd:58eb9 ino:cfd30c7 sdev:20 mask:3c0 ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:c730fd0c00000000
inotify wd:58eb8 ino:cfd1f09 sdev:1e mask:3c0 ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:091ffd0c00000000
inotify wd:58eb7 ino:cfd1ee9 sdev:1a mask:3c0 ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:e91efd0c00000000
inotify wd:58eb6 ino:cfd1ec8 sdev:1c mask:3c0 ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:c81efd0c00000000
inotify wd:58eb5 ino:cfd1eb9 sdev:19 mask:3c0 ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:b91efd0c00000000
inotify wd:58eab ino:cfd24cf sdev:20 mask:3c0 ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:cf24fd0c00000000
inotify wd:58eaa ino:cfdbc51 sdev:1e mask:3c0 ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:51bcfd0c00000000
inotify wd:58ea9 ino:cfdbc31 sdev:1a mask:3c0 ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:31bcfd0c00000000
inotify wd:58ea8 ino:cfdbc0f sdev:1c mask:3c0 ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:0fbcfd0c00000000
inotify wd:58ea7 ino:cfdb000 sdev:19 mask:3c0 ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:00b0fd0c00000000

这些 inode 采用 HEX 格式,因此我们需要将它们转换为 DEC:

$ echo $((16#cfd30c7))
217919687

使用xfs_ncheck:

$ xfs_ncheck -i $(echo $((16#cfd30c7))) /dev/mapper/vg0-dockerlv
ERROR: The filesystem has valuable metadata changes in a log which needs to
be replayed.  Mount the filesystem to replay the log, and unmount it before
re-running xfs_ncheck.  If you are unable to mount the filesystem, then use
the xfs_repair -L option to destroy the log and attempt a repair.
Note that destroying the log may cause corruption -- please attempt a mount
of the filesystem before doing this.
must run blockget -n first

问题

  • 我们如何使用 XFS 做到这一点?
  • 我已经使用 debugfs 和 ext3/4 文件系统做过类似的事情,但是这对于 XFS 来说似乎并不容易?

参考

  • 在运行 xfs 文件系统上使用特定块查找 inode/文件
  • 如何在 XFS 文件系统中映射 inode
  • xfs_ncheck 手册页
filesystems inode
  • 1 个回答
  • 1512 Views
Martin Hope
Aaron
Asked: 2019-08-31 13:29:28 +0800 CST

inode 编号的顺序是如何工作的?我可以期望不同计算机上相同安装的一致性吗?

  • 1

我有 3 台计算机,A、B 和 C,我在它们上执行相同的操作系统和软件安装。对于 A 上的任何特定文件,我是否可以期望 B 和 C 上的同一个文件对于该文件的实例具有相同的 inode 号?

我们的入侵检测系统是通过从 A 获取初始文件系统映像,然后使用相同的文件系统映像与 A、B 和 C 进行未来比较来建立的。我是该程序的新手,但似乎这已经奏效在过去。

我不知道 inode 编号排序是如何工作的,所以我猜它只是从 1 开始并为每个文件计数,或者类似的东西。如果是这样的话,这可能就是为什么文件 inode 编号在过去对我们来说甚至在计算机之间都是一致的 - 相同的文件是以相同的顺序创建的。虽然我不确定我们是否总是可以指望这一点。

但是,现在我收到了一些文件更改的通知,对于我正在查看的第一个文件,只有文件 inode 编号已更改。我认为有人在通知中重新安装了计算机上的操作系统和软件。

在不同计算机上安装相同的操作系统/软件(或在同一台计算机上按顺序重新安装),文件 inode 编号是否可以被视为相同?

如果我要从 A、B 或 C 中获取一个新的文件系统映像,我能否期望它能够解决我的“问题”(甚至不确定这是否是一个问题)?

我通常一次只能访问 1 或 2 台计算机,所以我现在无法检查 A 或 C,我不知道他们的报告会是什么样子。我只知道计算机B上至少1个文件的inode数量不是预期的。

在这种情况下,操作系统是 QNX 6。对于文件系统类型,mount告诉我 /dev/hd 文件是“on / type qnx4”...所以文件系统类型 qnx4?我猜qnx有自己的文件系统类型?我没有意识到这一点。或者也许这不准确。计算机上似乎不存在其他用于检查文件系统类型的命令。

更新:显然我错了。尽管我们关于文件系统原始状态的参考数据确实包含文件的 inode 编号,并且我可以选择将其包含在测试中,但我不应该在问题中描述的此检查中包含 inode 数据,并且“它在过去有效”就是因为这个。所以我实际上并不需要我在这里要求的东西,对此感到抱歉。不过,我将保留这个问题,因为我仍然觉得它很有趣,并且在评论中已经开始了部分答案。

filesystems inode
  • 1 个回答
  • 468 Views
Martin Hope
Ryan Mills
Asked: 2019-06-20 11:59:23 +0800 CST

通过不再在日志中的 inode 恢复?

  • 1

我从 Windows 机器的 SMB 共享中删除了一个文件夹。由于零确认,整个文件夹被删除。首先运行photorec,它提取了除 1 之外的大部分文件,这是最后一个复制的文件。使用extundelete进行的进一步测试能够将整个文件夹减去 4-5 个文件。然而,一个最重要的文件再次没有恢复。查看索引节点,我可以看到恢复的文件具有顺序索引节点。所以我能够缩小确切的inode。但是,我得到以下尝试恢复该特定 inode。

Loading filesystem metadata ... 59613 groups loaded.
Loading journal descriptors ... 29932 descriptors loaded.
Unable to restore inode 60596808 (file.60596808): No undeleted copies found in the journal.

但是,当我搜索该 inode 时,我确实得到了数据:

Loading filesystem metadata ... 59613 groups loaded.
Group: 14794
Contents of inode 60596809:
0000 | e4 81 e8 03 dd df b2 1b 43 2d 08 5d 53 2d 08 5d | ........C-.]S-.]
0010 | fd 97 05 5d 53 2d 08 5d e8 03 00 00 00 00 00 00 | ...]S-.]........
0020 | 00 00 08 00 01 00 00 00 0a f3 00 00 04 00 00 00 | ................
0030 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
0040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
0050 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
0060 | 00 00 00 00 70 57 ff 3f 00 00 00 00 00 00 00 00 | ....pW.?........
0070 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
0080 | 20 00 00 00 ec e9 88 2a b0 16 cf 0f 1c 76 bb a2 |  ......*.....v..
0090 | 3c 2d 08 5d d4 64 6c a9 00 00 00 00 00 00 00 00 | <-.].dl.........
00a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00b0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00d0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00f0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

Inode is Unallocated
File mode: 33252
Low 16 bits of Owner Uid: 1000
Size in bytes: 464707549
Access time: 1560816963
Creation time: 1560816979
Modification time: 1560647677
Deletion Time: 1560816979
Low 16 bits of Group Id: 1000
Links count: 0
Blocks count: 0
File flags: 524288
File version (for NFS): 1073698672
File ACL: 0
Directory ACL: 0
Fragment address: 0
Direct blocks: 62218, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Indirect block: 0
Double indirect block: 0
Triple indirect block: 0

使用debugfs我试图转储 inode,但我得到的只是一个大小正确但归零的文件。

以字节、日期为单位的大小,我 99% 确定这是我需要的确切 inode 文件。这些数据基本上是缺少指向磁盘上确切位置的指针的存根吗?反正有没有使用这个inode数据来恢复实际数据?

data-recovery inode
  • 1 个回答
  • 2424 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve