Küsimus:
USB-mälupulga automaatne kinnitamine pistikprogrammile ilma UUID-ta
pauliucxz
2017-04-22 23:25:48 UTC
view on stackexchange narkive permalink

Nii et ma teen meediakeskust. Mul on Pi vaja mis tahes USB-mälupulga automaatseks ühendamiseks, mille ma ühendan. Ei mingit failisüsteemi (vfat, NTFS, ext). Otsisin kõikjalt ja ei leidnud midagi, mis toimiks. Noh, usbmount töötab osaliselt. Ma ei saa seda NTFS-i ühendamiseks ja mälupulkade kõigile kasutajatele kättesaadavaks muutmiseks.

Raspbian Jessie Lite'i käitamine RPI3-l

Miks te ei kasuta pakendivälist meediakeskust nagu OpenElec või midagi muud sarnast? Neil on kõik veidrused välja rauda.
Sest ma tahan Linuxi kohta rohkem teada saada
Kolm vastused:
pauliucxz
2017-04-26 18:06:44 UTC
view on stackexchange narkive permalink

Nii et leidsin üsna hästi toimiva lahenduse. Suur tänu avancile ja tema udevi reeglile, mis seda võimaldab. Samuti muutsin seda nii, et see saaks korraga ühendada kuni 4 mälupulka (seda saab vajadusel suurendada).

Nõuded

  1. Installige pmount, kui seda pole installitud sudo apt-get install pmount
  2. See skript paigaldatakse draividesse / media / usb * , seega veenduge, et need kaustad pole hõivatud. Kui soovite puhtamat ilmet, ärge looge kaustu.

Udev-reegel

  1. Looge fail / etc / udev / rules.d / usbstick.rules
  2. Sisesta:

      ACTION == "lisa", KERNEL == "sd [ az] [0-9] ", TAG + =" systemd ", ENV {SYSTEMD_WANTS} =" usbstick-handler @% k " 
  3. salvestamine ja sulgemine

Systemd-teenus

  1. Looge fail /lib/systemd/system/usbstick-handler@.service
  2. Sisesta:

      [Unit] Kirjeldus = Ühendage USB-mälupulgadBindsTo = dev-% i.deviceAfter = dev-% i.device [Service] Type = oneshotRemainAfterExit = yesExecStart = / usr / local / bin / cpmount / dev /% IExecStop = / usr / bin / pumount / dev /% I  
  3. Salvesta ja sulge

  4. ol>

    Skripti ühendamine

    1. Loo fail /usr/local/bin/cpmount
    2. Sisesta:

        #! / bin / bashif kinnituspunkt -q / media / usb1 siis kui mountpoint -q / media / usb2 siis kui mountpoint -q / media / usb3 siis kui mountpoint -q / media / usb4 siis kaja "Kinnituspunkte pole saadaval!" #Võite veel lisada, kui vajate muud / usr / bin / pmount --umask 000 --noatime -w --sync $ 1 usb4 fi else / usr / bin / pmount --umask 000 --noatime -w --sync $ 1 usb3 fi else / usr / bin / pmount --umask 000 --noatime -w --sync $ 1 usb2 fielse / usr / bin / pmount --umask 000 --noatime -w --sync $ 1 usb1fi  
    3. Andke (juur) kasutajale luba: chmod u + x / usr / local / bin / cpmount

    4. Salvesta ja sulgege

    Lõpeta

    Taaskäivitage RPI ja testige.

    MÄRKUSED

  • Saate muuta pmount parameetreid, kuid need võimaldavad kõigil r / w juurdepääs usb-le.
  • Liitumispunktide hulka saab muuta.
  • Täname avancit tema udevi reegli ja teenuse eest.
See töötab hästi, välja arvatud märkuses (1) öeldud, et see lubab juurdepääsu r / w-le, kuid pm-i valik "-r" sunnib r / o-d. täieliku lugemis- ja kirjutusjuurdepääsu saamiseks muutke kõik ülaltoodud neli rida täheks "-w".
Samuti jätsite "0" märkimata saidil / usr / bin / pmount --umask 00 -noatime -r --sync $ 1 usb4?
Kopeerisin ja kleepisin selle skripti ning see ebaõnnestus vigadega. Peate lisama lipule "umask" täiendava "0" ja lipu "noatime" lisamärgi "teie esimene" muu lause jaoks, nii et kogu lause peaks olema "/ usr / bin / pmount - -umask 000 --noatime -r --sünkroonib $ 1 usb4 ".
@pauliucxz; Võib-olla mainige oma artiklis ka seda, et failil "cpmount" peab olema kasutajale "pi" määratud käivitatav luba (vaikimisi pole seda määratud, vaikimisi on määratud ainult "rw" õigused): "sudo u + x cpmount` (sees `/ usr / local / bin`). Ainult sel põhjusel ei töötanud see minu jaoks. Nüüd töötab see ideaalselt ...
Ärge looge teenust systemd kataloogis "/ lib / systemd / system /", vaid kasutage selle asemel "/ etc / systemd / system /". Esimene tee on mõeldud installitud pakettide pakutavate teenuste jaoks, teist aga saab süsteemiadministraator kasutada oma teenuste jaoks.
@GeertVc teie kommentaar töötas minu jaoks suurepäraselt, aitäh! aga sul jääb termin "chmod" vahele "sudo chmod u + x / usr / local / bin / cpmount"
@xor: Sa oled täiesti õige. Hea saak! Vabandust selle pärast...
@GeertVc lisasin vastuses teie ettepaneku menetlusse
yy502
2017-09-15 03:19:56 UTC
view on stackexchange narkive permalink

