In Linux kernel, are USBs, MMCs,SDcards considered as block device
Простой ответ — да. USB-накопители будут отображаться как обычные /dev/sdb
, /dev/sdc
и т. д. Карты MMC/SD могут отображаться таким образом, если устройство чтения карт подключено через USB -(некоторые внутренние устройства чтения карт памяти на самом деле являются USB под капот )или отображается как /dev/mmcblk0
,/dev/mmcblk1
(если у вас более одного кард-ридера)-разделы будут /dev/mmcblk0p1
, /dev/mmcblk0p2
и т. д.
Вы можете использовать команду lsblk
для быстрого просмотра всех блочных устройств в вашей системе в данный момент.
Что касается указания типа устройства, Linux не заботится о том, что на самом деле представляет собой блочное устройство. Блочное устройство — это блочное устройство для Linux, и оно отличается только размером, независимо от того, доступно ли оно физически только для чтения или нет, и принимает ли оно дополнительные команды, такие как TRIM
для SSD.
Tanto lsblk
como blkid
se pueden usar para averiguar qué hay en una partición (, p. intercambio, sistema de archivos conocido, datos sin procesar ). Ambos tienen varias opciones para especificar el formato de salida para que pueda extraer solo la información que necesita (, p. tipo de sistema de archivos, etiqueta fs, uuid, etc. ).
IMO blkid
es una mejor herramienta para operaciones con secuencias de comandos y, en mi experiencia, es mejor para detectar para qué se está utilizando una partición existente, sin importar qué tipo de dispositivo de bloque se esté examinando (p. lsblk
no sabe qué hacer con un ZFS zvol. blkid
lo trata como cualquier otro dispositivo de bloque -que es exactamente lo que debería hacer porque eso es exactamente lo que es un ZVOL ). lsblk
se puede usar en scripts, pero, en mi opinión, está más orientado hacia el uso interactivo con una bonita salida impresa -.
por ej. en uno de mis sistemas:
# blkid /dev/sda*
/dev/sda: PTUUID="3a1e16ae" PTTYPE="dos"
/dev/sda1: UUID="08799b67-8ed7-4cee-aea1-0f9e7bd1fc04" TYPE="ext4" PARTUUID="3a1e16ae-01"
/dev/sda2: UUID="db8bda5f-4f18-4abb-a151-08494e398047" TYPE="swap" PARTUUID="3a1e16ae-02"
/dev/sda3: UUID="fc967791-b9cf-4145-9047-8a8b223ac4bb" TYPE="xfs" PARTUUID="3a1e16ae-03"
O si solo quiero el tipo de sistema de archivos de /dev/sda1:
# blkid -o value --match-tag TYPE /dev/sda1
ext4
Consulte la página de manual de blkid
para obtener más detalles.
Por cierto, file -s
también se puede usar, pero la salida es más difícil de analizar. p.ej.
# file -s /dev/sda1
/dev/sda1: Linux rev 1.0 ext4 filesystem data, UUID=08799b67-8ed7-4cee-aea1-0f9e7bd1fc04 (needs journal recovery) (extents) (large files) (huge files)