Automatisk mount af usb-diskettedrev

Scannere, kameraer, printere, mus, tegneplader osv.
lianergoist
Indlæg: 100
Tilmeldt: 30. sep 2008, 14:44
Geografisk sted: Horsens

Automatisk mount af usb-diskettedrev

Indlæg af lianergoist »

Jeg bruger af og til et usb-diskettedrev, og af en eller anden grund mountes det ikke automatisk (11.04). Jeg kan godt mounte det manuelt, men det irriterer mig jeg skal åbne en terminal og skrive kommandoer.

Når usb-drevet tilsluttes, bliver det tilgængeligt via /dev/sdb

[ 6322.176171] usb 7-1: new full speed USB device using uhci_hcd and address 6
[ 6322.372120] scsi8 : usb-storage 7-1:1.0
[ 6323.376305] scsi 8:0:0:0: Direct-Access Y-E DATA USB-FDU 5.01 PQ: 0 ANSI: 0 CCS
[ 6323.378108] sd 8:0:0:0: Attached scsi generic sg2 type 0
[ 6323.457287] sd 8:0:0:0: [sdb] Attached SCSI removable disk
[ 6351.105308] sd 8:0:0:0: [sdb] 1440 512-byte logical blocks: (737 kB/720 KiB)
[ 6351.153303] sd 8:0:0:0: [sdb] No Caching mode page present
[ 6351.153315] sd 8:0:0:0: [sdb] Assuming drive cache: write through
[ 6351.233301] sd 8:0:0:0: [sdb] No Caching mode page present
[ 6351.233312] sd 8:0:0:0: [sdb] Assuming drive cache: write through
[ 6351.601359] sdb:

og i Computer i nautilus er der nu et ikon der hedder Diskette-drev, men man kan ikke mounte drevet fra nautilus.

Jeg er ikke alene om dette - det er beskrevet af andre, men den eneste 'løsning' jeg har set, er at mounte det manuelt.

Jeg synes bare ikke det er en tilfredsstillende løsning - hvis ubuntu kan automounte et cd-drev, så bør et diskettedrev også kunne automountes.

Nogen der har et bud på hvordan man 'lærer' ubuntu at automounte diskettedrev?
Thomas Jensen, Horsens
AJenbo
Admin
Indlæg: 20862
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Automatisk mount af usb-diskettedrev

Indlæg af AJenbo »

Disketter degradere med tiden, er langsomme skrøbelig og produceres ikke længere. Jeg vil råde dig til at flytte din data over på et usb-stik istedet.
buddig
Indlæg: 746
Tilmeldt: 18. maj 2011, 21:54
Geografisk sted: Ugelbølle ved Aarhus

Re: Automatisk mount af usb-diskettedrev

Indlæg af buddig »

lianergoist skrev:...Jeg kan godt mounte det manuelt, men det irriterer mig jeg skal åbne en terminal og skrive kommandoer. ..
som en "halv løsning" må der kunne laves et script, der køres fra et klk på et icon på skrivebordet.
evt. en tekstfil med kommandoerne, der åbnes i terminal og køres og hvor sidste kommando er "exit",
hvis terminalen automatisk skal lukkes ned igen.
Hening
zob
Redaktør
Indlæg: 4430
Tilmeldt: 6. jan 2009, 22:01
Geografisk sted: København

Re: Automatisk mount af usb-diskettedrev

Indlæg af zob »

Bare for at du ikke skal arbejde ud fra teorien om at det er et generelt problem kan jeg nævne at mine usb-drev automounter. Og hvis de sidder i ved opstart mountes de automatisk der også.
Mere guf kan jeg ikke lige komme op med lige nu. Det var, indrømmet, en fattig omgang.
lianergoist
Indlæg: 100
Tilmeldt: 30. sep 2008, 14:44
Geografisk sted: Horsens

Re: Automatisk mount af usb-diskettedrev

Indlæg af lianergoist »

zob skrev:... mine usb-drev automounter. Og hvis de sidder i ved opstart mountes de automatisk der også.


Okay, det var interessant. Gad vide hvorfor... Min første tanke var, at det må være fordi Ubuntu genkender dine usb-drev, men ikke mit. Men faktisk ER Ubuntu godt klar lover, at jeg har tilsluttet et diskettedrev. Det optræder jo som sagt i Computer i nautilus. Og hvis jeg kører

