X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=src%2Finstall%2Bsetup%2Finstall%2Fmountsource.sh;h=fbaec7e6e4ad806424cbc0160ada4564e7fd0c71;hb=91b20d84de68c80e230838e81a470c7bf5d3457b;hp=b30fb15eb4e7e5652cb5c8965ec5b8825fb7cf16;hpb=4809e64e27463b090e8064b2d16533436c16ee2c;p=people%2Fteissler%2Fipfire-2.x.git diff --git a/src/install+setup/install/mountsource.sh b/src/install+setup/install/mountsource.sh index b30fb15eb..fbaec7e6e 100644 --- a/src/install+setup/install/mountsource.sh +++ b/src/install+setup/install/mountsource.sh @@ -1,26 +1,70 @@ #!/bin/sh +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2012 IPFire Team # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### echo "Scanning source media" -# scan CDROM devices +# scan all Block devices +for DEVICE in `find /sys/block/* -maxdepth 0 ! -name fd* ! -name loop* ! -name ram* -exec basename {} \;` +do + mount /dev/${DEVICE} /cdrom 2> /dev/null + if [ -n "$(ls /cdrom/ipfire-*.tlz 2>/dev/null)" ]; then + echo -n ${DEVICE} > /tmp/source_device + echo "Found tarball on ${DEVICE}" + exit 0 + else + echo "Found no tarballs on ${DEVICE} - SKIP" + fi + umount /cdrom 2> /dev/null +done -for DEVICE in $(hwinfo --cdrom | grep "Device File" | awk -F: '{ print $2 }' | cut -c 7- | sort | uniq); do - mount /dev/${DEVICE} /cdrom 2> /dev/null - if [ -e /cdrom/boot ]; then - echo -n ${DEVICE} > /tmp/source_device - exit 0 - fi - umount /cdrom 2> /dev/null +# scan all Partitions on block devices +for DEVICE in `find /sys/block/* -maxdepth 0 ! -name fd* ! -name loop* ! -name ram* -exec basename {} \;` +do + for DEVICEP in $(ls /dev/${DEVICE}? | sed "s/\/dev\///" 2> /dev/null);do + mount /dev/${DEVICEP} /cdrom 2> /dev/null + if [ -n "$(ls /cdrom/ipfire-*.tlz 2>/dev/null)" ]; then + echo -n ${DEVICEP} > /tmp/source_device + echo "Found tarball on ${DEVICEP}" + exit 0 + else + echo "Found no tarballs on ${DEVICEP} - SKIP" + fi + umount /cdrom 2> /dev/null + done done -# scan HD device (usb sticks, etc.) -for DEVICE in $(hwinfo --usb --disk | grep "Device File" | awk -F: '{ print $2 }' | cut -c 7- | sort | uniq); do - mount /dev/${DEVICE}1 /cdrom 2> /dev/null - if [ -e /cdrom/boot ]; then - echo -n ${DEVICE}1 > /tmp/source_device - exit 1 - fi - umount /cdrom 2> /dev/null +# scan all Partitions on raid/mmc devices +for DEVICE in `find /sys/block/* -maxdepth 0 ! -name fd* ! -name loop* ! -name ram* -exec basename {} \;` +do + for DEVICEP in $(ls /dev/${DEVICE}p? | sed "s/\/dev\///");do + mount /dev/${DEVICEP} /cdrom 2> /dev/null + if [ -n "$(ls /cdrom/ipfire-*.tlz 2>/dev/null)" ]; then + echo -n ${DEVICEP} > /tmp/source_device + echo "Found tarball on ${DEVICEP}" + exit 0 + else + echo "Found no tarballs on ${DEVICEP} - SKIP" + fi + umount /cdrom 2> /dev/null + done done exit 10