Re: Deviceproblem Umass 2.Versuch

From: Dieter Deinert <dd(at)radio-do.ath.cx>
Date: Wed, 22 Feb 2006 22:28:28 +0100

Hallo
die erste Anfrage war wohl etwas ungenau. Ich bin fest davon
ausgegangen ICH habe Mist in das Script gebracht.

Das das OS so auf Fehler reagiert, hatte ich nicht angenommen.

Hier noch einmal jetzt Handmade der gesamte Ablauf
incl. fdisk, fsck, mount.....

Noch mal auf Anfang bitte; :-)) Umass die 2. :-))
Ton?Kamera?Aktion ;-))

Schrittweise, Handbetrieb:

KEIN Eintrag in der FSTAB. Kein amd (warum siehe unten)

devfs.conf setzt
own /dev/da* root:mount
perm /dev/da* 0666

Es koennen alle USER in der Group mount "/dev/da*" Geraete als User mounten

in /../local/etc/devd(xxxxxx.conf ist ein Eintrag

attach 100 {
   device-name "umass[0-9]+";
   action "/bin/sleep 3; /etc/rc.d/devfs restart;
/usr/local/share/umass/ \
                    umassaction attach $device-name";
(...) usw.

usermount in sysctl ist permanet in de Conf auf 1 gesetzt!!

(ich moechet bitte nicht ueber Sicherheit reden ;-))

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

Ich stecke einen USB-Stick ein:

camcontrol devlist -v sagt

scbus0 on umass-sim0 bus 0:
<SanDisk Cruzer Mini 0.2> at scbus0 target 0 lun 0 (da0,pass0)
scbus3 on sbp0 bus 0:

(Macht keine Aussage ueber den Slice, nur ueber den /da(x)

ll /dev/da* sagt
crw-rw-rw- 1 root mount 0, 147 Feb 22 17:52 /dev/da0
crw-rw-rw- 1 root mount 0, 148 Feb 22 17:52 /dev/da0s1

Das sagt schon mehr. Aber ich bin auf guten Rat hin, ja Misstrauisch.

fsck_msdosfs /dev/da0s1
** /dev/da0s1
** Phase 1 - Read and Compare FATs
** Phase 2 - Check Cluster Chains
** Phase 3 - Checking Directories
** Phase 4 - Checking for Lost Files
8 files, 999440 free (62465 clusters)

Sauber!
Der Slice da0s1 scheint mountfaehig. Weiss ich doch schon , ueberfluesig
geprueft ;-))

<103># mount
#mount_msdosfs /dev/da0s1 /mnt/test
keine Fehlermeldung!!
#mount
/dev/da0s1 on /mnt/test (msdosfs, local)

#ls /mnt/test/* ist erfolgreich.Ich kann lesen

nochmal ll /dev/da*

crw-rw-rw- 1 root mount 0, 147 Feb 22 17:52 /dev/da0
crw-rw-rw- 1 root mount 0, 148 Feb 22 17:52 /dev/da0s1

So sollte es sein und so ist es auch. Normalfall. Hab ich auch so erwartet.

====================================

Ich setze den Fall das USB Geraet ist unbekannt

dann muss ich, wenn ich mounten will, egal ob per Hand oder automatisch
mounte, pruefen welcher Slice der Richtige mountfaehige ist.

Richtig? Sind wir wohl alle einer Meinung. Frisch ans Werk ;-)

Das kann ich per fsck, fdisk machen oder per mount et all. Auf jeden
Fall muss
ich die Slice dazu anfassen.

noch mal, damit es auch ehrlich bleibt

ll /dev/da*
crw-rw-rw- 1 root mount 0, 147 Feb 22 17:52 /dev/da0
crw-rw-rw- 1 root mount 0, 148 Feb 22 17:52 /dev/da0s1

Jetzt
fdisk -s /dev/da0
/dev/da0: 977 cyl 64 hd 32 sec
Part Start Size Type Flags
   1: 245 1999627 0x06 0x00

Das sagt was, kann man interpretieren

die Kontrolle
ll /dev/da*
crw-rw-rw- 1 root mount 0, 147 Feb 22 17:52 /dev/da0
crw-rw-rw- 1 root mount 0, 148 Feb 22 17:52 /dev/da0s1

alles sauber. Hab noch einen 2. Slice

fdisk -s /dev/da0s1
/dev/da0s1: 976 cyl 64 hd 32 sec
Part Start Size Type Flags
   1: 1684955424 1701998624 0x6c 0x0a
   2: 1998616933 544105832 0x6e 0x73
   3: 538988361 538976288 0x79 0x72
   4: 1394614304 21337 0x53 0x53

Auch eine Aussage, auch sauber. 2 Partitionen auf dem Stick. Ich kann jetzt
nur vermuten was wo ist. Werde wohl pruefen muessen.

