Skocz do zawartości

"Bezpieczne Usuwanie Sprzętu" Z Poziomu Konsoli


mrabraa

Rekomendowane odpowiedzi

Cześć,

 

Dopiero co dopadłem Fedorkę 15 i fajnie mi się bawi, ale wymagała trochę konfigurowania po starcie. Większość rzeczy udało mi się znaleźć w necie, ale jednego nie potrafię - chciałbym żeby system odcinał zasilanie do zewnętrznego dysku twardego podczas zamykania systemu. Pomyślałem, że dodam instrukcję do pliku ~/.bash_logout, ale zwykłe umount nie odcina napięcia na dysku. Z tego powodu dysk 'pracuje' (a raczej pozostaje w dość głośnym stanie gotowości) nawet po wyłączeniu komputera. Można go wprawdzie odpiąć od prądu, ale po ponownym włączeniu dalej ustawia się w stan gotowości. Wybranie w Nautilusie "bezpiecznego usuwania napędu" rozwiązuje problem, ale chciałbym to zautomatyzować, żeby nie bawić się w to za każdym razem przed wyłączeniem komputera. Chciałbym zatem wiedzieć, czy nie znacie może instrukcji, które pozwolą odtworzyć ten efekt z poziomu konsoli? Ewentualnie może wiecie jak zmienić skrypty startowe poziomu 0 i 6, żeby dysk "usypiał"?

 

Pozdrawiam

Mr Abraa

Odnośnik do komentarza
Udostępnij na innych stronach

Takie rzeczy to tylko udisks, man udisks:

--detach device_file [--detach-options options]

Detaches (e.g. powering down the physical port the device is connected to) the device represented by device_file using a

comma-separated list of options.

Jak masz tam mniej niż 11 partycji prosty skrypcik (X zastąp literą dysku):

for (( i=1;i<10;i++ )) do udisks --unmount /dev/sdX$i ; done
udisks --detach /dev/sdX

I możesz go wrzucić gdzieś do /etc/rc0.d i /etc/rc6.d. A jak będziesz chciał to zrobić tak jak powinno być zrobione to utwórz plik .service w /etc/systemd/system/shutdown.target.wants/.

Odnośnik do komentarza
Udostępnij na innych stronach

Sprawdzalem w dokumentacji jadra i nic nie pisza o wylaczaniu ... hmm dziwne (http://www.mjmwired.net/kernel/Documentation/usb/power-management.txt)

 

btw. chyba znalazlem sposob. Jest zalezny od tego gdzie wpinasz dysk wiec do pelnej automatyzacji potrzebny jest skrypt ale:

 

echo 1>/sys/bus/usb/devices/NR_URZADZENIA/remove

 

odcina prad od konkretnego urzadzenia.

 

Dla mojej myszki nr. to 2-2. Aby sprawdzic jak dla twojego dysku zrob tak:

 

wpisz lsusb i zapamietaj ID dla urzadzenia.

 

potem wejdz po kolei do kazdego foleru w /sys/bus/usb/devices/ i sprawdzaj czy idVendor (pierwsze 4 znaki id) i idProduct(ostatnie 4 znaki) sa takie same. Jesli tak to juz masz nr.

 

Nr jest staly dla kazdego portu usb a malutkim skryptem mozesz wykrywac pod ktorym jest wpiety akurat twoj dysk.

 

@thof

O widze ze tez nie spisz - Dobry Wieczor :P Spoko wiedziec o Udisks - przyda sie na przyszlosc - nie znalazlem go przy szybkim przeczesywaniu Google :P

Odnośnik do komentarza
Udostępnij na innych stronach

Wylaczenie portu usb zadziala raczej tylko na dyski bez zewnetrznego zasilania, a w tym przypadku jest zewnetrzny zasilacz. Poza tym to moze zabic dysk. Dysk jeszcze pracuje, a tu nagle odcinamy mu zasilanie i glowica nie zdazy zaparkowac, podobnie jak talerze nie zostana zablokowane. A juz to o czym pisze autor, kiedy dysk glosno dziala, odcinanie od zasilania wtyczka i pózniej przenoszenie dysku na pewno doprowadzi w krótkim czasie do pojawienia sie badsektorów.

Odnośnik do komentarza
Udostępnij na innych stronach

Thof, twoje rozwiązanie działa... prawie. To znaczy działa dokładnie tak jak powinno, ale po wydaniu komendy dysk się odpina i natychmiast wpina spowrotem i montuje. Dopiero ponowienie komend daje efekt. W Nautilusie działo mi się to samo, ale myślałem, że to wina samego Nautilusa, w sensie, że klikając na dysk by go odłączyć kazałem mu chcąc, nie chcąc, pokazać zawartośc partycji i dlatego montował ponownie. Teraz jestem trochę zdziwiony jego zachowaniem...

Odnośnik do komentarza
Udostępnij na innych stronach

Dwa razy trzeba udisks --detach? Dziwne też używam zewnętrznego dysku i u mnie jest ok. Próbowałeś to uruchamiać jako usługa przy zamykaniu systemu? Wydaje mi się, że tam może nie być takich problemów. To może być wina nautilusa, spróbuj w System Settings -> Removable Media odhaczyć Never prompt or start programs on media insertion, chociaż to nie zapobiegnie podłączeniu napędu. Jeszcze to mogą być polityki udisks, ale ciężko coś powiedzieć nie widząc jak zachowuje się dysk.

Odnośnik do komentarza
Udostępnij na innych stronach

No ja mam tylko jedna partycje na tym dysku, zrobilem udisks --unmount /dev/sda1, on ladnie odmontowal, wiec wpisalem udisks --detach /dev/sda, na co dysk poslusznie sie uspokoil po czym od razu ruszyl znów, pomielil, pomielil i nautilus otworzyl okno z zawartoscia. Zrobilem wszystko jeszcze raz i za drugim razem sie nie rzucal. Zmienilem ustawienia tak jak napisales, zobacze jak na to zareaguje... Na razie dodalem te instrukcje do .bash_logout, bo nie wiem czy skrypty w initach wymagaja jakiejs specjalnej procedury. Napisales:

A jak bedziesz chcial to zrobic tak jak powinno byc zrobione to utwórz plik .service w /etc/systemd/system/shutdown.target.wants/.
,

ale ja tego w ogóle nie zrozumialem ;)

 

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