Kode: Vælg alt

udisks --mount /dev/sdb

så mountes disketten i drevet også.

Bliver dine drev knyttet til /dev/fd* eller, som hos mig, /dev/sdb ?

'man 7 udisks' fortæller at:

udisks provides an interface to enumerate storage devices and perform operations on them. Any application can access the org.freedesktop.UDisks service on the system message bus. Some operations (such as formatting disks etc.) is restricted using polkit.

DEVICE INFORMATION
On Linux, udisks relies on recent versions of udev(7) and the kernel.


'udevadm monitor' giver mulighed for at se hvad der sker. Nedenstående viser hvad der sker når diskettedrevet er tilsluttet, men ikke monteret, og disketten skubbes ud (de første to linier) og derefter sættes ind (de sidste 4 linier).

custom logging function 0x20638008 registered
selinux=0
runtime dir '/dev/.udev'
calling: monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[1309681643.748851] change /devices/pci0000:00/0000:00:1d.2/usb7/7-1/7-1:1.0/host7/target7:0:0/7:0:0:0/block/sdb (block)
UDEV [1309681643.926708] change /devices/pci0000:00/0000:00:1d.2/usb7/7-1/7-1:1.0/host7/target7:0:0/7:0:0:0/block/sdb (block)
KERNEL[1309681676.692814] change /devices/pci0000:00/0000:00:1d.2/usb7/7-1/7-1:1.0/host7/target7:0:0/7:0:0:0/block/sdb (block)
KERNEL[1309681677.203680] change /devices/pci0000:00/0000:00:1d.2/usb7/7-1/7-1:1.0/host7/target7:0:0/7:0:0:0/block/sdb (block)
UDEV [1309681678.038260] change /devices/pci0000:00/0000:00:1d.2/usb7/7-1/7-1:1.0/host7/target7:0:0/7:0:0:0/block/sdb (block)
UDEV [1309681678.804581] change /devices/pci0000:00/0000:00:1d.2/usb7/7-1/7-1:1.0/host7/target7:0:0/7:0:0:0/block/sdb (block)


Så Ubuntu burde være istand til at reagere og mounte disketten - spørgsmålet om der skal ændres og/eller tilføjes noget i /lib/udev/rules.d/ ....?
Thomas Jensen, Horsens
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Automatisk mount af usb-diskettedrev

Indlæg af lath »

lianergoist skrev:Jeg bruger af og til et usb-diskettedrev, og af en eller anden grund mountes det ikke automatisk (11.04). Jeg kan godt mounte det manuelt, men det irriterer mig jeg skal åbne en terminal og skrive kommandoer.

Når usb-drevet tilsluttes, bliver det tilgængeligt via /dev/sdb

[ 6322.176171] usb 7-1: new full speed USB device using uhci_hcd and address 6
[ 6322.372120] scsi8 : usb-storage 7-1:1.0
[ 6323.376305] scsi 8:0:0:0: Direct-Access Y-E DATA USB-FDU 5.01 PQ: 0 ANSI: 0 CCS
[ 6323.378108] sd 8:0:0:0: Attached scsi generic sg2 type 0
[ 6323.457287] sd 8:0:0:0: [sdb] Attached SCSI removable disk
[ 6351.105308] sd 8:0:0:0: [sdb] 1440 512-byte logical blocks: (737 kB/720 KiB)
[ 6351.153303] sd 8:0:0:0: [sdb] No Caching mode page present
[ 6351.153315] sd 8:0:0:0: [sdb] Assuming drive cache: write through
[ 6351.233301] sd 8:0:0:0: [sdb] No Caching mode page present
[ 6351.233312] sd 8:0:0:0: [sdb] Assuming drive cache: write through
[ 6351.601359] sdb:

og i Computer i nautilus er der nu et ikon der hedder Diskette-drev, men man kan ikke mounte drevet fra nautilus.

Jeg er ikke alene om dette - det er beskrevet af andre, men den eneste 'løsning' jeg har set, er at mounte det manuelt.

