有没有办法创建虚拟磁盘驱动器?

有没有办法创建虚拟磁盘驱动器?

对于一些测试,我需要在我的程序中访问 /dev/sda 之类的东西。

但我无法在自己的硬盘上执行此操作。你知道为什么 :D

有没有办法使用 RAM 或另一个磁盘上的文件创建 /dev/sdb?我只需要它在那里,并且在我使用它时像磁盘一样工作,无论如何。

我知道我可以使用虚拟机来实现这一点,但这需要安装 Linux。这很耗时,而且不太优雅。

答案1

像 /dev/sdX 这样的东西可能很难做到,但是你也许可以使用 USB 驱动器来满足需求(不过我确实有一个黑客解决方案)

从更一般意义上讲,您可以通过创建分区(dd if=/dev/zero of=file.img count=102400)来创建块设备,然后将其安装为回环设备(losetup /dev/loopX file.img)。您可以将回环设备视为块设备(例如,在其上使用 FDISK)。如果您随后想要访问分区,则可以使用 partx -a /dev/loopX

创建环回设备后,似乎您可以为其创建符号链接,因此 ln -s /dev/loop0 /dev/sdz ln -s /dev/loop0p1 /dev/sdz1

这将为您提供 /dev/sdz 和 /dev/sdz1(当然,最终指的是您创建的环回文件)。

答案2

是的,您可以创建 RAM 磁盘,以下是操作说明:

如何在 Linux 中创建 RAM 磁盘

答案3

为此使用 BUSE 项目。它在用户空间中实现基于 RAM 磁盘的块设备。 https://github.com/acozzette/BUSE

相关内容