automatycznie montuje dowolny dysk zewnętrzny w / media z dostępem do odczytu / zapisu dla wszystkich

9

Oto mój problem:

Mój komputer ma 4 porty USB i działa system Ubuntu 12.10. Codziennie odbieram różne USB, podłączam do komputera, czytam / zapisuję dane, a następnie wysyłam.

Chcę automatycznie zamontować dowolną wtyczkę USB podłączoną do komputera. Pierwsze wykryte USB przejdzie do /media/HDD1, drugie przejdzie do /media/HDD2itd. Lub byłoby wspaniale, gdyby USB podłączony do portu 1 przejdzie do /media/HDD1, USB podłączony do portu 2 przejdzie /media/HDD2i tak dalej.

Ścieżka /medianie jest ważna, ale chciałbym, aby katalogi HDD1-4 znajdowały się w jednym miejscu, abym miał łatwy dostęp do nich.

USB to zwykle ext2, ale czasami dostaję również FAT32, NTFS USB.

Chcę również podłączyć USB bez logowania się do Ubuntu, ponieważ często uzyskuję dostęp /media/HDD..z innego komputera z systemem Windows.

Jak mogę to zrobić? Jaką zmianę udevzasad fstabpowinienem wprowadzić? Wszelkie sugestie są bardzo mile widziane.

kiwi
źródło

Odpowiedzi:

7

Cóż, tutaj możemy użyć tej samej sztuczki, której fstabużywa się w przypadku nośników optycznych (czyli CD i DVD):

/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0

Pierwsza kolumna wskazuje, system plików, jestem pewien, że twoje na USB będzie mieć stałe wartości, więc pozwala przypuszczać, że wszystko po sdato USB, a ponieważ można mieć tylko w 4 USB na tym samym czasie, lista jest długa z sdb, sdc, sddi sde.

$ ls /dev/sd*
/dev/sda   /dev/sdb   /dev/sdb3  /dev/sdb6  /dev/sdc  /dev/sdf
/dev/sda1  /dev/sdb1  /dev/sdb4  /dev/sdb7  /dev/sdd
/dev/sda2  /dev/sdb2  /dev/sdb5  /dev/sdb8  /dev/sde

(W moim przypadku używam czytnika pamięci, więc moje sterowniki USB zaczynają od, sdgale pozwalają kontynuować).

Zakładamy, że każde urządzenie USB ma jedną i tylko jedną partycję, więc linie, których potrzebujemy fstab, to:

/dev/sdb1
/dev/sdc1
/dev/sdd1
/dev/sde1

Następnie powiedziałeś, że twoje punkty montowania muszą zostać naprawione, więc po utworzeniu katalogów dodajmy je:

/dev/sdb1 /media/HDD1
/dev/sdc1 /media/HDD2
/dev/sdd1 /media/HDD3
/dev/sde1 /media/HDD4

Ponieważ możesz mieć prawie wszystkie typy systemów plików, użyj autowięc fstab, zgadnij, jakiego typu pliku użyć:

/dev/sdb1 /media/HDD1 auto
/dev/sdc1 /media/HDD2 auto
/dev/sdd1 /media/HDD3 auto
/dev/sde1 /media/HDD4 auto

Ok, teraz sprowadzę się do opcji, które będą takie same dla płyt CD z dodatkowymi uprawnieniami do odczytu / zapisu:

/dev/sdb1 /media/HDD1 auto rw,users,noauto,allow_other,umask=0
/dev/sdc1 /media/HDD2 auto rw,users,noauto,allow_other,umask=0
/dev/sde1 /media/HDD3 auto rw,users,noauto,allow_other,umask=0
/dev/sde1 /media/HDD4 auto rw,users,noauto,allow_other,umask=0

