Линукс с флешки как восстановить флешку после

Восстановление флешки в Ubuntu Linux.

Инструкция найдена на форуме убунту.ру, но времени чтоб найти потратил кучу, поэтому сделаю у себя описание.
В моем случае флешка монтируется, но при попытке удалить или записать данные появляется сообщение, что файловая система примонтирована только для чтения.
Ни монтирование с полными правами для моего пользователя:

sudo mount -t vfat /dev/sdb /home/alex/flash -o uid=1000,gid=1000,utf8,dmask=777,fmask=777

Ни попытка поменять права доступа:

никакого результата не дали.

После выполнения всех операций ниже все данные на флешке будут полностью уничтожены!
Сначала нужно определить какое устройство отвечает в системе за подключаемую флешку. Я полез в «Система-Администрирование-Дисковая утилита» (ее же можно вызвать из терминала (gnome-terminal) набрав: palimsest и нажав Ввод) и слева в меню, клацнув на подключенной флешке, увидел, что это устройство /dev/sdb. Узнать это можно разными способами, описанный — самый «чайниковский»)
Далее строго по инструкции:

1. Размонтируем флешку, если примонтирована:

2. Отформатируем флешку, записав вместо данных нули:

процедура долгая, у меня 8 гигабайтную флешку форматировало около 40 минут. Можно переписать только первые 512 байт, в которых записана таблица разделов:

sudo dd if=/dev/zero of=/dev/sdb bs=512 count=1

3. Далее создадим раздел:

на что я получил в ответ такое:

Устройство не содержит ни верной таблицы разделов DOS, ни метки диска Sun, SGI или OSFBuilding a new DOS disklabel with disk identifier 0xba831fb7.Changes will remain in memory only, until you decide to write them.After that, of course, the previous content won’t be recoverable.
Предупреждение: неверный флаг 0x0000 таблицы разделов 4 будет исправлен записью
WARNING: DOS-compatible mode is deprecated. It’s strongly recommended to switch off the mode (command ‘c’) and change display units to sectors (command ‘u’).
Команда (m для справки):

жмем n, получаем:

Действие команды
e расширенный
p основной раздел (1-4)

жмем p, получаем:

жмем 1, получаем:

Первый цилиндр (1-1021, по умолчанию 1):

жмем Enter, получаем

Используется значение по умолчанию 1
Last цилиндр, +цилиндры or +size (1-1021, по умолчанию 1021):

жмем Enter, получаем

Используется значение по умолчанию 1021
Команда (m для справки):

жмем t, получаем:

Выбранный раздел 1
Шестнадцатеричный код (введите L для получения списка кодов):

Жмем l, получаем список возможных вариантов создания файловой системы и выбираем 6 — FAT 16:

Системный тип раздела 1 изменен на 6 (FAT16)
Команда (m для справки):

Жмем p, получаем:

Диск /dev/sdb: 8075 МБ, 8075120640 байт
249 heads, 62 sectors/track, 1021 cylinders
Units = цилиндры of 15438 * 512 = 7904256 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xba831fb7
Устр-во Загр Начало Конец Блоки Id Система
/dev/sdb1 1 1021 7881068 6 FAT16
Команда (m для справки):

Далее сохраняем изменения нажав w и получив:

Таблица разделов была изменена!
Вызывается ioctl() для перечитывания таблицы разделов.
ПРЕДУПРЕЖДЕНИЕ: Если вы создали или изменили
какие-либо разделы DOS 6.x, пожалуйста, прочтите
страницу руководства fdisk для получения
дополнительной информации.
Синхронизируются диски.

Основная работа сделана — осталось отформатировать флешку. Для этого сначала размонтируем ее, если она автоматически примонтировалась и отформатируем:

sudo umount /dev/sdb1
sudo mkfs.vfat -F 32 /dev/sdb1

Теперь вынуть вставить флешку и вуаля) Все работает и доступно и для чтения и для записи)

Источник

Как «вылечить» поврежденный USB-накопитель в Linux?

Флэшки есть у всех. Маленькие, удобные – что может быть лучше для сохранения данных. Но бывает, что флэшки повреждаются или вообще отказываются работать. Если вы пользователь Linux и подобное случилось с вами, исправить все будет несложно.

