Skocz do zawartości

Automatyczne Montowanie Partycji Btrfs Z Kompresją


portals

Rekomendowane odpowiedzi

U mnie dziala, ile bym razy tego nie odmontowal. Z tymi change to po prostu pojawiaja sie one, kiedy menedzer plików zamontuje partycje uzywajac udisks, a drugi kiedy skrypt robi remount. Czyli u mnie:

KERNEL[65058.209956] change   /devices/pci0000:00/0000:00:1e.0/0000:09:01.1/mmc_host/mmc0/mmc0:816d/block/mmcblk0/mmcblk0p1 (block)
UDEV  [65061.794847] change   /devices/pci0000:00/0000:00:1e.0/0000:09:01.1/mmc_host/mmc0/mmc0:816d/block/mmcblk0/mmcblk0p1 (block)

Jak widac sa jakies trzy sekundy róznicy. Dlatego moim zdaniem regula jest ok i nie wiem dlaczego u Ciebie zachowuje sie inaczej. Musisz sie upewnic, czy skrypt sie nie wykonuje przy ponownym montowaniu w ogóle czy moze jest wykonywany nieprawidlowo, zanim zaczniesz grzebac w regulach. Ta regula jest najprostsza z mozliwych i po logach monitora udev widac, ze wszystko jest ok. Co petli to nie generuje ona nawet minimalnego obciazenia, bo jest ten sleep, wiec tym nie musisz sie martwic.

  • Upvote 1
Odnośnik do komentarza
Udostępnij na innych stronach

Cóz juz sie cieszylem a znowu problemy. Teraz menadzer plików ma problem z zamontowaniem, pojawiaja sie komunikaty ze urzadzanie jest zajete. Niby prosta rzecz a ile problemów. Postaram sie zbadac problem i bede informowal. Juz mi nawet troche przestalo zalezec na rozwiazaniu problemu a bardziej na zrozumieniu tego.

Odnośnik do komentarza
Udostępnij na innych stronach

Urzadzenie jest prawdopodobnie zajete, bo za szybko starasz sie zamontowac. Próbowalem na samym poczatku z 1 sek. opóznieniem i tez sypalo jakimis bledami, chociaz teoretycznie powinno dzialac, bo udev nic nie zglasza, ale wlasnie nie wiadomo czy menedzer plików wtedy, np. nie skanuje zawartosci co trwa dluzej niz sekunde.

  • Upvote 1
Odnośnik do komentarza
Udostępnij na innych stronach

Udalo sie!

Podzielilem skrypt na dwa pliki

udev_remount

#!/bin/bash
screen -d -m -S mount_backup ./root/scripts/udev_remount_loop

udev_remount_loop

#!/bin/bash

uuid="4929ec5d-15c1-49b5-a0b3-549282bd26d0"



i=0;
while [ $i -le 60 ] ; do
	cond=`grep "$uuid" /proc/self/mounts`
	if [ "$cond" != "" ]
			then
			echo "Montuje"
			mount -o remount,compress-force,compress=zlib,autodefrag /dev/mapper/udisks-luks-uuid-$uuid-uid1000
			exit

	else

			echo "Dysk niezamontowany, czekam juz $i sekund"
			i=$[i + 1]
			sleep 1
	fi

done


echo "TIMEOUT: $i"
exit

Dlaczego to pomoglo? Mam tylko przypuszczenie ze dodany skrypt aktywowal sie miedzy prosba o haslo do partycji a zapytaniem o haslo roota co powodowalo zablokowanie az do zakonczenia skryptu.

Teraz dziala nawet po od-montowaniu i ponownym zamontowaniu. Dzieki thof (ponownie) za pomoc bo na pewno sam nie dal bym rady, nie wiedzial bym nawet czego szukac.

Odnośnik do komentarza
Udostępnij na innych stronach

Mam tylko przypuszczenie ze dodany skrypt aktywowal sie miedzy prosba o haslo do partycji a zapytaniem o haslo roota co powodowalo zablokowanie az do zakonczenia skryptu.

Tak na pewno nie jest, bo urzadzenie montowane jest tylko po zatwierdzeniu hasla, a change w udevie pojawia sie dopiero przy montowaniu. Bardziej tu moze chodzic o zapetlenie sie tego skryptu montujacego i to powoduje, ze regula takze wisi i pózniej nie reaguje. Chociaz nie sprawdzalem tego. Z tym screenem to strasznie zakombinowane, bo móglbys wywolac go w ten sposób ./root/scripts/udev_remount_loop & (& to tzw. background job) i wtedy regula od razu pusci.

Ale wazne, ze dziala, a z czasem wpadniesz na lepsze rozwiazanie. Oczywiscie najlepszym byloby zapisanie wszystkiego w regule, bez zewnetrznych skryptów, co nie jest specjalnie trudne, tylko wymaga troche czasu na opanowanie tych konstrukcji stosowanych w regulach.

  • Upvote 1
Odnośnik do komentarza
Udostępnij na innych stronach

Tak na pewno nie jest, bo urzadzenie montowane jest tylko po zatwierdzeniu hasla, a change w udevie pojawia sie dopiero przy montowaniu. Bardziej tu moze chodzic o zapetlenie sie tego skryptu montujacego i to powoduje, ze regula takze wisi i pózniej nie reaguje. Chociaz nie sprawdzalem tego.

Sprawdzalem przez sleep i zachowanie jest podobny; menadzer nie chce zamontowac przez czas podany w sleep a potem juz montuje normalnie ale bez parametrów. Wedlug mnie zachowanie tego jest dosc chaotyczne jednak jest cos co to powoduje.

Z tym screenem to strasznie zakombinowane, bo móglbys wywolac go w ten sposób ./root/scripts/udev_remount_loop & (& to tzw. background job) i wtedy regula od razu pusci.

To sie przyda,dzieki. Nie wiedzialem o tym a screena chcialem uzyc glównie do sprawdzenie jakie beda komunikaty a tu sie okazalo ze z nim dziala.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...