Восстановление флешки через командную строку linux

Восстанавливаем убитые жесткие диски, флешки и данные с них в Linux

Как «вылечить» поврежденный 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

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

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

Fat32

sudo
mkfs.msdos -f 32 /
dev/
sdc1

Ext4

sudo
mkfs.ext4 -f /
dev/
sdc1

NTFS

sudo
mkfs.ntfs -f /
dev/
sdc1

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

Как восстановить запоротую флешку? — General — Форум

Форум — General

Был вчера в стоматологии, выгружали КТ снимки с флешки, а после повторного включения в USB, у них в компе выдавало, мол, надо флешку отформатировать.

Ну ладно, сказал я, дома разберусь.

Пришел домой и о ужас, флешка не читается.

~$ sudo fdisk -l [sudo] password for lexxus: Disk /dev/sda: 931,5 GiB, 1000204886016 bytes, 1953525168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xd488d871 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 1953521663 1953519616 931,5G 7 HPFS/NTFS/exFAT Disk /dev/sdb: 931,5 GiB, 1000204886016 bytes, 1953525168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x000d314d Device Boot Start End Sectors Size Id Type /dev/sdb1 * 2048 1761032191 1761030144 839,7G 83 Linux /dev/sdb2 1761034238 1953523711 192489474 91,8G 5 Extended /dev/sdb5 1936812032 1953523711 16711680 8G 82 Linux swap / Solaris /dev/sdb6 1761034240 1936812031 175777792 83,8G 83 Linux Partition table entries are not in disk order. Disk /dev/sdc: 7,4 GiB, 7910457344 bytes, 15450112 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes 

