RE: How to create an image file system that grows
> > Hi,
> >
> > How can I create an image file system that can grow bigger as
> > required?
> >
> > Vmware, qemu, kvm, etc all can create file systems in an
> > image file which
> > is initially small, but grow bigger as required. I want to do
> > that too,
> > but
> >
> > dd if=/dev/zero of=file-fs.ext2 bs=1k count=20k
> > mke2fs file-fs.ext2
> >
> > would only create an image file initially as big as the full size.
> >
> > please help, thanks
>
> I haven't tried this myself, but how about appending extra
> space to the end
> of the file, then calling resize2fs?
Actually, I just reread your message, and it seems you want the filesystem
to automatically grow as needed, and not do it manually.
I just did a little experiment with sparse files, and it seems to work as
you want.
kevin@htpc:~$ dd bs=1 count=1 if=/dev/zero of=sparse seek=5GB
1+0 records in
1+0 records out
1 byte (1 B) copied, 5.4523e-05 s, 18.3 kB/s
kevin@htpc:~$ ls -lh sparse
-rw-r--r-- 1 kevin kevin 4.7G 2009-07-26 19:02 sparse
kevin@htpc:~$ du -h sparse
4.0K sparse
Here you can see that I allocated a maximum of 5 GB to this file, but it is
really only taking up 4K of disk space.
kevin@htpc:~$ /sbin/mke2fs sparse
(a bunch of mke2fs output...)
kevin@htpc:~$ du -h sparse
77M sparse
It created the filesystem. It now takes up about 77M.
kevin@htpc:~$ sudo mount -t ext2 -o loop sparse tmp
kevin@htpc:~$ df -h tmp
Filesystem Size Used Avail Use% Mounted on
/home/kevin/sparse 4.6G 9.4M 4.4G 1% /home/kevin/tmp
kevin@htpc:~$ du -h sparse
77M sparse
The filesystem has 4.4 GB available to it, but it's currently only taking up
77 MB of disk space.
I think this should work for you.
-- Kevin
Reply to: