1.\" 2.\" Copyright (c) 2001 Dima Dorfman. 3.\" All rights reserved. 4.\" 5.\" Redistribution and use in source and binary forms, with or without 6.\" modification, are permitted provided that the following conditions 7.\" are met: 8.\" 1. Redistributions of source code must retain the above copyright 9.\" notice, this list of conditions and the following disclaimer. 10.\" 2. Redistributions in binary form must reproduce the above copyright 11.\" notice, this list of conditions and the following disclaimer in the 12.\" documentation and/or other materials provided with the distribution. 13.\" 14.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24.\" SUCH DAMAGE. 25.\" 26.\" $FreeBSD$ 27.\" 28.Dd February 26, 2004 29.Dt MDMFS 8 30.Os 31.Sh NAME 32.Nm mdmfs , 33.Nm mount_mfs 34.Nd configure and mount an in-memory file system using the 35.Xr md 4 36driver 37.Sh SYNOPSIS 38.Nm 39.Op Fl DLlMNSUX 40.Op Fl a Ar maxcontig 41.Op Fl b Ar block-size 42.Op Fl c Ar cylinders 43.Op Fl d Ar rotdelay 44.Op Fl e Ar maxbpg 45.Op Fl F Ar file 46.Op Fl f Ar frag-size 47.Op Fl i Ar bytes 48.Op Fl m Ar percent-free 49.Op Fl n Ar rotational-positions 50.Op Fl O Ar optimization 51.Op Fl o Ar mount-options 52.Op Fl p Ar permissions 53.Op Fl s Ar size 54.Op Fl v Ar version 55.Op Fl w Ar user : Ns Ar group 56.Ar md-device 57.Ar mount-point 58.Nm 59.Fl C 60.Op Fl lNU 61.Op Fl a Ar maxcontig 62.Op Fl b Ar block-size 63.Op Fl c Ar cylinders 64.Op Fl d Ar rotdelay 65.Op Fl e Ar maxbpg 66.Op Fl F Ar file 67.Op Fl f Ar frag-size 68.Op Fl i Ar bytes 69.Op Fl m Ar percent-free 70.Op Fl n Ar rotational-positions 71.Op Fl O Ar optimization 72.Op Fl o Ar mount-options 73.Op Fl s Ar size 74.Op Fl v Ar version 75.Ar md-device 76.Ar mount-point 77.Sh DESCRIPTION 78The 79.Nm 80utility is designed to be a work-alike and look-alike of the deprecated 81.Xr mount_mfs 8 . 82The end result is essentially the same, 83but is accomplished in a completely different way. 84The 85.Nm 86utility configures an 87.Xr md 4 88disk using 89.Xr mdconfig 8 , 90puts a UFS file system on it using 91.Xr newfs 8 , 92and mounts it using 93.Xr mount 8 . 94All the command line options are passed to the appropriate program 95at the appropriate stage in order to achieve the desired effect. 96.Pp 97By default, 98.Nm 99creates a swap-based 100.Pq Dv MD_SWAP 101disk with soft-updates enabled 102and mounts it on 103.Ar mount-point . 104It uses the 105.Xr md 4 106device specified by 107.Ar md-device . 108If 109.Ar md-device 110is 111.Ql md 112(no unit number), 113it will use 114.Xr md 4 Ns 's 115auto-unit feature to automatically select an unused device. 116Unless otherwise specified with one of the options below, 117it uses the default arguments to all the helper programs. 118.Pp 119The following options are available. 120Where possible, 121the option letter matches the one used by 122.Xr mount_mfs 8 123for the same thing. 124.Bl -tag -width indent 125.It Fl a Ar maxcontig 126Specify the maximum number of contiguous blocks that will be laid 127out before forcing a rotational delay 128(see the 129.Fl d 130option). 131.It Fl b Ar block-size 132The block size of the file system, in bytes. 133.It Fl C 134Enable full compatibility mode with 135.Xr mount_mfs 8 . 136See the 137.Sx COMPATIBILITY 138section for more information. 139.It Fl c Ar cylinders 140The number of cylinders per cylinder group in the file system. 141.It Fl D 142If not using auto-unit, 143do not run 144.Xr mdconfig 8 145to try to detach the unit before attaching it. 146.It Fl d Ar rotdelay 147Specify the minimum time in milliseconds required to initiate another 148disk transfer on the same cylinder. 149Modern disks with read/write-behind achieve higher performance without 150this feature, 151so it is best to leave it at 0 milliseconds. 152.It Fl e Ar maxbpg 153Indicate the maximum number of blocks any single file can allocate 154out of a cylinder group before it is forced to begin allocating 155blocks from another cylinder group. 156.It Fl F Ar file 157Create a vnode-backed 158.Pq Dv MD_VNODE 159memory disk backed by 160.Ar file . 161.It Fl f Ar frag-size 162The fragment size of the file system in bytes. 163.It Fl i Ar bytes 164Number of bytes per inode. 165.It Fl l 166Enable multilabel MAC on the new file system. 167.It Fl L 168Show the output of the helper programs. 169By default, 170it is sent to 171.Pa /dev/null . 172.It Fl M 173Create a 174.Xr malloc 9 175backed disk 176.Pq Dv MD_MALLOC 177instead of a swap-backed disk. 178.It Fl m Ar percent-free 179The percentage of space reserved for the superuser. 180.It Fl N 181Do not actually run the helper programs. 182This is most useful in conjunction with 183.Fl X . 184.It Fl n Ar rotational-positions 185The default number of rotational positions to distinguish. 186.It Fl O Ar optimization 187Select the optimization preference; 188valid choices are 189.Cm space 190and 191.Cm time , 192which will optimize for minimum space fragmentation and 193minimum time spent allocating blocks, 194respectively. 195.It Fl o Ar mount-options 196Specify the mount options with which to mount the file system. 197See 198.Xr mount 8 199for more information. 200.It Fl p Ar permissions 201Set the file (directory) permissions of the mount point 202.Ar mount-point 203to 204.Ar permissions . 205The 206.Ar permissions 207argument can be in any of the mode formats recognized by 208.Xr chmod 1 . 209If symbolic permissions are specified, 210the operation characters 211.Dq + 212and 213.Dq - 214are interpreted relative to the initial permissions of 215.Dq a=rwx . 216.It Fl S 217Do not enable soft-updates on the file system. 218.It Fl s Ar size 219Specify the size of the disk to create. 220This only makes sense if 221.Fl F 222is 223.Em not 224specified. 225That is, 226this will work for the default swap-backed 227.Pq Dv MD_SWAP 228disks, 229and the optional 230.Pq Fl M 231.Xr malloc 9 232backed disks 233.Pq Dv MD_MALLOC . 234.It Fl U 235Enable soft-updates on the file system. 236This is the default, even in compatibility mode, and is accepted only 237for compatibility. 238It is only really useful to negate the 239.Fl S 240flag, should such a need occur. 241.It Fl v Ar version 242Specify the UFS version number for use on the file system; it may be 243either 244.Dv 1 245or 246.Dv 2 . 247The default is derived from the default of the 248.Xr newfs 8 249command. 250.It Fl w Ar user : Ns Ar group 251Set the owner and group to 252.Ar user 253and 254.Ar group , 255respectively. 256The arguments have the same semantics as with 257.Xr chown 8 , 258but specifying just a 259.Ar user 260or just a 261.Ar group 262is not supported. 263.It Fl X 264Print what command will be run before running it, and 265other assorted debugging information. 266.El 267.Pp 268The 269.Fl F 270and 271.Fl s 272options are passed to 273.Xr mdconfig 8 274as 275.Fl f 276and 277.Fl s , 278respectively. 279The 280.Fl a , b , c , d , e , f , i , m 281and 282.Fl n 283options are passed to 284.Xr newfs 8 285with the same letter; 286the 287.Fl O 288option is passed to 289.Xr newfs 8 290as 291.Fl o . 292The 293.Fl o 294option is passed to 295.Xr mount 8 296with the same letter. 297See the programs that the options are passed to for more information 298on their semantics. 299.Sh EXAMPLES 300Create and mount a 32 megabyte swap-backed file system on 301.Pa /tmp : 302.Pp 303.Dl "mdmfs -s 32m md /tmp" 304.Pp 305The same file system created as an entry in 306.Pa /etc/fstab : 307.Pp 308.Dl "md /tmp mfs rw,-s32m 2 0" 309.Pp 310Create and mount a 16 megabyte malloc-backed file system on 311.Pa /tmp 312using the 313.Pa /dev/md1 314device; 315furthermore, 316do not use soft-updates on it and mount it 317.Cm async : 318.Pp 319.Dl "mdmfs -M -S -o async -s 16m md1 /tmp" 320.Sh COMPATIBILITY 321The 322.Nm 323utility, while designed to be fully compatible with 324.Xr mount_mfs 8 , 325can be useful by itself. 326Since 327.Xr mount_mfs 8 328had some silly defaults, a 329.Dq full compatibility 330mode is provided for the case where bug-to-bug compatibility is desired. 331.Pp 332Full compatibility is enabled with the 333.Fl C 334flag, 335or by starting 336.Nm 337with the name 338.Li mount_mfs 339or 340.Li mfs 341(as returned by 342.Xr getprogname 3 ) . 343In this mode, only the options which would be accepted by 344.Xr mount_mfs 8 345are valid. 346Furthermore, the following behavior, as done by 347.Xr mount_mfs 8 , 348is duplicated: 349.Bl -bullet -offset indent 350.It 351The file mode of 352.Ar mount-point 353is set to 354.Li 01777 355as if 356.Fl p Ar 1777 357was given on the command line. 358.El 359.Sh SEE ALSO 360.Xr md 4 , 361.Xr fstab 5 , 362.Xr mdconfig 8 , 363.Xr mount 8 , 364.Xr newfs 8 365.Sh AUTHORS 366.An Dima Dorfman 367