nur Bahnhof

linux mount/fstab-sctipt

· Oluf Lorenzen

`# This utility searches for available HFS+, NTFS and FAT32 partitions, creates

mount points for them and adds them to /etc/fstab`

müsste man mal unter meinem ubuntu ausprobieren… falls das tot sein sollte, gibts das Teil hier nochmal
->
``#!/bin/bash
####################

This utility searches for available HFS+, NTFS and FAT32 partitions, creates

mount points for them and adds them to /etc/fstab

(c)2005 Dennis Kaarsemaker

#

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 2

of the License, or (at your option) any later version.

#

Instructions for use:

- Save this file on your local hard drive

- Open a terminal and type sudo bash winmac_fstab

- If sudo asks for a password, use your own password

- Your windows and mac partitions will now be mounted everytime

you boot. You can delete this script now

#

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, write to the Free Software

Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

###################

# Root check
if [[ $UID != 0 ]]; then
echo ‘Tou should run this program as root or using sudo’
exit 1
fi

# Get label for disk, consisting of size and name (fs labels proves too hard)
getlabel() {
MAJ=`file /dev/$drive | sed -e ’s/.*((.).*/1/’`
MIN=`file /dev/$drive | sed -e ’s/.*(..(.).*/1/’`
UDI=”/org/freedesktop/Hal/devices/block_${MAJ}_${MIN}”
SIZE=`hal-get-property –udi $UDI –key volume.size`
GB=`python -c “print int(round($SIZE.0 / (1024**3)))”`
label=”$GB40GB40Disk40($drive)”
label2=”$GB GB Disk ($drive)”
}

# Simple command line argument for installers
# -w: mount them with user,umask=0111
# -r: mount them with user,umask=0133,uid=1000,gid=1000
RWALL=-1;
if [[ $1 == ‘-w’ ]]; then RWALL=1; fi
if [[ $1 == ‘-r’ ]]; then RWALL=0; fi

if [[ $RWALL == -1 ]]; then
echo ‘By default the disks will be writable only by root and’
cat /etc/passwd | awk -F ‘:|,’ ‘/:1000:/ {print $5 ” (” $1 “)”}’
echo ‘Do you want to make the disk writable by all users instead? (y/n)’
read RESP
if [[ $RESP == ‘y’ || $RESP == ‘Y’ ]]; then
RWALL=1
else
RWALL=0
fi
fi

if [[ $RWALL == 1 ]]; then
OPTIONS=’user,fmask=0111,dmask=0000′
MACOPTIONS=’user,file_umask=0111,dir_umask=0000′
else
OPTIONS=’user,fmask=0133,dmask=0022,uid=1000,gid=1000′
MACOPTIONS=’user,file_umask=0133,dir_umask=0022,uid=1000,gid=1000′
fi

# Now for the real work
drivesntfs=`fdisk -l | grep -i ‘ntfs’ | awk -F ‘/| ‘ ‘{print $3}’`
drivesfat=`fdisk -l | grep -i ‘fat32′ | awk -F ‘/| ‘ ‘{print $3}’`
driveshfs=`fdisk -l | grep -i ‘Apple_HFS’ | awk -F ‘/| ‘ ‘{print $3}’`

donesomething=’n’
for drive in $drivesntfs
do
getlabel $drive
if [[ ! `grep $drive /etc/fstab` ]]
then
mkdir “/media/$label2″
echo “#Added by winmac_fstab utility” >> /etc/fstab
echo “/dev/$drive /media/$label ntfs ro,$OPTIONS 0 0″ >> /etc/fstab
echo “Added /dev/$drive as ‘/media/$label2′”
donesomething=’y’
else
echo “Ignoring /dev/$drive - already in /etc/fstab”
fi
done
if [[ $donesomething == ‘y’ ]]
then
echo “NTFS drives will be mounted read-only!”
fi
for drive in $drivesfat
do
getlabel $drive
if [[ ! `grep $drive /etc/fstab` ]]
then
mkdir “/media/$label2″
ln -s “/media/$label2″ /media/$drive # yay, spaceless link for b0rken programs
echo “#Added by winmac_fstab utility” >> /etc/fstab
echo “/dev/$drive /media/$label vfat rw,$OPTIONS 0 0″ >> /etc/fstab
echo “Added /dev/$drive as ‘/media/$label2′”
donesomething=’y’
else
echo “Ignoring /dev/$drive - already in /etc/fstab”
fi
done
for drive in $driveshfs
do
getlabel $drive
if [[ ! `grep $drive /etc/fstab` ]]
then
mkdir “/media/$label2″
echo “#Added by winmac_fstab utility” >> /etc/fstab
echo “/dev/$drive /media/$label hfsplus rw,$MACOPTIONS 0 0″ >> /etc/fstab
echo “Added /dev/$drive as ‘/media/$label2′”
donesomething=’y’
else
echo “Ignoring /dev/$drive - already in /etc/fstab”
fi
done

if [[ $donesomething == ‘y’ ]]
then
# And mount them
mount -a
echo “All windows and mac partitions will now be mounted every time you boot”
echo “You do not need to reboot, the partitions are mounted now too”
else
echo “No usable windows/mac partitions found”
fi

``

Comments

#*nix

Auf diesen Beitrag per Email antworten ↪