Примечание: описанные методы работают не только для USB-накопителей, но и для жестких дисков тоже.

Интересно: Как отформатировать защищенную от записи флешку. Читаем здесь.

Удаление бэд-блоков с USB-накопитель с помощью fsck

Простой способ починить флэш-накопитель (и вообще любой накопитель) – инструмент fsck. Он удаляет поврежденные сектора, или «бэд-блоки», из-за которых чаще всего и возникают проблемы с чтением. Чтобы удалить поврежденные сектора с флэшки, откройте терминальное окно и введите следующие команды.

Сначала нужно узнать метки дисков. Сделайте это, введя команду lsblk. Появится список всех подключенных накопителей.

Примечание: по команде lsblk появляется список всех дисков, не только USB-накопителей. Будьте внимательны, чтобы не перепутать флэшку с жестким диском.

Чтобы удалить бэд-блок, запустите команду fsck либо в отдельном разделе (например, /dev/sdc1), либо на всем диске (например, /dev/sdc). По окончании процесса ваша флэшка будет снова полностью работоспособна в Linux.

sudo fsck /dev/sdc1

Примечание: здесь предполагается, что метка флэш-накопителя — /dev/sdc (или /dev/sdc1). У разных пользователей метки могут быть другими.

Полная очистка

Иногда USB-накопитель совершенно не читается, и спасти что-то с него уже не получится. Все, что остается в этой ситуации – очистить все данные и начать сначала. Лучший инструмент для этого – dd.

Возьмите метку накопителя, которую вы нашли прежде командой lsblk, и дальше действуйте по предыдущему алгоритму (/dev/sdc1 – раздел, /dev/sdc – весь диск):

sudo dd if=/dev/zero of=/dev/sdc

Создание новой файловой системы

Очистка флэшки (или любого другого накопителя) делает все записанные данные на ней бесполезными. Это значит, что нужно создать новый раздел данных. Выберите желаемую файловую систему и введите соответствующую команду:

sudo mkfs.msdos -f 32 /dev/sdc1

Ext4

sudo mkfs.ext4 -f /dev/sdc1

NTFS

sudo mkfs.ntfs -f /dev/sdc1

Заключение

USB-флэшки – полезные девайсы. С ними легко переносить данные с одного компьютера на другой вне зависимости от установленной ОС. Вот почему важно знать, что делать, если флэшка вдруг стала недоступной. К счастью у Linux есть мощные инструменты, способные легко «вылечить» флэш-накопитель.

Источник

программный ремонт usb flash накопителей в linux

Довольно таки часто занимался программным восстановлением usb flash накопителей на Windows, ну и заинтересовался как можно это реализовать на Linux. Как раз под рукой лежала флэшка JetFlash TS4GJF160 на 4Gb, которая не хотела работать

И так для начала разберемся что же есть программный ремонт. В любой флэшке установлена микросхема-контроллер. Она отвечает за передачу данных между компьютером и флэш-памятью. В случае различных сбоев питания, неправильного извлечения и других причин – происходит сбой контроллера. В результате чего контроллер блокируется и не отвечает на запросы операционной системы. Также, блокировка может произойти из-за износа микросхемы памяти — появления дефектных блоков или превышения порога циклов записи (тогда контроллер сам метит блок как неиспользуемый и часто блокирует флэш на запись). И при попытке доступа к нему из операционной системы можно увидеть следующие сообщения «Вставьте диск» или «Нет доступа к диску», «Диск не отформатирован». Но при попытке отфарматировать выдается сообщение типа «Диск защищен от записи»

Так как же боротся с этим?! Весьма просто…

