Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Jul 2005 20:12:30 +0800 (CST)
From:      Jone Jas <jas_arlerr@yahoo.com.cn>
To:        Dominic Marks <dom@goodforbusiness.co.uk>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: limit jail disk space
Message-ID:  <20050712121230.16762.qmail@web15010.mail.cnb.yahoo.com>
In-Reply-To: <200507121114.42653.dom@goodforbusiness.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
Thanks for your reply. I googled and found this method but I just 
did not have a try.
As for the code-hacking method I mentioned, anyone with any idea
is appreciated!

Dominic Marks <dom@goodforbusiness.co.uk> 写道:
On Tuesday 12 July 2005 10:50, Jone Jas wrote:
> Hi hackers,
> As far as I know, there is no limit of the disk space that a jail
> can use. As for the Linux VServer(similar to jail), its dlimit does
> such thing for the "security context". I read the dlimit code and
> find that it achieves that by limiting the number of inodes and data
> blocks the vserver can get. The hooks are inserted in the functions
> such as ext2_new_inode, ext2_free_inode, ext2_new_block and
> ext2_free_block. My question is if we can do such thing to the jail.
> If so, where should we insert the hooks? It seems that the FreeBSD
> inode/block allocation/free functions are not so explicit as Linux.
> There are serveral places, I'm not sure which are the correct ones:
> for inodes: ffs_valloc, ffs_vfree
> for blocks: ffs_alloc, ffs_freeblk,
> or ufs_balloc_ufs1/2
>
> Any reply or hints is appreciated!
> Regards!

One method which does not require hacking any code:

# dd if=/dev/zero of=jail.file bs=1k count=1m
1048576+0 records in
1048576+0 records out
1073741824 bytes transferred in 23.940393 secs (44850635 bytes/sec)

# ls -lh jail.file 
-rw-r--r-- 1 dom dom 1.0G Jul 12 11:08 jail.file

# mdconfig -a -t vnode -f jail.file 
md0

# newfs -U /dev/md0 
/dev/md0: 1024.0MB (2097152 sectors) block size 16384, fragment size 
2048
using 6 cylinder groups of 183.44MB, 11740 blks, 23488 inodes.
with soft updates
super-block backups (for fsck -b #) at:
160, 375840, 751520, 1127200, 1502880, 1878560

# mount /dev/md0 /mnt

# df -ih
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/md0 989M 4.0K 910M 0% 2 140924 0% /mnt

Now just install your jail into /mnt and it will be confined to the
size of disc you create. Expect slightly reduced disc performance using
this technique.

> Jas
>
>
>
> ---------------------------------
> DO YOU YAHOO!?
> 雅虎免费G邮箱-中国第一绝无垃圾邮件骚扰超大邮箱
> _______________________________________________
> freebsd-hackers@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to
> "freebsd-hackers-unsubscribe@freebsd.org"

HTH,
-- 
Dominic Marks

		
---------------------------------
DO YOU YAHOO!?
  雅虎免费G邮箱-中国第一绝无垃圾邮件骚扰超大邮箱 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050712121230.16762.qmail>