rwmówi, że chcemy uprawnienia do odczytu i zapisu, userspozwala każdemu użytkownikowi na zamontowanie urządzenia, noautozapobiega automatycznemu podłączeniu sterownika, gdy mount -ajest wywoływany, podobnie jak podczas rozruchu, zapobiega błędom rozruchowym i OSTRZEŻENIOM, allow_otherpozwala innym użytkownikom oprócz użytkownika, który zamontował sterownik, na mają te same uprawnienia i umask=0uniemożliwiają zastosowanie domyślnego umask.

Teraz tylko dwa pozostałe pola dotyczą w zasadzie dumpkolejności i fsckkolejności, które mogą występować w 0obu, pozostawiając nam końcowy wynik:

/dev/sdb1 /media/HDD1 auto rw,user,noauto,allow_other 0 0
/dev/sdc1 /media/HDD2 auto rw,user,noauto,allow_other 0 0
/dev/sdd1 /media/HDD3 auto rw,user,noauto,allow_other 0 0
/dev/sde1 /media/HDD4 auto rw,user,noauto,allow_other 0 0

Dzięki temu za każdym razem, gdy podłączysz urządzenie USB, zostanie ono automatycznie zamontowane w punkcie montażu bez interwencji użytkownika. Powinieneś modyfikować zgodnie ze swoimi potrzebami.

Braiam
źródło
dziękuję Braiam. Nie jestem pewien, czy zmiana fstab może automatycznie montować USB bez konieczności restartowania lub używania polecenia „mount”. Znalazłem proste rozwiązanie z wykorzystaniem autofs. Nie tylko automatycznie montuje, ale obsługuje także automatyczne odmontowywanie po wcześniej zdefiniowanym czasie braku akcji, co jest bardzo przydatne w moim przypadku
Kiwi
Nie, nie ma. Jak powiedziałem na początku, używałem tej samej sztuczki, której używa fstab dla płyt CD / DVD, które nie wymagają użycia rootani mountani restartu.
Braiam
3

Oto rozwiązanie, które znalazłem:

Najpierw instaluję autofs na moim komputerze z systemem Linux:

sudo apt-get install autofs

Spowoduje to utworzenie pliku auto.master pod /etc/auto.master

Dodaj następujący wiersz na końcu tego pliku:

/media/mount /etc/auto.mount --timeout=10 --ghost

/media/mountto katalog, w którym chcę zamontować wszystkie dyski zewnętrzne. /etc/auto.mountto plik do wprowadzenia reguł montowania. --timeout=10oznacza, że ​​automatycznie odmontuje dysk po 10 sekundach braku aktywności. --ghostoznacza, że ​​nadal pozostawia obraz zawartości, gdy jest odmontowany. Zmień tę linię zgodnie ze swoimi potrzebami.

Edytuj /etc/auto.mountplik i dodaj następujące wiersze:

disk1  -fstype=auto,sync  :/dev/sdc1
disk2  -fstype=auto,sync  :/dev/sdd1
disk3  -fstype=auto,sync  :/dev/sde1
disk4  -fstype=auto,sync  :/dev/sdf1
disk5  -fstype=auto,sync  :/dev/sdg1
disk6  -fstype=auto,sync  :/dev/sdh1
disk7  -fstype=auto,sync  :/dev/sdi1
disk8  -fstype=auto,sync  :/dev/sdj1
DVD    -fstype=iso9660,ro :/dev/sr0

Do zwykłych napędów, takich jak zestaw USB lub eSATA -fstype=auto,sync. Mam 8 portów USB + eSATA, dlatego deklaruję tutaj 8 punktów montowania. Mój komputer ma już sdai sdbtak dyskach lokalnych więc kładę sdc1-> sdj1dla urządzeń zewnętrznych. W rzeczywistości są to węzły urządzeń /devpo podłączeniu napędów. Wyjątkiem od reguły montażu jest montaż DVD, jak widać powyżej.

Kiedy włożę jakieś dyski, pojawią się one jako dysk1, dysk2, ... w /media/mountkatalogu i automatycznie odmontują po 10 sekundach. Nie muszę dotykać komputera i mogę uzyskać do niego dostęp z innego miejsca (np. Maszyny wirtualnej)

kiwi
źródło