Adicionando by-path para / dev / disk

2

Eu tenho um script que depende de /dev/disk/by-path , mas esse subdiretório não existe. Quando eu ls /dev/disk , eu obtenho:

by-id         by-label        by-uuid

Como obtenho by-path ?

(A saída do grep -ri 'pelo caminho' /lib/udev/rules.d/60-persistent-storage.rules é:

# persistent storage links: /dev/disk/{by-id,by-uuid,by-label,by-path}
# by-path (parent device path)
ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}"
ENV{DEVTYPE}=="partition", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part%n"

(Saída do sudo udevadm info --root --name = / dev / sdc | grep O DEVTYPE é:

E: DEVTYPE=disk

    
por Jeff K 23.09.2015 / 15:21

1 resposta

0

O caminho /dev/disk/by-path é criado automaticamente quando você adiciona o cartão SD ao seu sistema (não via mount ). Responsável por isso é udev e as regras em

/lib/udev/rules.d/60-persistent-storage.rules

Com um comando simples, você pode ver as regras:

% grep -ri 'by-path' /lib/udev/rules.d/60-persistent-storage.rules
# persistent storage links: /dev/disk/{by-id,by-uuid,by-label,by-path}
# by-path (parent device path)
ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}"
ENV{DEVTYPE}=="partition", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part%n"

E você não deve usar ls /dev/disk/by-path para obter os valores para suas variáveis. Use

for f in /dev/disk/by-path/*; do echo "$f"; done

em vez disso.

    
por A.B. 23.09.2015 / 15:42