Jeg synes bare ikke det er en tilfredsstillende løsning - hvis ubuntu kan automounte et cd-drev, så bør et diskettedrev også kunne automountes.

Nogen der har et bud på hvordan man 'lærer' ubuntu at automounte diskettedrev?


mount og unmount kan gøres automatsk med udev regler.
Kig her: http://ubuntuforums.org/showthread.php?t=168221
Bemærk dog følgende tekst et godt stykke nede i 1. indlæg:
This should work for later versions of udev, that don't appear to use the udevstart command

- thanks to ash211 for pointing this out
...

... så du kan ikke bruge udevstart, nu hedder kommandoen i stedet udevadm.
Genstartskommandoen er derfor:

Kode: Vælg alt

sudo udevadm control --reload-rules; sudo /etc/init.d/udev restart


Der er en del arbejde i det, men fordelen er at dit diskettedrev kan dukke op i en bestemt mappe hver eneste gang den bliver mounted. Husk også en unoumt udev regel, ellers går der knas i dit filsystem (du kan ikke bruge diskettedrevet igen på det Linux system igen før det er genstartet, medmindre du som superbrugeren root har tvunget diskettedrevets filsystem ud af systemet).

Hot tip: pmount (policy mount) kommandoen er god at bruge i udev regler til filsystem mounts/unmounts af usb diske, diskettedrev,usb harddiske og den slags.
Om pmount:
pmount ("policy mount") is a wrapper around the standard mount program
which permits normal users to mount removable devices without a match‐
ing /etc/fstab entry.

pmount also supports encrypted devices which use dm-crypt and have LUKS
metadata. If a LUKS-capable cryptsetup is installed, pmount will use it
to decrypt the device first and mount the mapped unencrypted device
instead.


Derudover har Ajenbo ret, men visse gamle IT systemer (til industri og produktion) bruger stadig disketter.

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
lianergoist
Indlæg: 100
Tilmeldt: 30. sep 2008, 14:44
Geografisk sted: Horsens

Re: Automatisk mount af usb-diskettedrev

Indlæg af lianergoist »

lath skrev:mount og unmount kan gøres automatsk med udev regler.
Kig her: http://ubuntuforums.org/showthread.php?t=168221


Tak for linket. Jeg har rodet lidt med det, og har fundet noget overraskende. I /lib/udev/rules.d/80-udisks.rules er der en linie ang. floppy drives, og hvis jeg fjerner ENV{ID_DRIVE_FLOPPY}="1" fra linien, så optræder mit usb-diskettedrev med sit eget navn i Computer i nautilus ("Y-E DATA USB Floppy Drive"), og ikonet er ændret til en usb-stick -- og nu virker det som det skal! Når disktten sættes i, så automountes den, og label på disketten bruges som titel på drevet.

Det er ikke lykkedes mig på nogen måde at få det til at virke med ENV{ID_DRIVE_FLOPPY}="1". Men jeg har en mistanke - drevet bliver jo tildelt /dev/sdb når det tilsluttes, og det er måske ikke meningen. Jeg har ikke fundet noget der indikerer, at diskettedrev kan ligge på andet end /dev/fd*. Linien i /lib/udev/rules.d/80-udisks.rules vedr. floppy drives siger:

SUBSYSTEMS=="usb", ATTRS{bInterfaceClass}=="08", ATTRS{bInterfaceSubClass}=="04", ENV{ID_DRIVE_FLOPPY}="1"

Jeg går ud fra bInterfaceClass og bInterfaceSubClass siger det er et usb-diskettedrev, og at det er den info der gør, at drevet bliver behandlet som et diskettedrev af nautilus/GTK.

ID_DRIVE_FLOPPY sættes af udev, og kan godt undværes, i hvert fald når vi snakker usb-diskettedrev. Måske - det er min mistanke - bliver 'noget' hard-linket til /dev/fd* når ID_DRIVE_FLOPPY er sat, og det er derfor man ikke kan mounte drevet.

Er det muligt at få ubuntu til at knytte et drev til en anden device? Altså, på basis af bInterfaceClass og bInterfaceSubClass få ubuntu til at bruge /dev/fd* istedet for /dev/sdb ?
Thomas Jensen, Horsens
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Automatisk mount af usb-diskettedrev

