小编tvc*_*tvc的帖子

配置系统以保留已删除的文件

我正在构建一个安装了 Linux 的新系统,用于特定目的,涉及第三方与其交互。除了应用必要的防火墙规则将计算机与 Intranet 隔离,同时仍然允许访问 Internet 之外,我还需要该系统上的所有文件即使在发出时也能保留(即我能够稍后检索它们)rm,可能是root,或其他方式(程序进行系统调用来删除它)。我不仅仅想要文件系统操作的日志(我auditd相信可以通过 Tripwire 等工具检索),我还需要文件的内容。我想了几种方法来实现这一目标:

  • 别名rmmv some-where-else, 或
  • 修改rm二进制文件。虽然这两种方法可以在某种程度上起作用,但如果程序尝试删除文件,它就会错过,因为现在rm不会调用二进制文件。
  • 在内核中挂钩写入和删除函数,以便对 write 的调用将同时写入两个位置,而删除将仅删除“可见”副本。我认为这是另一种可行的方法,不确定它是否会造成任何破坏。这涉及编写一个小内核模块。虽然我在这方面没有太多专业知识,但如果有源代码,我可以并且将会构建一个。
  • 给予用户fakeroot。这可能行不通,因为他们坚持拥有 root 访问权限来安装程序并修改系统范围的配置(例如 in/etc和 swap 中的配置)。他们一尝试接触这些文件就会知道这一点。
  • 在其他地方保留目录的镜像 ,即在逻辑级别上镜像。据我所知,可以使用诸如rclone. 但是,这只有在创建文件的原始进程完成后才有效。我假设如果一个非常大的zip文件被复制到系统的其他地方,只是从中提取一个很小的文本文件,然后该zip文件被删除,那么它就会被丢失。
  • 选择支持此级别操作的文件系统或修改文件系统配置。因为我还没有创建系统,所以我可以决定使用什么文件系统。我总是选择ext4正常安装,但我没有任何经验,也不知道针对这种情况需要修改的任何配置。squashfs我之前用过一段时间overlayfs,它确实有一个我想要的功能。删除原文件后,overlayfs仅隐藏该文件。如果overlayfs删除分区,原始文件会重新出现。但是,我还想要新文件被删除之前的内容。
  • 主动监视和创建对文件的引用(软链接?),以便rm文件不会使其悬空并受到回收。理论上我觉得这个还不错,但是不知道有没有这样的工具。
  • 创建软件 RAID 1,但以某种方式禁用一个卷上的删除功能。我认为这是不可能的,因为 RAID 1 的运行级别低于逻辑文件系统。不过,如果需要,我可以创建更多卷。
  • 关闭虚拟机相关系统,并为其磁盘创建快照。向第三方提供虚拟机是可以接受的。但是,虚拟机对于存储在其中的逻辑文件系统来说仍然处于较低级别。我认为主机没有办法知道内部正在执行什么确切的文件系统操作。按时间间隔拍摄快照不是一个好主意,因为它会占用大量存储空间,并且还会丢失在快照窗口之间创建和删除的文件。

如果我的理解有什么错误,请指正。任何见解将不胜感激!

编辑:我想从用户的角度 …

linux filesystems partitioning

17
推荐指数
4
解决办法
2587
查看次数

创建与物理 NIC 连接到同一网络的虚拟 NIC

如何创建与物理接口连接到同一网络的虚拟接口?我试着四处寻找,但我发现的只是环回。我需要电线的另一端将其识别为两个接口,因此环回不会这样做。像 VMWare 这样的虚拟机管理程序可以选择执行此操作(VM 和主机在路由器的 arp 表上被识别为两个设备),但在我的情况下,使用 VM 几乎是矫枉过正。我只想要另一个连接,或者一些可以充当“虚拟交换机”的应用程序。

我在 Windows 上,它应该是这样的。

预期_虚拟_网络

似乎我不是唯一遇到此问题的人。这里这里也有人问过,但没有可接受的答案。我很抱歉,但很难找到这个问题。

networking windows network-adapter

11
推荐指数
2
解决办法
4万
查看次数

什么可能导致资源管理器“泄漏”内存?

我已经遇到这个问题有一段时间了。我使用的是 Windows 10 v1909。每当我打开资源管理器窗口时,进程占用的内存(此处以私有字节表示 - 我知道这并不能反映进程内存使用的各个方面)将慢慢消耗我系统的所有内存。在某些极端情况下,它会消耗我电脑的 7GB 内存,为了让任何东西再次可用,我必须杀死它。

资源管理器私有字节部分的进程资源管理器图

这些是我到目前为止所尝试过的:

  • 运行sfc /scannow:没有任何损坏。
  • 断开所有映射的网络驱动器:没有任何变化。(这过去对我来说是一个问题,因为我会在临时系统上映射多个共享,当这些共享被擦除时,资源管理器会挂起并冻结)
  • 停止并删除我最近安装的可疑应用程序:问题仍然存在。我安装了 Google Drive File Stream 和 Winaero Tweaker。我怀疑 GDFS 替换的驱动器会导致问题,但事实证明并没有。
  • 尝试使用 Sysinternals 的 RAMMAP 清除工作集。这被证明是有用的,因为资源管理器内存使用量似乎“被清除”,但如果窗口保持打开状态,它会再次开始消耗内存。

这些是我观察到的:

  • 我什至亲自验证了 explorer 二进制文件和 shcore.dll(更多内容见下文)的数字签名,但它们仍然完全正常,这排除了可执行文件被修改的任何可能性。
  • 在 Explorer 创建的线程中(大约 50-60 个),只有一个不断消耗处理时间 - 不多,但每隔一段时间就会导致一个小峰值(上面的屏幕截图)。
  • 位于其堆栈顶部的函数是来自 的(可能)未记录的函数shcore.dll,由其序号 172 引用(请参阅下图),但我认为这种行为是正常的,因为我的笔记本电脑(也是 v1909)也做这个。

线程栈

这里还有另一个问题似乎与我的问题相同,但仍未得到解答。我尝试对进程进行内存转储,因为我认为这可能有助于调查占用的内容,但我没有任何调查转储或使用 WinDbg 的经验,尽管我可以看到内存内容。如果需要,我可以提供转储并记录跟踪。Explorer一直是一个核心系统文件,所以很难相信它有bug,而且,我找不到任何与Windows 10 v1909已知问题中列出的内存使用过多相关的内容页面中列出的与过多内存使用相关的任何内容。

更新1:
这种有问题的行为在重新启动后仍然存在,并且只有当我打开资源管理器窗口时才显得严重(内存消耗迅速增加);当没有打开资源管理器窗口时,其内存消耗是稳定的。

更新 2:
根据 @Didier 评论,我尝试使用 Process Hacker 而不是 Process Explorer 并进行了额外的观察。我可以看到名为的模块的内存分配igdusc64该模块在“内存”选项卡下不断扩展。快速检查该文件发现它是一个着色器编译器库,并且与 Intel 显卡驱动程序相关(这是有道理的,因为我的机器有 Intel CPU 而没有独立 GPU)。

我尝试删除驱动程序(回滚到 Microsoft 基本显示驱动程序),然后重新启动计算机。问题似乎没有那么严重,但绝对不会有任何进展。资源管理器仍然占用内存,现在“内存”选项卡中不再有任何变化(最大分配的块现在是堆段);这让我想知道资源管理器是否正在尝试绘制某些东西(可能是一个图标?)并卡在这个过程中。 …

windows windows-explorer memory-leaks windows-10

5
推荐指数
1
解决办法
3931
查看次数