Listar todos los dispositivos conectados en FreeBSD

28

¿Cuál es la variante FreeBSD de Linux lsblky blkid?

Quiero algo que proporcione el mismo tipo de información lsblkque en el siguiente ejemplo:

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
/dev/sda      8:0    0 465.8G  0 disk 
├─/dev/sda1   8:1    0  1007K  0 part 
├─/dev/sda2   8:2    0   256M  0 part /boot
├─/dev/sda3   8:3    0   9.8G  0 part [SWAP]
├─/dev/sda4   8:4    0  29.3G  0 part /
├─/dev/sda5   8:5    0  29.3G  0 part /var
├─/dev/sda6   8:6    0 297.6G  0 part /home
└─/dev/sda9   8:9    0  16.3G  0 part 
/dev/sr0     11:0    1  1024M  0 rom  

He intentado ejecutar comandos como man -k blky apropos dev. Hay devinfo, pero no estoy seguro de si eso es lo que realmente estoy buscando, ya que no parece darme /dev/<DEVICE>camino a los dispositivos enumerados.

Incluso lo intenté devstat, pero eso parece igualmente inútil

EDITAR:

Todo lo que realmente necesito saber es la /dev/<DEVICE>ruta para cada dispositivo de bloque conectado, y tal vez la etiqueta de dicho dispositivo (si corresponde); independientemente de si ya se han montado o no.

Alexej Magura
fuente
1
Creo que podría haberlo descubierto ... Creo que camcontrol devlistes probablemente lo que quiero.
Alexej Magura
lsblkes muy esencial y FreeBSD debería considerar adaptarlo.
neverMind9

Respuestas:

43

Uso geom disk list. Esto mostrará todos los dispositivos con forma de disco (técnicamente, cada instancia de la clase GEOM "DISK").

Para más información: geom | Páginas del manual de FreeBSD

Edward Tomasz Napierala
fuente
17

Por lo que puedo decir, camcontrol devlistes lo más parecido a una lsblkvariante para FreeBSD. No estoy 100% seguro de que este sea el mejor método, pero su salida está muy cerca de lo lsblkque te da, si solo te interesan los /dev/<DEV-PATH>nombres de los dispositivos :

$ camcontrol devlist
<VBOX HARDDISK 1.0>   at scbus0 target 0 lun 0 (ada0,pass0)
<VBOX CD-ROM 1.0>     at scbus1 target 0 lun 0 (pass1,cd0)

La posición de la /dev/DEV-PATHen la salida de camcontrol devlistparece variar. Por ejemplo, en el wiki de FreeBSD, el camcontrol devlistresultado de ejemplo en una de las páginas enumera la devpathunidad de CD-ROM en el orden opuesto: en (cd0,pass0)lugar de (pass1,cd0).

No estoy seguro de si o cuál es el significado de esta diferencia. Entonces, si no está familiarizado con devpaths* BSD, es posible que deba jugar un poco con él para que funcione.

Alexej Magura
fuente
9

Agregando a la respuesta de trasz, geom part listmuestra las particiones en FreeBSD. De forma similar geom md list, obtendrá los dispositivos de "disco de memoria" (similar a algunos usos de los montajes de bucle en Linux que también se enumeran lsblk(8)en otras palabras: dispositivos de bloque creados por mdconfig(8)FreeBSD y losetup(8)Linux). Consulte geom(8)para obtener una lista de clases (cada una de las cuales se puede enumerar si se carga la clase geom).

Esto no es exactamente lo mismo que la experiencia lsblk(8)y blkid(8)proporcionar en Linux, pero proporciona gran parte de la misma información. No hay un enlace directo de geom(4)instancias y proveedores a mountpoint actualmente en FreeBSD (cf. mountpoint(1)y findmnt(8)en linux).

Juan
fuente
4

Dar pciconfo kldstatprobar.

Uriel
fuente
1
no, no estaba al tanto de ninguno de ellos, pero ninguno de ellos parece ser lo que quiero. Esto puede ser solo un caso de que no estoy familiarizado con las convenciones de nomenclatura utilizadas por * BSD para dispositivos, pero lo dudo.
Alexej Magura
1
Los archivos de registro también deben enumerar los dispositivos detectados, pero no estoy seguro de que eso lo ayude. Qué quieres lograr ?
Uriel
1
Use pciconf -lopciconf -lv
Yvon
3

Creo que gpart listes lo más parecido a lsblk. Le mostrará todos los dispositivos y sus particiones (y también mucha información adicional).

Jackbenny
fuente
0

todas las herramientas de FreeBSD son "ilegibles", este script imita bien lsblk: https://forums.freebsd.org/threads/lsblk-8-command-for-freebsd.56008/

wget https://forums.freebsd.org/attachments/lsblk-sh-txt.3085/
cp index.html /usr/lsblk.sh
chmod +x /usr/lsblk.sh
alias lsblk=/usr/lsblk.sh
usuario533385
fuente
¿Qué quiere decir "ilegible", de qué manera son ilegibles?
Alexej Magura
1
Noté que esta publicación es esencialmente un enlace a una publicación de formulario que contiene un archivo adjunto. ¿Podrías publicar el contenido de ese script aquí, para que tu respuesta sea autónoma? Gracias.
Jeff Schaller
lsblk tiene una forma legible de mostrar la jerarquía de unidades, solo mire la pregunta. Entiendo que la gente no quiere mirar df / mount y otras salidas de herramientas nauseabundas, y hasta ahora esta es la mejor opción.
user533385