die Kontrolle

ll /dev/da*
crw-rw-rw- 1 root mount 0, 147 Feb 22 17:52 /dev/da0
crw-rw-rw- 1 root mount 0, 148 Feb 22 17:52 /dev/da0s1

Es ist kein Fehler vorgekommen die Device sind unberührt und sauber

Man nehme fsck

fsck_msdosfs /dev/da0
** /dev/da0 (NO WRITE)
Invalid sector size: 20487

Das wird wohl nicht der richtige Slice sein :-))

die Kontrolle
ll /dev/da*
crw-rw-rw- 1 root mount 0, 142 Feb 22 18:23 /dev/da0
crw-r----- 1 root operator 0, 143 Feb 22 18:23 /dev/da0s1

Oh boese Falle . Rechte & Group fuer /da0s1 sind geaendert

noch zum Abschluss

fsck_msdosfs /dev/da0s1
** /dev/da0s1
** Phase 1 - Read and Compare FATs
** Phase 2 - Check Cluster Chains
** Phase 3 - Checking Directories
** Phase 4 - Checking for Lost Files
8 files, 999440 free (62465 clusters)

Auch sauber aber leider ist vorher etwas passiert, was ich nicht wollte!

=================================

So. Jetzt mein Problem.

Ich weiss jetzt das ich da0 nicht anfassen darf. Bei jedem
Zugriff darauf fliegen Rechte&Group aus dem Fenster.
(Spitze Bemerkung:Bis heute habe ich BSD anders erfahren

Ich MUSS aber prüfen, die Device anfassen weil.ich:

- den Filesystemtyp nicht kenne.
- nicht weiss welcher Slice richtig ist.
- hier manchmal User am Rechner sind die nicht sudo duerfen
  koennen und DOCH als User mouten/umounten sollen.
- uvam.

Ergo: Deswegen muss es ein Script geben, das auch Fehler abfaengt!

# Excurs
# Ich koennte nach dem Prüfen ein chmod & chgrp auf das Device machen,
# aber das halte ich fuer gebastel.
#
# Als Workaround ;-) wenn sich gar keine Loesung finden laesst.
 
Ich will verstehen, warum sich da die Rechte und die Group aendert.

===================

Mit den gleichen Bedingungen auf ein "echtes" scsi /da* Device zugegriffen.

Keine Probleme alles gruen.

So ich hoffe ich habe das jetzt eindeutig beschreiben. Noch Fragen
Hr.Kienzel ? :-))

Kann diesen Ablauf mal jemand gegenpruefen. Ich nehme nicht mehr an das
es an
meiner Kiste oder an meinem Script / schmutzigen Fingern liegt , bin
aber nicht sicher.

Ach so, hier laeuft:
uname -a
FreeBSD grab.radio-do.ath.cx 6.1-PRERELEASE FreeBSD 6.1-PRERELEASE #
:/usr/obj/usr/src/sys/GRAB amd64/2GB Ram

cvsup make world/kernel/portupgrade -Rraf von vorgestern
Bis auf /devel/gamin keine bekannten Mucken.

Gruesse Dieter

Ps. amd, zuweisen ueber id oder vendor und mounten ueber fstab scheiden
aus,
weil Geraete zu unterschiedlich sind und die Reihenfolge sich stetig
aendern kann.

Mounten direkt vom Device ist machbar(Siehe ... na js. ich verkneife es
mir).

Der fstab ist m.M.n. ja nur eine Liste fuer immer wiederkehrende feste
Mountcommandos, nicht fuer sich dynamisch veraendernde Umgebung.

PPs. Noch eine subjektive Bemerkung. Diese Kiste hier läuft seit 3
Monaten stabil.
Ich habe die ganze Zeit mit sudo oder su per Hand auf den "richtigen" Slice
gemountet. Keine Unklarheiten!!!

Seitdem ich das als Script machen will (ca 10 Tage mal ab und an) und beim
Teste unabsichtlich oder beabsichtig Fehler auf den /da* Devices produziere,
habe ich mehr Abstürze und fsck peer Hand beim normalen reboot als in den
letzten 3 Jahren. Trotzdem, das mount nur sehr selten eingeschaltet ist

Und die Mühlen haben schon einige Dummheiten von mir hinnehmen muessen ;-))

Mir erscheint der Bereich USB umass devd etwas heiss ???

Bevor jetzt einer ruft: Ich habe nach fast jedem Absturz (besser recht
haeufig)
wen fscck lost&foud machte,in letzter Zeit world & kernel neu gebaut.
Das OS ist, wenn nix in den src ist, clean. Die Std macht es auch nicht.

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 22 Feb 2006 - 22:30:17 CET

search this site