Skocz do zawartości
Kszysiu

Stałe nazwy dysków/napędów/czegokolwiek w linuksie

Polecane posty

Cześć

Testując dziś kilka rzeczy dochodziłem do szału przez ciągle zmieniające się numerki dysków, a najbardziej odchodziłem od zmysłów gdy po restarcie dyskom zamieniały się literki i to co chodziło idealnie nagle zaczęło się... psuć...

Postanowiłem sobie nazwać konkretne porty fizyczne tak, żeby po prostu podpiąć dysk i od razu wiedzieć jak się nazywa i na odwrót - mając nazwę w systemie wiedzieć który dysk mogę wyjąć bez głębszej analizy.

Więc po kolei.
Najpierw musimy znaleźć ścieżki naszych urządzeń, na przykład jak u mnie:

# udevadm info -q path -n /dev/sdb
/devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sdb
# udevadm info -q path -n /dev/sdc
/devices/pci0000:00/0000:00:1f.2/ata3/host2/target2:0:0/2:0:0:0/block/sdc

Trzeba wykazać się kapką IQ i przeanalizować jakie będą te ścieżki dla innych portów, albo posprawdzać, przekładając dyski...

 

Teraz musimy stworzyć plik konfiguracyjny w folderze /etc/udev/rules.d.
Jego nazwa musi zaczynać się od liczby (pliki z tego folderu wykonywane są w kolejności wg liczby na początku) i kończyć się ".rules"

W środku dodajemy wpisy wg tego wzoru:

DEVPATH=="/devices/pci0000:00/0000:00:1f.2/ata3/host2/target2:0:0/*", SUBSYSTEM=="block", SYMLINK+="tray1%n"
DEVPATH=="/devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/*", SUBSYSTEM=="block", SYMLINK+="tray2%n"

# każda regułka musi zajmować dokładnie jedną linię. CHYBA można robić komentarze za pomocą #

Czyli bierzemy to co jest potrzebne, żeby jednoznacznie zidentyfikować dysk z wyniku udevadm i dajemy to w zmiennej DEVPATH, w SUBSYSTEM dajemy odpowiedni typ (tu odsyłam do MAN'a, w moim przypadku block) a w symlinku podajemy nazwę pod jaką ma się pojawić w /dev/.

UWAGA - jeśli nie dopiszesz na końcu nazwy %n, to system nazwie ci pierwszą znalezioną partycję tą nazwą - i tyle. Nie przekieruje ci całego urządzenia blokowego, i nie pokaże partycji..

 

UWAGA - reguły trzeba sprawdzić po ZMIANIE KERNELA czy nadal są poprawne. U mnie np. pojawił się po aktualizacji element "/ataX/".

 

 

Ja spędziłem dziś z pół godzinki, godzinkę, żeby to znaleźć i ogarnąć:) może się komuś przyda:)

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

O mój boże, a wystarczyło się mnie zapytać.

 

root@archi:~# cd /dev/disk/by-uuid/
root@archi:/dev/disk/by-uuid# ls -l
razem 0
lrwxrwxrwx 1 root root 10 mar 21 04:38 64ba868c-6f5a-45e8-ab7f-cd38d0287359 -> ../../sda2
lrwxrwxrwx 1 root root 10 mar 21 04:38 c0e872a6-24f8-496f-9007-71387a150565 -> ../../sda1

I nie ma opcji, żeby ci się UUID zmienił bez zmiany samego dysku. Jakby tak było to GRUB by nie potrafił zbootować z rootfs, bo w configu gruba jest nic innego niż UUID znanych dysków wpisany na sztywno.

