Изменения SD-карты, отмененные после повторного подключения (например, повторное появление удаленных файлов)

После того, как на моей SD-карте была повреждена файловая система (вероятно, из-за недостаточного питания), я хочу создать новую файловую систему. (e2fsck не удается, войдите ниже.)

Однако любые связанные с файлами изменения на SD-карте волшебным образом отменяются!

  • Первый пример: когда я монтирую SD-карту, удалить некоторые файлы, файлы исчезнут. Когда я отключаю его и снова монтирую, файлы снова появляются! Точно так же, когда я изменяю содержимое файла, исходное содержимое возвращается после перемонтирования.
  • Второй пример: когда я создаю новую таблицу разделов с помощью fdisk, старая таблица разделов сразу возвращается на место. (Войдите ниже.)
  • Третий пример: , в то время как я бегу dd if=/dev/zero of=/dev/mmcblk0 bs=1M, fdisk разумно сказал Disk /dev/mmcblk0 doesn't contain a valid partition table. Когда dd было сделано, старая таблица разделов снова вернулась.

Я физически не заблокировал SD-карту с помощью небольшого переключателя. Я не получаю никаких ошибок только для чтения. На самом деле я не получаю никаких ошибок! dmesg ничего не сообщает, кроме того, что я монтирую файловую систему с ошибками.

Проблема также возникла при запуске Xubuntu Live CD (12.10). К сожалению, в настоящее время у меня нет доступа к другим компьютерам и / или устройствам чтения SD-карт.

Это проблема моего компьютера, моей SD-карты или я что-то упускаю? Любые предложения, что я мог бы попробовать?


e2fsck не удается:

$ sudo e2fsck /dev/mmcblk0p2 
e2fsck 1.42.5 (29-Jul-2012)
/dev/mmcblk0p2: recovering journal
Superblock needs_recovery flag is clear, but journal has data.
Run journal anyway<y>? yes
e2fsck: unable to set superblock flags on /dev/mmcblk0p2


/dev/mmcblk0p2: ********** WARNING: Filesystem still has errors **********

Вот журнал, который показывает, что fdisk не имеет никакого эффекта:

[ 111]
7
задан 2 March 2013 в 01:50

2 ответа

Ваша карта заблокирована с помощью флага защиты от записи MMC. Если у вас есть компьютер Linux с устройством для чтения карт SD / MMC, попробуйте запустить

sudo sdtool /dev/mmcblk0 unlock

. Обратите внимание, что для этого вам нужно устройство MCC (а не запоминающее устройство USB, подобное /dev/sdX). [ 117]

sdtool можно найти здесь . Существует сборка Raspberry Pi, в противном случае вам придется строить из исходников. Кажется, что подобное действие может быть выполнено с hdparm , но я не пробовал это лично.

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

0
ответ дан 2 March 2013 в 01:50

В этот момент я бы предложил запустить бадблоки на SD-карте, чтобы посмотреть, что она найдет.

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

Вы можете попробовать переключить переключатель защиты от записи, когда карта извлечена из системы. например,

  1. переключить защиту от записи
  2. вставить
  3. сделать что-нибудь тривиальное
  4. размонтировать / извлечь
  5. защиту от обратной записи
  6. промыть / repeat

В попытке щекотать схему, которая может кэшировать значение «застрял на 1». Кроме этого, раздави его, чтобы больше никто не страдал, и брось его.

0
ответ дан 2 March 2013 в 01:50

Другие вопросы по тегам:

Похожие вопросы: