Поиск точки /dev для создания разделов на SD-карте

Вопрос или проблема

Я пытаюсь создать раздел на SD-карте, для этого я следую этому руководству. Когда я ввожу команду

ll /dev/mmcblk*

Я получил это

ls: cannot access /dev/mmcblk*: No such file or directory

Поэтому я проверяю список элементов в /dev, вводя эту команду

ls /dev/

Я получил большой список элементов, но там нет ничего похожего на mmcblk0 или mmcblk1. Список, который я получаю, следующий

autofs           dvdrw     loop4               psaux  ram6    sdb       tty10  tty24  tty38  tty51  tty8       ttyS2   ttyS5    vcs6
block            ecryptfs  loop5               ptmx   ram7    sdb1      tty11  tty25  tty39  tty52  tty9       ttyS20  ttyS6    vcs7
bsg              fb0       loop6               pts    ram8    sg0       tty12  tty26  tty4   tty53  ttyprintk  ttyS21  ttyS7    vcsa
btrfs-control    fd        loop7               ram0   ram9    sg1       tty13  tty27  tty40  tty54  ttyS0      ttyS22  ttyS8    vcsa1
bus              full      loop-control        ram1   random  sg2       tty14  tty28  tty41  tty55  ttyS1      ttyS23  ttyS9    vcsa2
cdrom            fuse      mapper              ram10  rfkill  shm       tty15  tty29  tty42  tty56  ttyS10     ttyS24  uhid     vcsa3
cdrw             hidraw0   mcelog              ram11  rtc     snapshot  tty16  tty3   tty43  tty57  ttyS11     ttyS25  uinput   vcsa4
char             hpet      mei                 ram12  rtc0    snd       tty17  tty30  tty44  tty58  ttyS12     ttyS26  urandom  vcsa5
console          input     mem                 ram13  sda     sr0       tty18  tty31  tty45  tty59  ttyS13     ttyS27  v4l      vcsa6
core             kmsg      net                 ram14  sda1    stderr    tty19  tty32  tty46  tty6   ttyS14     ttyS28  vcs      vcsa7
cpu              log       network_latency     ram15  sda2    stdin     tty2   tty33  tty47  tty60  ttyS15     ttyS29  vcs1     vga_arbiter
cpu_dma_latency  loop0     network_throughput  ram2   sda3    stdout    tty20  tty34  tty48  tty61  ttyS16     ttyS3   vcs2     vhost-net
disk             loop1     null                ram3   sda4    tty       tty21  tty35  tty49  tty62  ttyS17     ttyS30  vcs3     video0
dri              loop2     port                ram4   sda5    tty0      tty22  tty36  tty5   tty63  ttyS18     ttyS31  vcs4     zero
dvd              loop3     ppp                 ram5   sda6    tty1      tty23  tty37  tty50  tty7   ttyS19     ttyS4   vcs5

Я следовал этому руководству раньше, но не имею представления, что не так в этот раз. Поэтому, пожалуйста, подскажите, как получить список mmcblk.

Попробуйте lsblk из util-linux в командной строке в konsole:

$ lsblk
NAME           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
loop0            7:0    0 690.9M  1 loop  /mnt/virtio
sda              8:0    0   1.8T  0 disk
├─sda1           8:1    0   512M  0 part
└─sda2           8:2    0   1.8T  0 part
  └─luks-work  253:0    0   1.8T  0 crypt /mnt/work
nvme0n1        259:1    0 465.8G  0 disk
├─nvme0n1p1    259:2    0   512M  0 part  /boot/efi
├─nvme0n1p2    259:3    0   512M  0 part  /boot
└─nvme0n1p3    259:4    0    45G  0 part  /
sr0             11:0    1  1024M  0 rom
mmcblk0        179:0    0 238.8G  0 disk
└─mmcblk0p1    179:1    0 238.7G  0 part
zram0          252:0    0     8G  0 disk  [SWAP]

что должно перечислить все блочные устройства (за исключением RAM-дисков), например, жесткие диски, SSD, CD-ROM, SD-карты и их разделы.

SD-карта не обязательно видна как /dev/mmcblk*. Еще один вариант — это /dev/sd*.

