Ulkoisien muistilaitteiden (kamerat, tikut, usb kovot) liittäminen voi tapahtua monella tapaa linuxissa. Törmäsin tilanteeseen Gentoo linuxissa jossa muistitikku liittyi automaattisesti väärin, siten että tavallisen käyttäjän oikeuksilla sieltä ei voinut lukea eikä kirjoittaa. Mikä ohjelma liitti tikun? cat /proc/mounts näytti että…
/dev/sdd2 /mnt/usb/6Y160P0 ntfs ro,sync,dirsync,nosuid,uid=0,gid=0,umask=077,nls=iso8859-1,errors=continue,mft_zone_multiplier=1 0 0
/dev/sdd1 /mnt/usb/6Y160P0 ntfs ro,sync,dirsync,nosuid,uid=0,gid=0,umask=077,nls=iso8859-1,errors=continue,mft_zone_multiplier=1 0 0
ja kernelin viesteistä ei taas selvinnyt muuta kuin että…
jarkko@DUALCORE ~ $ dmesg
usb-storage: device found at 7
usb-storage: waiting for device to settle before scanning
scsi 9:0:0:0: Direct-Access Maxtor 6Y160P0 YAR4 PQ: 0 ANSI: 2
sd 9:0:0:0: [sdd] 320173056 512-byte hardware sectors (163929 MB)
sd 9:0:0:0: [sdd] Write Protect is off
sd 9:0:0:0: [sdd] Mode Sense: 53 00 00 08
sd 9:0:0:0: [sdd] Assuming drive cache: write through
sd 9:0:0:0: [sdd] 320173056 512-byte hardware sectors (163929 MB)
sd 9:0:0:0: [sdd] Write Protect is off
sd 9:0:0:0: [sdd] Mode Sense: 53 00 00 08
sd 9:0:0:0: [sdd] Assuming drive cache: write through
sdd: sdd1 sdd2
sd 9:0:0:0: [sdd] Attached SCSI disk
sd 9:0:0:0: Attached scsi generic sg3 type 0
usb-storage: device scan complete
NTFS volume version 3.1.
NTFS-fs error (device sdd1): load_system_files(): Volume is dirty. Mounting read-only. Run chkdsk and mount in Windows.
NTFS volume version 3.1.
NTFS-fs error (device sdd2): load_system_files(): Volume is dirty. Mounting read-only. Run chkdsk and mount in Windows.
NTFS-fs warning (device sdd2): load_system_files(): $LogFile is not clean. Will not be able to remount read-write. Mount in Windows.
NTFS-fs warning (device sdd1): load_system_files(): $LogFile is not clean. Will not be able to remount read-write. Mount in Windows.
usb 1-6: new high speed USB device using ehci_hcd and address 8
usb 1-6: configuration #1 chosen from 1 choice
scsi10 : SCSI emulation for USB Mass Storage devices
Surffailtuani netissä törmäsin sivuun joka käsitteli samaa asiaa. Minulla vain on käytössä KDE eikä Gnome joten tästä ei apua löytynyt. #gentoo -kanavalla neuvottiin että udev laitehallintaohjelma liittäisi tikun automaattisesti. Udev:in dokumentaation tutkiminen oli tuskallisempaa kuin Päivi Hietasen C++ ja Olio Ohjelmointi kirjan tunkeminen anukseen joten luovutin heti.
Googletin automount sanalla jonkin aikaa mikä ei tuottanut tulosta. Ehkä Gentoosta löytyisi jokin asetustiedosto missä tämä automaattinen liittäminen asetetaan.
jarkko@DUALCORE ~ $ locate automount
/etc/hotplug.d/block/automount.hotplug
/usr/kde/3.5/include/kautomount.h
/usr/src/linux-2.6.22-gentoo-r8/Documentation/filesystems/automount-support.txt
/usr/src/linux-2.6.18-gentoo-r6/Documentation/filesystems/automount-support.txt
/usr/sbin/automount
/usr/share/man/man8/automount.8.bz2
/usr/portage/net-fs/autofs/files/automount.diff
/usr/portage/sys-fs/lufs/files/lufs-automount-port.diff
Komennon ensimmäisestä rivistä löytyi heti syyllinen. automount.hotplug -skripti liittää automattisesti koneen USB pistokkeeseen tökätyt muistit siten, että se luo uuden kansion /mnt/usb kansioon laitteen nimellä ja liittää osion siihen.
Minun tapauksessani LACIE USB kovo liitettiin kansioon /mnt/usb/6Y160P0
/etc/hotplug.d/block/automount.hotplug -skriptin lopusta löytyi komennot jotka liittävät löydetyt osiot:
# These options should prevent abuse and make it writeable for the
# console user.
MOUNTOPTS="-s -osync,nosuid,umask=077,uid=$3,gid=$4"
mesg Mounting $DEVICE on $MOUNTPATH, options $MOUNTOPTS
mount $MOUNTOPTS $DEVICE $MOUNTPATH
Skripti laittaa käyttöoikeksiksi ro,sync,dirsync,nosuid,uid=0,gid=0,umask=077 ja tämähän ei toimi Jarkko käyttäjällä. Mutta kun rivin muuttaa esimerkiksi muotoon:
MOUNTOPTS="-s -osync,dirsync,nosuid,umask=000,uid=1000"
niin silloin käyttäjätkin pääsevät lukemaan liitettyä tikkua. Linuxin harvinaisuuden vuoksi USB kovo on alustettu NTFS tiedostojärjestelmälle ja nyt osion ollessa “dirty” liitettiin se vain-luku tilaan.
TODO: skriptin muokkaus siten että kaikki osiot liitetään omiin kansioihinsa eikä päällekkän
TODO2: Liitettäessä täytyy aueta uusi ikkuna kuten wintoosassakin olen kuullut tapahtuvan
TODO3: pelata hiukan MOHAAta että saa liikuntaa
Viimeisimmät kommentit