- программный ремонт usb flash накопителей в linux
- Как восстановить поврежденный USB-накопитель в Linux
- Сделайте сжатый полный образ резервной копии
- Исправить поврежденную файловую систему с помощью FSCK
- Отформатируйте USB-накопитель с помощью Fdisk / MKFS из Терминала
- Графический интерфейс для проверки и исправления USB-накопителя с дисками
- Обновленный USB-накопитель
программный ремонт usb flash накопителей в linux
Довольно таки часто занимался программным восстановлением usb flash накопителей на Windows, ну и заинтересовался как можно это реализовать на Linux. Как раз под рукой лежала флэшка JetFlash TS4GJF160 на 4Gb, которая не хотела работать
И так для начала разберемся что же есть программный ремонт. В любой флэшке установлена микросхема-контроллер. Она отвечает за передачу данных между компьютером и флэш-памятью. В случае различных сбоев питания, неправильного извлечения и других причин – происходит сбой контроллера. В результате чего контроллер блокируется и не отвечает на запросы операционной системы. Также, блокировка может произойти из-за износа микросхемы памяти — появления дефектных блоков или превышения порога циклов записи (тогда контроллер сам метит блок как неиспользуемый и часто блокирует флэш на запись). И при попытке доступа к нему из операционной системы можно увидеть следующие сообщения «Вставьте диск» или «Нет доступа к диску», «Диск не отформатирован». Но при попытке отфарматировать выдается сообщение типа «Диск защищен от записи»
Так как же боротся с этим?! Весьма просто…
- Вставляем usb flash накопитель в компьютер и определяем какое имя ему присваивается При подключении usb flash накопителя к компьютеру, Linux присваивает ему имя типа sdX (первому устройству присваивается sda, второму sdb и так далее. Но чтобы узнать какое имя он ему присвоил наверняка, используем 1 из способов:
Набираем команду:
[ 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
Команда (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
Как восстановить поврежденный USB-накопитель в Linux
Флешка есть у всех. Это отличные мелочи, которые упрощают перемещение данных. Однако иногда флешки могут быть повреждены или просто полностью перестать работать. К счастью, если вы используете Linux, у вас уже есть доступ к набору инструментов, которые могут помочь вам решить проблему. В этом руководстве мы используем Ubuntu, но все применимо к большинству современных дистрибутивов Linux. Вот как вы можете восстановить поврежденный USB-накопитель в Linux.
В этой статье мы уделяем приоритетное внимание безопасности ваших данных. Сначала вы увидите, как создать резервную копию содержимого флэш-накопителя, а затем приступите к различным исправлениям возникшей проблемы. Таким образом, если попытка решить проблему приведет к ее усугублению, вы все равно сможете вернуться к моментальному снимку текущего состояния вашего флеш-накопителя.
Сделайте сжатый полный образ резервной копии
В Linux есть множество инструментов для резервного копирования любого устройства хранения. Однако проверенный подход основан на dd и GunZip (более известном как gzip).
1. Чтобы сделать резервную копию флешки, сначала подключите ее к компьютеру. Запустите свой любимый терминал (или нажмите CTRL + Alt + T ).
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-накопителя с дисками
Если вам не нравится вводить команды, вы можете воспользоваться инструментом "Диски" для проверки и форматирования USB-накопителя. Диски предустановлены в Ubuntu.
1. Зайдите в меню приложений и найдите "диски". Запустите приложение, когда найдете его.
2. Выберите USB-накопитель из списка слева и щелкните значок с двумя шестеренками. Выберите "Восстановить файловую систему" и следуйте инструкциям мастера, чтобы исправить файловую систему.
3. В нашем случае мы имели дело не с аппаратной проблемой, а с повреждением файловой системы. Хотя проблема не подлежала устранению, мы могли переформатировать USB-накопитель и продолжать его использовать. Чтобы сделать это с дисками, с выбранным USB-накопителем, снова щелкните значок с двумя шестеренками и выберите "Форматировать раздел…"
4. Введите имя USB-накопителя в поле Имя тома и выберите для него одну из трех самых популярных файловых систем:
- Ext4 для использования с Linux
- NTFS для использования с современными версиями Windows
- FAT для использования с обоими, а также с другими типами устройств (от смартфонов до игровых консолей)
5. Обратите внимание на опцию "Стереть". Оставьте его отключенным для быстрого форматирования. Установите для него значение "Вкл.", Чтобы выполнить полное форматирование, при котором содержимое вашего устройства будет полностью удалено. При работе с поврежденными устройствами, на которых также могут быть плохие блоки, лучше использовать опцию полного стирания.
Обновленный USB-накопитель
Теперь, когда вы отремонтировали свой поврежденный USB-накопитель, вы можете снова использовать его как новый накопитель. А если вы хотите создать USB-накопитель Linux Live, следуйте приведенным здесь инструкциям.