Discussion:
diwajsy blokowe
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
szopen
2023-06-08 11:34:27 UTC
Permalink
Chciałem sobie wyświetlić wszystkie urządzenia blokowe, więc użyłem
lsblk, ale mam masę wolumenów snapowych, które pracują na urządzeniach
loop, więc, żeby je pominąć w lsblk trzeba dodać --exclude i numer major
urządzenia. Wygooglałem, że dla loopa to 7. Ale to mnie zaciekawiło i
wyświetliłem listę tych numerów urządzeń:

cat /proc/devices
Character devices:
1 mem

[...]

Block devices:
7 loop
8 sd
9 md
11 sr
65 sd
66 sd
67 sd
68 sd
69 sd
70 sd
71 sd
128 sd
129 sd
130 sd
131 sd
132 sd
133 sd
134 sd
135 sd
253 device-mapper
254 mdp
259 blkext

i mam pytanie. Loop jest rzeczywiście 7, ale co to za urządzenia sd od
65 do 135?
--
szopen
Kamil Jońca
2023-06-08 12:27:45 UTC
Permalink
Post by szopen
Chciałem sobie wyświetlić wszystkie urządzenia blokowe, więc użyłem
lsblk, ale mam masę wolumenów snapowych, które pracują na urządzeniach
loop, więc, żeby je pominąć w lsblk trzeba dodać --exclude i numer
major urządzenia. Wygooglałem, że dla loopa to 7. Ale to mnie
cat /proc/devices
1 mem
[...]
i mam pytanie. Loop jest rzeczywiście 7, ale co to za urządzenia sd od
65 do 135?
https://duckduckgo.com/?t=ffab&q=linux+major+device+numbers&ia=web
pierwszy link to
https://unix.stackexchange.com/questions/73988/linux-major-and-minor-device-numbers
a tam z kolei
https://www.kernel.org/doc/Documentation/admin-guide/devices.txt

