Nowe posty

Autor Wątek: Odmontowywanie dysków montowanych w fstab.  (Przeczytany 2350 razy)

Offline Jacek Kowalczyk

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 175
    • Zobacz profil
Odmontowywanie dysków montowanych w fstab.
« dnia: 2016-06-26, 14:51:01 »
Tego typu wątek już poruszałem:
http://forum.linux.pl/index.php/topic,22221.msg130480.html#msg130480
W Ubuntu 14.04 działało, jak napisałem, świetnie. Mam teraz Ubuntu 16.04. Mam ten sam plik w tym samym miejscu. I nie działa.
Po zamknięciu klapy laptopa i ponownym wybudzeniu systemu podmontowany dysk dalej istnieje w /etc/mtab. Jeżeli wybudzę system w miejscu gdzie może podmontować zasób to jest OK. Jeżeli jednak obudzę laptopa i nie można zamontować dysku, to menadżery plików mi się wieszają i muszę uruchamiać system na nowo.
Mam wrażenie jakby plik nie był czytany (ma nadane prawa 755 i właścicielem jest root). Próbowałem wpisać mu komendę :
echo "Ala Ma Kota" >"kot" 
i Ubuntu 14.04 drukuje plik a Ubuntu 16.04 nie.
Może ktoś mi pomoże?

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2608
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
    • keybase.io/pkraszewski
Odp: Odmontowywanie dysków montowanych w fstab.
« Odpowiedź #1 dnia: 2016-06-26, 19:00:52 »
Witaj w cudownym świecie systemd!

W nowej rzeczywistości musisz zapisać to jako skrypt w katalogu /lib/systemd/system-sleep.

#!/bin/bash
if [ "$1" = "pre" ]; then
# Rzeczy robione przed uśpieniem
fi

if [ "$1" = "post" ]; then
# Rzeczy robione po wybudzeniu
fi
Paweł Kraszewski
~Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline Jacek Kowalczyk

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 175
    • Zobacz profil
Odp: Odmontowywanie dysków montowanych w fstab.
« Odpowiedź #2 dnia: 2016-06-27, 12:36:08 »
Wielkie dzięki! Właśnie zakończyłem testy. To jest to. Czytałem o zmianie w Ubuntu 16.04 na systemd, ale nie myślałem, że tak szybko mnie to dotknie. Bardzo dziękuję za pomoc. Problem rozwiązany. Zamykam wątek. Poniżej podaję, dla innych, jak obecnie wygląda moja konfiguracja.
Stworzyłem plik /lib/systemd/system-sleep/custom_umount_fstab:
#!/bin/bash

if [ "$1" = "pre" ]; then
# Rzeczy robione przed uśpieniem
/bin/umount -t cifs -a
fi

if [ "$1" = "post" ]; then
# Rzeczy robione po wybudzeniu
/bin/mount -t cifs -a
fi
Nadałem mu prawa 755, czyli jest to plik wykonywalny. Właścicielem jest root. Odmontowywanie działa. Nie działa montowanie, bo najprawdopodobniej najpierw zasób próbuje się montować a później  uruchamiana jest sieć (czytałem kiedyś o tym). Mnie jednak takie stan całkowicie wystarcza.

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2608
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
    • keybase.io/pkraszewski
Odp: Odmontowywanie dysków montowanych w fstab.
« Odpowiedź #3 dnia: 2016-06-29, 07:42:22 »
Akurat montowanie to możesz zrobić w skryptach NetworkManagera, w ścieżce /etc/NetworkManager/dispatcher.d.

Cytat z mana:
Cytuj
NetworkManager will execute scripts in the /etc/NetworkManager/dispatcher.d directory in alphabetical order in response to network events. Each script should be (a) a regular file, (b) owned by root, (c) not writable by group or other, (d) not set-uid, (e) and executable by the owner. Each script receives two arguments, the first being the interface name of the device just activated, and second an action (up, down, etc)

Czyli /etc/NetworkManager/dispatcher.d/50shares:
#!/bin/bash

if [ "$1" = "TwójInterfejs" -a "$2" = "up" ]; then
# Rzeczy robione po podniesieniu interfejsu
/bin/mount -t cifs -a
fi
Paweł Kraszewski
~Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline Jacek Kowalczyk

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 175
    • Zobacz profil
Odp: Odmontowywanie dysków montowanych w fstab.
« Odpowiedź #4 dnia: 2016-06-29, 22:34:26 »
Wybacz ale moja wiedza jest bardzo dziurawa. Napisałeś:
Cytuj
if [ "$1" = "TwójInterfejs" -a "$2" = "up" ]; then
Niby prosta rzecz. Szperam po internecie i nie mogę wpaść na to co oznacza TwójInterfejs. Zgodnie z Ubuntu wiki
https://wiki.ubuntu.com/Podstawowe_infomacje
User Interface to np. Gnome, KDE itp. Ale na pewno nie o to Ci chodziło. Trochę mi wstyd, że się zaciąłem na takim drobiazgu, niemniej proszę o podpowiedź.

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2608
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
    • keybase.io/pkraszewski
Odp: Odmontowywanie dysków montowanych w fstab.
« Odpowiedź #5 dnia: 2016-06-30, 11:18:39 »
Jako, że chodzi o odpalenie skryptu montowania po aktywacji interfejsu sieciowego, to oczywiście TwójInterfejs to...?
Paweł Kraszewski
~Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline Jacek Kowalczyk

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 175
    • Zobacz profil
Odp: Odmontowywanie dysków montowanych w fstab.
« Odpowiedź #6 dnia: 2016-06-30, 22:15:51 »
No i to było to! Słowo "sieciowy" to słowo klucz. Wpisałem i zadziałało.
Tak na wszelki wypadek, dla innych opiszę co zrobiłem.
W terminalu wpisałem:
jacek@jacek-XXXXXXXXXXX:~$ ifconfig
enp0s25   Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX 
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:20 Memory:d4500000-d4520000

lo        Link encap:Local Loopback 
          inet addr:XXX.0.0.1  Mask:XXX.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1232 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1232 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:87840 (87.8 KB)  TX bytes:87840 (87.8 KB)

wlo1      Link encap:Ethernet  HWaddr 00:XX:XX:XX:XX:XX 
          inet addr:192.168.X.XX  Bcast:192.168.X.XXX  Mask:255.255.255.0
          inet6 addr: XXXX::XXXX:XXXX:XXXX:XXXXXXX Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1726 errors:0 dropped:0 overruns:0 frame:5659
          TX packets:1936 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:917228 (917.2 KB)  TX bytes:249381 (249.3 KB)
          Interrupt:19
Z listingu wynika, że mój interfejs sieciowy to wlo1. Dodatkowo sprawdziłem to wyłączając i włączając wifi. Przy wyłączonym wifi w listingu ifconfig brak było wlo1.
Wpisałem zatem w podany przez Pawła skrypt pod adresem:
/etc/NetworkManager/dispatcher.d/50shares
#!/bin/bash

if [ "$1" = "wlo1" -a "$2" = "up" ]; then
# Rzeczy robione po podniesieniu interfejsu
/bin/mount -t cifs -a
fi
Nadałem mu prawa 755 i już. Mam zatem stop i start przy usypianiu laptopa. Bardzo dziękuję za pomoc. Mam nadzieję, że innym też się to przyda.