Вставляем usb flash накопитель в компьютер и определяем какое имя ему присваивается При подключении usb flash накопителя к компьютеру, Linux присваивает ему имя типа sdX (первому устройству присваивается sda, второму sdb и так далее. Но чтобы узнать какое имя он ему присвоил наверняка, используем 1 из способов:

Из этого всего нам нужна только 1 строка:

которая и говорит нам что присвоено имя устройству sdc1

Аналогично первой команде ищем среди последних строк:

Имхо самый оптимальный вариант, выведет весь список смонтированных устройств и в самом конце видим следующее:

Думаю тут все понятно, /dev/sdc1 то что нам и нужно

Забиваем usb flash накопитель нулевыми байтами, набирая:

После чего нам выдаст следующее:

На ошибку можете не обращать внимание, мы же не указали необходимый размер

Форматируем usb flash накопитель, командой:

Создаем новый раздел, командой n:

Просматриваем что получилось, командой p:

Так как Linux раздел нам никчему сменим его, командой t:

Смотрим результат, командой p:

Ну и записываем таблицу разделов на usb flash накопитель, командой w:

Форматируем usb flash накопитель, командой:

После форматирования в раздел FAT16, выведет следующее:

Команда для форматирования в FAT32:

После выполнения этих пунктов, в WinXP usb flash накопитель выдал «Диск не отформатирован» и только после того как я отформатировал стандартными средствами Win все заработало

Вот вообщем-то и все… Удачи в восстановлении!)

Для дополнительной информации об устройстве, введите:

Источник

Данным — жить! Восстанавливаем в Linux информацию с «убитой» флешки

Содержание статьи

Предыстория

Недавно ко мне пришел товарищ с фразой: «У меня флешка сломалась, можешь посмотреть? В принципе, если не получится, то и ладно, но там есть несколько файлов, копий которых нет».

Я, конечно, флешку взял и обещал посмотреть, что можно сделать. Грех не помочь другу! Входные данные были такие: «винда перестала видеть флешку». Других внятных объяснений произошедшего я не добился.

И вот, когда выдалось немного свободного времени, настала пора попробовать восстановить какие-то данные с флешки.

В этой статье рассматривается восстановление флешек в среде Linux. В Windows тоже можно восстанавливать данные: есть разные утилиты и проприетарные продукты (например, R-Studio), но это тема для отдельных статей.

Первым делом, подключив флешку к ноуту с Linux, я убедился, что аппаратная часть девайса жива, а повреждены именно данные на ней.

Второе, что я сделал, — снял образ.

Техника безопасности: снимаем образ

Самая важная часть в восстановлении данных — не угробить своими действиями еще больше данных. Все описываемые в статье действия производились исключительно с образом флешки. Снять образ можно следующими командами (тебе, конечно, надо указать путь к своему устройству):

Как вариант, можно использовать команду ddrescue:

Лично я предпочитаю второй способ, поскольку ddrescue пытается считать данные в несколько проходов, а также (если ты дал команду писать лог) прервать чтение и продолжить с места остановки. Плюс к этому утилита дает красивый отчет о том, сколько данных считалось, а сколько нет, и оценку времени до конца съема образа.

Кроме того, имеет смысл работать с копией образа. Вдруг ты его испортишь, и не факт, что получится еще раз снять образ с флешки, если она умирает из-за аппаратных проблем. Для частичных копий образа и восстановления испорченных частей к начальному состоянию рекомендую пользоваться тем же всемогущим dd.

Параметр notrunc нужен для того, чтобы dd не обрезала файл-назначение, когда закончатся данные в файле-источнике.

Сняв образ флешки, я взглянул на содержимое. Увиденное несколько меня удивило.

$ hexdump -C flash.img|less

00000000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |. | * 00400000 01 76 0a 00 02 76 0a 00 03 76 0a 00 04 76 0a 00 |.v. v. v. v..| 00400010 05 76 0a 00 06 76 0a 00 07 76 0a 00 08 76 0a 00 |.v. v. v. v..| 00400020 09 76 0a 00 0a 76 0a 00 0b 76 0a 00 0c 76 0a 00 |.v. v. v. v..| 00400030 0d 76 0a 00 0e 76 0a 00 0f 76 0a 00 10 76 0a 00 |.v. v. v. v..| 00400040 11 76 0a 00 12 76 0a 00 13 76 0a 00 14 76 0a 00 |.v. v. v. v..| .

В образе первые 4 Мбайт данных были забиты 0xFF. Поврежден блок флеш-памяти? Чья-то попытка стереть данные? Сбой какого-то приложения? Почему затерта область — неважно. Главное, что у нас нет ни таблицы разделов, ни структуры файловой системы. Хотя если приглядеться, то видна закономерность. Перед нами последовательность увеличивающихся на единицу 32-битных чисел (в формате LittleEndian): 0x000a7601, 0x000a7602, 0x000a7603. Следовательно, у нас на флешке, скорее всего, была файловая система FAT32.

