Флешка есть у всех. Это отличные мелочи, которые упрощают перемещение данных. Однако иногда флешки могут быть повреждены или просто полностью перестать работать. К счастью, если вы используете Linux, у вас уже есть доступ к набору инструментов, которые могут помочь вам решить проблему. В этом руководстве мы используем Ubuntu, но все применимо к большинству современных дистрибутивов Linux. Вот как вы можете восстановить поврежденный USB-накопитель в Linux.
В этой статье мы уделяем приоритетное внимание безопасности ваших данных. Сначала вы увидите, как создать резервную копию содержимого флэш-накопителя, а затем приступите к различным исправлениям возникшей проблемы. Таким образом, если попытка решить проблему приведет к ее усугублению, вы все равно сможете вернуться к моментальному снимку текущего состояния вашего флеш-накопителя.
Сделайте сжатый полный образ резервной копии
В Linux есть множество инструментов для резервного копирования любого устройства хранения. Однако проверенный подход основан на dd
и GunZip (более известном как gzip).
1. Чтобы сделать резервную копию флешки, сначала подключите ее к компьютеру. Запустите свой любимый терминал (или нажмите CTRL + Alt + T).
2. Найдите флешку:
4. Чтобы создать резервную копию вашего флеш-накопителя в файл изображения, сжатый с помощью ZIP, с помощью одной команды, используйте:
sudoddif=/dev/disk/by-id/YOUR_FLASH_DRIVE status=progress |gzip-c>/home/USERNAME/backups/BACKUP_NAME.img.gz
5. Чтобы восстановить резервную копию, вам нужно будет изменить последовательность двух команд и определить свою флешку в качестве устройства вывода. Полная команда будет выглядеть так:
sudogzip-c/home/USERNAME/backups/BACKUP_NAME.img.gz |sudoddof=/dev/disk/by-id/YOUR_FLASH_DRIVE status=progress
Исправить поврежденную файловую систему с помощью FSCK
После резервного копирования содержимого флеш-накопителя пора попытаться исправить это. Для этого вы можете обратиться к fsck
. Этот инструмент отлично подходит для удаления плохих файловых блоков, поскольку большая часть (если не все) повреждение и нечитаемость происходит из-за подобных проблем.
Для этой команды вам нужно будет определить раздел, а не полный диск. Вы найдете его с таким же именем, как и ваше устройство, введя:
Затем запустите на нем fsck
с помощью:
sudo fsck -v-a/dev/disk/by-id/YOUR_FLASH_DRIVE-PARTITION-TO-CHECK
В этой команде:
sudo fsck
запускает инструмент исправления с правами администратора.-v
указывает ему показать нам подробную информацию о процессе.-a
указывает, что мы хотим, чтобы он автоматически пытался исправить все найденные ошибки./ dev / disk…
— это раздел, который будет проверяться на наличие ошибок.
Отформатируйте USB-накопитель с помощью Fdisk / MKFS из Терминала
Если fsck не удалось восстановить файловую систему устройства, вы можете попробовать отформатировать ее, чтобы использовать как новую.
1. Первый шаг — стереть все существующие структуры файловой системы и воссоздать их с нуля. Для этого вы можете использовать fdisk
. Запустите его с помощью sudo
на своем устройстве с помощью:
sudofdisk/dev/disk/by-id/YOUR_FLASH_DRIVE
2. Нажмите o, а затем Enter, чтобы создать новую таблицу разделов DOS, чтобы ваш USB-накопитель был доступен для чтения повсюду. Если вы хотите использовать его только на своем современном компьютере и ОС, вы можете заменить o на g, чтобы вместо этого создать новую таблицу разделов GPT.
3. Нажмите n, а затем Enter, чтобы создать новый раздел, затем p, чтобы сделать его основным. Если вы использовали e вместо p, он был бы создан как расширенный раздел, но нет смысла делать это, если вы не планируете создавать более трех разделов на драйве. Затем вы можете просто нажать Enter, когда вас спросят о номере раздела, первом и последнем секторах, чтобы принять значения по умолчанию и разделить весь USB-накопитель.
4. Нажмите p, а затем Enter, чтобы проверить новую структуру хранения на вашем USB-накопителе. Затем нажмите w, а затем Enter, чтобы записать изменения на USB-накопитель и выйти из fdisk.
5. Ваш раздел будет неформатирован, и, поскольку на нем еще не будет файловой системы, его нельзя будет использовать. Чтобы создать файловую систему, вы можете использовать один из инструментов mkfs, который поставляется со всеми современными дистрибутивами Linux. Чтобы отформатировать раздел в FAT32, который можно использовать на большинстве устройств, используйте:
sudo mkfs.fat -F32/dev/disk/by-id/YOUR_FLASH_DRIVE-PARTITION
6. Чтобы отформатировать раздел в NTFS для использования с современными версиями Windows или с EXT4 для использования только с Linux, используйте:
sudo mkfs.ntfs /dev/disk/by-id/YOUR_FLASH_DRIVE-PARTITION
или же
sudo mkfs.ext4 /dev/disk/by-id/YOUR_FLASH_DRIVE-PARTITION
Если вам не нравится вводить команды, вы можете воспользоваться инструментом «Диски» для проверки и форматирования USB-накопителя. Диски предустановлены в Ubuntu.
1. Зайдите в меню приложений и найдите «диски». Запустите приложение, когда найдете его.
2. Выберите USB-накопитель из списка слева и щелкните значок с двумя шестеренками. Выберите «Восстановить файловую систему» и следуйте инструкциям мастера, чтобы исправить файловую систему.
3. В нашем случае мы имели дело не с аппаратной проблемой, а с повреждением файловой системы. Хотя проблема не подлежала устранению, мы могли переформатировать USB-накопитель и продолжать его использовать. Чтобы сделать это с дисками, с выбранным USB-накопителем, снова щелкните значок с двумя шестеренками и выберите «Форматировать раздел…»
4. Введите имя USB-накопителя в поле Имя тома и выберите для него одну из трех самых популярных файловых систем:
- Ext4 для использования с Linux
- NTFS для использования с современными версиями Windows
- FAT для использования с обоими, а также с другими типами устройств (от смартфонов до игровых консолей)
5. Обратите внимание на опцию «Стереть». Оставьте его отключенным для быстрого форматирования. Установите для него значение «Вкл.», Чтобы выполнить полное форматирование, при котором содержимое вашего устройства будет полностью удалено. При работе с поврежденными устройствами, на которых также могут быть плохие блоки, лучше использовать опцию полного стирания.
Обновленный USB-накопитель
Теперь, когда вы отремонтировали свой поврежденный USB-накопитель, вы можете снова использовать его как новый накопитель. А если вы хотите создать USB-накопитель Linux Live, следуйте приведенным здесь инструкциям.
По теме:
Содержание
- программный ремонт usb flash накопителей в linux
- Восстановление флешки в Linux
- Форматирование с помощью командной строки
- Утилита Palimpsest
- Программа Gparted
- Утилита «Управление дисками» (gnome-среда)
- Заключение
- Проверка HDD/SSD/USB flash на бэд-блоки на Linux.
- Проверка HDD на бэд-блоки программой badblocks.
- Проверка HDD на бэд-блоки на Linux с помощью smartmontools
- Проверка HDD на бэд-блоки на Linux с помощью GParted
- Safecopy
- Данным — жить! Восстанавливаем в Linux информацию с «убитой» флешки
- Содержание статьи
- Предыстория
- Техника безопасности: снимаем образ
- TestDisk
- О TestDisk
- PhotoRec
- О PhotoRec
- Чиним FAT32
- Ищем смещения
- Продолжение доступно только участникам
- Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
программный ремонт 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. В частности, при использовании съемных носителей информации возникают нередко вопросы об их подключении, форматировании и восстановлении.
Существует немало способов, как выполнить данные операции с флешкой в системе Linux, но остановимся на самых простых и распространенных.
Форматирование с помощью командной строки
После запуска консоли необходимо прописать следующую команду: «# dmesg | tail», благодаря которой системой определяется имя устройства. В командной строке отобразятся данные, где присвоенное системой имя флешки указано в квадратных скобках – в данном случае [sdb]. Это выглядит следующим образом:
Далее необходимо прописать операцию форматирования, однако пользователю должен быть известен файловый формат, заданный на устройстве – FAT32 или NTFS. Каждый формат имеет собственную команду:
- «$ sudo mkfs.vfat/dev/имя устройства» – для FAT32;
- «$ sudo mkfs.ntfs /dev/имя устройства» – для NTFS.
Утилита Palimpsest
С помощью данной программы можно легко и быстро восстановить устройство. Для этого достаточно воспользоваться функцией форматирования, а именно:
- Подключить съемный носитель к компьютеру и запустить программу.
- Выбрать устройство в программе и нажать функцию «Форматировать раздел», после чего откроется окно с параметром «Файловая система», полем ввода имени флеш-накопителя и кнопкой «Форматировать».
Программа Gparted
Еще один быстрый и распространенный способ форматирования внешних носителей информации. Чтобы восстановить флешку, достаточно выбрать ее в разделе отображенных в утилите устройств, после чего, кликнув правой кнопкой мыши, нажать в контекстном меню на пункт «Форматировать в». Далее необходимо определить нужный файловый формат, после чего начнется процесс восстановления.
Утилита «Управление дисками» (gnome-среда)
Графическая среда Gnome – довольно распространенная оболочка во многих операционных системах Linux. Она отличается большим количеством удобных приложений, инструментов и утилит по управлению системой компьютера, среди которых имеется замечательная программа «Disk Utility» («Дисковая утилита» или «Управление дисками»). Потому, чтобы восстановить флеш-накопитель, достаточно запустить «Диск Утилити», подключить устройство к компьютеру и проделать следующие действия:
1. Выбрать устройство в специальном поле устройств слева, затем нажать кнопку «Настройки» (иконка с шестеренками).
2. Далее в открывшейся вкладке с пунктами выбрать первый «Форматировать раздел…».
3. Затем задать необходимые параметры: ввести любое имя для тома и определить тип файловой системы. После чего кликнуть по кнопке «Далее» и начать операцию восстановления.
Заключение
Перечисленные в статье способы восстановления могут отлично применяться по разным причинам:
- ошибки;
- проверка на дефекты;
- и в случаях, когда компьютер не видит флешку.
Перед тем как проводить форматирование устройства, обязательно удостоверьтесь, что на флешке нет важных для вас файлов. В противном случае, вы рискуете потерять все записанные ранее данные. Ну а если вам необходимо восстановить файлы, то это можно сделать с помощью других специальных программ: TestDisk, Extundelete, R-Studio, R-Linux, DMDE, Foremost, Mondo Rescue и т. д.
Источник
Проверка HDD/SSD/USB flash на бэд-блоки на Linux.
Сегодня в статье рассмотрим, как в Linux проверить ваш HDD,SSD или USB флешку на битые сектора — Бэд-блоки.
Бэд-блок (англ. bad block) — испорченный кластер (единица хранения данных) дискового носителя информации, куда нельзя записать информацию.
Проверка HDD на бэд-блоки программой badblocks.
Badblocks — стандартная утилита Linux для проверки на битые секторы. Она устанавливается по-умолчанию практически в любой дистрибутив и с ее помощью можно проверить как жесткий диск, так и внешний накопитель.
Но для начала воспользуемся ещё одной стандартной утилитой для просмотра подключенных накопители к нашей системе — fdisk.
- -l — показать список разделов и выйти.
Теперь, когда мы знаем, какие разделы у нас есть, мы можем проверить их на битые секторы программой badblocks:
- -v — вывод подробной информации о результатах проверки.
- -s — отображать в правильном порядке ход проверки блоков.
- /dev/sda1 — раздел, который мы хотим проверить на битые секторы.
- >
/badblocks.txt — выводим результат выполнения команды в файл badblocks.txt расположенный в корневом каталоги пользователя.
Если же в результате были найдены битые секторы, то нам надо дать указание операционной системе не записывать в них информацию в будущем. Для этого нам понадобятся утилиты Linux для работы с файловыми системами:
- e2fsck. Если мы будем исправлять раздел с файловыми система Linux ( ext2,ext3,ext4).
- fsck. Если мы будем исправлять файловую систему, отличную от ext.
Вводим следующие команды:
Или, если у нас файловая система не ext:
Если после ввода данных команд вы получаете что-то вроде этого:
Значит данные операции надо выполнить в командной строке до загрузки операционной системы. Для этого выполним следующее:
В конце файла дописываем следующие строки:
Теперь перезагружаем ПК:
Проверка HDD на бэд-блоки на Linux с помощью smartmontools
Теперь давайте рассмотрим более современный и надежный способ проверить диск на битые секторы linux. Современные накопители ATA/SATA ,SCSI/SAS,SSD имеют встроенную систему самоконтроля S.M.A.R.T (Self-Monitoring, Analysis and Reporting Technology, Технология самоконтроля, анализа и отчетности), которая производит мониторинг параметров накопителя и поможет определить ухудшение параметров работы накопителя на ранних стадиях. Для работы со S.M.A.R.T в Linux есть утилита smartmontools.
Давайте сначала ее установим. Если ваш дистрибутив основан на DebianUbuntu, то вводите:
Если же у Вас дистрибутив на основе RHELCentOS, то вводите:
Теперь, когда мы установили smartmontools мы можем посмотреть страницу помощи, с помощью команды:
Давайте перейдем к работе с утилитой. Вводим следующую команду с параметром -H,чтобы утилита показала нам информацию о состоянии накопителя:
Как видим, проверка диска на битые секторы linux завершена и утилита говорит нам, что с накопителем все в порядке!
Ещё одна команда, если SMART поддерживается, то добавляем -s. Если он не поддерживается или уже включён, то этот аргумент можно убрать.
Дополнительно, можно указать следующие параметры -a или —all, чтобы получить еще больше информации о накопителе, или -x и —xall, чтобы просмотреть информацию в том числе и об остальных параметрах накопителя.
Проверка HDD на бэд-блоки на Linux с помощью GParted
GParted как раз для тех, кому текстовый интерфейс не по душе. Утилита выполняет большое количество задач, связанных с работой HDD на Ubuntu и всех Debian-подобных системах. В их число входит и проверка диска на ошибки.
Для начала нам нужно скачать и установить GParted. Вводим следующую команду, чтобы выполнить загрузку из официальных репозиториев:
- Открываем приложение. На главном экране сразу же выводятся все носители. Если какой-то из них помечен восклицательным знаком, значит, с ним уже что-то не так.
- Щёлкаем по тому диску, который хотим проверить.
- Жмём на кнопку «Разделы», расположенную сверху.
- Выбираем «Проверка на ошибки».
Программа отсканирует диск. В зависимости от его объёма процесс может занять продолжительное время. После сканирования Вы будете оповещены о его результатах.
Safecopy
Это уже та программа, которую впору использовать на тонущем судне. Если мы осведомлены, что с нашим диском что-то не так, и нацелены спасти как можно больше выживших файлов, то Safecopy придёт на помощь. Её задача как раз заключается в копировании данных с повреждённых носителей. Причём она извлекает файлы даже из битых блоков.
Переносим файлы из одной директории в другую. Выбрать можно любую другую. В данном случае мы переносим данные с диска sda в папку home.
Если есть вопросы, то пишем в комментариях.
Также можете вступить в Телеграм канал, ВКонтакте или подписаться на Twitter. Ссылки в шапке страницы.
Заранее всем спасибо.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
В этой статье поговорим о том как записать iso-образ какой либо операционной системы из терминала Linux дистрибутива. Для Linux на Читать
Что такое SSD, в чём его отличие от HDD, на что стоит обратить внимание при выборе SSD накопителя и как Читать
Уникальный идентификатор компьютера в сети, построенной на базе стека TCP/IP. Сетевые устройства взаимодействуют друг с другом, используя его. На данный момент применяется Читать
Как быстр ваш USB? Как быстр ваш SSD-накопитель? Это очень распространенный вопрос. Я собрал и скомпилировал несколько тестов, которые помогут Читать
Источник
Данным — жить! Восстанавливаем в 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, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Источник
Содержание:
- 1 Форматирование с помощью командной строки
- 2 Утилита Palimpsest
- 3 Программа Gparted
- 4 Утилита «Управление дисками» (gnome-среда)
- 5 Заключение
Для многих начинающих пользователей система Linux является непривычной средой, в связи с чем, в зависимости от дистрибутива данной операционной системы, многие функции могут выполняться иначе, нежели в Windows. В частности, при использовании съемных носителей информации возникают нередко вопросы об их подключении, форматировании и восстановлении.
Существует немало способов, как выполнить данные операции с флешкой в системе Linux, но остановимся на самых простых и распространенных.
Форматирование с помощью командной строки
После запуска консоли необходимо прописать следующую команду: «# dmesg | tail», благодаря которой системой определяется имя устройства. В командной строке отобразятся данные, где присвоенное системой имя флешки указано в квадратных скобках – в данном случае [sdb]. Это выглядит следующим образом:
Далее необходимо прописать операцию форматирования, однако пользователю должен быть известен файловый формат, заданный на устройстве – FAT32 или NTFS. Каждый формат имеет собственную команду:
- «$ sudo mkfs.vfat/dev/имя устройства» – для FAT32;
- «$ sudo mkfs.ntfs /dev/имя устройства» – для NTFS.
Утилита Palimpsest
С помощью данной программы можно легко и быстро восстановить устройство. Для этого достаточно воспользоваться функцией форматирования, а именно:
- Подключить съемный носитель к компьютеру и запустить программу.
- Выбрать устройство в программе и нажать функцию «Форматировать раздел», после чего откроется окно с параметром «Файловая система», полем ввода имени флеш-накопителя и кнопкой «Форматировать».
Программа Gparted
Еще один быстрый и распространенный способ форматирования внешних носителей информации. Чтобы восстановить флешку, достаточно выбрать ее в разделе отображенных в утилите устройств, после чего, кликнув правой кнопкой мыши, нажать в контекстном меню на пункт «Форматировать в». Далее необходимо определить нужный файловый формат, после чего начнется процесс восстановления.
Утилита «Управление дисками» (gnome-среда)
Графическая среда Gnome – довольно распространенная оболочка во многих операционных системах Linux. Она отличается большим количеством удобных приложений, инструментов и утилит по управлению системой компьютера, среди которых имеется замечательная программа «Disk Utility» («Дисковая утилита» или «Управление дисками»). Потому, чтобы восстановить флеш-накопитель, достаточно запустить «Диск Утилити», подключить устройство к компьютеру и проделать следующие действия:
1. Выбрать устройство в специальном поле устройств слева, затем нажать кнопку «Настройки» (иконка с шестеренками).
2. Далее в открывшейся вкладке с пунктами выбрать первый «Форматировать раздел…».
3. Затем задать необходимые параметры: ввести любое имя для тома и определить тип файловой системы. После чего кликнуть по кнопке «Далее» и начать операцию восстановления.
Заключение
Перечисленные в статье способы восстановления могут отлично применяться по разным причинам:
- ошибки;
- проверка на дефекты;
- и в случаях, когда компьютер не видит флешку.
Перед тем как проводить форматирование устройства, обязательно удостоверьтесь, что на флешке нет важных для вас файлов. В противном случае, вы рискуете потерять все записанные ранее данные. Ну а если вам необходимо восстановить файлы, то это можно сделать с помощью других специальных программ: TestDisk, Extundelete, R-Studio, R-Linux, DMDE, Foremost, Mondo Rescue и т. д.
Содержание
- Программный ремонт USB flash в Linux
- программный ремонт usb flash накопителей в linux
- Как «вылечить» поврежденный USB-накопитель в Linux?
- Удаление бэд-блоков с USB-накопитель с помощью fsck
- Полная очистка
- Создание новой файловой системы
- Восстановление флешки в Linux
- Форматирование с помощью командной строки
- Утилита Palimpsest
- Программа Gparted
- Утилита «Управление дисками» (gnome-среда)
- Заключение
- Как восстановить данные с флешки при помощи инструментов Linux.
- Техника безопасности: снимаем образ
- TestDisk
- О TestDisk
- PhotoRec
- О PhotoRec
- Чиним FAT32
- Ищем смещения
- Создаем загрузочную запись
- Собираем чудовище Франкенштейна
- Читаем данные
- Работа над ошибками
- Выводы
Программный ремонт USB flash в Linux
Поводом для написания статьи послужило обилие на различных форумах советов по устранению программных глюков флешек с помощью различных утилит «низкоуровневого форматирования» и пр. Не отрицая существования утилит «от производителя», хочу заметить, что существует весьма простой и вполне надежный метод удаления софт-бэдов на флешках, устранения проблем с файловой системой, бутсектором и MBR, возникающих, как правило, при небезопасном извлечении этих устройств из компьютера, либо же из-за иных программных или аппаратных сбоев компьютера (одни только глючные южные мосты ICH5 от Intel чего стоят).
Существующие методы «излечения» этих болезней под ОС Microsoft Windows имеют ряд существенных недостатков, причиной которых является отсутствие в Windows достаточно функциональных средств дискменеджмента даже от сторонних производителей. Простой пример: после «заливки» флешки нулями, Windows форматирует её как super-floppy, т. е. без организации MBR, что для корректной работы флешки под разными ОС недопустимо. Сторонние дискменеджеры либо не умеют работать с USB-устройствами (Norton Partition Magic), либо работают некорректно (Paragon Partition Manager). Работа же с флешкой под различными ОС ведется именно как с жестким диском, поэтому и предъявляемые требования к организации логической структуры аналогичны винчестеру, а не дискете. Для этих целей воспользуемся правильной ОС и правильным софтом, который, как оказалось, к тому же абсолютно бесплатен, в отличие от недофункциональных платных поделок.
Итак. Имеет место флешка, которая либо виснет в Windows, либо просится быть отформатированной, но не форматируется («Виндовз не может завершить форматирование», о, ужас!), либо сыплет бэдами при сканировании тем же HDDScan’ом.
Лично мной работа велась под локализованным неофициальным портом Slackware для 64-битных процессоров BlueWhite64
Подключаем флешку, смотрим список USB-устройств. Вводим lsusb, нажимаем Enter, смотрим вывод:
# lsusb
#Наблюдаем вывод: вот она, родимая, даже, вроде «аппаратно» живая.
Bus 005 Device 003: ID 0ea0:2168 Ours Technology, Inc. Transcend JetFlash 2.0 / Astone USB Drive
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
#Это сканер, он нам не мешает.
Bus 001 Device 003: ID 04a5:20fc Acer Peripherals Inc. (now BenQ Corp.) Benq 5000
Bus 001 Device 001: ID 0000:0000
# hdparm /dev/sdb
/dev/sdb:
#Защита от записи выключена
readonly = 0 (off)
readahead = 256 (on)
#Транслируемая геометрия соответсвует реальной: 1017856 секторов это
512 МБ
geometry = 1014/17/59, sectors = 1017856, start = 0
Теперь сделаем ей «низкоуровневое форматирование», т. е. забъем всё пространства накопителями нулевыми байтами. Таким образом мы удалим софт-бэды, сотрем ошибочные таблицы FAT, загрузочный сектор, MBR. Внимание! Все оставшиеся данные на флешке будут безвозвратно утеряны!
root@H84_103:
# dd if=/dev/zero of=/dev/sdb
#dd вводили без параметров, теперь он ругается на нехватку места на флешке. И правильно, генератор нулей то у нас безразмерный 🙂
dd: запись в `/dev/sdb’: No space left on device
1017857+0 записей считано
1017856+0 записей написано
скопировано 521142272 байта (521 MB), 144,185 секунд, 3,6 MB/s
Флешка USB 2.0 на 512 МБ стиралась 2,5 минуты
Теперь «по-фирменному» создаём раздел.
# mkdosfs /dev/sdb1
mkdosfs 2.11 (12 Mar 2005)
Источник
программный ремонт 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 все заработало
Вот вообщем-то и все… Удачи в восстановлении!)
Для дополнительной информации об устройстве, введите:
Источник
Как «вылечить» поврежденный 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
Создание новой файловой системы
Очистка флэшки (или любого другого накопителя) делает все записанные данные на ней бесполезными. Это значит, что нужно создать новый раздел данных. Выберите желаемую файловую систему и введите соответствующую команду:
Ext4
NTFS
Заключение
USB-флэшки – полезные девайсы. С ними легко переносить данные с одного компьютера на другой вне зависимости от установленной ОС. Вот почему важно знать, что делать, если флэшка вдруг стала недоступной. К счастью у Linux есть мощные инструменты, способные легко «вылечить» флэш-накопитель.
Источник
Восстановление флешки в 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 и т. д.
Источник
Как восстановить данные с флешки при помощи инструментов Linux.
Сбой с данными всегда проблема. Но если это критически важные данные которые находятся как всегда на флешке, это вдвое большая проблема. Сегодня мы рассмотрим не типичный случай восстановления данных с такого носителя. Как восстановить данные с флешки при помощи инструментов Linux таких как TestDisk, PhotoRec мы рассмотрим в данной статье.
Недавно ко мне пришел товарищ с фразой: «У меня флешка сломалась, можешь посмотреть? В принципе, если не получится, то и ладно, но там есть несколько файлов, копий которых нет».
Я, конечно, флешку взял и обещал посмотреть, что можно сделать. Грех не помочь другу! Входные данные были такие: «винда перестала видеть флешку». Других внятных объяснений произошедшего я не добился.
И вот, когда выдалось немного свободного времени, настала пора попробовать восстановить какие-то данные с флешки.
В этой статье рассматривается восстановление флешек в среде Linux. В Windows тоже можно восстанавливать данные: есть разные утилиты и проприетарные продукты (например, R-Studio), но это тема для отдельных статей.
Первым делом, подключив флешку к ноуту с Linux, я убедился, что аппаратная часть девайса жива, а повреждены именно данные на ней.
Второе, что я сделал, — снял образ.
Техника безопасности: снимаем образ
Самая важная часть в восстановлении данных — не угробить своими действиями еще больше данных. Все описываемые в статье действия производились исключительно с образом флешки. Снять образ можно следующими командами (тебе, конечно, надо указать путь к своему устройству):
Как вариант, можно использовать команду ddrescue:
Лично я предпочитаю второй способ, поскольку ddrescue пытается считать данные в несколько проходов, а также (если ты дал команду писать лог) прервать чтение и продолжить с места остановки. Плюс к этому утилита дает красивый отчет о том, сколько данных считалось, а сколько нет, и оценку времени до конца съема образа.
Кроме того, имеет смысл работать с копией образа. Вдруг ты его испортишь, и не факт, что получится еще раз снять образ с флешки, если она умирает из-за аппаратных проблем. Для частичных копий образа и восстановления испорченных частей к начальному состоянию рекомендую пользоваться тем же всемогущим dd.
Параметр notrunc нужен для того, чтобы dd не обрезала файл-назначение, когда закончатся данные в файле-источнике.
Сняв образ флешки, я взглянул на содержимое. Увиденное несколько меня удивило.
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. Эта утилита предназначена в первую очередь для восстановления потерянных разделов на носителях информации, а также для восстановления загрузочного сектора.
Запускаем 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 сектора в наш образ — и готово! 🙂
Попробуем воплотить этот план в жизнь.
Создаем загрузочную запись
Для начала определим размер раздела.
Размер раздела равен равен размеру флешки минус смещение раздела. Получается 15 676 211 200 – 0x15E800 = 15 674 775 552 байта.
Чтобы не занимать кучу места на диске нашим пустым образом, воспользуемся фишкой файловой системы ext2 — разреженными файлами.
Откроем файл в 010 Editor. И воспользуемся шаблоном Drive (возможно, его потребуется установить, см. меню Templates Repository). Если появится окошко с предупреждением о долгой работе, соглашаемся на продолжение работы скрипта.
Смотрим сгенерированный образ
Разбор полей образа
Разбор полей BPB
Прекрасно! Теперь у нас есть заполненные структуры загрузочного сектора. Надо бы их перенести в наш образ.
Выделяем мышкой структуру FAT_BOOTSECTOR в окне Templates Results, автоматически выделится диапазон данных, скопируем их в буфер (щелкнуть правой кнопкой мыши в окне данных и выбрать пункт Copy).
Собираем чудовище Франкенштейна
Для сборки образа вставим сгенерированный загрузочный сектор и скопируем вторую копию FAT поверх первой.
Начнем с вставки загрузочного сектора. Он у нас уже в ОЗУ. Перейдем на вычисленный адрес 0x15E800 и вставим данные из буфера.
Вставленные данные
Выясняется, что после сектора идут байты 0xFF, а в сгенерированном образе после этого сектора есть еще данные.
Сгенерированный образ
Непорядок. После первого сектора ведь идет структура FSInfo! Да и по смещению 0xC00 находится копия загрузочного сектора (на случай его повреждения). Нет, лучше скопируем все 32 сектора (0x4000 байт). Кстати, заодно убедились, что в образе, сгенерированном mkfs, по смещению 0x4000 будет последовательность F8 FF FF FF. После вставки в наш образ мы оказались по адресу 0x162800, который ранее и рассчитали. Пока все совпадает.
Теперь нам надо скопировать вторую копию FAT поверх первой. Выделяем участок длиной 0x74BC00 с адреса 0x8AE400, копируем его и вставляем по адресу 0x162800. Для выделения участка удобно воспользоваться фичей Select Range (Ctrl + Shift + A) — просто введем в поля адрес и размер.
Корневая директория
После вставки оказались в начале корневой директории. Пока все сходится.
Теперь нам бы смонтировать этот раздел и посмотреть, что удастся с него считать.
Читаем данные
Для монтирования файловой системы выполним следующие команды.
1’: Ошибка ввода/вывода ls: невозможно получить доступ к ‘mnt/map_n’: Ошибка ввода/вывода 10_10_2016 2019.07.13 28-02-
Потрясающе! Образ примонтировался, и даже есть названия файлов и директорий. Но есть и какие-то странные ошибки. Посмотрим подробнее (часть записей в выводе специально пропущено).
Очень странно. Да и просмотр содержимого директорий дает понять, что где-то закралась ошибка.
$ ls mnt/some_dir/ ls: невозможно получить доступ к ‘mnt/some_dir/%PDF-1.4.’$’n»%╨’: Ошибка ввода/вывода ls: чтение каталога ‘mnt/some_dir/’: Ошибка ввода/вывода
Имя файла совпадает с заголовком PDF. Похоже, кластер, на который указывает запись для этой директории, содержит PDF.
Волшебства не произошло, придется разбираться, в чем косяк. Но перед этим немного упростим себе жизнь и создадим таблицу разделов. Забегая вперед, скажу, что шаблон Drive в редакторе 010 Editor вроде бы шибко умный, но начать разбор с определенного смещения не может, только с начала файла.
Для создания таблицы разделов воспользуемся утилитой fdisk. Создадим один раздел, начинающийся с сектора номер 2804. Смещение нестандартное (по умолчанию — 2048), возможно, что на флешке было два раздела, первый был маленький и погиб целиком. Но это уже неважно. Сам сектор вычисляется легко — просто делим начало смещения раздела на размер сектора (0x15E800/512 = 2804).
Вывод fdisk
Обращаю внимание, что fdisk определил наличие по этому смещению раздела с FAT32 (vfat) и спросил, не удалить ли. Кроме того, не забываем поменять тип раздела на W95 FAT32 (LBA) (код 0c).
Работа над ошибками
Поиск ошибки занял у меня где-то час, в течение которого я активно курил спецификации и сверял значения в структурах, разобранных шаблоном Drive в 010 Editor. Вкратце опишу свои поиски.
Скриншот полей BPB
Сначала я заметил, что корневая директория расположена по адресу 0xFFA800, а не по адресу 0xFFA000.
Я подумал, что неверно определен размер кластера. Утилита mkfs создала кластеры по 16 секторов, а секторы по 512 байт (см. на скриншоте поля BytesPerSector и SectorsPerCluster ). Сначала я попробовал поиграть значениями этих параметров, каждый раз перемонтируя образ.
Или можно еще проще (читай man losetup):
Далее можем монтировать и перемонтировать раздел сколько угодно.
После каждой правки не надо заново подключать loop-устройство, смещение раздела в образе у нас не меняется.
Ничего путного из этого не вышло. Становилось только хуже.
Через некоторое время я понял, что и вторая копия таблицы начинается не там, где надо.
И тут я обратил внимание на поле SectorsPerFat32 (на скриншоте). Это поле описывает размер таблицы FAT в секторах. Его значение равно 0x3A60, а должно оно быть 0x74BC00/512 = 0x3A5E. Разница в два сектора на каждую копию таблицы FAT как раз дает нам 2 * 2 * 0x200 = 0x800 байт разницы между правильным смещением корневой директории и имеющимся у нас ошибочным.
Правим его (прямо в окне структуры, что очень удобно), сохраняем изменения и проверяем.
Отлично! Ошибки пропали! Все файлы и папки читаются. Структура похожа на корректную.
Натравив на образ fsck, все равно видим ворох ошибок. Однако первое, что бросается в глаза, — это несоответствие загрузочных записей.
Что ж, исправим и вторую копию. К сожалению, шаблон 010 Editor не разбирает вторую копию загрузочного сектора, поэтому сами найдем нужный байт и поправим его. Его легко найти — смещение 0x24 от начала сектора, в нашем случае 0x15F424, меняем 0x60 на 0x5E.
Запускаем еще раз fsck.
Странно, но fsck выдает ошибки и говорит, что копии таблиц FAT не совпадают (хотя мы же их копировали), и жалуется на длины файлов. Возможно, повлияли предыдущие монтирования или что-то еще.
Я восстановил из бэкапа (ты же прочел врезку о технике безопасности?) оригинальный образ флешки и заново прошел этапы копирования таблиц, загрузочного сектора (с правкой поля SectorsPerFat32 ) и его копии. Повторный запуск fsck меня порадовал.
Выводы
В заключение, думаю, стоит отметить, что если с ходу утилиты TestDisk и PhotoRec не дают хороших результатов, то не стоит отчаиваться и надо попробовать восстановить данные с флешки с использованием головы и прямых рук. В итоге всей работы, которая суммарно заняла около двух часов, мы восстановили фактически все данные с «умершей» флешки, включая структуру директорий и всю метаинформацию.
Кроме того, крайне рекомендую делать бэкапы как можно чаще. Как образов, с которыми работаешь при восстановлении, так и важных данных на своих собственных флешках, чтобы не приходилось их восстанавливать. Ведь, как известно, люди делятся на две категории: на тех, кто еще не делает бэкапы, и на тех, кто уже их делает.
Источник
Содержание
- How to Repair a Corrupted USB Drive in Linux
- Take a Compressed Full Backup Image
- Fix Corrupted Filesystem with FSCK
- Format USB Drive with Fdisk/MKFS from the Terminal
- The GUI Way to Check and Fix USB Drive with Disks
- Rejuvenated USB Drive
- Как восстановить работоспособность USB диска/флешки после записи ISO или установки ОС (РЕШЕНО)
- Оглавление
- Восстановление флешки в Windows
- Восстановление флешки в Linux
- 1. Очистка флешки с помощью wipefs
- 2. Поиск имени диска и размонтирование разделов
- 3. Восстановление флешки в графическом интерфейсе с помощью GParted
- 4. Очистка флешки в Disks
- 5. Уничтожения любой таблицы разделов с помощью dd
- 6. Уничтожение таблиц разделов GPT и MBR с помощью gdisk
How to Repair a Corrupted USB Drive in Linux
Everyone has a flash drive. They’re great little things, and they make moving data around easy. However, sometimes flash drives can get corrupted or just flat-out quit working. Thankfully, if you’re using Linux, you already have access to an array of tools that can help you fix the problem. We are using Ubuntu for this tutorial, but everything applies to most modern Linux distributions. Here is how you can repair a corrupted USB drive in Linux.
In this article, we prioritize the safety of your data. First, you’ll see how you can back up your flash drive’s contents and then proceed to various fixes for the problem at hand. This way, if an attempt at fixing the problem ends up making it worse, you may still be able to revert to the snapshot of the current state of your flash drive.
Take a Compressed Full Backup Image
In Linux, there are many tools for backing up any storage device. However, the tried-and-tested approach relies on dd and GunZip (better known as gzip).
1. To make a backup of your flash drive, first connect it to your computer. Fire up your favorite terminal (or press CTRL + Alt + T ).
2. Locate your flash drive:
4. To back up your flash drive to an image file compressed with ZIP in a single command, use:
5. To restore the backup, you’ll have to reverse the two commands’ sequence and define your flash drive as the output device. The full command will look like this:
Fix Corrupted Filesystem with FSCK
With the flash drive’s contents backed up, it’s time to try fixing it. For that, you can turn to fsck . This tool is great for removing bad file blocks, as most (if not all) corruption and unreadability comes from problems like this.
For this command, you’ll have to define the partition instead of the full drive. You’ll find it with a similar name as your device by issuing:
Then, run fsck on it with:
In this command:
- sudo fsck runs the fixing tool with administrative rights.
- -v tells it to show us detailed information about the proceedings.
- -a states we want it to automatically try repairing any errors it finds.
- /dev/disk… is the partition that will be checked for errors.
Format USB Drive with Fdisk/MKFS from the Terminal
If fsck didn’t manage to repair the device’s filesystem, you can try to format it to use it as if it is new.
1. The first step is to erase any existing filesystem structures and recreate them from scratch. You can use fdisk for this. Run it with sudo on your device with:
2. Press o followed by Enter to create a new DOS partition table on it to have your USB drive readable everywhere. If you only want to use it on your modern computer and OS, you can replace o with g to create a new GPT partition table instead.
3. Press n followed by Enter to make a new partition, then p to make it a primary one. If you used e instead of p , it would be created as an extended partition, but there’s no point in doing so if you aren’t planning to create more than three partitions on the drive. Then, you can just press Enter when asked about the partition’s number, first and last sectors, to accept the defaults and have the partition span the whole USB drive.
4. Press p and then Enter to check out the new storage structure in your USB drive. Then, press w followed by Enter to write the changes to the USB drive and exit fdisk.
5. Your partition will be unformatted, and since it won’t have a filesystem yet, it will be unusable. To create a filesystem, you can use one of the mkfs tools that come with all modern Linux distributions. To format your partition as FAT32, usable by most devices, use:
6. To format your partition with NTFS, for use with modern versions of Windows, or with EXT4, for use only with Linux, use:
The GUI Way to Check and Fix USB Drive with Disks
If you don’t like typing commands, you can turn to the Disks tool for checking and formatting your USB drive. Disks is pre-installed on Ubuntu.
1. Visit your apps menu and search for “disks.” Launch the app when you locate it.
2. Choose your USB drive from the list on the left and click on the icon with the two cogs. Choose “Repair Filesystem” and follow the steps of the wizard to fix the filesystem.
3. In our case, we weren’t dealing with a hardware problem but with filesystem corruption. Although the issue was beyond repair, we could reformat our USB drive and keep using it. To do that with disks, with the USB drive selected, click on the icon with the two cogs again and choose “Format Partition … “
4. Enter a name for your USB drive in the Volume Name field and choose from the three most popular filesystems for it:
- Ext4 for use with Linux
- NTFS for use with modern versions of Windows
- FAT for use with both, as well as other types of devices (from smartphones to gaming consoles)
5. Note the “Erase” option. Leave it disabled for a quick format. Flick it to On for a complete format that will fully erase your device’s contents. When dealing with corrupted devices that could also have some bad blocks, it’s better to go for the full erase option.
Rejuvenated USB Drive
Now that you have repaired your corrupted USB drive, you can use it again like a brand new drive. And if you are looking to create a Linux Live USB drive, follow the instructions here.
OK’s real life started at around 10, when he got his first computer — a Commodore 128. Since then, he’s been melting keycaps by typing 24/7, trying to spread The Word Of Tech to anyone interested enough to listen. Or, rather, read.
Our latest tutorials delivered straight to your inbox
Источник
Как восстановить работоспособность USB диска/флешки после записи ISO или установки ОС (РЕШЕНО)
Оглавление
Опытные пользователи могут делать с USB носителями (дисками и флешками) разные нетривиальные вещи:
- устанавливать на них ОС
- разбивать USB флешку на несколько разделов
- записывать Live образ и делать загрузочную флешку
- разрушать таблицу разделов
Все эти действия являются, с одной стороны, обратимыми, но, с другой стороны, могут вызвать непредвиденные последствия. Например:
- Если вы записали Live или установочный образ на флешку, вы можете столкнуться с тем что обычными средствами не получается отформатировать флешку и вернуть её в нормальное состояния для обычного использования, то есть для записи файлов.
- Установка ОС на флешку также ведёт к созданию нескольких разделов, в результате чего может возникнуть затруднение к их удалением и форматированием.
- Флешку, на которой удалили таблицу разделов, невозможно использовать.
- Операционная система не устанавливается на флешку из-за ошибки разметки диска, хотя флешка в полном порядке
Данная статья посвящена подобным вопросам — как вернуть флешку в нормальное состояние, удалить все разделы и отформатировать, чтобы можно было записывать файлы и/или установить ОС на неё.
Восстановление флешки в 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).
Вывести список дисков вы можете командой:
На скриншоте ниже представлено два диска (1) , чтобы сориентироваться, смотрите на размер диска (2) , модель диска (3) , перечень разделов (4) .
Предположим, я хочу восстановить диск с именем /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.
Можно ещё раз проверить разметку флешки, чтобы убедиться, что изменения сохранены:
Источник
Сегодня речь пойдет о так называемом «программном
ремонте» USB flash
накопителей. Вопросы аппаратного ремонта рассматриваться не будут по
причине копеечной стоимости новых абсолютно исправных устройств; вопрос
же снятия данных с неисправных флешей не рассматривается из-за
отсутствия у автора желания публично его рассматривать .
Поводом для написания статьи послужило обилие на
различных форумах советов по устранению программных глюков флешек с
помощью различных утилит «низкоуровневого форматирования» и пр. Не
отрицая существования утилит «от производителя», хочу заметить, что
существует весьма простой и вполне надежный метод удаления софт-бэдов
на флешках, устранения проблем с файловой системой, бутсектором и MBR,
возникающих, как правило, при небезопасном извлечении этих устройств из
компьютера, либо же из-за иных программных или аппаратных сбоев
компьютера (одни только глючные южные мосты ICH5 от Intel чего стоят).
Существующие методы «излечения» этих болезней под ОС
Microsoft Windows имеют ряд существенных недостатков, причиной которых
является отсутствие в Windows достаточно функциональных средств
дискменеджмента даже от сторонних производителей. Простой пример: после
«заливки» флешки нулями, Windows форматирует её как super-floppy, т. е.
без организации MBR, что для корректной работы флешки под разными ОС
недопустимо. Сторонние дискменеджеры либо не умеют работать с
USB-устройствами (Norton Partition Magic), либо работают некорректно
(Paragon Partition Manager). Работа же с флешкой под различными ОС
ведется именно как с жестким диском, поэтому и предъявляемые требования
к организации логической структуры аналогичны винчестеру, а не дискете.
Для этих целей воспользуемся правильной ОС и правильным софтом,
который, как оказалось, к тому же абсолютно бесплатен, в отличие от
недофункциональных платных поделок.
Итак… Имеет место флешка, которая либо виснет в
Windows, либо просится быть отформатированной, но не
форматируется («Виндовз не может завершить форматирование», о, ужас!),
либо сыплет бэдами при сканировании тем же HDDScan’ом.
Если с Линуксом вы незнакомы, то я предложу для начала выкачать один из
LiveCD-дистрибутивов и, предварительно записав образ на CD, загрузиться
с него. Я, как Слаковод, естественно, предложу Slax — он невелик по
размерам, несложен (впрочем, как и всякий LiveCD общего назначения) ,
быстро грузится и в нем есть всё необходимое для «ремонта». Если же
какой-либо из Линуксов у вас уже стоит на HDD и вы с ним дружите, то
буду рад добавить в вашу копилку знаний еще несколько советов.
Лично мной работа велась под локализованным
неофициальным портом Slackware для 64-битных процессоров BlueWhite64
Немного о форматировании: сейчас пойдут большие
куски кода. Обычным моноширинным шрифтом
мы будем
показывать вывод консоли, жирным
— наш ввод. Сразу за решеткой красным — #мои комментарии
.
Итак, загрузились. Если вы не root, то станьте им ,
выполнив команду su и введя пароль , ибо борьба с ополоумевшим железом
по праву только суперпользователю .
Подключаем флешку, смотрим список USB-устройств.
Вводим lsusb, нажимаем Enter, смотрим вывод:
root@H84_103:~# lsusb
#Наблюдаем вывод: вот она,
родимая, даже, вроде "аппаратно" живая.
Bus 005 Device 003: ID 0ea0:2168 Ours Technology, Inc. Transcend
JetFlash 2.0 / Astone USB Drive
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
#Это сканер, он нам не мешает.
Bus 001 Device 003: ID 04a5:20fc Acer Peripherals Inc. (now BenQ Corp.)
Benq 5000
Bus 001 Device 001: ID 0000:0000
Флеш-накопители распознаются как SCSI-диски,
т.е., устройства /dev/sdX, но работает с ними почему-то типично
IDE-дисковая утилита hdparm . Внимание!!! SATA-винчестеры у нас тоже
обозначаются как /dev/sdX! У меня SATA-винчестер, потому ему по праву
принадлежит /dev/sda, а флешке — следующая буква b, т. е. /dev/sdb.
Попытаемся познакомиться с ней поближе:
root@H84_103:~# hdparm /dev/sdb
/dev/sdb:
#Защита от записи выключена
readonly = 0 (off)
readahead = 256 (on)
#Транслируемая геометрия
соответсвует реальной: 1017856 секторов это ~512 МБ
geometry = 1014/17/59, sectors = 1017856,
start = 0
Теперь сделаем ей «низкоуровневое форматирование»,
т. е. забъем всё пространства накопителями нулевыми байтами. Таким
образом мы удалим софт-бэды, сотрем ошибочные таблицы FAT, загрузочный
сектор, MBR. Внимание! Все оставшиеся данные на флешке будут
безвозвратно утеряны!
root@H84_103:~# dd if=/dev/zero
of=/dev/sdb
#dd вводили без параметров, теперь
он ругается на нехватку места на флешке. И правильно, генератор нулей
то у нас безразмерный :)
dd: запись в `/dev/sdb': No space left on device
1017857+0 записей считано
1017856+0 записей написано
скопировано 521142272 байта (521 MB), 144,185 секунд, 3,6 MB/s
Флешка USB 2.0 на 512 МБ стиралась 2,5 минуты
Теперь «по-фирменному» создаём раздел.
root@H84_103:~# fdisk /dev/sdb
#fdisk ругается, что не нашел ни
DOS-овской таблицы разделов, ни метки диска в стиле BSD. Оно и понятно
- вся флеш забита нулями.
Device contains neither a valid DOS partition table, nor Sun, SGI or
OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by
w(rite)
#Умный fdisk сразу предлагает
помощь. Давим m
Command (m for help): m
#Вывод списка команд:
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
#Нам нужна новый раздел. Жмем
n, как написано:
Command (m for help): n
Command action
e extended
p primary partition (1-4)
#Естественно, первичный раздел.
Жмем p
p
#И первый, естественно. Жмем 1
Partition number (1-4): 1
#Здесь соглашаемся со всем, что
предлагает fdisk. Он умный, сам разберется :)
First cylinder (1-1014, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1014, default 1014):
Using default value 1014
#Смотрим, чего мы наваяли :) .
Жмем
p
Command (m for help): p
Disk /dev/sdb: 521 MB, 521142272 bytes
17 heads, 59 sectors/track, 1014 cylinders
Units = cylinders of 1003 * 512 = 513536 bytes
Device Boot
Start
End Blocks Id System
/dev/sdb1
1
1014 508491+ 83 Linux
#По умолчанию фдиск создал,
естественно, линуксовый раздел (ну не виндовый же ему создавать). Надо
поменять ID раздела. Жмем t.
Command (m for help): t
#Выбираем первый раздел для
изменения ID
Selected partition 1
#предусмотрительный fdisk
предлагает посмотреть, на что мы можем поменять тип раздела
Hex code (type L to list codes): l
0
Empty
1e Hidden W95 FAT1 80 Old
Minix be Solaris boot
1
FAT12
24 NEC DOS
81 Minix / old Lin bf Solaris
2 XENIX root 39 Plan
9 82 Linux
swap c1 DRDOS/sec (FAT-
3 XENIX usr 3c
PartitionMagic 83
Linux
c4 DRDOS/sec (FAT-
4 FAT16 <32M 40
Venix 80286 84 OS/2 hidden C:
c6 DRDOS/sec (FAT-
5 Extended
41 PPC PReP Boot 85 Linux extended
c7 Syrinx
6
FAT16
42
SFS
86 NTFS volume set da Non-FS data
7 HPFS/NTFS 4d
QNX4.x 87
NTFS volume set db CP/M / CTOS / .
8
AIX
4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
9 AIX bootable 4f QNX4.x 3rd part
8e Linux LVM df BootIt
a OS/2 Boot Manag 50 OnTrack
DM 93
Amoeba e1
DOS access
b W95 FAT32 51
OnTrack DM6 Aux 94 Amoeba BBT
e3 DOS R/O
c W95 FAT32 (LBA) 52
CP/M
9f BSD/OS
e4 SpeedStor
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM
Thinkpad hi eb BeOS fs
f W95 Ext'd (LBA) 54
OnTrackDM6 a5
FreeBSD ee EFI GPT
10
OPUS
55 EZ-Drive a6
OpenBSD ef EFI
(FAT-12/16/
11 Hidden FAT12 56 Golden
Bow a7
NeXTSTEP f0
Linux/PA-RISC b
12 Compaq diagnost 5c Priam Edisk
a8 Darwin UFS f1 SpeedStor
14 Hidden FAT16 <3 61
SpeedStor a9
NetBSD f4
SpeedStor
16 Hidden FAT16 63 GNU HURD or Sys
ab Darwin boot f2 DOS secondary
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI
fs fd Linux raid
auto
18 AST SmartSleep 65 Novell Netware b8
BSDI swap fe LANstep
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard
hid ff BBT
1c Hidden W95 FAT3 75 PC/IX
#Елки-палки, а мы думали, что
кроме Винды и ФАТ32 на свете ничего и нет :) . Меняем ID партишна на
ФАТ16 - топчем 6
Hex code (type L to list codes): 6
Changed system type of partition 1 to 6 (FAT16)
#Еще раз посмотрим на дело рук
своих
Command (m for help): p
Disk /dev/sdb: 521 MB, 521142272 bytes
17 heads, 59 sectors/track, 1014 cylinders
Units = cylinders of 1003 * 512 = 513536 bytes
Device Boot
Start
End Blocks Id System
/dev/sdb1
1
1014 508491+ 6 FAT16
#Всё ОК. Пишем изменения и выходим
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks.
И всё!? Ан нет. Это создан раздел для FAT16. А
его надо отформатировать,
а по науке говоря, создать на нем чистую файловую систему. В Линуксе
есть простая и прямая как рельс утилитка для этого — mkdosfs. Просто
пишем, на каком разделе мы хотим создать чистую FAT16
root@H84_103:~# mkdosfs
/dev/sdb1
mkdosfs 2.11 (12 Mar 2005)
Линкусоиды могут тут же примонтировать
новообретенный девайс и что-нибудь записать на него. Пользователи
дружественной и удовлетворяющей все запросы пользователей
ОС грузятся в Windows и радуются, что стали «настоящими»
линуксоидами .
Необходимое послесловие.
Автор не несет никакой ответственности за то, что
счастливые обладатели SATA-дисков попутали буквы и постирали информацию
со своих винчестеров (а такие будут, это я гарантирую ) . Если вы из
статьи ничего не поняли, и проблеск мысли в мозгу не воссиял , то
лучше статью сразу забыть, флешку выкинуть и идти в магазин за новой. Данная технология справедлива для флешек до 2 ГБ включительно.
Автор искренне благодарит Алексея Хована за помощь в
написании статьи и дополнительную проверку работоспособности метода.
Виталий Розизнаный, специально для rlab.ru.
Перепечатка или цитирование разрешены при условии сохранения ссылки вида R.LAВ восстановление данных на первоисточник.
Информация о чипе заложена в сам чип памяти, если он отдаёт идентификатор Samsung’а, то Samsung’ом он и является. Если чип не маркирован то это скорее всего отбраковка собранная китайцами в «третью» смену :). На счёт скорости и стабильности флеш ничего сказать не могу, скорость записичтения зависит от многих факторов, ничего удивительно что запустив два раза один и тот же тест получаем разные результаты нет. Разница должна быть не значительной. Доверять такой флеш я бы не стал, ибо она ни что иное как дешёвая китайская подделка. Но даже они бывает работают лучше и дольше своих фирменных аналогов.
Пока плохо ориентируюсь тут! Сори если не там пишу!
Вопрос следующий!: на чипе флеш карты нету маркировки
Опрос контроллера флешки с помощью утилиты ChipEasy
Показывает что чип производства Samsung !
На сколько эта информация достоверна?
И является ли это реальным подтверждением что чип Samsung?
И на сколько плохо что на чипе нет маркировки?
При этом он записывает и считывает с хорошей скоростью!
И еще очень важный вопрос если проверяешь флешку дважды
И скорость считывания и записи отличалась это плохо?
Это вобще на что-то влияет?
Может говорит о том что флешка не стабильна?
Жду вашего ответа!!!!
Это очень важно узнать как можно скорей!
Спасибо! мне помогло! gparted не справился, проделал по этой инструкции. В конце правда не сработала команда mkdosfs /dev/sdb1, но после всего и gparted заработал и довершил дело.
«Линукс — очень дружелюбная ОС. Просто она придирчива в выборе друзей.»
Выполнение hdparm без параметров не имеет никакого смысла.
«Permission denied» — отсутствие прав?
Опишите проблему подробно.
помогите после hdparm [b]/dev/sdb[/b] выдаёт [b]/dev/sdc: Permission denied[/b] что делать?
Ох….ть,ох….но,я сразу несколько флешек поднял ….и на одном сатовском диске все под чистую снес(пофиг он все равно в зеркале),почет и уважение ….и низкий поклон!!!
Автору респектище! И с наступающим!
Вчера купил новую флеху наигрался с MultiSystem и она у меня оппп, крякнула после Дебиянчика. За новой флехой бежать неохота, да и жаба давит, 200-300 рублей лучше пропью. На сайте флехи Kingmax микропграммы гавно полное, парился под виндой пол ночи и не куя. А тут на тебе гугл эту статью указал и флешка заработала.
Не путайте вендор-утилиты, толкающие в флешку супер-он, дефектующие модули памяти, формирующие новый транслятор со всякими «реально перемагничивающими» (с) зерофиллами под виндовз, суть которые и есть dd.
Да и вы что-то не договариваете: если для Изиной Рековырялки по логике было доступно 4 ГБ, то эти же 4 ГБ будут доступны хоть под фряхой, хоть под соляркой и для dd и для любого софта. Именно этим свойством я и пользуюсь для создания под линуксом образов флешек с программными глюками, наглухо вешающими винду.
FSCK – очень важная утилита для Linux / Unix, она используется для проверки и исправления ошибок в файловой системе.
Она похоже на утилиту «chkdsk» в операционных системах Windows.
Она также доступна для операционных систем Linux, MacOS, FreeBSD.
FSCK означает «File System Consistency Check», и в большинстве случаев он запускается во время загрузки, но может также запускаться суперпользователем вручную, если возникнет такая необходимость.
Может использоваться с 3 режимами работы,
1- Проверка наличия ошибок и позволить пользователю решить, что делать с каждой ошибкой,
2- Проверка на наличие ошибок и возможность сделать фикс автоматически, или,
3- Проверка наличия ошибок и возможность отобразить ошибку, но не выполнять фикс.
Содержание
- Синтаксис использования команды FSCK
- Команда Fsck с примерами
- Выполним проверку на ошибки в одном разделе
- Проверьте файловую систему на ошибки и исправьте их автоматически
- Проверьте файловую систему на наличие ошибок, но не исправляйте их
- Выполним проверку на ошибки на всех разделах
- Проверим раздел с указанной файловой системой
- Выполнять проверку только на несмонтированных дисках
Синтаксис использования команды FSCK
$ fsck options drives
Опции, которые можно использовать с командой fsck:
- -p Автоматический фикс (без вопросов)
- -n не вносить изменений в файловую систему
- -у принять «yes» на все вопросы
- -c Проверить наличие плохих блоков и добавить их в список.
- -f Принудительная проверка, даже если файловая система помечена как чистая
- -v подробный режим
- -b использование альтернативного суперблока
- -B blocksize Принудительный размер блоков при поиске суперблока
- -j external_journal Установить местоположение внешнего журнала
- -l bad_blocks_file Добавить в список плохих блоков
- -L bad_blocks_file Установить список плохих блоков
Мы можем использовать любую из этих опций, в зависимости от операции, которую нам нужно выполнить.
Давайте обсудим некоторые варианты команды fsck с примерами.
Команда Fsck с примерами
Примечание: – Прежде чем обсуждать какие-либо примеры, прочтите это. Мы не должны использовать FSCK на смонтированных дисках, так как высока вероятность того, что fsck на смонтированном диске повредит диск навсегда.
Поэтому перед выполнением fsck мы должны отмонтировать диск с помощью следующей команды:
$ umount drivename
Например:
$ umount /dev/sdb1
Вы можете проверить номер раздела с помощью следующей команды:
$ fdisk -l
Также при запуске fsck мы можем получить некоторые коды ошибок.
Ниже приведен список кодов ошибок, которые мы могли бы получить при выполнении команды вместе с их значениями:
- 0 – нет ошибок
- 1 – исправлены ошибки файловой системы
- 2 – система должна быть перезагружена
- 4 – Ошибки файловой системы оставлены без исправлений
- 8 – Операционная ошибка
- 16 – ошибка использования или синтаксиса
- 32 – Fsck отменен по запросу пользователя
- 128 – Ошибка общей библиотеки
Теперь давайте обсудим использование команды fsck с примерами в системах Linux.
Выполним проверку на ошибки в одном разделе
Чтобы выполнить проверку на одном разделе, выполните следующую команду из терминала:
$ umount /dev/sdb1 $ fsck /dev/sdb1
Проверьте файловую систему на ошибки и исправьте их автоматически
Запустите команду fsck с параметром «a» для проверки целостности и автоматического восстановления, выполните следующую команду.
Мы также можем использовать опцию «у» вместо опции «а».
$ fsck -a /dev/sdb1
Проверьте файловую систему на наличие ошибок, но не исправляйте их
В случае, если нам нужно только увидеть ошибки, которые происходят в нашей файловой системе, и не нужно их исправлять, тогда мы должны запустить fsck с опцией “n”,
$ fsck -n /dev/sdb1
Выполним проверку на ошибки на всех разделах
Чтобы выполнить проверку файловой системы для всех разделов за один раз, используйте fsck с опцией «A»
$ fsck -A
Чтобы отключить проверку корневой файловой системы, мы будем использовать опцию «R»
$ fsck -AR
Проверим раздел с указанной файловой системой
Чтобы запустить fsck на всех разделах с указанным типом файловой системы, например, «ext4», используйте fsck с опцией «t», а затем тип файловой системы,
$ fsck -t ext4 /dev/sdb1
или
$ fsck -t -A ext4
Выполнять проверку только на несмонтированных дисках
Чтобы убедиться, что fsck выполняется только на несмонтированных дисках, мы будем использовать опцию «M» при запуске fsck,
$ fsck -AM
Вот наше короткое руководство по команде fsck с примерами.
Пожалуйста, не стесняйтесь присылать нам свои вопросы, используя поле для комментариев ниже.