Nie ma tam?
KJ
--
http://stopstopnop.pl/stop_stopnop.pl_o_nas.html
szopen
2023-06-09 05:42:26 UTC
Permalink
Post by Kamil Jońca
Post by szopen
i mam pytanie. Loop jest rzeczywiście 7, ale co to za urządzenia sd od
65 do 135?
https://duckduckgo.com/?t=ffab&q=linux+major+device+numbers&ia=web
pierwszy link to
https://unix.stackexchange.com/questions/73988/linux-major-and-minor-device-numbers
a tam z kolei
https://www.kernel.org/doc/Documentation/admin-guide/devices.txt
Nie ma tam?
KJ
Z tego co zrozumiałem wynika, że to zarówno dyski (ssd, hdd, nvme) jak i
partycje na nich. Liczbowo się zgadza, thx.
--
szopen
marrgol
2023-06-09 10:58:57 UTC
Permalink
Post by szopen
Post by szopen
i mam pytanie. Loop jest rzeczywiście 7, ale co to za urządzenia sd od
65 do 135?
Z tego co zrozumiałem wynika, że to zarówno dyski (ssd, hdd, nvme) jak i
partycje na nich. Liczbowo się zgadza, thx.
Mam wrażenie, że chyba coś źle zrozumiałeś, a liczbowo zgadza ci się
co najwyżej przypadkiem. /proc/devices pokazuje 'major numbers'
plików urządzeń przypisanych poszczególnym, uruchomionym w jądrze
sterownikom, a nie urządzenia fizycznie obecne w komputerze. 8, 65÷71
i 128÷135 to numery przypisane sterownikowi sd (jest ich 16 i każdy
„obsługuje” 16 'minor', co znaczy że _możesz_ mieć w komputerze do 256
fizycznych dysków SCSI, w tym -- poprzez emulację -- SATA).
Przypuszczam, że nie masz w swoim komputerze więcej niż 16 dysków SATA,
więc wszystkie pewnie mają 'major number' 8 (siedemnasty miałby 65,
trzydziesty trzeci 66 itd.). NVME mają 'major' 259, a na temat partycji
w /proc/devices nie ma żadnych informacji (partycje mają ten sam 'major'
co dysk, na którym się znajdują, chyba że na tym dysku jest ich więcej
niż 15, to wtedy szesnasta i następne mają 259).
--
mrg
szopen
2023-06-09 16:10:50 UTC
Permalink
Post by marrgol
Post by szopen
Post by szopen
i mam pytanie. Loop jest rzeczywiście 7, ale co to za urządzenia sd od
65 do 135?
Z tego co zrozumiałem wynika, że to zarówno dyski (ssd, hdd, nvme) jak i
partycje na nich. Liczbowo się zgadza, thx.
Mam wrażenie, że chyba coś źle zrozumiałeś, a liczbowo zgadza ci się
co najwyżej  przypadkiem.  /proc/devices pokazuje 'major numbers'
plików urządzeń przypisanych poszczególnym, uruchomionym w jądrze
sterownikom, a nie urządzenia fizycznie obecne w komputerze.  8, 65÷71
i 128÷135 to numery przypisane sterownikowi sd (jest ich 16 i każdy
„obsługuje” 16 'minor', co znaczy że _możesz_ mieć w komputerze do 256
fizycznych dysków SCSI, w tym -- poprzez emulację -- SATA).
Przypuszczam, że nie masz w swoim komputerze więcej niż 16 dysków SATA,
więc wszystkie pewnie mają 'major number' 8 (siedemnasty miałby 65,
trzydziesty trzeci 66 itd.).  NVME mają 'major' 259, a na temat partycji
w /proc/devices nie ma żadnych informacji (partycje mają ten sam 'major'
co dysk, na którym się znajdują, chyba że na tym dysku jest ich więcej
niż 15, to wtedy szesnasta i następne mają 259).
Ok, to wracamy do punktu wyjścia. W pliku devices.txt, do którego link
wskazał Kamil są setki urządzeń jakie może obsługiwać kernel, zarówno
blokowych jak i znakowych.
Z kolei w moim kompie w /proc/devices jest lista:

Block devices:
7 loop
8 sd
9 md
11 sr
65 sd
66 sd
67 sd
68 sd
69 sd
70 sd
71 sd
128 sd
129 sd
130 sd
131 sd
132 sd
133 sd
134 sd
135 sd
253 device-mapper
254 mdp
259 blkext


A zatem co ta lista oznacza konkretnie? Dlaczego nie ma tam tych setek
urządzeń? Czy to znaczy, że mój kernel ma akurat drivery o tych
identyfikatorach wkompilowane? Czy to może coś jeszcze innego?

W tym pliku devices.txt major o numerze 259 jest opisany:

259 block Block Extended Major

Used dynamically to hold additional partition minor numbers and allow
large numbers of partitions per device

I to się zgadza z tym co wyżej w mojej liście jest (blkext) tylko nie ma
tu ani słowa o nvme ani nawet jakiegoś nawiązania do tego.

