Как восстановить флешку после balenaetcher
Восстановление флешки в Linux
Для многих начинающих пользователей система Linux является непривычной средой, в связи с чем, в зависимости от дистрибутива данной операционной системы, многие функции могут выполняться иначе, нежели в Windows. В частности, при использовании съемных носителей информации возникают нередко вопросы об их подключении, форматировании и восстановлении.
Существует немало способов, как выполнить данные операции с флешкой в системе Linux, но остановимся на самых простых и распространенных.
Форматирование с помощью командной строки
После запуска консоли необходимо прописать следующую команду: «# dmesg | tail», благодаря которой системой определяется имя устройства. В командной строке отобразятся данные, где присвоенное системой имя флешки указано в квадратных скобках – в данном случае [sdb]. Это выглядит следующим образом:
Далее необходимо прописать операцию форматирования, однако пользователю должен быть известен файловый формат, заданный на устройстве – FAT32 или NTFS. Каждый формат имеет собственную команду:
Утилита Palimpsest
С помощью данной программы можно легко и быстро восстановить устройство. Для этого достаточно воспользоваться функцией форматирования, а именно:
Программа Gparted
Еще один быстрый и распространенный способ форматирования внешних носителей информации. Чтобы восстановить флешку, достаточно выбрать ее в разделе отображенных в утилите устройств, после чего, кликнув правой кнопкой мыши, нажать в контекстном меню на пункт «Форматировать в». Далее необходимо определить нужный файловый формат, после чего начнется процесс восстановления.
Утилита «Управление дисками» (gnome-среда)
Графическая среда Gnome – довольно распространенная оболочка во многих операционных системах Linux. Она отличается большим количеством удобных приложений, инструментов и утилит по управлению системой компьютера, среди которых имеется замечательная программа «Disk Utility» («Дисковая утилита» или «Управление дисками»). Потому, чтобы восстановить флеш-накопитель, достаточно запустить «Диск Утилити», подключить устройство к компьютеру и проделать следующие действия:
1. Выбрать устройство в специальном поле устройств слева, затем нажать кнопку «Настройки» (иконка с шестеренками).
2. Далее в открывшейся вкладке с пунктами выбрать первый «Форматировать раздел…».
3. Затем задать необходимые параметры: ввести любое имя для тома и определить тип файловой системы. После чего кликнуть по кнопке «Далее» и начать операцию восстановления.
Заключение
Перечисленные в статье способы восстановления могут отлично применяться по разным причинам:
Перед тем как проводить форматирование устройства, обязательно удостоверьтесь, что на флешке нет важных для вас файлов. В противном случае, вы рискуете потерять все записанные ранее данные. Ну а если вам необходимо восстановить файлы, то это можно сделать с помощью других специальных программ: TestDisk, Extundelete, R-Studio, R-Linux, DMDE, Foremost, Mondo Rescue и т. д.
Как восстановить работоспособность USB диска/флешки после записи ISO или установки ОС (РЕШЕНО)
Опытные пользователи могут делать с USB носителями (дисками и флешками) разные нетривиальные вещи:
Все эти действия являются, с одной стороны, обратимыми, но, с другой стороны, могут вызвать непредвиденные последствия. Например
Данная статья посвящена подобным вопросам — как вернуть флешку в нормальное состояние, удалить все разделы и отформатировать, чтобы можно было записывать файлы и/или установить ОС на неё.
Восстановление флешки в Windows
Для просмотра дисков выполните (нажмите Win+r и введите, либо найдите в меню Пуск, либо запустите в командной строке):
На скриншоте показана флешка, на которую записан ISO образ с Live системой Linux. Как вы можете видеть, никакие действия для данного носителя недоступны.
Также невозможно удалить или отформатировать разделы.
Для исправления, откройте командную строку с правами администратора — это можно сделать нажав Win+x и выбрав Windows Terminal (Admin).
Запустите утилиту diskpart, для этого в открывшейся командной строке выполните:
Следующей командой выведите список дисков:
Теперь выберите диск, который необходимо восстановить, это делается командой вида
Где в качестве X нужно указать номер вашей USB флешки, которую вы хотите восстановить.
Например, номер моего диска 2, тогда команда следующая:
Следующая команда очищает диск:
Если всё прошло нормально, то будет выведено сообщение
Вы можете столкнуться с ошибкой:
Одной из частых её причин является то, что диск используется в другой программе, например, в данный момент диск открыт в файловом менеджере. Закройте файловый менеджер и другие программы, которые могут использовать диск, и повторите команду.
Теперь создайте таблицу разделов:
Если всё прошло нормально, будет выведено сообщение:
Теперь создайте файловую систему, выбрав одну из следующих команд:
Смотрите также:
Для выхода из программы введите:
Как вы можете убедиться, флешка вернулась в нормальное состояние — ей присвоена буква, с ней можно выполнять обычные действия, например, записать на неё файлы.
Восстановление флешки в Linux
В Linux кроме того, что диски и флешки с разделами восстанавливаются другими утилитами, нужно учитывать, что в большинстве современных дистрибутивов разделы носителей монтируются автоматически, а для успешного завершения операций по очистке и восстановлению, необходимо, чтобы флешка не использовалась никакой программой.
Кстати, автоматическое монтирование же может стать причиной некоторых проблем: например, если вы пытаетесь установить Linux на USB флешку и разметка диска заканчивается неудачей, то самая вероятная причина этого автоматическое монтирование разделов флешки. Очистка, показанная в данной инструкции, поможет избежать подобной проблемы с разметкой диска.
1. Очистка флешки с помощью wipefs
Данные методы в комментариях предложил пользователь redking.
Эти методы, с одной стороны, самые быстрые и простые, но, с другой стороны, должны использоваться очень осознанно чтобы не очистить данные с неверного носителя.
Программа wipefs очищает сигнатуры файловой системы, массива или таблицы разделов с указанного устройства в результате чего они становятся невидимыми для libblkid. wipefs не удаляет саму файловую систему или какие-либо данные с устройства. Коротко говоря, wipefs удалит все разделы и для возвращения флешки к нормальной работе достаточно будет её отформатировать в нужную вам файловую систему.
Нам нужно начать с того, чтобы определить, какое название имеет флешка среди дисковых устройств. Чуть ниже показан ещё один способ определения имени. Как альтернативный вариант, вы можете отключить/подключить флешку и посмотреть, какое устройство удалилось/добавилось.
Следующая команда показывает список устройств и мониторит появление новых:
Как только к компьютеру была подключена флешка, мы можем увидеть, что добилось устройство sdb, следовательно, это и есть искомое имя устройства.
Размонтируем все разделы, которые могли бы быть смонтированы:
Удаляем все разделы и файловые системы с указанного устройства:
Поиск имени устройства и очистку можно автоматизировать с помощью следующего небольшого скрипта — вы можете скопировать/вставить в консоль весь фрагмент кода за один раз. Для работы скрипта у вас должен быть установлен пакет fzf.
На скриншоте ниже вы можете увидеть два диска:
Подключаем флешку и нажимаем Ctrl+r.
Можно увидеть, что добавлена флешка. Выбираем её и нажимаем ENTER.
Если всё верно, введите YES и нажмите ENTER ещё раз. В результате выбранный диск будет очищен.
2. Поиск имени диска и размонтирование разделов
Рассмотрим ещё один метод поиска имени флешки среди дисковых устройств.
Независимо от того, какую программу вы выберите, вам нужно быть твёрдо уверенным в имени флешки, которую вы будете очищать и восстанавливать, и не в коем случае не перепутать её с другим постоянным хранилищем (твёрдым диском или SSD).
Вывести список дисков вы можете командой:
Предположим, я хочу восстановить диск с именем /dev/sdb имеющий следующую разметку:
Рекомендуется размонтировать его разделы, которые могли быть смонтированы автоматически. Для поиска смонтированных разделов:
То есть смонтированы разделы /dev/sdb1 и /dev/sdb2. Для их размонтирования выполним следующие команды:
На самом деле, некоторые программы (например, GParted) автоматически размонтируют разделы флешки. Некоторые программы очищают диск независимо от того, смонтированы его разделы или нет. Но для того, чтобы не понадобилось отключать и подключать флешку (или перезагружать компьютер, если вы очищаете диск), рекомендуется предварительно отмонтировать разделы.
3. Восстановление флешки в графическом интерфейсе с помощью GParted
Программа GParted предназначена для управления разметкой диска, она позволяет создавать, удалять, изменять и форматировать разделы дисков.
Если в вашей системе отсутствует GParted, то установите пакет gparted.
Запустить программу вы можете через меню или в командной строке:
Работа с программой достаточно интуитивно понятная. Начните с того, что в выпадающем меню, расположенном в верхнем правом углу, выберите флешку, которую вы хотите очистить или восстановить. Затем кликните правой кнопкой мыши по диску и выберите желаемые операции, например, форматировать в exFAT.
Вы можете выбрать несколько действий, например, создать или удалить разделы, выбрать файловую систему для форматирования — на этом этапе фактически ещё не выполняются никакие действия. Чтобы применить выбранные изменения, нажмите на кнопку с зелёной галочкой.
4. Очистка флешки в Disks
Disks (Диски) — это утилита управления дисками. Она позволяет монтировать, отмонтировать разделы, создавать, удалять, изменять и форматировать разделы дисков.
Для получения Disks установите пакет gnome-disk-utility.
Запустить программу вы можете через меню или в командной строке:
У программы много разных кнопок и меню, позволяющих делать все необходимые действия, но интерфейс программы интуитивно понятен.
В отличии от предыдущей программы, Disks правильно показывает структуру разделов флешки: 3 раздела с разными функциями и разными файловыми системами и свободная область.
5. Уничтожения любой таблицы разделов с помощью dd
Далее будет показано ещё два способа восстановления и полной очистки диска от разделов. Эти способы не являются тождественными: первый является более универсальным и работает во всех случаях.
С помощью dd удалите таблицу разделов:
Замените sdX на действительное имя диска, например:
Чтобы форматировать USB флешку в файловую систему FAT32 используйте команду (замените имя диска или раздела на нужное):
Чтобы форматировать USB флешку в файловую систему NTFS используйте команду (замените имя диска или раздела на нужное):
Чтобы форматировать USB флешку в файловую систему exFAT используйте команду (замените имя диска или раздела на нужное):
6. Уничтожение таблиц разделов GPT и MBR с помощью gdisk
Этот способ хорошо справляется с удалением таблиц разделов GPT и MBR, но бесполезен «против» Live систем записанных в виде ISO образов на флешку, поскольку программа gdisk не предназначена работать с данной файловой системой.
Откройте флешку для очистки программой gdisk:
Для перехода в экспертный режим введите
Затем для удаления GPT введите
Дважды согласитесь, чтобы полностью очистить диск.
Для выхода из программы нажмите Ctrl+c или Ctrl+d.
Можно ещё раз проверить разметку флешки, чтобы убедиться, что изменения сохранены:
Данным — жить! Восстанавливаем в Linux информацию с «убитой» флешки
Содержание статьи
Предыстория
Недавно ко мне пришел товарищ с фразой: «У меня флешка сломалась, можешь посмотреть? В принципе, если не получится, то и ладно, но там есть несколько файлов, копий которых нет».
Я, конечно, флешку взял и обещал посмотреть, что можно сделать. Грех не помочь другу! Входные данные были такие: «винда перестала видеть флешку». Других внятных объяснений произошедшего я не добился.
И вот, когда выдалось немного свободного времени, настала пора попробовать восстановить какие-то данные с флешки.
В этой статье рассматривается восстановление флешек в среде Linux. В Windows тоже можно восстанавливать данные: есть разные утилиты и проприетарные продукты (например, R-Studio), но это тема для отдельных статей.
Первым делом, подключив флешку к ноуту с Linux, я убедился, что аппаратная часть девайса жива, а повреждены именно данные на ней.
Второе, что я сделал, — снял образ.
Техника безопасности: снимаем образ
Самая важная часть в восстановлении данных — не угробить своими действиями еще больше данных. Все описываемые в статье действия производились исключительно с образом флешки. Снять образ можно следующими командами (тебе, конечно, надо указать путь к своему устройству):
Как вариант, можно использовать команду ddrescue:
Лично я предпочитаю второй способ, поскольку ddrescue пытается считать данные в несколько проходов, а также (если ты дал команду писать лог) прервать чтение и продолжить с места остановки. Плюс к этому утилита дает красивый отчет о том, сколько данных считалось, а сколько нет, и оценку времени до конца съема образа.
Кроме того, имеет смысл работать с копией образа. Вдруг ты его испортишь, и не факт, что получится еще раз снять образ с флешки, если она умирает из-за аппаратных проблем. Для частичных копий образа и восстановления испорченных частей к начальному состоянию рекомендую пользоваться тем же всемогущим dd.
Параметр notrunc нужен для того, чтобы dd не обрезала файл-назначение, когда закончатся данные в файле-источнике.
Сняв образ флешки, я взглянул на содержимое. Увиденное несколько меня удивило.
В образе первые 4 Мбайт данных были забиты 0xFF. Поврежден блок флеш-памяти? Чья-то попытка стереть данные? Сбой какого-то приложения? Почему затерта область — неважно. Главное, что у нас нет ни таблицы разделов, ни структуры файловой системы. Хотя если приглядеться, то видна закономерность. Перед нами последовательность увеличивающихся на единицу 32-битных чисел (в формате LittleEndian): 0x000a7601, 0x000a7602, 0x000a7603. Следовательно, у нас на флешке, скорее всего, была файловая система FAT32.
Что ж, попробуем восстановить данные. Для начала возьмем утилиту TestDisk.
TestDisk
TestDisk — не просто утилита, а мощный комбайн по восстановлению данных.
О TestDisk
TestDisk разработан Кристофом Гренье и распространяется по лицензии GPL v2. Эта утилита предназначена в первую очередь для восстановления потерянных разделов на носителях информации, а также для восстановления загрузочного сектора.
Запускаем 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. Более подробное описание файловой системы смотри по ссылкам, приведенным во врезке.
Для удобной работы с образом нам потребуется 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, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее