首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >eCryptfs标头错误

eCryptfs标头错误
EN

Server Fault用户
提问于 2015-12-23 11:10:00
回答 2查看 2.9K关注 0票数 3

我在服务器上得到以下错误,其中一个分区是通过ecryptfs加密的。

代码语言:javascript
复制
[3440851.003561] Valid eCryptfs headers not found in file header region or xattr region, inode 22545087
[3440830.026081] Valid eCryptfs headers not found in file header region or xattr region, inode 22553905

在卸载下面的加密分区和ext4分区之后,我执行了一个fsck,它给了我以下结果:

代码语言:javascript
复制
fsck from util-linux 2.20.1
e2fsck 1.42.9 (4-Feb-2014)
/dev/sda3: clean, 65092/72302592 files, 54219978/289200384 blocks

我有点不明白发生了什么。我们在几个实例上使用相同的设置,我们只在其中一个实例上观察到这一点。

解决方案可能是更改底层磁盘!但我想了解发生了什么,以便最终发现和防止这类事件。

EN

回答 2

Server Fault用户

发布于 2016-01-01 22:47:01

当系统没有被彻底关闭时,我看到了这种情况。特别是,当加密的数据存储在USB设备上时,主机和USB设备之间的连接有点不可靠时,我就看到了这种情况。但是我相信当文件被写入的时候,其他的不干净的关闭也会导致它。

按照回答 by 乔瓦尼的建议,inode进行搜索确实可以用来查找有问题的文件。由于ecryptfs保留了基础文件系统的inode编号,所以可以使用该命令查找文件的加密路径和未加密路径。

以这种方式在基础文件系统上搜索文件比通过ecryptfs文件系统搜索要快得多。我在一个系统上的测量结果显示,有冷缓存的两个系统之间的速度下降了8倍,与热缓存系统的差值为350倍。

由于这种开销,我建议您首先在基础文件系统上找到加密的文件。例如,在Ubuntu系统上的默认配置中,可以使用以下命令:

代码语言:javascript
复制
find /home/.ecryptfs -inum 22545087

这将找到加密文件的路径,其中包括找到加密文件的主目录的名称。然后,在搜索未加密的文件名时,可以立即将搜索限制为一个主目录:

代码语言:javascript
复制
find /home/username -inum 22545087

如果用户有太多的文件,这太慢了,您可以利用inode编号一次查找一个目录级别。例如,如果加密的文件名是

代码语言:javascript
复制
/home/.ecryptfs/username/.Private/ECRYPTFS_FNEK_ENCRYPTED.AAAAAA/ECRYPTFS_FNEK_ENCRYPTED.BBBBBB/ECRYPTFS_FNEK_ENCRYPTED.CCCCCC

你可以先跑

代码语言:javascript
复制
ls -i /home/.ecryptfs/username/.Private/ECRYPTFS_FNEK_ENCRYPTED.AAAAAA

这将给出最外层目录的inode号。然后,您可以查找该目录名的未加密版本:

代码语言:javascript
复制
ls -i /home/username | grep $INODE_NUMBER_FROM_LS

您可以对目录层次结构中的每个级别重复此操作,以获得未加密的路径,而不必使用所需的CPU时间来解密该主目录中的每个文件名。

票数 2
EN

Server Fault用户

发布于 2015-12-29 17:14:23

通过以下方法发现是哪个文件导致了这种情况:

代码语言:javascript
复制
find / -inum <inode number>

您可能会找到一个截断的文件,这就是为什么氪星发出警告的原因。

试着用cat读取文件,然后用rm来修复警告。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/744950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档