Edytowano przez Archi (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Archi, a czemu nie ma tutaj wyszczególnionych wszystkich dyskow?

root@dom:/dev/disk/by-uuid# ls -l
razem 0
lrwxrwxrwx 1 root root 11 mar 13 17:47 1f7a8de2-767f-4d6d-b02b-0550e897186f -> ../../md127
lrwxrwxrwx 1 root root 10 mar 13 17:47 7c2763ee-22ce-4bec-8c74-09f633b73f55 -> ../../sda5
lrwxrwxrwx 1 root root 10 mar 13 17:47 9719a103-9cdf-4dc6-8dd6-593adbe228e2 -> ../../sdc2
lrwxrwxrwx 1 root root 10 mar 13 17:47 f80e352a-eca0-4531-9ef2-55a994f48849 -> ../../sda2
root@dom:/dev/disk/by-uuid# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md127 : active raid1 sdc1[2] sdb1[1]
      976630336 blocks super 1.2 [2/2] [UU]

unused devices: <none>
root@dom:/dev/disk/by-uuid# ls -al
razem 0
drwxr-xr-x 2 root root 120 mar 13 17:47 .
drwxr-xr-x 4 root root  80 mar 13 17:47 ..
lrwxrwxrwx 1 root root  11 mar 13 17:47 1f7a8de2-767f-4d6d-b02b-0550e897186f -> ../../md127
lrwxrwxrwx 1 root root  10 mar 13 17:47 7c2763ee-22ce-4bec-8c74-09f633b73f55 -> ../../sda5
lrwxrwxrwx 1 root root  10 mar 13 17:47 9719a103-9cdf-4dc6-8dd6-593adbe228e2 -> ../../sdc2
lrwxrwxrwx 1 root root  10 mar 13 17:47 f80e352a-eca0-4531-9ef2-55a994f48849 -> ../../sda2
root@dom:/dev/disk/by-uuid# fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
głowic: 255, sektorów/ścieżkę: 63, cylindrów: 60801, w sumie sektorów: 976773168
Jednostka = sektorów, czyli 1 * 512 = 512 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Identyfikator dysku: 0x00033ce4

Urządzenie Rozruch   Początek      Koniec   Bloków   ID  System
/dev/sda1            2046     3915775     1956865    5  Rozszerzona
/dev/sda2   *     3915776   976771071   486427648   83  Linux
/dev/sda5            2048     3915775     1956864   82  Linux swap / Solaris

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
głowic: 81, sektorów/ścieżkę: 63, cylindrów: 382818, w sumie sektorów: 1953525168
Jednostka = sektorów, czyli 1 * 512 = 512 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Identyfikator dysku: 0x000e11e8

Urządzenie Rozruch   Początek      Koniec   Bloków   ID  System
/dev/sdb1            2048  1953525167   976761560   83  Linux

UWAGA: Na '/dev/sdc' wykryto tablicę partycji GPT (GUID Partition Table)! fdisk nie obsługuje GPT. Należy użyć GNU Parteda.


Disk /dev/sdc: 3000.6 GB, 3000592982016 bytes
głowic: 255, sektorów/ścieżkę: 63, cylindrów: 364801, w sumie sektorów: 5860533168
Jednostka = sektorów, czyli 1 * 512 = 512 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 4096
Rozmiar we/wy (minimalny/optymalny) w bajtach: 4096 / 4096
Identyfikator dysku: 0x00000000

Urządzenie Rozruch   Początek      Koniec   Bloków   ID  System
/dev/sdc1            2048  1953525167   976761560   83  Linux
/dev/sdc2      1953525168  4294967294  1170721063+  83  Linux

Disk /dev/md127: 1000.1 GB, 1000069464064 bytes
głowic: 2, sektorów/ścieżkę: 4, cylindrów: 244157584, w sumie sektorów: 1953260672
Jednostka = sektorów, czyli 1 * 512 = 512 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 4096
Rozmiar we/wy (minimalny/optymalny) w bajtach: 4096 / 4096
Identyfikator dysku: 0x00000000

Dysk /dev/md127 nie zawiera poprawnej tablicy partycji

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

archi, ale wtedy i tak musisz przeanalizowac ktory uuid jest od czego...

 

po co korzystac z domen jak sa adresy ip?:-) dla wygody.

 

