Po wielu badaniach mogłem naprawić problem z usbmount:
Dodawanie NTFS do usbmount
- Zainstaluj usbmount z
sudo apt-get install usbmount
.
Zainstaluj pakiet sterowników NTFS ntfs-3g z sudo apt-get install ntfs-3g
.
Skonfiguruj usbmount, aby montować określone systemy plików, otwierając plik usbmount za pomocą sudo nano /etc/usbmount/usbmount.conf
.
Tutaj jest linia o nazwie FILESYSTEMS=""
. Tylko systemy plików określone w tym wierszu są montowane za pośrednictwem usbmount, dlatego zmieniamy je na:FILESYSTEMS="vfat ntfs fuseblk ext2 ext3 ext4 hfsplus"
Jeśli chcesz, aby usbmount montował systemy plików NTFS, pamiętaj, aby dodać
ntfs i fuseblk do linii. Urządzenia NTFS są czasami wymienione jako fusblk przez pakiet ntfs-3g, więc te dwa są takie same. Ale tak naprawdę nie wiem dlaczego.
Ponadto, jeśli nie dodasz fuseblk w konfiguracji, odłączone urządzenia NTFS nie zostaną automatycznie odmontowane. Pozostaną zamontowane i zachowają folder, w którym są zamontowane, dopóki urządzenie nie zostanie ręcznie odmontowane za pomocą unmount /dev/sda1
-> gdzie sda1 może być inną zmienną .
Następna ważna linia to FS_MOUNTOPTIONS=""
. Tutaj określasz, które systemy plików powinny zostać zamontowane i jak powinny zostać zamontowane.
Zmieniamy to na: FS_MOUNTOPTIONS="-fstype=ntfs-3g,nls=utf8,umask=007,gid=46
-fstype=fuseblk,nls=utf8,umask=007,gid=46 -fstype=vfat,gid=1000,uid=1000,umask=007"
Dzięki temu montowane są systemy plików vfat (fat32) ntfs-3g (NTFS) i
fuseblk (ponownie NTFS). Myślę, że większość parametrów może pozostać taka sama. Ponownie tutaj po prostu dodaj ntfs-3g ( dodaj ntfs-3g nie ntfs ) i fuseblk, aby móc zamontować wszystkie pliki NTFS. Aby uzyskać więcej systemów plików, dodaj więcej linii, zaczynając od -fstype=
.
Trzymaj NTFS podłączony, dopóki urządzenie nie zostanie odłączone
Oto rozwiązanie problemu, gdy podłączony dysk NTFS jest dostępny tylko przez kilka sekund. Ta poprawka pochodzi od Christiana Weinbergera .
- Utwórz plik usbmount.rules w /etc/udev/rules.d/ za pomocą
sudo nano /etc/udev/rules.d/usbmount.rules
.
To jest treść:
KERNEL=="sd*", DRIVERS=="sbp2", ACTION=="add", PROGRAM="/bin/systemd-escape -p [email protected] $env{DEVNAME}", ENV{SYSTEMD_WANTS}+="%c"
KERNEL=="sd*", SUBSYSTEMS=="usb", ACTION=="add", PROGRAM="/bin/systemd-escape -p [email protected] $env{DEVNAME}", ENV{SYSTEMD_WANTS}+="%c"
KERNEL=="ub*", SUBSYSTEMS=="usb", ACTION=="add", PROGRAM="/bin/systemd-escape -p [email protected] $env{DEVNAME}", ENV{SYSTEMD_WANTS}+="%c"
KERNEL=="sd*", ACTION=="remove", RUN+="/usr/share/usbmount/usbmount remove"
KERNEL=="ub*", ACTION=="remove", RUN+="/usr/share/usbmount/usbmount remove"
- Utwórz plik usbmount @ .service w / etc / systemd / system / with
sudo nano /etc/systemd/system/[email protected]
.
To jest treść:
[Unit]
BindTo=%i.device
After=%i.device
[Service]
Type=oneshot
TimeoutStartSec=0
Environment=DEVNAME=%I
ExecStart=/usr/share/usbmount/usbmount add
RemainAfterExit=yes
Teraz uruchom ponownie i sprawdź, cat /etc/mtab
do którego folderu są podłączone urządzenia USB. Domyślnie są one montowane na / media / usbstick0 .
Źródło:
Chrześcijanie Fix
Dlaczego Fusblk?
Odpowiedź Untermosera jest prawidłowa, ale spowoduje uszkodzenie niektórych funkcji usbmount.
Ponieważ używa jednostek Systemd do odradzania procesów do zamontowania (aby włączyć NTFS), zmienna środowiskowa
$DEVPATH
nie jest już wysyłana dousbmount add
komendy, co powoduje niepowodzenie tworzenia dowiązania symbolicznego.Aby to naprawić, uruchom następujące polecenie:
Powyższe polecenie odtwarza,
$DEVPATH
jeśli nie jest dostępne.Istnieje również inny błąd w usbmount w odniesieniu do
usbmount remove
. Pętla przechodzi przez punkty montowania, a ten zdefiniowany w usmount config jest odmontowany. Jeśli jednak dopasowanie zostanie znalezione, ale nie ma go na tej liście, usuń przerwy i nic nie robi. Jest to szczególnie ważne, jeśli tworzysz wiele punktów montowania dla jednego USB, ponieważ usbmount widzi pierwszy i nic nie robi.Aby to naprawić, konieczna jest następująca zmiana:
Spowoduje to przesunięcie przerwy w wewnętrznej pętli (gdzie gwarantowany jest sukces i złamanie 2 kroków).
źródło
Dla tych, którzy starają się, aby to samo działało na nowszej wersji Stretch (Lite) i stwierdzili, że odpowiedzi Untermoser i AlbiusX nie odmontowują dysków vat, musisz wykonać te dodatkowe kroki oprócz dostarczonych odpowiedzi :
Uruchom następującą komendę w terminalu:
sudo mkdir -p /etc/systemd/system/systemd-udevd.service.d/
Spowoduje to utworzenie wymaganych folderów. Następnie utwórz plik conf, np .:
sudo nano /etc/systemd/system/systemd-udevd.service.d/shared-mount-ns.conf
Wewnątrz tego pliku dodaj następujące wiersze:
[Service] MountFlags=shared
Spowoduje to zmianę domyślnego zachowania systemd-udevd prywatnych przestrzeni nazw systemu plików, tak aby korzystały z współdzielonych, co jest równoważne zachowaniu udev w jessie.
(Źródło: /unix/330094/udev-rule-to-mount-disk-does-not-work/330156#330156 )
źródło
Linux raspberrypi 4.14.79-v7+
na Pi, dla odniesienia