[arch-releng] [PATCH 1/1] double file size with sparse blocks
Christian Hesse
list at eworm.de
Thu Mar 20 04:24:50 EDT 2014
Gerardo Exequiel Pozzi <vmlinuz386 at yahoo.com.ar> on Wed, 2014/03/19 22:21:
> On 01/11/2014 08:35 AM, Christian Hesse wrote:
> > Gerardo Exequiel Pozzi <vmlinuz386 at yahoo.com.ar> on Fri, 2014/01/10 23:53:
> >> On 01/10/2014 11:47 PM, Gerardo Exequiel Pozzi wrote:
> >>> On 01/09/2014 05:49 AM, Christian Hesse wrote:
> >>>> Christian Hesse <list at eworm.de> on Mon, 2013/09/02 10:03:
> >>>>> From: Christian Hesse <mail at eworm.de>
> >>>>>
> >>>>> This allows to grow the filesystem after system boot up. We have no
> >>>>> additional cost as squashfs handles sparse files.
> >>>>> ---
> >>>>> archiso/mkarchiso | 2 ++
> >>>>> 1 file changed, 2 insertions(+)
> >>>>>
> >>>>> diff --git a/archiso/mkarchiso b/archiso/mkarchiso
> >>>>> index 8f9ed42..563f624 100755
> >>>>> --- a/archiso/mkarchiso
> >>>>> +++ b/archiso/mkarchiso
> >>>>> @@ -364,6 +364,8 @@ _mkfs () {
> >>>>> cp -aT "${_fs_src}/" "${work_dir}/mnt/${_src}/"
> >>>>> _msg_info "Done!"
> >>>>> _umount_fs "${work_dir}/mnt/${_src}"
> >>>>> + # double size with sparse blocks, will allow to grow the
> >>>>> filesystem
> >>>>> + truncate -s$((_fs_size*2))M "${_fs_img}"
> >>>>> }
> >>>>>
> >>>>> command_checksum () {
> >>>>
> >>>> Currently I am maintaining this in a local package for myself. Any
> >>>> chance to get this merged upstream?
> >>>>
> >>>
> >>> No. This is a special case. If root-image.fs.sfs is copied to a
> >>> filesystems that does not support sparse files (FAT commonly for
> >>> USB-keys), this is waste of free space.
> >>>
> >>
> >> brb, ignore me!! truncate is on root-image.fs not root-images.fs.sfs :P
> >>
> >> Yes, this can be safe by default and can be included for next release :)
> >
> > Great, thanks!
> >
>
> I am still not changing this because, I am thinking in a different way
> to do this, in a more "systemd-friendly-way" (because currently I need
> to mount the squashfs, then fetch the size in blocks of the file inside
> it...).
> This is, for all cases, create a fixed size of the filesystem, (i.e 4G
> or 8G), the overhead is minimal, really :)
>
>
> $ truncate -s 1G coco.fs
> $ mkfs.ext4 -q -O ^has_journal -E lazy_itable_init=0 -m 0 -F coco.fs
> $ du -h coco.fs
> 408K coco.fs
> $ truncate -s 16G pepe.fs
> $ mkfs.ext4 -q -O ^has_journal -E lazy_itable_init=0 -m 0 -F pepe.fs
> $ du -h pepe.fs
> 4.3M pepe.fs
Not sure if I got you right... With this solution you want the filesystem to
always fill the whole file? Where is the size specified?
I wonder why you need the filesystem size in a systemd setup. What is it good
for?
You could create a filesystem that fits the needed size, truncate the
file and have a fixed size nevertheless.
$ _fs_size=1024
$ truncate -s ${_fs_size}M coco.fs
$ mkfs.ext4 -q -O ^has_journal -E lazy_itable_init=0 -m 0 -F coco.fs
$ du -h coco.fs
408K coco.fs
$ truncate -s 16G coco.fs
$ du -h coco.fs
408K coco.fs
And optionally later in live environment:
$ resize2fs coco.fs
$ du -h coco.fs
4.3M coco.fs
--
main(a){char*c=/* Schoene Gruesse */"B?IJj;MEH"
"CX:;",b;for(a/* Chris get my mail address: */=0;b=c[a++];)
putchar(b-1/(/* gcc -o sig sig.c && ./sig */b/42*2-3)*42);}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://mailman.archlinux.org/pipermail/arch-releng/attachments/20140320/c81f29f1/attachment.asc>
More information about the arch-releng
mailing list