tu wiem ze jak wyjme dysk z szufladki tray1 i wloze tam nastepny to on nadal bedzie tray1 niezaleznie od uuidu, ktory sie zmieni. Kiedy cos jest na produkcji to uuidy sa ok, bo i tak tykasz to raz na ruski rok. A jak masz cos na srodowisku testowym i wachlujesz dyskami jak opentany, to taka kilkuminutowa, zabawa moze oszczedzic ci sporo pierdzielenia sie pozniej...

w sumie takie cos jeszcze mozna wykorzystac do pisania skryptow, jak np kopiowanie danych z dysku podlaczonego w konkretnym porcie, do dysku podlaczonego w innym konkretnym porcie, czy pendrive, czy nawet drukowac jesli w odpowiednim porcie pojawi sie drukarka.... przyklady mozna mnozyc, bo mozesz nazwac sobie kazde urzadzenie jak chcesz:-)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

 

Archi, a czemu nie ma tutaj wyszczególnionych wszystkich dyskow?

root@dom:/dev/disk/by-uuid# ls -l
razem 0
lrwxrwxrwx 1 root root 11 mar 13 17:47 1f7a8de2-767f-4d6d-b02b-0550e897186f -> ../../md127
lrwxrwxrwx 1 root root 10 mar 13 17:47 7c2763ee-22ce-4bec-8c74-09f633b73f55 -> ../../sda5
lrwxrwxrwx 1 root root 10 mar 13 17:47 9719a103-9cdf-4dc6-8dd6-593adbe228e2 -> ../../sdc2
lrwxrwxrwx 1 root root 10 mar 13 17:47 f80e352a-eca0-4531-9ef2-55a994f48849 -> ../../sda2
root@dom:/dev/disk/by-uuid# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md127 : active raid1 sdc1[2] sdb1[1]
      976630336 blocks super 1.2 [2/2] [UU]

unused devices: <none>
root@dom:/dev/disk/by-uuid# ls -al
razem 0
drwxr-xr-x 2 root root 120 mar 13 17:47 .
drwxr-xr-x 4 root root  80 mar 13 17:47 ..
lrwxrwxrwx 1 root root  11 mar 13 17:47 1f7a8de2-767f-4d6d-b02b-0550e897186f -> ../../md127
lrwxrwxrwx 1 root root  10 mar 13 17:47 7c2763ee-22ce-4bec-8c74-09f633b73f55 -> ../../sda5
lrwxrwxrwx 1 root root  10 mar 13 17:47 9719a103-9cdf-4dc6-8dd6-593adbe228e2 -> ../../sdc2
lrwxrwxrwx 1 root root  10 mar 13 17:47 f80e352a-eca0-4531-9ef2-55a994f48849 -> ../../sda2
root@dom:/dev/disk/by-uuid# fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
głowic: 255, sektorów/ścieżkę: 63, cylindrów: 60801, w sumie sektorów: 976773168
Jednostka = sektorów, czyli 1 * 512 = 512 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Identyfikator dysku: 0x00033ce4

Urządzenie Rozruch   Początek      Koniec   Bloków   ID  System
/dev/sda1            2046     3915775     1956865    5  Rozszerzona
/dev/sda2   *     3915776   976771071   486427648   83  Linux
/dev/sda5            2048     3915775     1956864   82  Linux swap / Solaris

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
głowic: 81, sektorów/ścieżkę: 63, cylindrów: 382818, w sumie sektorów: 1953525168
Jednostka = sektorów, czyli 1 * 512 = 512 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Identyfikator dysku: 0x000e11e8

Urządzenie Rozruch   Początek      Koniec   Bloków   ID  System
/dev/sdb1            2048  1953525167   976761560   83  Linux

UWAGA: Na '/dev/sdc' wykryto tablicę partycji GPT (GUID Partition Table)! fdisk nie obsługuje GPT. Należy użyć GNU Parteda.


Disk /dev/sdc: 3000.6 GB, 3000592982016 bytes
głowic: 255, sektorów/ścieżkę: 63, cylindrów: 364801, w sumie sektorów: 5860533168
Jednostka = sektorów, czyli 1 * 512 = 512 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 4096
Rozmiar we/wy (minimalny/optymalny) w bajtach: 4096 / 4096
Identyfikator dysku: 0x00000000

