TMPFS in kernels
Ian Lepore
ian at FreeBSD.org
Thu Mar 6 23:33:32 UTC 2014
On Thu, 2014-03-06 at 13:03 +0800, Jia-Shiun Li wrote:
> On Tue, Mar 4, 2014 at 10:48 PM, Warner Losh <imp at bsdimp.com> wrote:
> >
> > On Mar 4, 2014, at 3:30 AM, Jia-Shiun Li <jiashiun at gmail.com> wrote:
> >
> >> I remember hacking it a while ago to adopt tmpfs instead on my pxeboot
> >> test environment. It only requires changing the line mdmfs mounting md to
> >> 'mount -t tmpfs' (plus mount options), and everything else will work as usual.
> >
> > I’ll have to give it a spin on NanoBSD then, at least as an option…
> >
>
> The actual patch & result pasted below to save you some time.
> Only tested on x86 pxeboot though.
>
> -----8<----------8<----------8<-----
>
> % diff -bu /usr/src/etc/rc.initdiskless
> /b/tftpboot/FreeBSD/install/etc/rc.initdiskless
> --- /usr/src/etc/rc.initdiskless 2013-04-11 21:03:31.000000000 +0800
> +++ /b/tftpboot/FreeBSD/install/etc/rc.initdiskless 2014-03-06
> 12:43:47.000000000 +0800
> @@ -198,7 +198,10 @@
> # Create a generic memory disk
> #
> mount_md() {
> - /sbin/mdmfs -S -i 4096 -s $1 -M md $2
> +# /sbin/mdmfs -S -i 4096 -s $1 -M md $2
> + local tmpfs_size
> + tmpfs_size=$(($1 * 1024))
> + /sbin/mount -t tmpfs -osize=$tmpfs_size tmpfs $2
> }
>
> # Create the memory filesystem if it has not already been created
>
> % cat df
> Filesystem Size Used Avail
> Capacity Mounted on
> 192.168.233.1:/b/tftpboot/FreeBSD/install/ 29G 17G 9.8G 63% /
> devfs 1.0K 1.0K 0B
> 100% /dev
> tmpfs 10M 2.6M 7.4M
> 26% /etc
> tmpfs 10M 180K 9.8M
> 2% /var
> /dev/md0 19M 24K 17M
> 0% /tmp
> % cat mount
> 192.168.233.1:/b/tftpboot/FreeBSD/install/ on / (nfs, read-only)
> devfs on /dev (devfs, local, multilabel)
> tmpfs on /etc (tmpfs, local)
> tmpfs on /var (tmpfs, local)
> /dev/md0 on /tmp (ufs, local)
>
>
> -Jia-Shiun.
FYI, I just posted a patchset to freebsd-arch@ and freebsd-rc@ to
address this in a slightly different way.
http://lists.freebsd.org/pipermail/freebsd-arch/2014-March/015141.html
Basically I updated the mdmfs program to automatically use tmpfs if it's
available in the kernel and the device name is "auto", along with
changes to rc.initdiskless and defaults/rc.conf to set the device name
to "auto" by default.
-- Ian
More information about the freebsd-arm
mailing list