/dev/sdc — это и есть моя флешка. Как её восстановить, чтобы она начала читаться. У меня там личные файлы. :(((

Читайте также:  Команды системного администратора linux

P.S. Ну или хотя бы, как её форматнуть, т.к. partionmagic (из KDE) её не видит тоже 🙁

~# hdparm /dev/sdc /dev/sdc: SG_IO: bad/missing sense data, sb[]: 70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 multcount = 0 (off) readonly = 0 (off) readahead = 256 (on) geometry = 1021/244/62, sectors = 15450112, start = 0 

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

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

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

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

  1. Вставляем usb flash накопитель в компьютер и определяем какое имя ему присваивается При подключении usb flash накопителя к компьютеру, Linux
    присваивает ему имя типа sdX
    (первому устройству присваивается sda
    , второму sdb
    и так далее. Но чтобы узнать какое имя он ему присвоил наверняка, используем 1 из способов:
  2. Набираем команду:
[ 1676.752097] usb 1-1: new high speed USB device using ehci_hcd and address 2 [ 1676.885083] usb 1-1: configuration #1 chosen from 1 choice [ 1676.886065] scsi6 : SCSI emulation for USB Mass Storage devices [ 1676.886393] usb-storage: device found at 2 [ 1676.886399] usb-storage: waiting for device to settle before scanning [ 1681.885333] usb-storage: device scan complete [ 1681.886555] scsi 6:0:0:0: Direct-Access JetFlash TS4GJF160 0.00 PQ: 0 ANSI: 2 [ 1681.887796] sd 6:0:0:0: Attached scsi generic sg3 type 0 [ 1681.892418] sd 6:0:0:0: [sdc] 8028160 512-byte logical blocks: (4.11 GB/3.82 GiB) [ 1681.893352] sd 6:0:0:0: [sdc] Write Protect is off [ 1681.893361] sd 6:0:0:0: [sdc] Mode Sense: 00 00 00 00 [ 1681.893368] sd 6:0:0:0: [sdc] Assuming drive cache: write through [ 1681.895713] sd 6:0:0:0: [sdc] Assuming drive cache: write through [ 1681.895725] sdc: sdc1 [ 1681.972724] sd 6:0:0:0: [sdc] Assuming drive cache: write through [ 1681.972738] sd 6:0:0:0: [sdc] Attached SCSI removable disk 
Nov 13 22:25:33 espera kernel: [ 1676.752097] usb 1-1: new high speed USB device using ehci_hcd and address 2 Nov 13 22:25:33 espera kernel: [ 1676.885083] usb 1-1: configuration #1 chosen from 1 choice Nov 13 22:25:33 espera kernel: [ 1676.886065] scsi6 : SCSI emulation for USB Mass Storage devices Nov 13 22:25:38 espera kernel: [ 1681.886555] scsi 6:0:0:0: Direct-Access JetFlash TS4GJF160 0.00 PQ: 0 ANSI: 2 Nov 13 22:25:38 espera kernel: [ 1681.887796] sd 6:0:0:0: Attached scsi generic sg3 type 0 Nov 13 22:25:38 espera kernel: [ 1681.892418] sd 6:0:0:0: [sdc] 8028160 512-byte logical blocks: (4.11 GB/3.82 GiB) Nov 13 22:25:38 espera kernel: [ 1681.893352] sd 6:0:0:0: [sdc] Write Protect is off Nov 13 22:25:38 espera kernel: [ 1681.895725] sdc: sdc1 Nov 13 22:25:38 espera kernel: [ 1681.972738] sd 6:0:0:0: [sdc] Attached SCSI removable disk 
Nov 13 22:25:38 espera kernel: [ 1681.895725] sdc: sdc1 

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

/dev/sdc1 on /media/A47B-0D0E type vfat (rw, nosuid, nodev, uhelper=udisks, uid=1000, gid=1000, shortname=mixed, dmask=0077, utf8=1, flush) 
sudo dd if=/dev/zero of=/dev/sdc1 
dd: запись в «/dev/sdc1»: На устройстве кончилось место 8028098+0 записей считано 8028097+0 записей написано скопировано 4110385664 байта (4,1 GB), 97,692 c, 42,1 MB/c 
Устройство не содержит ни верной таблицы разделов DOS, ни метки диска Sun, SGI или OSF Building a new DOS disklabel with disk identifier 0x1854766c. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. . Предупреждение: неверный флаг 0x0000 таблицы разделов 4 будет исправлен записью . WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). . Команда (m для справки): 
Команда (m для справки): n Действие команды e расширенный p основной раздел (1-4) p Номер раздела (1-4): 1 Первый цилиндр (1-1019, по умолчанию 1): 1 Last цилиндр, +цилиндры or +size (1-1019, по умолчанию 1019): 1019 
Команда (m для справки): p . Диск /dev/sdc1: 4110 МБ, 4110385664 байт 127 heads, 62 sectors/track, 1019 cylinders Units = цилиндры of 7874 * 512 = 4031488 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x1854766c . Устр-во Загр Начало Конец Блоки Id Система /dev/sdc1p1 1 1019 4011772 83 Linux 
Команда (m для справки): t Выбранный раздел 1 Шестнадцатеричный код (введите L для получения списка кодов): l . 0 Пустой 24 NEC DOS 81 Minix / ста bf Solaris 1 FAT12 39 Plan 9 82 Linux своп c1 DRDOS/sec (FAT- 2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 40 Venix 80286 84 OS/2 скрыт c6 DRDOS/sec (FAT- 4 FAT16 41 PPC PReP Boot 85 Linux расш c7 Syrinx 5 Расшире 42 SFS 86 NTFS набор da Данные н 6 FAT16 4d QNX4.x 87 NTFS набор db CP/M / CTOS / . 7 HPFS/NTFS 4e QNX4.x 2-я ч 88 Linux plaintext de Dell Utility 8 AIX 4f QNX4.x 3-я ч 8e Linux LVM df BootIt 9 AIX загру 50 OnTrack DM 93 Amoeba e1 DOS access a OS/2 Boot-ме 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS фс e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT f W95 расши 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/ 10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC 11 Скрытый 5c Priam Edisk a8 Darwin UFS f1 SpeedStor 12 Compaq диаг 61 SpeedStor a9 NetBSD f4 SpeedStor 14 Скрытый 63 GNU HURD или ab Darwin загр f2 DOS втори 16 Скрытый 64 Novell Netware af HFS / HFS+ fb VMware VMFS 17 Скрытый 65 Novell Netware b7 BSDI фс fc VMware VMKCORE 18 AST SmartSleep 70 DiskSecure Mult b8 BSDI своп fd Автоопр 1b Скрытый 75 PC/IX bb Boot Wizard с fe LANstep 1c Скрытый 80 Old Minix be Solaris заг ff BBT 1e Скрытый Шестнадцатеричный код (введите L для получения списка кодов): 6 Системный тип раздела 1 изменен на 6 (FAT16) 
Команда (m для справки): p . Диск /dev/sdc1: 4110 МБ, 4110385664 байт 127 heads, 62 sectors/track, 1019 cylinders Units = цилиндры of 7874 * 512 = 4031488 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x1854766c . Устр-во Загр Начало Конец Блоки Id Система /dev/sdc1p1 1 1019 4011772 6 FAT16 
Команда (m для справки): w Таблица разделов была изменена! . Вызывается ioctl() для перечитывания таблицы разделов. . WARNING: Re-reading the partition table failed with error 22: Недопустимый аргумент. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) . ПРЕДУПРЕЖДЕНИЕ: Если вы создали или изменили какие-либо разделы DOS 6.x, пожалуйста, прочтите страницу руководства fdisk для получения дополнительной информации. 
sudo mkdosfs -F 32 /dev/sdc1 

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

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

/dev/sdb: HDIO_DRIVE_CMD(identify) failed: Invalid exchange readonly = 0 (off) readahead = 256 (on) geometry = 1024/0/62, sectors = 0, start = 0 

Источник

Оцените статью
Adblock
detector