Вы можете найти имя, посмотрев в вывод dmesg. Другой способ — это извлечь карту, ввести ls /dev, вставить карту, снова выполнить ls /dev и найти разницу.

Ответ или решение

Для использования карты SD и создания на ней разделов в операционной системе Linux, необходимо правильно идентифицировать устройство, с которым вы работаете. В данном контексте пользователь столкнулся с проблемой, когда команда ll /dev/mmcblk* не возвращает ожидаемых данных, поскольку устройство не отображается в пути /dev как mmcblk.

Теория

В Linux все устройства, включая карты памяти, флеш-накопители, жесткие диски и т.д., отображаются и взаимодействуют с системой через интерфейсы файловой системы в каталоге /dev. Устройства блоков данных, такие как SD-карты, обычно отображаются как mmcblk (в случае встроенных карт) или sd (в случае съемных устройств, подключенных через USB).

  1. mmcblk и sd устройства: Драйверы памяти MultiMediaCard (MMC) используют обозначение mmcblk, в то время как съемные и USB-устройства могут быть представлены в виде sd-устройств. Это связано с использованием разных интерфейсов для взаимодействия с устройством.

  2. lsblk и dmesg: Команда lsblk полезна для отображения всех устройств блоков данных. Она предоставляет более наглядное отображение подключенных устройств, их структуры разделов и точек монтирования, если таковые имеются. С другой стороны, команда dmesg показывает сообщения ядра, что может быть полезно для диагностики проблем с подключением/идентификацией устройств.

  3. Идентификация через изменение в /dev: Часто бывает полезно физически извлечь SD-карту, ввести команду ls /dev, затем вставить карту обратно и снова ввести ls /dev, чтобы увидеть, какое новое устройство появилось. Данное устройство, скорее всего, и будет вашей SD-картой.

Пример

В рассматриваемом примере пользователь наблюдает отсутствие mmcblk-устройств:

ls: cannot access /dev/mmcblk*: No such file or directory

Затем с помощью:

ls /dev/

Он видит список устройств, но ни mmcblk0, ни mmcblk1 там нет. Пользователю предлагается использовать команду lsblk, чтобы увидеть полный список всех устройств блоков данных:

$ lsblk
NAME           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
...
mmcblk0        179:0    0 238.8G  0 disk
└─mmcblk0p1    179:1    0 238.7G  0 part

Применение

  1. Использование lsblk: Откройте терминал и введите lsblk для отображения всех подключенных устройств. Обратите внимание на любые устройства, определенные как mmcblk или sd. Пример выходных данных может включать следующее устройство:

    mmcblk0        179:0    0 238.8G  0 disk
    └─mmcblk0p1    179:1    0 238.7G  0 part

    Это указывает на то, что mmcblk0 — это ваша SD-карта, а mmcblk0p1 — её первый (и, возможно, единственный) раздел.

  2. Проверка dmesg: Если устройство не отображается, введите dmesg после подключения карты и найдите строки, связанные с вашим устройством, например:

    [ 1234.567890] sd 2:0:0:0: [sdb] 125440 512-byte logical blocks: (64.1 MB/61.2 MiB)
    [ 1234.567901] sd 2:0:0:0: [sdb] Write Protect is off

    Здесь sdb указывает на подключенное устройство, которым может являться ваша SD-карта.

  3. Сравнение каталогов: Сначала выполните ls /dev до подключения карты, а затем после:

    $ ls /dev > before.txt
    # Подключите карту
    $ ls /dev > after.txt
    $ diff before.txt after.txt

    Анализ этих файлов покажет новые устройства, которые появились после подключения карты.

  4. Управление разделами: Как только ваше устройство определено, используйте команды fdisk или gparted для управления разделами, например:

    sudo fdisk /dev/mmcblk0

    Следуйте инструкциям для добавления, удаления или изменения разделов в зависимости от ваших нужд.

Эти шаги должны помочь в определении и управлении разделами SD-карты с использованием соответствующих /dev записей, позволяя эффективно работать с устройством.

Оцените материал
Добавить комментарий

Капча загружается...