Что ж, попробуем восстановить данные. Для начала возьмем утилиту TestDisk.

TestDisk

TestDisk — не просто утилита, а мощный комбайн по восстановлению данных.

О TestDisk

TestDisk разработан Кристофом Гренье и распространяется по лицензии GPL v2. Эта утилита предназначена в первую очередь для восстановления потерянных разделов на носителях информации, а также для восстановления загрузочного сектора.

  • исправлять таблицу разделов, восстанавливать удаленные разделы;
  • восстанавливать загрузочный сектор FAT32 из резервной копии;
  • перестраивать (реконструировать) загрузочный сектор FAT12/FAT16/FAT32;
  • исправлять таблицу FAT;
  • перестраивать (реконструировать) загрузочный сектор NTFS;
  • восстанавливать загрузочный сектор NTFS из резервной копии;
  • восстанавливать MFT;
  • определять резервный SuperBlock ext2/ext3/ext4;
  • восстанавливать удаленные файлы на файловых системах FAT, NTFS и ext2;
  • копировать файлы с удаленных разделов FAT, NTFS и ext2/ext3/ext4.

Запускаем TestDisk такой командой:

Стартовый экран TestDisk

Выбираем пункты меню Procced → Intel → Analyse и получим следующее.

Выбор типа разметки Выбор опций Таблица разделов Еще одна таблица разделов

Видим, что TestDisk не нашел таблицы разделов. Ожидаемо, ведь она затерта. Попробуем ее восстановить с использованием «быстрого поиска» разделов на диске. Выбираем пункт Quick Search.

Все еще без таблицы разделов

TestDisk ничего не нашел, но и это ожидаемо, ведь раздел FAT32 тоже поврежден. TestDisk теперь предлагает нам прописать разделы вручную, но мы не знаем, что где лежало. Поэтому пока отложим эту утилиту в сторону. Для выхода достаточно несколько раз нажать кнопку q.

Что ж, возьмем тогда на вооружение другое изобретение того же автора — PhotoRec.

PhotoRec

PhotoRec — это программа для восстановления утерянных (удаленных) файлов. Изначально она разрабатывалась для восстановления изображений из памяти цифровых камер, отсюда и название — PHOTO RECovery. Со временем она обросла функциями восстановления и других типов данных, но название осталось.

О PhotoRec

PhotoRec ищет известные заголовки файлов. Если нет фрагментации, которая часто бывает, он может восстановить весь файл. PhotoRec распознает многочисленные форматы файлов, включая ZIP, Office, PDF, HTML, JPEG и другие форматы графических файлов. Полный список форматов, поддерживаемых PhotoRec содержит более 390 расширений (около 225 семейств форматов).

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

Натравим эту утилитку на наш образ флешки и посмотрим, что получится.

Стартовый экран PhotoRec

Видим уже знакомый интерфейс, выбираем Proceed → Search → Other, указываем папку, куда сохранять (лучше ее создать заранее), жмем кнопку c. И ждем.

Выбор раздела Выбор типа файловой структуры Выбор папки назначения Процесс восстановления

В итоге получаем несколько папок с тысячами файлов в них.

Куча сохраненных файлов

Беглый осмотр показал, что какие-то файлы восстановились: и документы, и картинки, и исходники. Но нет ни имен файлов, ни даты их создания, ни структуры папок. Кроме того, как оказалось, на флешке была какая-то документация в виде страничек HTML с кучей мелких картинок. В связи с чем поиск ценных файлов занял бы не один час.

Да и, как указано на врезке, фрагментированные файлы или не восстановились, или повреждены (обрезаны).

Видимо, придется напрячь все свои силы и руками восстановить структуру FAT32.

Чиним FAT32

Для восстановления структуры FAT32 надо внимательно почитать документацию, вычислить значения ключевых параметров, а затем внести их в загрузочную запись FAT32. Кратко суть структуры FAT32 изображена на рисунке.

Сюда входит загрузочный сектор, структура FSInfo, две копии таблиц FAT и область данных. Загрузочный сектор (он же BPB — Boot Parameter Block) содержит основные данные, которые описывают характеристики раздела, и код загрузчика.