Pytam z ciekawości, nie jest mi to potrzebne do niczego konkretnego.
--
szopen
marrgol
2023-06-09 20:04:23 UTC
Permalink
Post by szopen
Ok, to wracamy do punktu wyjścia. W pliku devices.txt, do którego link
wskazał Kamil są setki urządzeń jakie może obsługiwać kernel, zarówno
blokowych jak i znakowych.
7 loop
8 sd
9 md
11 sr
65 sd
[…]
135 sd
253 device-mapper
254 mdp
259 blkext
A zatem co ta lista oznacza konkretnie? Dlaczego nie ma tam tych setek
urządzeń? Czy to znaczy, że mój kernel ma akurat drivery o tych
identyfikatorach wkompilowane? Czy to może coś jeszcze innego?
Tak jak napisałem: „/proc/devices pokazuje 'major numbers' plików
urządzeń przypisanych poszczególnym, uruchomionym w jądrze
sterownikom” -- słowo klucz: »uruchomionym«. Inaczej mówiąc
jądro pokazuje w tym pliku tylko »działające w nim w danej chwili«
sterowniki urządzeń blokowych i znakowych (nie tylko te, które
są wkompilowane na stałe, ale i te załadowane jako moduły),
i numery 'major', jakie są dla tych sterowników w tym momencie
zarezerwowane.
Post by szopen
259 block Block Extended Major
Used dynamically to hold additional partition minor numbers and allow
large numbers of partitions per device
I to się zgadza z tym co wyżej w mojej liście jest (blkext) tylko nie ma
tu ani słowa o nvme ani nawet jakiegoś nawiązania do tego.
Może dokumentacja jest po prostu nieaktualna. A może nvme nie ma
przypisanego na stałe „własnego” 'major number' i przydział jest
dynamiczny, lokalny -- choć wydawałoby się, że numer powinien być wtedy
z jednego z zakresów opisanych w pliku devices.txt jako 'LOCAL/
EXPERIMENTAL USE' (tak chyba jest np. w przypadku device-mappera,
którego zresztą masz na swojej liście), a nie 259. Albo może jest
jeszcze jakiś inny powód dla którego nvme używa akurat 259 --
nie wiem, nie wnikałem.
--
mrg
szopen
2023-06-09 20:42:24 UTC
Permalink
Post by marrgol
Post by szopen
A zatem co ta lista oznacza konkretnie? Dlaczego nie ma tam tych setek
urządzeń? Czy to znaczy, że mój kernel ma akurat drivery o tych
identyfikatorach wkompilowane? Czy to może coś jeszcze innego?
Tak jak napisałem: „/proc/devices pokazuje 'major numbers' plików
urządzeń przypisanych poszczególnym, uruchomionym w jądrze
sterownikom” -- słowo klucz: »uruchomionym«.  Inaczej mówiąc
jądro pokazuje w tym pliku tylko »działające w nim w danej chwili«
sterowniki urządzeń blokowych i znakowych (nie tylko te, które
są wkompilowane na stałe, ale i te załadowane jako moduły),
i numery 'major', jakie są dla tych sterowników w tym momencie
zarezerwowane.
Super, jesteśmy coraz bliżej jasności. Pozostaje zatem jeszcze jedno
pytanie. Po cholerę (?) jądro trzyma "uruchomione" sterowniki dla
urządzeń, których nie ma (i dodatkowo być nie może, bo nie ma szans
fizycznie na żadnym mobo podpiąć tyle diwajsów) czyli te:

65 sd
66 sd
67 sd
68 sd
69 sd
70 sd
71 sd
128 sd
129 sd
130 sd
131 sd
132 sd
133 sd
134 sd
135 sd

Ten aspekt mnie chyba najbardziej skonfudował i zagubił.
Skoro nie odpala setek innych sterowników to i te mógłby sobie darować,
tak mi się wydaje, ale pewnie się ponownie mylę. Mylę?
--
szopen
Kamil Jońca
2023-06-09 20:56:59 UTC
Permalink
szopen <***@en.szop> writes:

[...]
Post by szopen
Post by marrgol
zarezerwowane.
Super, jesteśmy coraz bliżej jasności. Pozostaje zatem jeszcze jedno
pytanie. Po cholerę (?) jądro trzyma "uruchomione" sterowniki dla
urządzeń, których nie ma (i dodatkowo być nie może, bo nie ma szans
65 sd
66 sd
67 sd
68 sd
69 sd
70 sd
71 sd
128 sd
129 sd
130 sd
131 sd
132 sd
133 sd
134 sd
135 sd
To chyba nie tak.
To (chyba) należy rozumieć "mam sterownik sd" i on stworzy urządzenia o
tych numerach gdy podłączysz fizyczne dyski.
tu nie ma "setek sterowników". Jest jeden "sd" i wiele numerków.

KJ
--
http://wolnelektury.pl/wesprzyj/teraz/
Loading...