Det vore ganska bekvämt att diskar eller stickor som man ansluter till Raspberry PIn skulle montera sig automatiskt i filsystemet. Detta är ganska enkelt att åtgärda, installera först usbmount som kommer att sköta om själva automonteringen
1 |
sudo apt-get -y install usbmount |
Nu kommer diskar och stickor som monterar anslutas under katalogen /media som usb0 till usb7 beroende på hur många enheter som man ansluter. Men nu kan vi inte skriva till enheten eftersom den är monterad som användare root. man kan göt t.ex df eller mount för att se om enheten blev ansluten
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
pi@rpi ~ $ df Filesystem 1K-blocks Used Available Use% Mounted on rootfs 6384156 2941568 3095248 49% / /dev/root 6384156 2941568 3095248 49% / devtmpfs 234892 0 234892 0% /dev tmpfs 47832 236 47596 1% /run tmpfs 5120 0 5120 0% /run/lock tmpfs 95660 0 95660 0% /run/shm /dev/mmcblk0p5 60479 19119 41361 32% /boot /dev/sda1 31703904 10722176 20981728 34% /media/usb0 pi@rpi ~ $ mount /dev/root on / type ext4 (rw,noatime,data=ordered) devtmpfs on /dev type devtmpfs (rw,relatime,size=234892k,nr_inodes=58723,mode=755) tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=47832k,mode=755) tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=95660k) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) /dev/mmcblk0p5 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro) /dev/sda1 on /media/usb0 type vfat (rw,nodev,noexec,noatime,nodiratime,sync,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro) |
För att ge vanliga användare rätten att skriva till enheten måste man ändra vilken användare som monterar enheten , i detta fall användare pi. För att ändra det måste vi först ta redan på användarens ID, i unix sammanhang kallad UID (User IDentity) och grupp ID kallat GID (Group IDentity). Enklast är att köra idanvändarnamn, för pi användaren så blir det
1 2 |
pi@rpi ~ $ id pi uid=1000(pi) gid=1000(pi) groups=1000(pi),4(adm),20(dialout),24(cdrom),27(sudo),29(audio),44(video),46(plugdev),60(games),100(users),105(netdev),999(input),1002(spi),1003(gpio) |
först på raden i svaret står uid=1000, det innebär att pi har UID 1000 och sedan gid=1000, det innebär att GID=1000 för pi användaren Nu när vi har den information som behövs så kan vi editera filen /etc/usbmount/usbmount.conf
1 |
sudo nano /etc/usbmount/usbmount.conf |
och ändra raden
1 |
FS_MOUNTOPTIONS="" |
så att det istället står
1 |
FS_MOUNTOPTIONS="-fstype=vfat,uid=1000,gid=1000" |
där numren på uid och gid ska vara de du fick fram med id kommandot. Detta innebär att alla enheter som är formaterade med vfat kommer att monteras som användare pi. För att koppla bort en enhet så man kan koppla ur den kör man antingen
1 |
sudo umount /media/usb0 |
eftersom man normalt inte får avmontera som normal användare, eller så använder man
1 |
pumount /media/usb0 |
pumount tillåter alla vanliga användare som är med i gruppen plugdev avmontera ickefasta dvs USB ansluta enheter. Om du har flera användare i systemet som ska kunna använda pumount kan du lägga till dem till gruppen med kommando
1 |
sudo useradd -G plugdev anvandarnamn |
om man vill göra det enkelt så kan man skapa ett kommando som alltid avmonterar alla usb diskar, kör
1 |
sudo nano /usr/local/bin/eject_usb |
och skriv in följande kod
1 2 3 4 |
#!/bin/sh for dev in $(mount | grep /media/ | awk '{print $1}'); do pumount $dev done |
och gör den sedan exekverbar med
1 |
sudo chmod +x /usr/local/bin/eject_usb |
Nu kan du avmontera dina usb-enheter med kommando eject_usb
Tack för denna artikel! Mycket användbart 🙂