From owner-freebsd-bugs@FreeBSD.ORG Sat Apr 26 17:20:14 2003 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 584CB37B401 for ; Sat, 26 Apr 2003 17:20:14 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 41E1643FB1 for ; Sat, 26 Apr 2003 17:20:13 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.9/8.12.9) with ESMTP id h3R0KDUp002333 for ; Sat, 26 Apr 2003 17:20:13 -0700 (PDT) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.9/8.12.9/Submit) id h3R0KDhP002330; Sat, 26 Apr 2003 17:20:13 -0700 (PDT) Resent-Date: Sat, 26 Apr 2003 17:20:13 -0700 (PDT) Resent-Message-Id: <200304270020.h3R0KDhP002330@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, "Scot W. Hetzel" Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 72D1D37B401; Sat, 26 Apr 2003 17:19:37 -0700 (PDT) Received: from mail.westbend.net (ns1.westbend.net [216.47.253.3]) by mx1.FreeBSD.org (Postfix) with ESMTP id A4C6043FAF; Sat, 26 Apr 2003 17:19:36 -0700 (PDT) (envelope-from admin@WBIw009.westbend.net) Received: from WBIw009.westbend.net (wbiw009 [216.47.253.29]) by mail.westbend.net (8.12.9/8.12.9) with ESMTP id h3R0JRdR087955; Sat, 26 Apr 2003 19:19:28 -0500 (CDT) (envelope-from admin@WBIw009.westbend.net) Received: from WBIw009.westbend.net (localhost [127.0.0.1]) by WBIw009.westbend.net (8.12.9/8.12.9) with ESMTP id h3R0JQkx000764; Sat, 26 Apr 2003 19:19:27 -0500 (CDT) (envelope-from admin@WBIw009.westbend.net) Received: (from root@localhost) by WBIw009.westbend.net (8.12.9/8.12.9/Submit) id h3R0JPXU000763; Sat, 26 Apr 2003 19:19:26 -0500 (CDT) Message-Id: <200304270019.h3R0JPXU000763@WBIw009.westbend.net> Date: Sat, 26 Apr 2003 19:19:26 -0500 (CDT) From: "Scot W. Hetzel" To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 cc: gordon@FreeBSD.org Subject: bin/51451: RC_NG Script for creating Memory Disks X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Scot W. Hetzel" List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Apr 2003 00:20:14 -0000 >Number: 51451 >Category: bin >Synopsis: RC_NG Script for creating Memory Disks >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sat Apr 26 17:20:12 PDT 2003 >Closed-Date: >Last-Modified: >Originator: Scot W. Hetzel >Release: FreeBSD 5.0-CURRENT >Organization: West Bend Internet >Environment: System: FreeBSD WBIw009.westbend.net 4.8-STABLE FreeBSD 4.8-STABLE #2: Tue Apr 22 02:28:52 CDT 2003 root@WBIw009.westbend.net:/usr/obj/usr/src/4x/sys/GENERIC-SMP i386 >Description: I didn't find a RC_NG script on current that would create and mount the Memory Disks (/dev/md?). >How-To-Repeat: Try to have the system create/mount a Memory Disk as it is booting. >Fix: The attached patch allows you to create them. For example by placing the following into rc.conf, You can creat the vnode, swap, or malloc Memory Disks. memorydisk_enable="YES" memorydisk_list="test0 test1 test2" memorydisk_test0_type="vnode" memorydisk_test0_file="/usr/test/file" memorydisk_test0_mount="/usr/test0" memorydisk_test1_type="swap" memorydisk_test1_size="4m" memorydisk_test1_mount="/usr/test1" memorydisk_test2_type="malloc" memorydisk_test2_size="5m" memorydisk_test2_mount="/usr/test2" Depending on the setting of memorydisk__type will determine which additional variables will need to be set (*_file, or *_size). Index: etc/defaults/rc.conf =================================================================== RCS file: /home/ncvs/src/etc/defaults/rc.conf,v retrieving revision 1.172 diff -u -r1.172 rc.conf --- etc/defaults/rc.conf 16 Apr 2003 16:29:51 -0000 1.172 +++ etc/defaults/rc.conf 26 Apr 2003 23:41:46 -0000 @@ -48,6 +48,16 @@ extra_netfs_types="NO" # List of network extra filesystem types for delayed # mount at startup (or NO). +memorydisk_enable="NO" # Enable Memory Disks +memorydisk_list="" # List of Memory Disks to create + +# for each named Memory Disk in mdfile_list, create an entry with these variables: +# +# memorydisk__type - swap, malloc, vnode +# memorydisk__file - required by vnode only +# memorydisk__size - required by swap/malloc only +# memorydisk__mount - mount point for mdfile (optional?) + ############################################################## ### Network configuration sub-section ###################### ############################################################## Index: etc/rc.d/Makefile =================================================================== RCS file: /home/ncvs/src/etc/rc.d/Makefile,v retrieving revision 1.15 diff -u -r1.15 Makefile --- etc/rc.d/Makefile 24 Apr 2003 08:20:47 -0000 1.15 +++ etc/rc.d/Makefile 26 Apr 2003 23:16:55 -0000 @@ -8,7 +8,7 @@ cleartmp cron devd devdb devfs dhclient diskless dmesg dumpon fsck \ hostname inetd initdiskless initrandom ip6fw ipfilter ipfs ipfw ipmon \ ipnat ipsec ipxrouted isdnd jail kadmind kerberos keyserv kldxref \ - ldconfig local localdaemons lomac lpd motd mountcritlocal mountcritremote \ + ldconfig local localdaemons lomac lpd memorydisk motd mountcritlocal mountcritremote \ mountd moused mroute6d mrouted msgs named netif network1 network2 network3 \ network_ipv6 nfsclient nfsd nfslocking nfsserver nisdomain ntpd \ ntpdate othermta pccard pcvt ppp-user pppoed pwcheck quota random \ Index: etc/rc.d/memorydisk =================================================================== RCS file: etc/rc.d/memorydisk diff -N etc/rc.d/memorydisk --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ etc/rc.d/memorydisk 26 Apr 2003 23:45:15 -0000 @@ -0,0 +1,48 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: memorydisk +# REQUIRE: NETWORKING root mountcritlocal +# KEYWORD: FreeBSD + +. /etc/rc.subr + +name="memorydisk" +rcvar=`set_rcvar` +start_cmd="memorydisk_start" +stop_cmd=":" + +memorydisk_start() +{ + for _md_name in ${memorydisk_list} + do + eval md_type=\"\$memorydisk_${_md_name}_type\" + eval md_file=\"\$memorydisk_${_md_name}_file\" + eval md_size=\"\$memorydisk_${_md_name}_size\" + eval md_mount=\"\$memorydisk_${_md_name}_mount\" + + case "${md_type}" in + swap|malloc) + if [ -n "${md_size}" -a -c /dev/mdctl ]; then + mdev=`mdconfig -a -t ${md_type} -s ${md_size}` + [ -n "${md_mount}" ] && newfs -U /dev/${mdev} + fi + ;; + + vnode) + if [ -w "${md_file}" -a -c /dev/mdctl ]; then + mdev=`mdconfig -a -t vnode -f ${md_file}` + fi + ;; + *) + ;; + esac + + [ -n "${md_mount}" -a -d ${md_mount} ] && mount /dev/${mdev} ${md_mount} + done +} + +load_rc_config $name +run_rc_command "$1" >Release-Note: >Audit-Trail: >Unformatted: