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