如何在 Arch Linux 上创建 ramfs

如何在 Arch Linux 上创建 ramfs

我有 24 GB RAM 和 8 GB 交换文件。我知道在 Arch Linux 下有/dev/shm这样的用途tmpfs,但我想创建一个ramfs挂载点,因为我想要一个可以临时存储工作敏感文件的地方。这些文件不要以任何形状或形式接触磁盘,这一点非常重要。

我想使用 ramfs 而不是 tmpfs,因为我知道如果没有足够的空间,tmpfs 将使用交换文件,这是我不想要的。

我的问题是,如何创建至少具有 12G 存储空间的 ramfs 挂载点?

我尝试过mount none ~/RAM -t ramfs -o size=12G,但没有成功。它确实创建了挂载点,但当我尝试将文件放入其中时,它说Need more than 3.1G space要存储文件(我尝试复制 5 GB iso)

答案1

Linux 中两种主要的基于 RAM 的文件系统类型是 tmpfs 和 ramfs。 ramfs 是较旧的文件系统类型,在大多数情况下已被 tmpfs 取代... tmpfs 是一种更新的 RAM 文件系统,它克服了 ramfs 的许多缺点。

我认为不ramfs相关今天,不适用于当前内核。

如何创建至少 12G 存储空间的 ramfs 挂载点?

mkdir /ramdisk
# ramdisk is slang here, reads better than tmpfsdisk.

# my server has 512gb ram, so

mount -t tmpfs -o size=500G tmpfs /ramdisk

# in your case with 24gb ram I would do

mkdir /whatever
mount -t tmpfs -o size=22G tmpfs /whatever

大小是动态的,因为您将拥有文件夹/whatever,并且它将占用零内存,直到您开始向其中扔东西,但一旦size达到就会失败。你可以制造size更多的物理内存,你可以制造尺寸(这实际上是最大尺寸)任何数字,如果它大于物理 RAM,那么当所有内存用完时,就会带来锁定操作系统的风险。

只需观察您的/whatever_ramdiskviadf -h显示即可Filesystem Size Used Avail Use% Mounted on

如果你不想碰东西磁盘,则不要使用从磁盘挂载的交换分区。要么首先不要在磁盘上创建交换分区,要么在您的情况下丢失 8GB 磁盘并且不安装交换分区,将其删除或在 中注释掉/etc/fstab。或者将该分区重新格式化为ext4xfs并将其安装为/data.

内核交换页面并不[总是]意味着将数据写入磁盘上的交换分区。

我在过去 10 多年里没有在磁盘上使用过交换分区...准备重新引发交换战争...如果我有一台具有 768GB 内存的服务器并且我使用 1 300GB 磁盘,请告诉我如何在磁盘上使用交换分区具有任何价值。更好的是,PXE 引导和 rhel 8 的无盘集群节点完全在具有零磁盘的节点(服务器)上的 RAM 中运行。如果您认为 存在安全风险tmpfs,那么它就像 Linux 的其他部分一样都是基于文件[权限]的。 - 如果/ramdisk这是您所说的问题,那么一定是这样/etc/usr并且是否安装了所有其他文件夹以及 24GB 内存中的所有其他位。

答案2

就数据不接触磁盘而言,ramfs 并不比 tmpfs 更好或更差。

虽然它虽然 ramfs 不支持交换,但 tmpfs 文件写入交换的情况与处理敏感数据的应用程序页面写入交换的情况相同。

因此,使用 ramfs 而不是 tmpfs 的整体安全效益即使不是负值,也为零!强制应用程序生成大量临时文件通常相对容易 - 使用 ramfs,强制内核开始从进程空间换出页面,包括那些未写入临时文件的机密数据。突然之间,试图做安全的事情会让你的系统变得更容易受到攻击。

因为:如果你使用 tmpfs 并且加密的如果您的交换,那么 tmpfs 内容和应用程序数据的交换都不会导致安全问题。

另外:我对您的威胁模型感兴趣,在该模型中您可以信任您的机器,但您的交换存储设备不值得信任。如果您不能信任您的存储,我希望您至少有测量启动,因为这样您也不能相信您正在启动的操作系统不仅仅是将您的机密数据发送给愿意将其卖回给您的人象征性收费。如果你测量启动,并且不能信任您的交换设备(有趣的组合!包含代码的文件系统在运行时对攻击者来说是不可变的,但您的交换不是?),那么您仍然失败,因为攻击者可以显然只需修改交换中的内容,包括代码、脚本和配置文件,即可快速接管您的进程。

因此,从我的角度来看,加密交换是在这些威胁模型下唯一安全的交换,并且它还允许您使用 tmpfs。所以,加密你的交换,使用 tmpfs,开心吧:)

相关内容