Αποσπωμενος Δισκος /flash δισκος
djemos
dijemos at yahoo.gr
Sat Jan 28 16:06:47 EET 2006
O/H basil έγραψε:
> Ενα θεμα που τιθεται αν εχεις 2 αποσπωμενα mass storage devices (π.χ.
> "φλασακι" και σκληρο δισκο , σε usb και τα 2) ειναι οτι καθε φορα που τα
> συνδεεις παιρνουν το πρωτο διαθεσιμο ονομα (/dev/sda , sdb κλπ). Αυτο τα
> κανει δυσχρηστα για καταχωρησεις στο fstab.
> Αν καποιος εχει αντιμετωπισει το προβλημα , ειτε με τον τροπο του να γινεται
> παντα η καταχωρηση μιας συσκευης σε συγκεκριμενο device, ειτε δυναμικα
> τροποιοντας το fstab να δειχνει στο device ας το πει......
>
Στο slackel-1.0 livecd που δημιούργησα η αναγνώριση των usb devices
γίνεται αυτόματα με ένα script to /usr/bin/mntall που δουλεύει σαν
δαίμονας και από το οποίο καλείται ενα άλλο το /usr/bin/fstab-create που
ενημερώνει δυναμικά το fstab. Ετσι στο kde εμφανίζεται το εικονίδιο
του usb και κάνοντας κλίκ βλέπεις τα περιεχόμενα. Με δεξί κλικ
επιλέγοντας ασφαλής αφαίρεση και βγάζοντας το εξαφανίζεται το εικονίδιο.
Εννοείται οτι με τα προσαρτώνται και όλοι οι δίσκοι αυτόματα που
υπάρχουν στο σύστημα. Εννοείται οτι το mntall θα φορτώνεται κατα την
εκκίνηση του συστήματος ως εξής
# make sure all devices are in fstab
echo "Mounting all disk partitions in /mnt/ ..."
/usr/bin/fstab-create -m
ls -1 /mnt/* | grep -v live | xargs -r -n 1 mount 2>/dev/null
# start the daemon to recreate fstab if a device is plugged.
# I know that it's not the best idea to use bash script for this,
# but it's better then nothing for now
/usr/bin/mntall &
Αυτό είναι το mntall
#!/bin/bash
if [ "`cat /proc/cmdline | grep nohd`" != "" -o "`cat /proc/cmdline |
grep nohotplug`" !
exit 0
fi
echo "Starting $0 daemon, which will update fstab automatically ..."
while [ 1 ]; do
PARTS="$(< /proc/partitions)"
if [ "$OLDPARTS" != "$PARTS" ]; then
/usr/bin/fstab-create -m
OLDPARTS="$PARTS"
fi
sleep 1
done
και αυτό το fstab-create
#!/bin/bash
# recreate fstab entries in /etc/fstab
# (and make /mnt directories if $1 = -m)
#
# Author: Tomas M <http://slax.linux-live.org/>
# Modified: by Dimitris Tzemos <djemos at tetradio.gr>
if [ "`cat /proc/cmdline | grep nohd`" != "" -o "`cat /proc/cmdline |
grep nohotplug`" != "" ]; then
exit 0;
fi
if grep el_GR /proc/cmdline 1> /dev/null 2> /dev/null ; then
GRFS=""
else
GRFS=",utf8"
fi
FSTAB=/etc/fstab
echo "tmpfs / tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
proc /proc proc defaults 0 0
/dev/fd0 /mnt/floppy vfat,msdos
noauto,users,suid,dev,exec,codepage=737,iocharset=iso8859-7$GRFS,rw 0 0"
>$FSTAB~
cat /proc/partitions | grep -v loop | egrep -o "[a-z]+[0-9]+" | while
read PART; do
DEV=/dev/$PART
MNT=/mnt/$PART
DEV0="`echo $PART | egrep -o \"[a-z]+\"`"
if [ "0`cat /sys/block/$DEV0/removable 2>/dev/null`" -ne 0 ]; then
MNT=$MNT"_removable"
MNTRV="removable"
fi
FS="`blkid -s TYPE $DEV | cut -d = -f 2 | tr -d \" \\\"\"`"
if [ "$FS" = "msdos" ]; then FS="vfat,msdos"; fi
if [ "$FS" != "" ]; then
if [ "$FS" = "swap" ]; then echo "$DEV $FS $FS $FS 0 0" >>$FSTAB~
elif [ "$FS" = "vfat,msdos" ]; then
echo "$DEV $MNT $FS
umask=000,auto,users,suid,dev,exec,codepage=737,iocharset=iso8859-7$GRFS,rw
0 0" >>$FSTAB~
elif [ "$FS" = "vfat" ]; then
echo "$DEV $MNT $FS
umask=000,auto,users,suid,dev,exec,codepage=737,iocharset=iso8859-7$GRFS,rw
0 0" >>$FSTAB~
elif [ "$FS" = "ntfs" ]; then
echo "$DEV $MNT $FS
umask=000,auto,users,suid,dev,exec,iocharset=utf8,rw 0 0" >>$FSTAB~
else echo "$DEV $MNT $FS auto,users,suid,dev,exec 0 0" >>$FSTAB~
fi
fi
done
for DEV in `cat /proc/sys/dev/cdrom/info | head -n 3 | tail -n 1 | cut
-d ":" -f 2`; do
echo "/dev/$DEV /mnt/$DEV""_cdrom auto
noauto,users,exec,iocharset=utf8 0 0" >>$FSTAB~
done
mv $FSTAB~ $FSTAB
if [ "$1" = "-m" ]; then
cat $FSTAB | egrep -o "/mnt/[a-z0-9_]+" | xargs -r mkdir -p
fi
Ελπίζω να σε βοηθήσουν αυτά να βγάλεις άκρη. Η κατέβασε το slackel-1.0
απο το www.ellak.gr για να το δοκιμάσεις
Φιλικά Δημήτρης Τζέμος
djemos at tetradio.gr
More information about the Linux-greek-users
mailing list