Intereting Posts
ошибка в сценарии count для числа вхождений Grub2 не может обнаружить Windows 10, двойную загрузку на двух жестких дисках, системе UEFI / GPT Автоматизация создания сертификатов OpenSSL, подписка Let'sEncrypt и связывание dir сайта в среде Nginx Когда нужно использовать полуточку между переменными окружения и командой getent shadow показывает хэши паролей для некоторых пользователей Почему `–modify-window = 1` при использовании команды` rsync`? SSH-туннелирование объясняется нестандартными условиями конвертировать PDF в png с изменением размера и добавлением черной границы Проблема с установкой Получить PID процесса, начатого по времени Проверка, не работают ли два файла с одинаковым содержимым Самый короткий способ извлечь последние 3 символа базы (минус суффикс) filename Как включить вывод скрипта в приглашение zsh Как получить потоп, чтобы открывать видео с помощью mpv и папок с помощью рейнджера? кэширование ключевой фразы на сервере linux

У моей SD-карты есть раздел, но Linux не создает запись устройства для раздела

Хорошо, я не знаю, что здесь происходит, сначала я подумал, что это проблема, о которой я помню, когда-то, когда я не мог монтировать раздел vfat, потому что у него был установлен флаг, который он не был удален. Я помню, что был способ исправить это, но я не могу найти его сейчас. В любом случае, я не думаю, что это проблема здесь, и я искал несколько дней без везения.

Это SDHC-карта (32 ГБ), которую я использую для одной из моих камер (у меня есть еще 32-гигабайтная карта, которую я использовал для другой камеры, с тем же USB-адаптером, и это отлично работает в Linux), поэтому я могу видеть файлы изнутри камера не проблема, но когда я подключаю адаптер + карту в linux, я не вижу устройства, появляющегося в Konqueror. Поэтому я стараюсь:

# mount /dev/sdd /d/try/2 mount: you must specify the filesystem type # mount -t vfat /dev/sdd /media/sdcard mount: wrong fs type, bad option, bad superblock on /dev/sdd, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so 

fdisk говорит

 fdisk -l /dev/sdd Disk /dev/sdd: 31.9 GB, 31914983424 bytes 255 heads, 63 sectors/track, 3880 cylinders, total 62333952 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 Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sdd1 8192 62333951 31162880 c W95 FAT32 (LBA) 

но

 # ls /dev/sdd* /dev/sdd 

Таким образом, нет никаких устройств / dev / sddX, хотя fdisk говорит, что они существуют! gparted показывает мне раздел / dev / sdd1 без проблем (но перед ним есть 4 МБ свободного места). Поэтому я подозреваю, что происходит что-то другое. Возможно ли, что это свободное пространство вызывает проблемы? Почему? Изменил бы размер раздела, чтобы использовать это 4mb (как это вообще произошло?) Исправить все это? И тогда это приведет к тому, что данные как-то теперь не будут читаться с камеры? Или, что еще хуже, безвозвратно испорчено? Я уверен, что мне удалось получить доступ к этой карточке раньше из Linux, так как я думаю, что даже перемещал некоторые файлы (у него есть несколько фотографий с другой камеры). Так что странно, что я не могу получить к нему доступ сейчас.

В принципе, я хотел бы знать, как исправить это (как можно менее разрушительно), и что вызывает проблему (чтобы избежать ее в будущем). Для справки я включил вывод dmesg .

 # dmesg|tail -30 [3783978.490032] usb 1-5: new high-speed USB device number 44 using ehci_hcd [3783978.608523] usb 1-5: New USB device found, idVendor=05e3, idProduct=0727 [3783978.608528] usb 1-5: New USB device strings: Mfr=3, Product=4, SerialNumber=2 [3783978.608530] usb 1-5: Product: USB Storage [3783978.608531] usb 1-5: Manufacturer: Generic [3783978.608533] usb 1-5: SerialNumber: 000000000207 [3783978.609406] scsi29 : usb-storage 1-5:1.0 [3783979.610445] scsi 29:0:0:0: Direct-Access Generic STORAGE DEVICE 0207 PQ: 0 ANSI: 0 [3783979.613096] sd 29:0:0:0: Attached scsi generic sg3 type 0 [3783979.773160] sd 29:0:0:0: [sdd] 62333952 512-byte logical blocks: (31.9 GB/29.7 GiB) [3783979.774295] sd 29:0:0:0: [sdd] Write Protect is off [3783979.774300] sd 29:0:0:0: [sdd] Mode Sense: 0b 00 00 08 [3783979.775406] sd 29:0:0:0: [sdd] No Caching mode page present [3783979.775410] sd 29:0:0:0: [sdd] Assuming drive cache: write through [3783979.779038] sd 29:0:0:0: [sdd] No Caching mode page present [3783979.779048] sd 29:0:0:0: [sdd] Assuming drive cache: write through [3783981.471143] sd 29:0:0:0: [sdd] Unhandled sense code [3783981.471147] sd 29:0:0:0: [sdd] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE [3783981.471150] sd 29:0:0:0: [sdd] Sense Key : Medium Error [current] [3783981.471153] sd 29:0:0:0: [sdd] Add. Sense: Data phase CRC error detected [3783981.471157] sd 29:0:0:0: [sdd] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00 [3783981.471162] end_request: I/O error, dev sdd, sector 0 [3783981.471166] Buffer I/O error on device sdd, logical block 0 [3783981.482542] Dev sdd: unable to read RDB block 0 [3783981.482548] sdd: unable to read partition table [3783981.486264] sd 29:0:0:0: [sdd] No Caching mode page present [3783981.486267] sd 29:0:0:0: [sdd] Assuming drive cache: write through [3783981.486269] sd 29:0:0:0: [sdd] Attached SCSI removable disk 