To w takim razie musisz po odłączeniu (detach) wyłączyć port usb (port, a nie urządzenie). Tu masz napisane jak to zrobić http://www.lesswatts.org/projects/devices-power-management/usb.php możliwe, że ustawienie power/level na auto załatwi całą sprawę. Jeśli nie to będziesz zmuszony ustawić na suspend. Na pewno jest jakaś lepsza metoda na lokalizację właściwego portu usb, niż ta, którą opisał alkuzad, ale ja niestety nie znam. Jakby ktoś znał bibliotekę libusb to mógłby Ci coś poradzić.

Odnośnik do komentarza
Udostępnij na innych stronach

Niestety, zadnej różnicy. Po zawieszeniu portu znów się uruchamia a port zamiast liczyć się jako 1-1 staje się 3-1. Pomyślałem jednak czy to nie jest może wina tego, że mam ten dysk podpięty pod przedłużkę USB, która była dołożona w standardzie do czujnika bezprzewodowej myszki i klawiatury logitecha. Tzn. nie jestem pewien czy to tylko przedłużka, czy może raczej repeater USB. Gdyby to był repeater, to być może jego powtarzanie wywołuje ponowne uruchomienie dysku? Na zasadzie, że komputer uznaje iż podpięto dysk od nowa... Czy to ma sens?

Odnośnik do komentarza
Udostępnij na innych stronach

To już nie wiem. Spróbuj bez tego przedłużacza. Przede wszystkim to nie wiem, dlaczego urządzenie po usunięciu ponownie się podłącza. Nigdy się z takim czymś nie spotkałem, ani nie przypominam sobie, żeby ktoś tu na forum zgłaszał taki problem. Najlepszym rozwiązaniem byłoby zgłoszenie buga na bugzillę https://bugzilla.redhat.com/ Z informacji jakie musiałbyś zawrzeć to model dysku, wyjście lsusb i dmesg po wykonaniu całego cyklu. Wydaje mi się, że to wina środowiska. Spróbuj jeszcze wylogować się i przejść do konsoli (ctrl+alt+f2), wtedy odłącz (detach) i sprawdź czy urządzenie ponownie się podłączyło. Najłatwiej przeanalizować dmesg | tail. Jeśli w ostatnich liniach będzie coś w stylu usb disconnected to ok.

Odnośnik do komentarza
Udostępnij na innych stronach

zmiana portu nie pomogła, to samo z próbą spod konsoli. Dmesg | tail daje:

[   69.399701] sd 10:0:0:0: [sda] Write Protect is off
[   69.399713] sd 10:0:0:0: [sda] Mode Sense: 38 00 00 00
[   69.408677] sd 10:0:0:0: [sda] No Caching mode page present
[   69.408687] sd 10:0:0:0: [sda] Assuming drive cache: write through
[   69.438673] sd 10:0:0:0: [sda] No Caching mode page present
[   69.438685] sd 10:0:0:0: [sda] Assuming drive cache: write through
[   73.662860]  sda: sda1
[   73.718779] sd 10:0:0:0: [sda] No Caching mode page present
[   73.718792] sd 10:0:0:0: [sda] Assuming drive cache: write through
[   73.718801] sd 10:0:0:0: [sda] Attached SCSI disk

Zapodam to na bugzille tak jak piszesz. Dzieki za pomoc, mimo wszystko nauczyłem się ciekawej nowej komendy :)

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ę...