Indlæg af lath »

lianergoist skrev:
lath skrev:mount og unmount kan gøres automatsk med udev regler.
Kig her: http://ubuntuforums.org/showthread.php?t=168221


Tak for linket. Jeg har rodet lidt med det, og har fundet noget overraskende. I /lib/udev/rules.d/80-udisks.rules er der en linie ang. floppy drives, og hvis jeg fjerner ENV{ID_DRIVE_FLOPPY}="1" fra linien, så optræder mit usb-diskettedrev med sit eget navn i Computer i nautilus ("Y-E DATA USB Floppy Drive"), og ikonet er ændret til en usb-stick -- og nu virker det som det skal! Når disktten sættes i, så automountes den, og label på disketten bruges som titel på drevet.

Det er ikke lykkedes mig på nogen måde at få det til at virke med ENV{ID_DRIVE_FLOPPY}="1". Men jeg har en mistanke - drevet bliver jo tildelt /dev/sdb når det tilsluttes, og det er måske ikke meningen. Jeg har ikke fundet noget der indikerer, at diskettedrev kan ligge på andet end /dev/fd*. Linien i /lib/udev/rules.d/80-udisks.rules vedr. floppy drives siger:

SUBSYSTEMS=="usb", ATTRS{bInterfaceClass}=="08", ATTRS{bInterfaceSubClass}=="04", ENV{ID_DRIVE_FLOPPY}="1"

Jeg går ud fra bInterfaceClass og bInterfaceSubClass siger det er et usb-diskettedrev, og at det er den info der gør, at drevet bliver behandlet som et diskettedrev af nautilus/GTK.

ID_DRIVE_FLOPPY sættes af udev, og kan godt undværes, i hvert fald når vi snakker usb-diskettedrev. Måske - det er min mistanke - bliver 'noget' hard-linket til /dev/fd* når ID_DRIVE_FLOPPY er sat, og det er derfor man ikke kan mounte drevet.

Er det muligt at få ubuntu til at knytte et drev til en anden device? Altså, på basis af bInterfaceClass og bInterfaceSubClass få ubuntu til at bruge /dev/fd* istedet for /dev/sdb ?


/dev/fd* er floppydrev der er kontrolleret af en floppydiskcontroller i din computers bundkort. Det vil ikke virke (årsag: forkert Major nummer=forkert device driver vil forsøge blive brugt).
Derudover burde du ikke kunne finde en /dev/fd*, hvis du ikke har en floppydrev controller i din computers hardware. Med andre ord er det udev, der laver device filerne efter behov i /dev filsystemet.

Du kan også se i dine egne listninger tidligere at floppy drevet behandles som et SCSI drev.

Efter hvad du skriver så gætter jeg at ID_DRIVE_FLOPPY=1 betyder at udev regelen erklærer at dette er et floppy drev (som bruger et /dev/fd* device), hvis du bruger 0 i stedet for 1, så er det nok en erkæring om at dette ikke er floppy drev (via et /dev/fd* device, 0 betyder falskt, og 1 er sandt).

Kig i dmesg for hvad kernen skriver. Du kan også se hvad udev gør ved at bruge udisks kommandoen i en terminal:

Kode: Vælg alt

udisks --monitor

for at kigge på hvad der sker

Kode: Vælg alt

udisks --monitor-details

samme som overstående med detaljer

Du kan også efter mount få detaljer ved at give en device fil, og med /dev/sdb som devicefil bliver kommandoen:

Kode: Vælg alt

udisks --show-info /dev/sdb


Rent faktisk er det for diskdrev udisks kommandoen, du skal bruge til at finde de informationer du skal bruge til at konstruere dine udev regeler (pr logisk drev er der en mount regel og en umount regel).

Næst-sidste ting, lad være med at rette i udev reglerne. Lav i stedet dine egne. Hvis du giver dem et lavt tal i filnavnet er det den der tager præcedens(=bestemmer over regeler i filnavne med et højere tal).

Sidste ting:
udev guiden: http://reactivated.net/writing_udev_rules.html fra kerne udviklerne, det burde ikke være nødvendig at skrive at den er meget teknisk, men nu er det gjort.

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags