|
From: <ale...@us...> - 2008-03-28 22:59:37
|
Revision: 2620
http://morphix.svn.sourceforge.net/morphix/?rev=2620&view=rev
Author: alextreme
Date: 2008-03-27 09:46:19 -0700 (Thu, 27 Mar 2008)
Log Message:
-----------
* cleaning up large parts of the base module's init scripts,
rewriting parts for usage of udev.
* base modules using these scripts will require python,
add python-minimal to your isomaker template!
* This is a work-in-progress. If you depend on a working base iso,
save your last build and don't expect those of the next few days to work.
Modified Paths:
--------------
trunk/scripts-base/debian/changelog
trunk/scripts-base/etc/init.d/knoppix-autoconfig
trunk/scripts-base/etc/init.d/load-minimodules.sh
trunk/scripts-base/etc/init.d/morphix-start
trunk/scripts-base/miniroot/debian/changelog
trunk/scripts-base/miniroot/linuxrc-scripts/linuxrc
trunk/scripts-base/usr/sbin/rebuildfstab
trunk/scripts-base/usr/sbin/scanpartitions
Added Paths:
-----------
trunk/scripts-base/usr/sbin/linux_devices.py
trunk/scripts-base/usr/sbin/rebuildfstab-morphix
Modified: trunk/scripts-base/debian/changelog
===================================================================
--- trunk/scripts-base/debian/changelog 2008-03-19 23:12:50 UTC (rev 2619)
+++ trunk/scripts-base/debian/changelog 2008-03-27 16:46:19 UTC (rev 2620)
@@ -1,3 +1,15 @@
+morphix-base-scripts (0.5-65) unstable; urgency=low
+
+ * Large cleanup of pre-udev stuff, restructuring loading of main/minimods
+
+ -- Alex de Landgraaf <al...@de...> Thu, 27 Mar 2008 17:40:25 +0100
+
+morphix-base-scripts (0.5-64) unstable; urgency=low
+
+ * Fixing unionfs-mount commands
+
+ -- alextreme <al...@de...> Wed, 05 Dec 2007 14:30:29 +0100
+
morphix-base-scripts (0.5-63) unstable; urgency=low
* Fix 1589476 XOrg patch for Modules, and locations.
Modified: trunk/scripts-base/etc/init.d/knoppix-autoconfig
===================================================================
--- trunk/scripts-base/etc/init.d/knoppix-autoconfig 2008-03-19 23:12:50 UTC (rev 2619)
+++ trunk/scripts-base/etc/init.d/knoppix-autoconfig 2008-03-27 16:46:19 UTC (rev 2620)
@@ -14,8 +14,7 @@
# Ignore these signals: INT, TERM, SEGV
trap "" 2 3 11
-## FIXME this is really strange (kernel-2.6.13). At this point proc is not available, but when exit the linuxrc proc is still savailable??
-## There is also a strange message : Failed to mount /selinux/
+
[ -f /proc/version ] || mount -t proc proc /proc 2>/dev/null
@@ -52,10 +51,8 @@
[ -d /sys/devices ] || mount -t sysfs /sys /sys 2>/dev/null
eend $?
-#mount udev after sysfs
if [ -x /etc/init.d/udev ];then
- #You can add more loop device 1->N in /etc/udev/links.sh
- ebegin "Configuring system to udev"
+ ebegin "Configuring system to use udev"
/etc/init.d/udev start &>/dev/null
eend $?
fi
@@ -459,7 +456,7 @@
[ -n "$NOSCSI" ] && HWSETUP_NOSCSI="-s"
if checkbootparam "nohwsetup"; then
einfo "Loading hardware profile from ${MAGENTA}/etc/modules${BLUE}.${NORMAL}"
- /etc/init.d/module-init-tools start >/dev/null 2>/dev/null #replace modutils by his 2.6 version
+ /etc/init.d/module-init-tools start >/dev/null 2>/dev/null
else
ebegin "Autoconfiguring devices (hardware setup)"
if [ -z "$DEBUG" ]; then
@@ -499,8 +496,6 @@
if [ -x /etc/init.d/alsa-autoconfig ]; then
DRIVERS="$SOUND_DRIVER" /etc/init.d/alsa-autoconfig
-#elif [ -x /usr/sbin/morphix-alsasound ]; then
-# DRIVERS="$SOUND_DRIVER" /usr/sbin/morphix-alsasound
fi
# This should be in morphix-alsasound script
@@ -520,45 +515,6 @@
done
fi
-# Check for blind option or brltty
-#
-# NOTE: This won't work in Morphix
-#
-BLIND=""
-checkbootparam "blind" && BLIND="yes"
-BRLTTY="$(getbootparam brltty 2>/dev/null)"
-
-if [ -n "$BLIND" -o -n "$BRLTTY" ]; then
- if [ -x /sbin/brltty ]; then
-# Blind option detected, start brltty now.
- CMD=brltty
- BRLTYPE=""
- BRLDEV=""
- BRLTEXT=""
- if [ -n "$BRLTTY" ]; then
-# Extra options
- BRLTYPE="${BRLTTY%%,*}"
- R="${BRLTTY#*,}"
- if [ -n "$R" -a "$R" != "$BRLTTY" ]; then
- BRLTTY="$R"
- BRLDEV="${BRLTTY%%,*}"
- R="${BRLTTY#*,}"
- if [ -n "$R" -a "$R" != "$BRLTTY" ]; then
- BRLTTY="$R"
- BRLTEXT="${BRLTTY%%,*}"
- R="${BRLTTY#*,}"
- fi
- fi
- fi
- [ -n "$BRLTYPE" ] && CMD="$CMD -b $BRLTYPE"
- [ -n "$BRLDEV" ] && CMD="$CMD -d $BRLDEV"
- [ -n "$BRLTEXT" ] && CMD="$CMD -t $BRLTEXT"
- echo " ${BLUE}Starting braille-display manager: ${GREEN}${CMD}${BLUE}.${NORMAL}"
- ( exec $CMD & )
- sleep 2
- fi
-fi
-
if test -n "$SPLASH"; then
echo "show 20000">/proc/splash 2>/dev/null
fi
@@ -607,7 +563,6 @@
# Read in changes
[ -f /etc/sysconfig/morphix ] && . /etc/sysconfig/morphix
-#[ -f /etc/sysconfig/knoppix ] && . /etc/sysconfig/knoppix
if [ -n "$INTERACTIVE" ]
then
@@ -624,14 +579,6 @@
echo "show 24000">/proc/splash 2>/dev/null
fi
-# Add new devices to /etc/fstab
-# maybe it's better to use CD drive information from /proc/sys/dev/cdrom/info ?
-for i in /dev/cdrom*; do
- if [ -L $i ]; then
- addmount "$i" "ro"
- fi
-done
-
NOSWAP=""
DMA=""
checkbootparam "noswap" && NOSWAP="yes"
@@ -673,12 +620,8 @@
# Start creating /etc/fstab with HD partitions and USB SCSI devices now
ebegin "Scanning for Harddisk partitions and creating ${YELLOW}/etc/fstab${BLUE}... "
-rebuildfstab -r -u $USERNAME >/dev/null 2>&1
+rebuildfstab-morphix $USERNAME >/dev/null 2>&1
val=$?
-if [ -e /var/run/rebuildfstab.pid ]; then
-# Another instance of rebuildfstab, probably from hotplug, is still running, so just wait.
- sleep 8
-fi
eend $val
if [ -n "$partitions" ]; then
@@ -696,27 +639,6 @@
continue
;;
esac
-# Create mountdir if not already present
-# FIXME already done by rebuildfstab
-# d="/mnt/${p##*/}" ; [ -d "$d" ] || mkdir -p "$d"
- case "$f" in vfat|msdos)
- if [ -z "$NOSWAP" ] && mount -o uid=$USERNAME,gid=users,ro -t $f $p $d 2>/dev/null; then
- if [ -f $d/morphix.swp ]; then
- mount -o remount,rw $d
- if swapon $d/morphix.swp 2>/dev/null; then
- einfo "${BLUE}Using Morphix swapfile ${MAGENTA}$d/morphix.swp${BLUE}.${NORMAL}"
- mount -o remount,ro $d 2>/dev/null
- fnew="$d/morphix.swp swap swap defaults 0 0"
- stringinfile "$fnew" "/etc/fstab" || echo "$fnew" >> /etc/fstab
- else
- umount $d
- fi
- else
- umount $d
- fi
- fi
- ;;
- esac
done </etc/fstab
fi
@@ -792,6 +714,7 @@
fi
[ -n "$FOUND_CONFIG" ] || echo " ${BLUE}Not present.${NORMAL}"
fi
+
if test -n "$SPLASH"; then
echo "show 36000">/proc/splash
Modified: trunk/scripts-base/etc/init.d/load-minimodules.sh
===================================================================
--- trunk/scripts-base/etc/init.d/load-minimodules.sh 2008-03-19 23:12:50 UTC (rev 2619)
+++ trunk/scripts-base/etc/init.d/load-minimodules.sh 2008-03-27 16:46:19 UTC (rev 2620)
@@ -4,43 +4,16 @@
#
# Feel free to change this file to adapt it to your main-module
#
-# copyleft 2003-2005, Alex de Landgraaf <alex at delandgraaf dot com>
+# Copyleft 2003-2005, Alex de Landgraaf <alex at delandgraaf dot com>
# GPL, (www.gnu.org for details)
#
# $Id$
-#
-# All linking/binding, copying /etc and /var etc is done
-# in /etc/init.d/morphix-start on Morphix Base
-# Could also be done here, but would be unneeded complexity
-# (and modules should be loaded in a uniform matter)
-#
-# MiniModules are loaded here, still a bit dirty for now,
-# as we need a kernelmodule for each minimodule that we want to load
-# Reread boot command line; echo last parameter's argument or return false.
. /etc/morphix.d/color.sh
. /etc/morphix.d/functions.sh
CMDLINE="$(cat /proc/cmdline)"
-trymount(){
-# Apparently, mount-aes DOES autodetect AES loopback files.
- [ -b "$1" ] && { mount -t auto -o ro "$1" "$2" 2>/dev/null; RC="$?"; }
-# We need to mount crypto-loop files with initial rw support
- [ -f "$1" ] && { mount -t auto -o loop,rw "$1" "$2" 2>/dev/null; RC="$?"; }
- [ "$RC" = "0" ] && return 0
- echo ""
- einfo "Filesystem not autodetected, trying to mount $1 with AES256 encryption"
- a="y"
- while [ "$a" != "n" -a "$a" != "N" ]; do
-# We need to mount crypto-loop files with initial rw support
- mount -t auto -o loop,rw,encryption=AES256 "$1" "$2" && return 0
- echo -n "${RED}Mount failed, retry? [Y/n] ${NORMAL}"
- read a
- done
- return 1
-}
-
# Mounts a minimod to the directory appointed to the module
# first argument is the file seen from the mainmodule/chroot
# second argument is the number of the module
@@ -60,47 +33,12 @@
mount_module $file /mnt/main/mnt/mini/mod$count $count >/dev/null 2>&1
fi
- MainTag=$(head -n 1 /mnt/main/morphix/main_module)
- MiniTag=$(head -n 1 /mnt/main/mnt/mini/mod$count/morphix/main_module 2>/dev/null)
- if [ -n "$MiniTag" -a -n "$MainTag" ]; then
- if [ "$MainTag" != "$MiniTag" ] && [[ $MiniTag != ALL* ]]; then
- ewarn "${RED}MiniModule $file doesn't have the same tag as MainModule${NORMAL}"
- einfo "${GREEN} Mini: $MiniTag"
- einfo " Main: $MainTag${NORMAL}"
- chroot /mnt/main umount /mnt/mini/mod$count
- chroot /mnt/main rm /dev/cloop$count
- chroot /mnt/main rmdir /mnt/mini/mod$count
- return 1
- fi
- fi
- MiniTagBootOption=$(head -n 1 /mnt/main/mnt/mini/mod$count/morphix/boot_option 2>/dev/null)
- if [ -n "$MiniTagBootOption" ]; then
- BOOTOPTIONOK=""
- case "${CMDLINE}" in *\ ${MiniTagBootOption}*) BOOTOPTIONOK="yes"; ;; esac
- if [ "${MiniTagBootOption}" != "ALL" ]; then
- if [ -z "${BOOTOPTIONOK}" ]; then
- einfo "${GREEN} Boot Option ${RED}${MiniTagBootOption}${NORMAL} not found. Skipping MiniModule.${NORMAL}"
- einfo "${GREEN} Boot Options found ${RED}${CMDLINE}${NORMAL}"
- einfo "${GREEN} Mini: $file ${NORMAL}"
- chroot /mnt/main umount /mnt/mini/mod$count
- chroot /mnt/main rm /dev/cloop$count
- chroot /mnt/main rm /mnt/mini/mod$count
- return 1
- fi
- fi
- fi
-
-
echo "$count" > /mnt/mini/num_loaded
- # Unionfs overlaying (only if unionctl exists and the root dir in the minimodule exists
+ # Unionfs overlaying
# Add the /root dir to be the unionfs branch after the first component (which should be 0 and rw...)
- if [ -x /usr/sbin/unionctl -o -x /usr/bin/unionctl ];then
- if [ -d /mnt/main/mnt/mini/mod$count/root ]; then
- unionctl /mnt/main --add --after 0 --mode ro /mnt/main/mnt/mini/mod$count/root
- fi
- else
- einfo "No unionctl found, not applying unionfs minimodule overlaying";
+ if [ -d /mnt/main/mnt/mini/mod$count/root ]; then
+ mount -t unionfs -o remount,add=:/mnt/main/mnt/mini/mod$count/root=ro none /mnt/main
fi
if [ -e /mnt/main/mnt/mini/mod$count/morphix/loadmod.sh ]; then
@@ -121,56 +59,16 @@
MiniModulesCount=0
einfo "Starting MiniModule bootscript"
-# copied from myhome, you can specify a device to load minimods from
-#using the mini= bootparameter. Modules would be in the root of the directory
+# checks for all minimodules on all mounted partitions
-MYMINIDIR="$(getbootparam mini)"
-if [ -n "$MYINIDIR" ]; then
- case "$MYMINIDIR" in
- /dev/*)
- MYMINIDEVICE="${MYMINIDIR##/dev/}"
- MYMINIDEVICE="/dev/${MYMINIDEVICE%%/*}"
- MYMINIMOUNTPOINT="/mnt/minimod}"
- MYMINIDIR="/mnt/${MYMINIDIR##/dev/}"
- ;;
- /mnt/*)
- MYMINIDEVICE="${MYMINIDIR##/mnt/}"
- MYMINIDEVICE="/dev/${MYMINIDEVICE%%/*}"
- MYMINIMOUNTPOINT="/mnt/minimod}"
- MYMINIDIR="$MYMINIDIR"
- ;;
- *)
- ewarn "Invalid ${CYAN}mini=${NORMAL} option '$MYMINIDIR' specified (must start with /dev/ or /mnt/)."
- ewarn "Option ignored."
- ;;
- esac
- if trymount "$MYMINIDEVICE" "$MYMINIMOUNTPOINT"; then
- MntMiniModules="$(ls /mnt/minimod/*.mod 2> /dev/null)"
- MntMiniModulesCount="$(ls /mnt/minimod/*.mod 2> /dev/null | wc -l)"
- for file in $MntMiniModules
- do
- load_mini_module "$file" $MiniModuleCount
- ((MiniModuleCount += 1))
- done
- einfo "Device $MYMINIDEVICE will be used for the /mnt/minimod directory..."
- fi
-fi
-
-# checks for all minimodules on the usb device,
-# unless nousb or usbboot is being used (the latter would mean that the
-# minimodules are loaded from /cdrom instead...)
-
echo
-USBSTORAGE="$(getbootparam nousb)"
-USBBOOTING="$(getbootparam usbboot)"
-if [ -z "$USBSTORAGE" -a -z "$USBBOOTING" ]; then
- einfo "Checking for MiniModules on USB device"
+NOUSB="$(getbootparam nousb)"
+if [ -z "$NOUSB" ]; then
+ einfo "Checking for MiniModules on connected devices"
modprobe usb-storage >/dev/null 2>&1
- mkdir /mnt/main/mnt/usb >/dev/null 2>&1
- chroot /mnt/main mount /dev/sda1 /mnt/usb >/dev/null 2>&1
- UsbMiniModules="$(ls /mnt/usb/minimod/*.mod 2> /dev/null)"
- UsbMiniModulesCount="$(ls /mnt/usb/minimod/*.mod 2> /dev/null | wc -l)"
- for file in $UsbMiniModules
+
+ MiniModules="$(ls /media/*/minimod/*.mod 2> /dev/null)"
+ for file in $MiniModules
do
load_mini_module "$file" $MiniModuleCount
((MiniModuleCount += 1))
@@ -182,7 +80,6 @@
echo
einfo "Checking for MiniModules on CDROM"
CdromMiniModules="$(ls /cdrom/minimod/*.mod 2> /dev/null )"
-CdromMiniModulesCount="$(ls /cdrom/minimod/*.mod 2> /dev/null | wc -l )"
for file in $CdromMiniModules
do
load_mini_module "$file" $MiniModuleCount
Modified: trunk/scripts-base/etc/init.d/morphix-start
===================================================================
--- trunk/scripts-base/etc/init.d/morphix-start 2008-03-19 23:12:50 UTC (rev 2619)
+++ trunk/scripts-base/etc/init.d/morphix-start 2008-03-27 16:46:19 UTC (rev 2620)
@@ -162,8 +162,6 @@
DEBS="$(chroot /mnt/main ls -1 $1/deb/*.deb 2>/dev/null | wc -l )"
if [ $DEBS -gt 0 ]; then
-# done anyways
-# chroot /mnt/main touch /var/lib/dpkg/status
chroot /mnt/main dpkg -i --force-all $1/deb/*.deb
fi
@@ -224,16 +222,9 @@
# Work out mount options so we can support minimodule overlays.
mount_options () {
- # which overlayfs?
- TRANS="$(getbootparam translucency)"
- UNIONFS="$(getbootparam unionfs)"
- if [ -n "$TRANS" ]; then
- TRANSLUCENCY="on"
- export TRANSLUCENCY
- else
- UNIONFS="on"
- export UNIONFS
- fi # End switchboard
+ # Currently we only support unionfs
+ UNIONFS="on"
+ export UNIONFS
# This shouldn't be necessary,
# as --add overlaying is in load-minimodules.sh
@@ -267,31 +258,9 @@
DIR2=/tmp/overlay
-
- ###
- #
- # Overlay FS switchboard
- #
- # Bootoption: Use either unionfs or cowloop
- # to force the overlay fs. Default currently is unionfs
- #
- ###
+ UNIONFS="on"
+ export UNIONFS
-
- UNIONFS="$(getbootparam unionfs)"
- COWLOOP="$(getbootparam cowloop)"
- if [ -n "$UNIONFS" ]; then
- UNIONFS="on"
- export UNIONFS
- elif [ -n "$COWLOOP" ]; then
- COWLOOP="on"
- export COWLOOP
- mknod /dev/cowloop b 241 0
- else
- UNIONFS="on"
- export UNIONFS
- fi # End switchboard
-
###
#
# Load Module
@@ -308,19 +277,12 @@
exit
fi
- if [ -n "$UNIONFS" ]; then
- mkdir /mnt/main_ro >/dev/null 2>&1
- fi
+ mkdir /mnt/main_ro >/dev/null 2>&1
mkdir /mnt/mainmod >/dev/null 2>&1
mkdir /mnt/minimod >/dev/null 2>&1
mkdir /mnt/mini >/dev/null 2>&1
- if [ -n "$UNIONFS" ]; then
- mount_module $1 /mnt/main_ro 1
- else
- mount_module $1 /mnt/main 1
- fi
-
+ mount_module $1 /mnt/main_ro 1
eend $?
# End Load Module
@@ -351,28 +313,15 @@
mkdir -p $DIR2/dev >/dev/null 2>&1
mkdir -p $DIR2/modules >/dev/null 2>&1
- if [ -x /sbin/unionctl -o -x /usr/bin/unionctl ];then
- mount -t unionfs -o dirs=/mnt/main${UNIONFS_MOUNT_OPT} none /mnt/main
-
-# debug is no longer a unionfs-option since unionfs-2.1.x.
-# Old mount-line:
-# mount -t unionfs -o dirs=/mnt/main${UNIONFS_MOUNT_OPT},debug=$DEBUGOVERLAY none /mnt/main
-#
- unionctl /mnt/main --add --mode ro /mnt/main_ro
- unionctl /mnt/main --add --mode rw $DIR2/root
- else
- mount -t unionfs -o dirs=$DIR2/root=rw:/mnt/main_ro=ro${UNIONFS_MOUNT_OPT} none /mnt/main
+ mount -t unionfs -o dirs=$DIR2/root=rw:/mnt/main_ro=ro${UNIONFS_MOUNT_OPT} none /mnt/main
fi
eend $?
mount -t unionfs -o dirs=$DIR2/modules=rw:/MorphixCD/lib/modules=ro none /mnt/main/lib/modules
+ else
+ eerror "Unionfs is currently the only supported overlay filesystem."
+ fi
- elif [ -n "$COWLOOP" ]; then
- ebegin "Overlaying using cowloop"
- mount --bind /MorphixCD/lib/modules /mnt/main/lib/modules
- eend $?
- fi # End Setup Module
-
###
#
# Birect binds from Base system (mounting RWfs after overlaying )
@@ -392,69 +341,12 @@
else
if [ -n "$UNIONFS" ]; then
mount -t unionfs -o dirs=$DIR2/dev=rw:/MorphixCD/dev=ro none /mnt/main/dev 2>&1
- else
- mount --bind /MorphixCD/dev /mnt/main/dev
fi
cp /usr/sbin/alsa_snddevices /mnt/main/usr/sbin/alsa_snddevices >/dev/null 2>&1
chroot /mnt/main /usr/sbin/alsa_snddevices >/dev/null 2>&1
fi
-if test -n "$SPLASH"; then
- if [ -e /proc/splash ]; then
- echo "show 52000">/proc/splash 2>/dev/null
- fi
-fi
-
-###
-#
-# home dir section
-# Check for persistent homedir option and eventually mount /home from there,
-# or use a loopback file.
-#
-# Bootoption: home=/dev/* | home=/mnt/* | home=scan | home=create
-#
-###
-
- HOMEDIR="$(getbootparam home)"
- MYHOMEDEVICE=""
- MYHOMEMOUNTPOINT=""
- MYHOMEDIR=""
- if [ -n "$HOMEDIR" ]; then
- export HOMEDIR
- case "$HOMEDIR" in
- /dev/*)
- MYHOMEDEVICE="${HOMEDIR##/dev/}"
- MYHOMEDEVICE="/dev/${MYHOMEDEVICE%%/*}"
- MYHOMEMOUNTPOINT="/mnt/${MYHOMEDEVICE##/dev/}"
- MYHOMEDIR="/mnt/${HOMEDIR##/dev/}"
- ;;
- /mnt/*)
- MYHOMEDEVICE="${HOMEDIR##/mnt/}"
- MYHOMEDEVICE="/dev/${MYHOMEDEVICE%%/*}"
- MYHOMEMOUNTPOINT="/mnt/${MYHOMEDEVICE##/dev/}"
- MYHOMEDIR="$HOMEDIR"
- ;;
- [Ss][Cc][Aa][Nn])
-MYHOMEDIR="$(findfile morphix.img)"
-MYHOMEDEVICE="${MYHOMEDIR##/mnt/}"
-MYHOMEDEVICE="/dev/${MYHOMEDEVICE%%/*}"
-MYHOMEMOUNTPOINT="/mnt/${MYHOMEDEVICE##/dev/}"
-;;
-[Cc][Rr][Ee][Aa][Tt][Ee])
-MYHOMEDIR="$(createfile morphix.img)"
-MYHOMEDEVICE="${MYHOMEDIR##/mnt/}"
-MYHOMEDEVICE="/dev/${MYHOMEDEVICE%%/*}"
-MYHOMEMOUNTPOINT="/mnt/${MYHOMEDEVICE##/dev/}"
-einfo "Create home file in $MYHOMEDIR"
-;;
-*)
-eerror "Invalid ${CYAN}home=${RED} option '$HOMEDIR' specified (must start with /dev/ or /mnt/ or 'scan').${NORMAL}"
-einfo "Option ignored."
-;;
-esac
-fi
-
# Increment splash's bar, show fifth slide
if test -n "$SPLASH"; then
@@ -466,94 +358,20 @@
fi
fi
-###
-#
-# Checking for persistant /home on local hdd subdirectory
-# will be merged with the main /home function
-#
-# Bootoption: fromdirectory=dirname This bootoption is set
-# by the windows installer
-#
-###
-
-OPT=""
-LOOPN=""
-BINDSWAP=""
-BINDHOME=""
-HD_DIRECTORY="$(getbootparam fromdirectory)"
-MOUNT_IMAGE="localrw"
-if test -n "$HD_DIRECTORY";then
- /bin/mount -o remount,rw /$MOUNT_IMAGE
- LOOPN=`grep -o -e "loop[0-9]*" /proc/mounts |grep -o -e "[0-9]"`
- BINDHOME=`ls -1r /$MOUNT_IMAGE/$HD_DIRECTORY/*.home 2>/dev/null|head -n1`
- BINDSWAP=`ls -1r /$MOUNT_IMAGE/$HD_DIRECTORY/*.swap 2>/dev/null|head -n1`
-
- OPT="-o rw"
-#Check for swap!
- if [ -n "$BINDSWAP" ];then
- #must be avoid
- if ! swapon "$BINDSWAP" 2>/dev/null;then
- einfo "Formating swap device"
- mkswap "$BINDSWAP" 2>/dev/null
- swapon "$BINDSWAP"
- fi
- [ "$?" != "0" ] && einfo "Using swap file : ${YELLOW}$BINDSWAP ${NORMAL}"
- fi
-fi
-
-if test -n "$BINDHOME" ; then
- ebegin "Using home file : ${YELLOW}$BINDHOME ${NORMAL}"
- echo -n "${YELLOW}"
- /sbin/e2fsck -yf "$BINDHOME" 2>/dev/null
- echo "${NORMAL}"
- rm /home
- mkdir /home
- if ! /bin/mount -o loop,rw "$BINDHOME" /home 1>/dev/null;then
- rmdir /home
- ln -s /ramdisk/home /
- BINDHOME=""
- eend 1
- eerror "ERROR on using /home with $BINDHOME"
- else
- [ -d /home/$USERNAME ] && MYHOMEDIR="$BINDHOME"
- eend 0
- fi
- mkdir /home/root
-fi
-
-####
-#
-# very important stuff!!
-# modify the /etc/rc0.d/ to avoid the local HDD busy
-#
-# Shouldn't this be $BINDHOME, not the bindhome boot option? Olivier?
-#
-####
-
-if checkbootparam "bindhome" ;then
- cp /etc/init.d/morphix-umount /mnt/main/etc/rc0.d/K39morphix-umount
-fi
-
# always bind home dir, if a home-image is found mount it over the old one
mount --bind /home /mnt/main/home
-
mount --bind /home/root /mnt/main/root
-# /home dir's, check permissions...
-#
-
# Mount all harddisk partitions read-only (backgrounded)
+# Updated for udev
-for i in /mnt/main/mnt/[sh]d[a-z][1-9] /mnt/[sh]d[a-z][1-9]?*; do
+for i in /mnt/main/media/[sh]d[a-z][1-9]; do
if [ -d "$i" ]; then
- chroot /mnt/main mount -r "$i" &
+ mount -r "$i" &
fi
done
-# /dev files, should be a better way than this
-# as we are trying to be able to be independant of Base...
-
mkdir /mnt/main/MorphixCD 2> /dev/null
mount --bind -o ro /MorphixCD /mnt/main/MorphixCD
@@ -565,14 +383,6 @@
fi
fi
-# Copy over the hwsetup-detected symlinks
-
-cp -a /dev/cdrom* /mnt/main/dev/ 2> /dev/null
-cp -a /dev/modem* /mnt/main/dev/ 2> /dev/null
-cp -a /dev/mouse* /mnt/main/dev/ 2> /dev/null
-cp -a /dev/scanner* /mnt/main/dev/ 2> /dev/null
-cp -a /dev/systty /mnt/main/dev/systty 2> /dev/null
-
mkdir /mnt/main/etc/X11 2> /dev/null
mkdir /mnt/main/etc/network 2> /dev/null
mkdir /mnt/main/etc/sysconfig 2> /dev/null
@@ -581,24 +391,10 @@
mkdir /mnt/main/floppy >/dev/null 2>&1
mount --bind /mnt /mnt/main/mnt
-if [ -n "$BINDHOME" -a -n "$MOUNT_IMAGE" ];then
- mount --bind -o ro /$MOUNT_IMAGE /mnt/main/cdrom
-else
- mount --bind -o ro /cdrom /mnt/main/cdrom
-fi
+mount --bind -o ro /cdrom /mnt/main/cdrom
+
chroot /mnt/main mount -t sysfs /sys /sys > /dev/null 2>&1
-# also bind the usb device/dir, fstab should already be set up
-if [ -z $USBSTORAGE ]; then
- if [ -n $UsbMainModuleLoaded ]; then
- mount --bind /mnt/usb /mnt/main/usb >/dev/null 2>&1 #necessary?
- else
- umount /mnt/usb >/dev/null 2>&1
- mkdir /mnt/main/mnt/usb >/dev/null 2>&1
- chroot /mnt/main mount /mnt/usb >/dev/null 2>&1
- fi
-fi
-
# lots of stuff, might have to check which are _really_ necessary
# but for now it should work reasonably well...
@@ -680,10 +476,8 @@
fi
# Read default keyboard from config file.
-# There seems to be no reliable autoprobe possible.
-# These are started in the background for the same reason as above
+
[ -f /etc/sysconfig/keyboard ] && . /etc/sysconfig/keyboard
-# Set default keyboard before interactive setup
[ -n "$KEYTABLE" ] && chroot /mnt/main loadkeys -q $KEYTABLE &
# Add configuration file of keymap distribution for the after of the
@@ -711,29 +505,10 @@
fi
fi
-####
-#
-# Only create a new home directory and set up the user
-# if no home directory exists. If it does exist, only
-# create the user
-#
-# Bootoption: home=create OR NOT home=
-#
-###
+chroot /mnt/main useradd -s /bin/bash $USERNAME
+chroot /mnt/main chown -R $USERNAME.users /home/$USERNAME
-HOMEDIR="$(getbootparam home)"
-if test -z "$MYHOMEDIR" -o "$HOMEDIR" = "create" ;then
- rm -rf /mnt/main/home/$USERNAME
-# add the $USERNAME user, with a default homedir in /home/$USERNAME
-# files are copied from /etc/skel in the main module
- chroot /mnt/main useradd -m $USERNAME -s /bin/bash
-else
- chroot /mnt/main useradd -s /bin/bash $USERNAME
- chroot /mnt/main chown -R $USERNAME.users /home/$USERNAME
-fi
-
# make sure our users will have the locale exported by default
-
echo 'for i in `cat /etc/environment`; do export $i; done' >> /mnt/main/home/$USERNAME/.bashrc && chroot /mnt/main chown $USERNAME /home/$USERNAME/.bashrc &
echo 'for i in `cat /etc/environment`; do export $i; done' >> /mnt/main/home/$USERNAME/.bash_profile && chroot /mnt/main chown $USERNAME /home/$USERNAME/.bash_profile &
@@ -753,73 +528,14 @@
# save the persistant configuration
echo "HOMEDIR='$MYHOMEDIR'">> /etc/sysconfig/morphix
-
-if [ -n "$MYHOMEDIR" -a -z "$BINDHOME" ]; then
- if trymount "$MYHOMEDEVICE" "$MYHOMEMOUNTPOINT"; then
- [ -f "$MYHOMEMOUNTPOINT/morphix.img" ] && MYHOMEDIR="$MYHOMEMOUNTPOINT/morphix.img"
- while read device mountpoint fs relax; do
- case "$mountpoint" in *$MYHOMEMOUNTPOINT*)
- case "$fs" in *[Nn][Tt][Ff][Ss]*)
- umount "$MYHOMEMOUNTPOINT"; eerror "ERROR: WON'T MOUNT NTFS FILESYSTEM ON $MYHOMEDEVICE READ/WRITE!"
- break
- ;;
- *[Ff][Aa][Tt]*)
-# Note: This currently won't work with encrypted partitions
- umount "$MYHOMEMOUNTPOINT"; mount -t vfat -o rw,uid=$USERNAME,gid=users,umask=002 "$MYHOMEDEVICE" "$MYHOMEMOUNTPOINT"
- if [ ! -f "$MYHOMEDIR" ]; then
- ewarn "WARNING: FAT32 is not a good filesystem option for /home/$USERNAME (missing socket/symlink support)."
- ewarn "WARNING: Better use an ext2 loopback file on this device, and boot with home=$MYHOMEDEVICE/morphix.img."
- fi
- ;;
- esac
- if mount -o remount,rw "$MYHOMEMOUNTPOINT"; then
- ebegin "Mounting ${YELLOW}$MYHOMEDIR${NORMAL} as ${YELLOW}/home/$USERNAME${NORMAL}... "
- if [ -f "$MYHOMEDIR" ]; then
-# It's a loopback file, mount it over the /home/$USERNAME directory
- mkdir /home/$USERNAME &>/dev/null
-
- trymount "$MYHOMEDIR" /home/$USERNAME
- RC="$?"
- [ "$RC" = "0" ] && ERROR="$(mount -o remount,rw,sync /home/$USERNAME 2>&1)"
- RC="$?"
- else
-# Do a --bind mount
- ERROR="$(mount --bind "$MYHOMEDIR" /home/$USERNAME 2>&1)"
- RC="$?"
- fi
- mount --bind /home/$USERNAME /mnt/main/home/$USERNAME
- [ "$RC" = "0" ] && einfo "/home/$USERNAME mounted OK." || { eerror "FAILED."; einfo "$ERROR"; }
- fi
- eend $?
- break
- ;;
- esac
- done <<EOT
-$(cat /proc/mounts)
-EOT
- fi
-fi
-
-
if test -n "$SPLASH"; then
if [ -e /proc/splash ]; then
echo "show 64000">/proc/splash 2>/dev/null
fi
fi
-# Bedankt Luuk!
-# Permissions fixes
-chmod 0777 /dev/zero
chmod 0777 /mnt/main/var/tmp
-# Small bugfix for /dev/tty0 problem
-if [ ! -x /etc/init.d/udev ];then
- rm /dev/tty0
- mknod /dev/tty0 c 4 0
- chmod 660 /dev/tty0
- chgrp tty /dev/tty0
-fi
-
[ -n "$NEWXMODULE" ] && { XMODULE="$NEWXMODULE" ; echo "XMODULE='$XMODULE'" >> /etc/sysconfig/morphix ; echo "XMODULE='$XMODULE'" >> /etc/sysconfig/xserver; }
###
@@ -843,18 +559,6 @@
fi
fi
-# Start hotplug manager for PCI/USB/Firewire/Cardbus in mainmodule
-
-#if [ -n "$HOTPLUG" -a -x /mnt/main/sbin/hotplug ]; then
-# echo " ${GREEN}Enabling hotplug manager.${NORMAL}"
-# echo "/sbin/hotplug" > /proc/sys/kernel/hotplug
-# chroot /mnt/main /etc/init.d/hotplug start >/dev/null 2>&1
-#fi
-
-#if [ ! -x /mnt/main/sbin/hotplug ]; then
-# echo "${YELLOW} Couldn't find /sbin/hotplug in mainmodule, you probably want to add hotplug to it${NORMAL}"
-#fi
-
###
#
# Fat-Client-Version: DHCP Broadcast for IP address
@@ -1073,52 +777,43 @@
USBBOOTING="$(getbootparam usbboot)"
if [ -z "$USBSTORAGE" -a -z "$USBBOOTING" ]; then
modprobe usb-storage >/dev/null 2>&1
- mkdir /mnt/sda1 >/dev/null 2>&1
- ln -s /mnt/sda1 /mnt/usb >/dev/null 2>&1
- echo "/dev/sda1 /mnt/sda1 auto noauto,users,exec,umask=000,uid=$USERNAME 0 0" >> /etc/fstab
- mount /mnt/sda1 >/dev/null 2>&1
fi
#
-# Check USB device for mainmodules
+# Check devices for mainmodule
#
if [ -z "$USBSTORAGE" ]; then
- if [ -d /mnt/usb/mainmod ]; then
- UsbMainModules="$(ls -d1 /mnt/usb/mainmod/*.mod 2> /dev/null)"
- UsbMainModulesCount="$(ls -d1 /mnt/usb/mainmod/*.mod 2> /dev/null | wc -l)"
- if [ $UsbMainModulesCount = 0 ]; then
- einfo "No MainModules found on usb drive"
- fi
- if [ $UsbMainModulesCount = 1 ]; then
- einfo "Loading MainModule from usb drive"
- UsbMainModuleLoaded="$UsbMainModules"
- load_module "$UsbMainModules"
- elif [ $UsbMainModulesCount > 1 ]; then
+ MainModules="$(ls -d1 /media/*/mainmod/*.mod 2> /dev/null)"
+ MainModulesCount="$(ls -d1 /media/*/mainmod/*.mod 2> /dev/null | wc -l)"
+ if [ $MainModulesCount = 0 ]; then
+ einfo "No MainModules found on connected devices"
+ fi
+ if [ $MainModulesCount = 1 ]; then
+ einfo "Loading MainModule from connected device"
+ MainModuleLoaded="$MainModules"
+ load_module "$MainModules"
+ elif [ $MainModulesCount > 1 ]; then
echo
- einfo "More than one MainModule found on usb drive"
+ einfo "More than one MainModule found on devices"
einfo "List of modules:"
einfo "${WHITE} $UsbMainModules ${NORMAL}"
echo
PS3='Please enter the desired MainModule: '
- select UsbMainMod in $UsbMainModules
+ select MainMod in $MainModules
do
echo
- einfo "Loading $UsbMainMod"
+ einfo "Loading $MainMod"
echo
- UsbMainModuleLoaded="$UsbMainMod"
- load_module "$UsbMainMod"
+ MainModuleLoaded="$MainMod"
+ load_module "$MainMod"
break
done
fi
fi
fi
-if [ -z "$USBSTORAGE" -a -z "$USBBOOTING" ]; then
- umount /mnt/sda1 >/dev/null 2>&1
-fi
-
###
#
# Find MainModules from /cdrom, select if > 1
Modified: trunk/scripts-base/miniroot/debian/changelog
===================================================================
--- trunk/scripts-base/miniroot/debian/changelog 2008-03-19 23:12:50 UTC (rev 2619)
+++ trunk/scripts-base/miniroot/debian/changelog 2008-03-27 16:46:19 UTC (rev 2620)
@@ -1,3 +1,9 @@
+miniroot-morphix (0.1-16) unstable; urgency=low
+
+ * minor cleanups
+
+ -- Alex de Landgraaf <al...@de...> Thu, 27 Mar 2008 17:41:07 +0100
+
miniroot-morphix (0.1-15) unstable; urgency=low
* Number of minor USB drive fixes (By Markus Mandalka)
Modified: trunk/scripts-base/miniroot/linuxrc-scripts/linuxrc
===================================================================
--- trunk/scripts-base/miniroot/linuxrc-scripts/linuxrc 2008-03-19 23:12:50 UTC (rev 2619)
+++ trunk/scripts-base/miniroot/linuxrc-scripts/linuxrc 2008-03-27 16:46:19 UTC (rev 2620)
@@ -621,27 +621,18 @@
mkdir -p /var/run /var/backups /var/local \
/var/tmp /var/lib /var/state/misc \
/mnt/cdrom /mnt/floppy /mnt/hd /mnt/test \
- /home/root /etc/sysconfig /etc/X11
-# /home/morph
-# /var/nis /var/preserve
-# /var/spool/cups/tmp \
-# chown morph.morph /home/morph
+ /home/root /etc/sysconfig /etc/X11 /media
+
# Create empty utmp and wtmp
:> /var/run/utmp
:> /var/run/wtmp
cp -a /MorphixCD/var/local /MorphixCD/var/log \
/var/ >/dev/null
-# /MorphixCD/var/spool
-# cp -a /MorphixCD/var/lib/nfs /MorphixCD/var/lib/xkb /MorphixCD/var/lib/isdn \
-# /MorphixCD/var/lib/pcmcia /var/lib/ 2>/dev/null
-# Problematic directories in /var/lib (lots and lots of inodes)
-# ln -s
-#/MorphixCD/var/lib/dpkg /MorphixCD/var/lib/apt \
-# /MorphixCD/var/lib/scrollkeeper \
-# ln -s /var/lib/ 2>/dev/null
+
# Debian-apt
# ln -s /MorphixCD/var/cache/apt /var/cache/ 2>/dev/null
+
rm /etc/resolv.conf 2>/dev/null
ln -s /MorphixCD/etc/skel /etc/dhcpc/resolv.conf \
/etc/ >/dev/null
@@ -652,8 +643,6 @@
cp -a /MorphixCD/dev/* /ramdisk/dev/
/bin/mount --bind /ramdisk/dev /dev
-# Index files can be HUGE, so better replace cache/man tree by links later
-# cp -a /MorphixCD/var/cache/man /var/cache/ 2>/dev/null
# Create links from CDROM for UNWRITABLE (remaining) files
cp -aus /MorphixCD/var/* /var/ >/dev/null
@@ -661,24 +650,12 @@
cp -a /MorphixCD/etc/* /ramdisk/etc/
cp -a /etc/fstab /ramdisk/etc/ 2>/dev/null
-# cp -a /etc/mtab /ramdisk/etc/ 2>/dev/null
/bin/mount --bind /ramdisk/etc /etc
-# Make SURE that these are files, not links!
-# rm -rf /etc/passwd /etc/shadow /etc/group \
-# /etc/ppp /etc/isdn /etc/ssh /etc/ioctl.save \
-# /etc/inittab /etc/network /etc/sudoers \
-# /etc/init /etc/localtime /etc/dhcpc /etc/pnm2ppa.conf >/dev/null
-
-# cp -a /MorphixCD/etc/passwd /MorphixCD/etc/shadow /MorphixCD/etc/group \
-# /MorphixCD/etc/ppp /MorphixCD/etc/isdn /MorphixCD/etc/ssh \
-# /MorphixCD/etc/inittab /MorphixCD/etc/network /MorphixCD/etc/sudoers \
-# /MorphixCD/sbin/init /MorphixCD/etc/dhcpc /etc/ >/dev/null
# Extremely important, init crashes on shutdown if this is only a link
:> /etc/ioctl.save
:> /etc/pnm2ppa.conf
-# Diet libc bug workaround
-# cp -f /MorphixCD/etc/localtime /etc/localtime
+
echo "${BLUE}Done.${NORMAL}"
# Now tell kernel where the real modprobe lives
Added: trunk/scripts-base/usr/sbin/linux_devices.py
===================================================================
--- trunk/scripts-base/usr/sbin/linux_devices.py (rev 0)
+++ trunk/scripts-base/usr/sbin/linux_devices.py 2008-03-27 16:46:19 UTC (rev 2620)
@@ -0,0 +1,45 @@
+import os
+
+def get_device_partitions(prefix="usb-"):
+ """
+ Assume: udev is enabled
+ """
+
+ udev_disks = "/dev/disk/by-id"
+ files = os.listdir(udev_disks)
+ disk_partitions = []
+ for file in files:
+ if not file.startswith(prefix + "-") or file.find("-part") == -1:
+ continue
+
+ file_str = file[4:]
+ parts = file_str.split("_")
+ if len(parts) < 2:
+ continue
+ if len(parts) < 3:
+ parts += [""]
+
+ dest = os.readlink(udev_disks + "/" + file)
+ dest_dev = dest[-4:]
+ if len(dest_dev) != 4:
+ continue
+
+ disk_partitions += [[file, parts[0] + " " + parts[1] + " " + parts[2], dest_dev]]
+
+ return disk_partitions
+
+def get_partition_size(partition):
+ proc_partitions = "/proc/partitions"
+
+ fd = open(proc_partitions, "r")
+ data = fd.read()
+ fd.close()
+
+ data = data.split("\n")
+ for line in data[2:]:
+ line_data = line.split()
+ if len(line_data) != 4:
+ continue
+ if line_data[3] == partition:
+ return line_data[2]
+ return -1
Modified: trunk/scripts-base/usr/sbin/rebuildfstab
===================================================================
--- trunk/scripts-base/usr/sbin/rebuildfstab 2008-03-19 23:12:50 UTC (rev 2619)
+++ trunk/scripts-base/usr/sbin/rebuildfstab 2008-03-27 16:46:19 UTC (rev 2620)
@@ -4,101 +4,7 @@
# slightly editted for morphix usage
#
# $Id$
-#
-PATH="/bin:/sbin:/usr/bin:/usr/sbin"
-export PATH
-umask 022
+# Removed, now using rebuildfstab-morphix instead
-[ ! -e /proc/partitions ] && { echo "$0: /proc not mounted, exiting" >&2; exit 1; }
-
-if [ -e /var/run/rebuildfstab.pid ]; then
- ps "$(</var/run/rebuildfstab.pid)" >/dev/null 2>&1 && exit 0
- rm -f /var/run/rebuildfstab.pid
-fi
-
-echo "$$" >/var/run/rebuildfstab.pid
-
-XSH=""
-[ -n "$DISPLAY" ] && XSH="rxvt -bg black -fg green -cr red -T $0 -e"
-
-[ "`id -u`" != "0" ] && { exec $XSH sudo $0 "$@"; }
-
-
-TMP="/tmp/fstab.$$.tmp"
-ADDEDBYKNOPPIX="# Added by Morphix"
-
-# Simple shell grep, searches for lines STARTING with string
-stringinfile(){
-while read line; do
-case "$line" in $1*) return 0;; esac
-done <"$2"
-return 1
-}
-
-removeentries(){
-# Remove comment line $1 and the following line from file $2
-# sed '/^# Added by KNOPPIX/{N;d;}'
-while read line; do
-case "$line" in $1) read line; continue ;; esac
-echo "$line"
-done <"$2"
-}
-
-verbose=""
-remove=""
-user=""
-group=""
-arg="$1"
-while [ -n "$arg" ]; do
- case "$arg" in
- -v*) verbose="yes" ;;
- -r*) remove="yes" ;;
- -u*) shift; user="$1" ;;
- -g*) shift; group="$1" ;;
- *) echo "Usage: $0 [-v[erbose]] [-r[emove_old]] [-u[ser] uid] [ -g[roup] gid]" ;;
- esac
- shift
- arg="$1"
-done
-
-[ -n "$verbose" ] && echo "Scanning for new harddisks/partitions..." >&2
-rm -f "$TMP"
-
-if [ -n "$remove" ]; then
- removeentries "$ADDEDBYKNOPPIX" /etc/fstab >"$TMP"
-else
- cat /etc/fstab >"$TMP"
-fi
-
-count=0
-while read device mountpoint fstype relax; do
- stringinfile "$device " "$TMP" || \
- { count="$((count + 1))"
- [ -d "$mountpoint" ] || mkdir -p "$mountpoint" 2>/dev/null
- options="noauto,users,exec"
- case "$fstype" in
- ntfs) options="${options},ro,umask=000" ;;
- vfat|msdos) options="${options},umask=000" ;;
- swap) options="defaults" ;;
- esac
- case "$fstype" in
- ntfs|vfat|msdos)
- [ -n "$user" ] && options="$options,uid=$user"
- [ -n "$group" ] && options="$options,gid=$group"
- ;;
- esac
- echo "$ADDEDBYKNOPPIX"
- echo "$device $mountpoint $fstype $options 0 0"; }
-done >>"$TMP" <<EOT
-$(scanpartitions)
-EOT
-
-[ -n "$verbose" ] && { [ "$count" -gt 0 ] && echo "Adding $count new partitions to /etc/fstab." >&2 || echo "No new partitions found." >&2; }
-mv -f "$TMP" /etc/fstab
-
-rm -f /var/run/rebuildfstab.pid
-
-[ -n "$DISPLAY" ] && sleep 2
-
exit 0
Added: trunk/scripts-base/usr/sbin/rebuildfstab-morphix
===================================================================
--- trunk/scripts-base/usr/sbin/rebuildfstab-morphix (rev 0)
+++ trunk/scripts-base/usr/sbin/rebuildfstab-morphix 2008-03-27 16:46:19 UTC (rev 2620)
@@ -0,0 +1,48 @@
+#!/usr/bin/python
+# $Id$
+
+# A small script to rebuild the fstab file using udev
+# (instead of the aging Knoppix-routine in rebuildfstab)
+# We assume udev has been enabled for /dev before running this script
+# Also makes the directories under /media for all devices
+
+# Makes use of the python-minimal package, in order to minimize base size
+
+# First argument to this script should be the username of the Morphix user,
+# else this is 'morph'
+
+from linux_devices import get_device_partitions, get_partition_size
+import sys, os
+
+if len(sys.argv) > 1:
+ username = sys.argv[1]
+else:
+ username = "morph"
+
+# Basic initial fstab
+
+fstab = "/proc /proc proc defaults 0 0\n\
+/sys /sys sysfs noauto 0 0\n\
+/dev/pts /dev/pts devpts mode=0622 0 0\n\
+/dev/fd0 /media/floppy auto user,noauto,exec,umask=000,uid=" + username + " 0 0\n\
+/dev/cdrom /media/cdrom auto user,noauto,exec,ro,uid=" + username + " 0 0\n"
+
+def add_to_fstab(fstab, partitions, username):
+
+ for p in partitions:
+ system("mkdir -p /media/" + p[2])
+ line = "/dev/" + p[2] + " /media/" + p[2] + " auto defaults,users,uid=" + username + " 0 0\n"
+ fstab += line
+ return fstab
+
+# Add these to the fstab
+
+fstab = add_to_fstab(fstab, get_device_partitions("ata"), username)
+fstab = add_to_fstab(fstab, get_device_partitions("scsi"), username)
+fstab = add_to_fstab(fstab, get_device_partitions("usb"), username)
+
+fd = open("/etc/fstab", "w")
+fd.write(fstab)
+fd.close()
+
+
Property changes on: trunk/scripts-base/usr/sbin/rebuildfstab-morphix
___________________________________________________________________
Name: svn:executable
+ *
Modified: trunk/scripts-base/usr/sbin/scanpartitions
===================================================================
--- trunk/scripts-base/usr/sbin/scanpartitions 2008-03-19 23:12:50 UTC (rev 2619)
+++ trunk/scripts-base/usr/sbin/scanpartitions 2008-03-27 16:46:19 UTC (rev 2620)
@@ -1,91 +1,4 @@
#!/bin/bash
-# (C) Klaus Knopper Nov 2002
-# Reads /proc/partitions, returns table of the form
-# basename(devicefile) mountpoint filesystemtype
-# Useful for automatic generation of /etc/fstab entries (you
-# still may have to add noauto 0 0).
-#
# $Id$
-#
-[ ! -e /proc/partitions ] && { echo "$0: /proc not mounted, exiting" >&2; exit 1; }
-
-fstype(){
-[ -n "$1" ] || return 1
-
-# Check if partition is already mounted
-while read device mountpoint filesystem relax; do
-case "$device" in *$1*) echo "$filesystem"; return 0;; esac
-done <<EOT
-$(cat /proc/mounts)
-EOT
-
-# Check if a device/medium is present at all
-dd if="$1" count=1 bs=1024 >/dev/null 2>&1 || return 2
-FILE="$(LANG=C LC_ALL=C LC_MESSAGES=C file -Ls "$1")"
-[ "$?" = "0" ] || return 2
-
-# File systems to try first
-FILESYSTEMS=""
-case "$FILE" in
-*[Ff][Aa][Tt]*|*[Xx]86*) FILESYSTEMS="vfat msdos ntfs";;
-*[Rr][Ee][Ii][Ss][Ee][Rr]*) echo "reiserfs"; return 0;;
-*[Xx][Ff][Ss]*) echo "xfs"; return 0;;
-*[Ee][Xx][Tt]3*) echo "ext3"; return 0;;
-*[Ee][Xx][Tt]2*) echo "ext2"; return 0;;
-*[Ss][Ww][Aa][Pp]*) echo "swap"; return 0;;
-esac
-# It seems that only reliable way to identify the filesystem is to attempt a mount
-TMPDIR="/tmp/autmount.${1##*/}.$$.dir"
-mkdir -p "$TMPDIR" || return 3
-FS=""
-# Don't clobber console while attemting a mount
-read LOGLEVEL relax < /proc/sys/kernel/printk
-echo "0" >/proc/sys/kernel/printk
-for f in $FILESYSTEMS $(</etc/filesystems); do
-mount -r -t "$f" "$1" "$TMPDIR" >/dev/null 2>&1 && { umount "$TMPDIR"; FS="$f"; break; }
-umount -f "$TMPDIR" >/dev/null 2>&1
-done
-echo "$LOGLEVEL" >/proc/sys/kernel/printk
-rmdir "$TMPDIR"
-[ -n "$FS" ] && echo "$FS" || return 4
-}
-
-###
-
-if [ -z "$1" ]; then
-partitions=""
-disks=""
-pold="none"
-while read major minor blocks partition relax; do
-partition="${partition##*/}"
-[ -z "$partition" -o ! -e "/dev/$partition" ] && continue
-[ "$blocks" -lt 2 ] && continue
-case "$partition" in
-[hs]d?) disks="$disks $partition";;
-loop*) continue;;
-*) partitions="$partitions /dev/$partition";;
-esac
-done <<EOT
-$(awk 'BEGIN{old="__start"}{if($0==old){exit}else{old=$0;if($4&&$4!="name"){print $0}}}' /proc/partitions)
-EOT
-
-# Add disks without partition table (probably ZIP drives)
-for d in $disks; do
-case "$partitions" in */dev/$d*) continue;; esac
-partitions="$partitions /dev/$d"
-done
-else
-partitions="$*"
-fi
-
-for p in $partitions; do
-fs="auto"
-scanfs="$(fstype $p)"
-[ -n "$scanfs" ] && fs="$scanfs"
-mountpoint="/mnt/${p##*/}"
-[ "$fs" = "swap" ] && mountpoint="none"
-echo "${p}" "${mountpoint}" "${fs}"
-done
-
-exit 0
+# Removed, see rebuildfstab-morphix
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|