Synology-Forum.nl
Hardware ondersteuning => Externe harddisks en Printers => Topic gestart door: doglover op 28 augustus 2024, 08:18:09
-
Ik moet regelmatig een aantal bestanden kopieren naar een USB drive (stick).
Heb hiervoor een scriptje geschreven.
Stick insteken. Scriptje starten.
Als ie klaar is USB stickje verwijderen en klaar.
Maar ik krijg steeds de melding, dat de stick onveilig verwijderd is.
In het scriptje staat het volgende commando:
sync
/usr/syno/bin/synousbdisk -umount $MAP
Hierbij is $MAP: /volumeUSB1/usbshare
(Er is altijd maar één USB stick ingestoken)
De uitvoer van het script meld wel dat de stick is uitgeworpen is en dat ik de stick kan verwijderen.
Als ik nochtans ga kijken via file manager zie ik dat de stick nog steeds gemount is.
Dus: Hoe kan ik de stick Uitwerpen via BASH?
Info:
DSM 7.2.1-69057 Update 5
DS423+
-
Ik heb geen idee.
Ik heb het volgende script wel een gebruikt om een uitgeworpen USB weer te mounten zonder met de stekker aan de gang te moeten:
#!/bin/bash
# bron: https://community.synology.com/enu/forum/1/post/132055
for i in /sys/bus/pci/drivers/[uoex]hci_hcd/*:*; do
[ -e "$i" ] || continue
echo "${i##*/}" > "${i%/*}/unbind"
echo "${i##*/}" > "${i%/*}/bind"
done
Die probeert volgens mij steeds eerste alle drivers te unmounten en dan weer te mounten. Dus als je de regel met 'bind' weglaat, krijg je misschien alles gemount. (Birdy: idd unmount) Ik heb het niet getest.
-
krijg je misschien alles gemount.
Denk unmount. ;)
-
Het kan wel zo zijn dat op deze manier nog aanwezige buffers niet naar de USB geschreven worden. Dus ik zou wel beginnen met het nu gebruikte script met het 'unmount' commando.
-
Je begrijpt me niet, het gaat niet om het commando maar, hoe je het benoemd.
Dus als je de regel met 'bind' weglaat, krijg je misschien alles gemount.
Wat ik bedoel met "unmount" (geen commando) het tegenovergestelde van "gemount" dat was ook geen commando
Dus m.a.w., met het commando echo "${i##*/}" > "${i%/*}/unbind"
(die dan overblijft) wordt de USB losgekoppeld , misschien dat het zo duidelijker is.
-
Volgende script gebruikt:
#!/bin/bash
# bron: https://community.synology.com/enu/forum/1/post/132055
for i in /sys/bus/pci/drivers/[uoex]hci_hcd/*:*; do
[ -e "$i" ] || continue
echo "${i##*/}" > "${i%/*}/unbind"
#echo "${i##*/}" > "${i%/*}/bind"
done
Resultaat:
line 7: /sys/bus/pci/drivers/xhci_hcd/unbind: Permission denied
En dus de stick niet unmounted.
-
Nee, omdat je geen permissie hebt.....
Probeer sudo script...
-
Naar aanleiding van deze opmerking viel mijne frank (The penny dropped).
Het antwoord is het script runnen als root (of superuser)
Het script dat ik nu gebruik is:
Answer=$(df -h | grep "USB")
MAP=${Answer#*/vol}
MAP="/vol"$MAP
.....
#stuff wat het script moet doen.
......
echo Unmounting
sync
umount -l $MAP
echo
#Controle of de unmount geslaagd is
df -h