В таблице FAT хранятся записи номеров следующих кластеров цепочки файла/директории, признак последнего кластера в цепочке (значение 0xFFFFFFFF) или признак свободного кластера (значение 0). Область данных начинается с корневой директории, содержимое дальнейшей области зависит от данных в записях корневой директории и соответствующих цепочках таблицы FAT. Более подробное описание файловой системы смотри по ссылкам, приведенным во врезке.

  • Официальная спецификация FAT (Microsoft, DOC)
  • Understanding FAT32 Filesystems (GitHub, PDF)
  • Design of the FAT file system (GitHub, PDF)
  • Загрузочный сектор, FSINFO, таблица FAT и записи каталогов FAT (Hetman Data Recovery)
  • Системные структуры данных FAT32 («Инфопедия»)

Для удобной работы с образом нам потребуется Hex-редактор. Лично мне очень нравится редактор 010 Editor. Он позволяет задавать шаблоны структуры на C-подобном языке и подсвечивать поля структуры в редакторе.

Откроем в нем наш образ флешки.

Ищем смещения

Начнем с того, что нам надо вычислить адреса, с которых начинаются раздел FAT32 и первая копия таблицы FAT.

Сначала поймем, повреждена у нас первая копия FAT или обе. Из документации мы знаем, что таблица FAT начинается с последовательности F8 FF FF FF (число 0xFFFFFFF8 в Little Endian). Поищем ее.

Поиск сигнатуры

Нам повезло — такая сигнатура нашлась. Значит, повреждена только первая копия таблицы FAT и мы можем скопировать данные второй таблицы в первую. Конечно, стоит помнить, что если флешка была отключена внезапно, то вторая копия может не полностью совпадать с первой (в нее просто не успели сохраниться изменения). Но все же мы сможем восстановить больше данных, чем при помощи только PhotoRec. Как минимум получим дополнительно имена файлов, даты их создания, корректные цепочки для фрагментированных файлов и даже структуру директорий.

Смотрим адрес — 0x8AE400. Это адрес начала второй копии таблицы. Теперь надо вычислить длину самой таблицы. Можно, конечно, руками полистать дамп, пока не заметим данные корневой директории. Но есть вариант попроще. Поскольку это две копии, то и запись, с которой начинается кусок первой копии таблицы, должна быть и во второй копии. А разница между ними и будет размером!

Поищем последовательность 01 76 0A 00, которую мы видели вначале, когда воспользовались hexdump. Быстро начинают находиться варианты. Остановим поиск нажатием ESC — нас интересуют первые два вхождения.

Первое вхождение последовательности

Первое вхождение (адрес 0x400000) — первая уцелевшая запись в первой копии FAT. Перед ней затертое пространство.

Второе вхождение последовательности

Второе вхождение (по адресу 0xB4BC00) — эта же запись во второй копии FAT. Перед ней мы видим сохранившиеся данные цепочек.

Вычислим размер таблицы FAT: 0xB4BC00 – 0x400000 = 0x74BC00 байт. Следовательно, если вычтем этот размер из адреса начала второй копии таблицы, то получим адрес начала первой копии: 0x8AE400 – 0x74BC00 = 0x162800.

Итак, у нас есть смещение начала таблиц FAT. Теперь надо найти адрес начала раздела. Согласно данным в спецификациях и статьях, приведенных во врезке, обычно первая копия таблицы начинается с 32-го сектора. Сектора, напомню, по 512 байт, значит, начало раздела должно находиться по адресу 0x162800 – 32×512 = 0x15E800.

Кстати, зная размеры таблиц и смещения их начала, можем найти адрес начала корневой директории.

Смещение корневой директории равно 0x15E800 + 32×512 + 2×0x74BC00 = 0xFFA000. И начинается она записью Transcend, что, очевидно, является меткой раздела.

Отлично. Смещения таблиц, корневой директории и адрес начала раздела знаем, осталось придумать, что записать в загрузочную запись. Можно сидеть и читать спецификации, высчитывая каждое значение. А я предлагаю сделать ход конем! Создаем пустой файл размером с раздел. Далее мы его форматируем в FAT32. Затем копируем первые 32 сектора в наш образ — и готово! 🙂

Попробуем воплотить этот план в жизнь.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Источник

Читайте также:  Windows server net commands
Оцените статью