Некоторые успехи (я отредактирую этот ответ, если / когда найду подходящее окончательное решение). После полной резервной копии устройства с использованием команды dd @ INDIVIDUAL-IT (я думаю, что использование bs = 1M сделало передачу болезненно медленной, хотя). Мне не удалось установить файл резервной копии, но

 # dd if=backup.img of=backup-skip.img bs=1M skip=4 

создал файл mountable ( backup-skip.img ), и насколько я мог сказать, все файлы были там и доступны. (ОБНОВЛЕНИЕ: запись этого снятого изображения обратно на SD-карту заставила его автоматически обнаруживать и монтироваться с помощью linux, но не работает в камере).

Я снова загрузил gparted и попытался удалить 4MB пустого пространства, предшествующего моему разделу, но это было невозможно, это не позволило мне заставить раздел использовать все пространство, оставив минимум 1 МБ без возможности удалите это (попробовали все варианты выравнивания , но не кубики).

Из любопытства я lba флажок опции lba раздела sdd1. Меня не попросили подтвердить это изменение, и я не щелкнул нигде, чтобы зафиксировать изменения на устройстве, но я увидел, что светодиод на адаптере мигает, и внезапно появилась запись в konqueror для моей SD-карты. Я отключил, отключил USB-устройство, а затем снова подключил его, но SD-карта не была автоопределена, и я вернулся к первому. gparted на устройстве теперь говорит мне, что lba не активируется на этом устройстве. Странный.

Разделение обнаружено!

Туман немного отступил от моей памяти благодаря странному эффекту, и я побежал:

 # partprobe 

и вдруг / dev / sdd1 создается, и устройство появляется в konqueror! Итак, еще не окончательное решение (так как каждый раз нужно запускать partprobe, как root), но по крайней мере я могу получить доступ к моим файлам. Надеюсь, что это поможет кому-то, пока я выясню постоянное исправление.

Для меня это похоже на то, что ваша таблица разделов каким-то образом перепуталась.

  1. сделайте полную резервную копию карты с dd: dd if=/dev/sdd of=backup.img bs=1M . Если dd не может скопировать sd-карту, то, скорее всего, аппаратные средства сломаны. Вы все еще можете испытать удачу с ddrescue
  2. используйте TestDisk, чтобы попытаться восстановить таблицу разделов. Сделайте восстановление в файле backup.img или даже резервной копии файла резервной копии. Просто, чтобы быть уверенным, что вы не делаете это хуже.
  3. Чтобы избавиться от первого использования 4MB, используйте dd if=backup.img of=backup_striped bs=1M skip=4
  4. если восстановление дает вам монтируемый файл со всеми файлами, и fsck не дает вам никакой ошибки при тестировании, вы можете записать восстановленный файл обратно на SD-карту. dd if=backup_striped of=/dev/sdd bs=1M убедитесь, что вы записываете на правильный диск
  5. если восстановление раздела не удастся, вы можете использовать TestDisk для восстановления файлов один за другим с передовым или скальпелем

Вы можете использовать TestDisk для

Согласно журналам, ядро ​​получает ошибку от оборудования, когда пытается прочитать таблицу разделов сразу после обнаружения карты. Тем не менее, когда вы позже вызываете partprobe , ядро ​​может отлично читать таблицу разделов. Похоже, есть либо аппаратная ошибка, либо ошибка драйвера, которая приводит к сбою первоначального чтения. Может случиться так, что для прошивки SD-карты или считывателя потребуется некоторое время для завершения инициализации, и драйвер пытается прочитать слишком рано. Решение (не дожидаясь замены аппаратного обеспечения) должно было бы ввести задержку в драйвере.

В качестве обходного пути вы можете добавить правило udev, которое соответствует вашему устройству, и запускает скрипт

 #!/bin/sh sleep 1 partprobe "$DEVNAME"