linux: Class10 SD-карта различного устройства и размер блока устройства

A имеют новую карту памяти SD 10GB класса 10 и создают очень странное поведение. После того, как я подключил карту с помощью USB-SD-Card-ридера, устройство появилось как / dev / sdb. Я попытался скопировать 2GB-изображение с dd в, но он сразу же возвращает: «Больше нет места на устройстве».

Блок-устройство показывает: на нем всего 10 М.

 ls -lah /dev/sdb -rw-r--r-- 1 root root 10M máj 16 23:16 /dev/sdb 

fdisk имеет одинаковый размер:

 fdisk -l /dev/sdb Disk /dev/sdb: 10 MiB, 10485760 bytes, 20480 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x84f9d19f 

Я пробовал SD-карту с другим читателем, но похоже, что это не проблема с кард-ридером, «размер» SD-карты составляет 10 М с каждым читателем.

 cat /proc/partitions major minor #blocks name ... 8 16 15558144 sdb ... 

Интересная часть: ядро ​​выглядит так, как будто знает правильный размер SD-карты.

 cat /sys/block/sdb/size 31116288 # numbers of 512 byte blocks => 15.93 GB 

И кажется, что это правильно признано.

 May 16 22:58:07 DDSI-Laptop kernel: [258762.883672] usb 1-3: New USB device found, idVendor=14cd, idProduct=125c May 16 22:58:07 DDSI-Laptop kernel: [258762.883674] usb 1-3: New USB device strings: Mfr=1, Product=3, SerialNumber=2 May 16 22:58:07 DDSI-Laptop kernel: [258762.883675] usb 1-3: Product: Mass Storage Device May 16 22:58:07 DDSI-Laptop kernel: [258762.883676] usb 1-3: Manufacturer: Generic May 16 22:58:07 DDSI-Laptop kernel: [258762.883677] usb 1-3: SerialNumber: 125C20100726 May 16 22:58:07 DDSI-Laptop kernel: [258762.883972] usb-storage 1-3:1.0: USB Mass Storage device detected May 16 22:58:07 DDSI-Laptop kernel: [258762.884114] scsi host52: usb-storage 1-3:1.0 May 16 22:58:07 DDSI-Laptop mtp-probe: checking bus 1, device 30: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-3" May 16 22:58:07 DDSI-Laptop mtp-probe: bus: 1, device: 30 was not an MTP device May 16 22:58:08 DDSI-Laptop kernel: [258763.881813] scsi 52:0:0:0: Direct-Access Mass Storage Device PQ: 0 ANSI: 0 CCS May 16 22:58:08 DDSI-Laptop kernel: [258763.882008] sd 52:0:0:0: Attached scsi generic sg1 type 0 May 16 22:58:08 DDSI-Laptop kernel: [258763.883073] sd 52:0:0:0: [sdb] 31116288 512-byte logical blocks: (15.9 GB/14.8 GiB) May 16 22:58:08 DDSI-Laptop kernel: [258763.883195] sd 52:0:0:0: [sdb] Write Protect is off May 16 22:58:08 DDSI-Laptop kernel: [258763.883198] sd 52:0:0:0: [sdb] Mode Sense: 03 00 00 00 May 16 22:58:08 DDSI-Laptop kernel: [258763.883312] sd 52:0:0:0: [sdb] No Caching mode page found May 16 22:58:08 DDSI-Laptop kernel: [258763.883315] sd 52:0:0:0: [sdb] Assuming drive cache: write through 

В чем причина разницы?

  • Как создать загрузочный заголовок для загрузки powerpc MPC8309twr с SD-картой
  • Нужна помощь в создании Live SD-карты
  • Недействительный параметр fsck
  • Использование отдельного раздела для установленного программного обеспечения
  • Не удается отформатировать поврежденную 32-гигабайтную SD-карту
  • dd для клонирования с меньшим sdcard
  • Alcor Multi Flash Reader Arch Linux
  • Изменяет ли Gparted разрешения?
  • One Solution collect form web for “linux: Class10 SD-карта различного устройства и размер блока устройства”

     -… /dev/sdb 

    Это обычный файл, а не устройство. Вы, должно быть, пытались написать в /dev/sdb в какой-то момент, когда не было устройства, связанного с этой буквой диска. Быть осторожен! Вам повезло не переписывать другое устройство из того, что вы намеревались.

    Информация о блочных устройствах в /proc и /sys предоставляется напрямую ядром, используя имя ядра для устройства. Узлы устройств в /dev управляются udev ; они обычно следуют за именами устройств ядра (и добавляют другие имена в виде символических ссылок), но запись в /dev вручную может привести к нарушению udev. Поскольку запись каталога /dev/sdb уже существовала, она не создавала узел устройства при подключении к SD-карте.

    Удалите /dev/sdb , извлеките SD-карту, подключите ее и проверьте, какое имя устройства она получает. Вы должны увидеть блок-устройство:

     $ ls -l / dev / sdb
     b rw-rw-rw- 1 корневой диск 8, 16 ... / dev / sdb    
    
    Linux и Unix - лучшая ОС в мире.