Minu versioon põhineb ülaltoodud vastusel:

Systemd-teenus

Pane:

  [Unit] Description = Ühendage USB-mälupulgadBindsTo = dev-% i.deviceAfter = dev-% i.device [Service] Type = oneshotRemainAfterExit = yesExecStart = / usr / local / bin / automount% IExecStop = / usr / bin / pumount / dev /% I  

jaotises /lib/systemd/system/usbstick-handler@.service

Skripti ühendamine

Pane:

  #! / bin / bashPART = $ 1FS_LABEL = `lsblk -o nimi, silt | grep $ {PART} | awk '{print $ 2}' 'kui [-z $ {FS_LABEL}], siis / usr / bin / pmount --umask 000 --noatime -w --sync / dev / $ {PART} / media / $ {PART} else / usr / bin / pmount --umask 000 --noatime -w --sync / dev / $ {PART} / media / $ {FS_LABEL} _ $ {PART} fi  

Jaotises / usr / local / bin / automount ja seejärel:

  sudo chmod + x / usr / local / bin / automount  

Reboot.

Ühenduspunktide / kaustade nimed on vormingus / media / <PartitionLabel>_<sdxy> . Juhul kui partitsioonil pole silti, on see lihtsalt /media/<sdxy>.

Nii et tavaliselt märgistan oma USB-draivid nende mahuga. nt. 8G, 16G. Kui ühendan mitu sama sildiga USB-ketast, saan neid siiski eristada näiteks:

  / media / 500G_sdb1 / media / 500G_sdc1  
Aitäh. Pidin eemaldama valiku `--sync`. Kirjutamiskiirus oli minu välisel USB-draivil väga aeglane
SDsolar
2017-04-23 06:47:03 UTC
view on stackexchange narkive permalink

Parim lahendus, mille selle leidsin, on teenuse pmount kasutamine.

Kasutasin selle installimiseks tavalist protsessi:

  sudo apt-get install pmount  

Ainus asi, mida peate muretsema umbes on see, kui teil on / media / pi-s juba tavalisi katalooge sama nimega kui USB-draivil. Kui te seda teete, lisab see draivi paigaldamisel numbri.

Näiteks kui teil on kataloog nimega / media / pi / STICK ja installite siis mälupulga nimega STICK, leiate, et see on selle paigaldanud aadressile / media / pi / STICK1

See võib juhtuda, kui olete enne pmount'i installimist mälupulka installinud, kuid pole eemaldamise ajal korralikult välja visanud.

Kui see juhtus minuga, kirjutasid mu programmid õnnelikult minu STICKile, kuid kui selle välja tõmbasin ja teise arvutiga ühendasin, oli see tühi. See kirjutas kataloogi, mitte seadmesse.

Nii nimetasin kataloogi ümber / media / pi / temp, installisin pmount, ühendasin STICKi ja kopeerisin temp sisu / media / pi / STICK

Siis, kui ma selle välja viskan ja teises arvutis kontrollin, teeb see täpselt seda, mida ma kavatsesin.

Paigaldasin selle, kuid see ei tee midagi. Mälupulga ühendamisel ei juhtu midagi. Kontrollisin / meediumit ja see on tühi. Kontrollisin ka lsblki ja seda polnud kuhugi paigaldatud.
See ilmub kataloogi / media / pi all - kasutage failihaldurit, et seal põhjalikumalt uurida ja nii vaadata. See peaks ka installimise ajal paluma teil parooli küsida. Kui see nii ei ole, siis võib-olla pole see mälupulga tuvastamine üldse. Teine võimalus seda näha on df -h
fdisk -l näitab välkmäluseadet, kui sisestan "pmount / dev / sda1 / media / pi / STICK", paigaldatakse see edukalt. Kuid df -h seda ei näe. Proovisin paljusid draive ja need ei olnud ikka veel automaatselt ühendatud.


See küsimus ja vastus tõlgiti automaatselt inglise keelest.Algne sisu on saadaval stackexchange-is, mida täname cc by-sa 3.0-litsentsi eest, mille all seda levitatakse.
Loading...