TMPFS in kernels

Jia-Shiun Li jiashiun at gmail.com
Thu Mar 6 05:03:58 UTC 2014


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.


More information about the freebsd-arm mailing list