diff --git a/src/etc/rc.importer b/src/etc/rc.importer new file mode 100755 index 000000000..30af6e961 --- /dev/null +++ b/src/etc/rc.importer @@ -0,0 +1,76 @@ +#!/bin/sh + +# Copyright (c) 2014-2017 Franco Fichtner +# Copyright (c) 2004-2009 Scott Ullrich +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +MNT="/tmp/hdrescue" + +DEVS=$(camcontrol devlist) +PART= + +while [ -z "${PART}" ]; do + echo "${DEVS}" + echo + read -p "Select a device import from or leave blank to exit: " DEV + + if [ -z "${DEV}" ]; then + exit 0 + elif [ -e "/dev/${DEV}s1a" ]; then + # MBR layout found + PART="/dev/${DEV}s1a" + elif [ -e "/dev/${DEV}p3" ]; then + # GPT layout found + PART="/dev/${DEV}p3" + else + echo "No known partition layout was found." + echo + fi +done + +mkdir -p ${MNT} +fsck -t ufs -y ${PART} > /dev/null +mount ${PART} ${MNT} + +if [ -f "${MNT}/conf/config.xml" ]; then + rm -rf /conf/* + for FILE in config.xml dhcpleases.tgz netflow.tgz rrd.tgz; do + if [ -f "${MNT}/conf/${FILE}" ]; then + cp "${MNT}/conf/${FILE}" /conf + echo "Restored ${FILE}" + fi + done + for DIR in backup sshd; do + if [ -d "${MNT}/conf/${DIR}" ]; then + cp -r "${MNT}/conf/${DIR}" /conf + echo "Restored ${DIR}" + else + mkdir -p "/conf/${DIR}" + fi + done +else + echo "No previous configuration was found on this disk." +fi + +umount ${MNT} +rm -r ${MNT} diff --git a/src/etc/rc.installer b/src/etc/rc.installer index cd228098d..879be92db 100755 --- a/src/etc/rc.installer +++ b/src/etc/rc.installer @@ -1,27 +1,28 @@ #!/bin/sh -# Copyright 2004-2009 Scott Ullrich +# Copyright (c) 2014-2017 Franco Fichtner +# Copyright (c) 2004-2009 Scott Ullrich # -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: # -# 1. Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. +# 1. Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. # -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. # -# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, -# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY -# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, -# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. sysctl kern.geom.debugflags=16 >/dev/null sysctl net.link.ether.inet.log_arp_wrong_iface=0 >/dev/null