Urządzenie Rozruch   Początek      Koniec   Bloków   ID  System
/dev/sdc1            2048  1953525167   976761560   83  Linux
/dev/sdc2      1953525168  4294967294  1170721063+  83  Linux

Disk /dev/md127: 1000.1 GB, 1000069464064 bytes
głowic: 2, sektorów/ścieżkę: 4, cylindrów: 244157584, w sumie sektorów: 1953260672
Jednostka = sektorów, czyli 1 * 512 = 512 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 4096
Rozmiar we/wy (minimalny/optymalny) w bajtach: 4096 / 4096
Identyfikator dysku: 0x00000000

Dysk /dev/md127 nie zawiera poprawnej tablicy partycji

 

Bo w by-uuid pojawiają się jedynie partycje, które można podmontować. Jeśli chodzi Ci o wszystkie dyski, to nalezy użyć by-id.

 

root@archi:/dev/disk/by-id# ls -l
razem 0
lrwxrwxrwx 1 root root  9 mar 27 05:31 ata-TOSHIBA_DT01ACA050_23EMLTNPS -> ../../sda
lrwxrwxrwx 1 root root 10 mar 27 05:31 ata-TOSHIBA_DT01ACA050_23EMLTNPS-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 mar 27 05:31 ata-TOSHIBA_DT01ACA050_23EMLTNPS-part2 -> ../../sda2
lrwxrwxrwx 1 root root  9 mar 27 05:31 wwn-0x5000039ff2f3301e -> ../../sda
lrwxrwxrwx 1 root root 10 mar 27 05:31 wwn-0x5000039ff2f3301e-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 mar 27 05:31 wwn-0x5000039ff2f3301e-part2 -> ../../sda2

archi, ale wtedy i tak musisz przeanalizowac ktory uuid jest od czego...

 

po co korzystac z domen jak sa adresy ip?:-) dla wygody.

 

tu wiem ze jak wyjme dysk z szufladki tray1 i wloze tam nastepny to on nadal bedzie tray1 niezaleznie od uuidu, ktory sie zmieni. Kiedy cos jest na produkcji to uuidy sa ok, bo i tak tykasz to raz na ruski rok. A jak masz cos na srodowisku testowym i wachlujesz dyskami jak opentany, to taka kilkuminutowa, zabawa moze oszczedzic ci sporo pierdzielenia sie pozniej...

w sumie takie cos jeszcze mozna wykorzystac do pisania skryptow, jak np kopiowanie danych z dysku podlaczonego w konkretnym porcie, do dysku podlaczonego w innym konkretnym porcie, czy pendrive, czy nawet drukowac jesli w odpowiednim porcie pojawi sie drukarka.... przyklady mozna mnozyc, bo mozesz nazwac sobie kazde urzadzenie jak chcesz:-)

 

I w tym celu też używasz by-id.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

 

 

I w tym celu też używasz by-id.


Jesteś w stanie po by-id powiedzieć, że JAKIKOLWIEK dysk włożony w konkretną szufladkę zawszę będzie nazywał się np. "szufladkapierwsza"? Bo ja tam widzę coś bardziej na wzór nazwy dysku+sn. Wtedy taki dysk możesz przepinać pomiędzy portami i zawsze trafi "pod ten sam adres" - a ja właśnie chciałem uzyskać coś innego :) Chciałem, żeby cokolwiek podłączone pod konkretny port było pod konkretną nazwą w systemie.

Wiem, że wydaje się to nie praktyczne, bo przepnę dysk na którym mam jakieś dane i nie nazwie się tak jak wczesniej, przez co potencjalnie unieruchomię jakąś aplikację, ale właśnie chodziło mi o stworzenie prostej klarownej sytuacji dla środowiska gdzie wachluje się dyskami itd itp. - wsadziłem w pierwszą szufladkę dysk - mam tray1, drugą - tray2 i tyle :)

 

produkcyjnie, gdzie z dyskami nie będę się już tak bawił użyje pewnie uuid jak zawsze ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

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

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×