如何设置可增长的回送设备?


23

我知道我可以创建和使用像这样的回送设备:

# Create the file
truncate disk.img --size 2G
# Create a filesystem
mkfs.ext4 disk.img
# Mount to use
mount disk.img /mnt
# Clean up
umount /mnt

但是,在这种情况下,磁盘映像固定为2GB。空时为2GB,满时为2GB。它不会增长。

有没有一种可以扩大规模的环回设备?或者,是否存在一种仅需要存储足够空间的环回设备?


1
由于文件稀疏,因此它仅应使用示例中存储的空间。
jordanm

根据您要完成的任务,该工具virt-make-fs可能会很有用。它可以用于使用tar文件创建ext2-image。
Kotte 2013年

Answers:


17

使用dd创建一个稀疏文件设备。

df -hm # to show where we started
dd of=sparse-file bs=1k seek=102400 count=0 # creates a 100Meg sparsefile
mkfs.ext4 sparse-file
mkdir blah
mount sparse-file blah
cp somefile blah
ls -lahts sparse-file  # The 's' option will report the actual space taken in the first column
ls -lahts blah
df -hm # doublecheck my work
echo 'profit :)'

参考:Wikipedia稀疏文件文章


10

@jordanm的评论把它钉了。当我查看的输出时,我认为文件大小是固定的ls -lh disk.img。当我ls -s disk.img@Stephan的答案中使用时,将显示实际文件大小。作为测试,我创建了一个比硬盘更大的图像文件:

truncate test.img -s 1000G

它工作正常,这意味着答案就在问题中:)


截断效果很好,顺便说一句,我只是想显示一个替代命令来创建所述稀疏文件,并且(取决于您的Linux发行版和工具集)您不一定需要使用Lostup,因为它是当前的“挂载”化身在需要时设置明智的选择非常聪明。
Stephan

有关mount的内容很有趣。只是因为这次我还需要LUKS(cryptsetup luksFormat / dev / loop0),所以我需要
Lostup

创建稀疏文件的另一个方便的linux命令是fallocate(1)
Lloeki

2

由于使用了truncate,因此可以使用dd seek或更简单的方法手动进行操作:

truncate -s 100M file
mkfs.ext4 -m0 file
#mount, do whatever
umount /mountpoint
#let's grow it to 200 MB
truncate -s 200M file
e2fsck -f file && resize2fs file
#done

一个2英寸的班轮用来种植它,在这里几乎不需要自动化,我敢说:)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.