Монтирование внутренней памяти android как mass storage и восстановление данных

Description

Implement application specific behavior of a Mass Storage Class (MSC) USB Device.

The MSC class in the USB Component is used for data storage.

Refer to:

  • MSC: Mass Storage Class for an overview of the MSC class.
  • USB Device Mass Storage for example projects that use the MSC class.

The USB Component allows multiple instances of the MSC class. Each MSC class instance has a separate files and interface functions:

  • A configuration file USBD_Config_MSC_n.h.
  • An application-specific user source code file, which can be implemented with the USBD_User_MSC_n.c.
  • Functions that start with the prefix USBD_MSCn_ are available for each instance of a MSC class.

This documentation uses n as a placeholder for the instance number — 3. Most applications only require one instance of a MSC class. For the first MSC class instance the instance number is 0:

  • USBD_Config_MSC_0.h
  • USBD_User_MSC_0.c
  • The function prefix is USBD_MSC0_

Software Structure

The handling for the MSC class endpoint events is implemented in USBD_MSCn_Thread which is started by . Each instance of a MSC class runs an instance of USBD_MSCn_Thread which calls the data functions and .

А как же запись?

  • Транзакция SCSI Write
    • Команда обрабатывается по цепочке функций MSC_BOT_DataOut() -> MSC_BOT_CBW_Decode() -> SCSI_ProcessCmd() -> SCSI_Write10()
    • Поскольку драйвер находится в состоянии hmsc->bot_state == USBD_BOT_IDLE, то готовится процедура записи: проверяются параметры команды, запоминается сколько всего блоков нужно будет записать
    • Вызывается функция USBD_LL_PrepareReceive() которая готовит периферию USB к приему блока данных.
    • Драйвер переходит в состояние hmsc->bot_state = USBD_BOT_DATA_OUT
  • Транзакция SCSI: Data Out
    • Устройство принимает данные пакетами по 64 байта и укладывает эти данные в предоставленный буфер. Все это происходит на самом низком уровне в ядре USB, драйвер MSC в этом не участвует
    • Когда данные приняты возникает событие Data Out и опять вызывается функция SCSI_Write10()
    • Поскольку драйвер находится в состоянии hmsc->bot_state == USBD_BOT_DATA_OUT, то управление переходит функции SCSI_ProcessWrite()
    • Там происходит запись на карту в синхронном режиме
    • Если еще не все данные приняты, то прием “перезаряжается” вызовом USBD_LL_PrepareReceive()
    • Если все блоки записаны, то вызывается функция MSC_BOT_SendCSW() которая отправляет хосту подтверждение (Control Status Word — CSW), а драйвер переключается в состояние USBD_BOT_IDLE
  • Транзакция SCSI: Response

В такой схеме несколько пакетов могут быть приняты подряд, но не все из них успеют быть записаны на SD карту. Скорее всего часть данных пререзатрется следующим блоком.Случай 1: на первый DataOut сразу же начинаем прием второго блока. Случай 2: начинаем прием очередного блока только после того как запись закончена и буфер свободен. Случай 3: на предпоследней записи прием не начинаем, на последней — отправляем CSW

  • в обычном случае будем начинать прием следующего блока в тот же самый буфер (случай №2 из описанных выше)
  • В случае предпоследнего блока ничего не будем делать (случай №3)
  • В случае последнего блока будем отправлять Control Status Word (CSW) — отчет хосту о статусе операции

Значения устройств Mass Storage не отображаются в «Моем компьютере»?

Если вы хотите загружать и использовать приложения для своего компьютера, вы можете посетить официальный магазин Windows Store, официальный рынок Microsoft. Есть множество приложений на выбор и загрузка в любое время. Но, скорее всего, есть ошибки приложения, с которыми вы столкнетесь при использовании или установке приложений. Некоторые приложения не смогут установить, в то время как другие не будут запускать или создавать какое-либо обновление. Другие приложения просто сбой. Тем не менее, есть также исправления для решения проблем. Вы можете очистить кеш, запустить средство устранения неполадок или сбросить приложения. Идея заключается не в панике, когда вы сталкиваетесь с ошибкой приложения. Легкое исправление часто поможет.

Восстановление данных из подключенного внутреннего хранилища Android

Теперь, когда внутренняя память подключена как обычный накопитель, мы можем использовать любую программу для восстановления данных, которая умеет работать с разделами Linux, например, бесплатную PhotoRec (доступную для всех распространенных ОС) или платную R-Studio.

Я пробую выполнить действия с PhotoRec:

  1. Скачиваем и распаковываем PhotoRec с официального сайта https://www.cgsecurity.org/wiki/TestDisk_Download
  2. Запускаем программу, для Windows и запуска программы в графическом режиме запустите файл qphotorec_win.exe (подробнее: восстановление данных в PhotoRec).
  3. В главном окне программы вверху выбираем устройство Linux (тот новый диск, который мы подключили). Ниже указываем папку для восстановления данных, а также выбираем тип файловой системы ext2/ext3/ext Если вам требуются файлы лишь определенного типа, рекомендую указать их вручную (кнопка «Форматы файлов»), так процесс пойдет быстрее. 

  4. Еще раз убедитесь, что выбрана нужная файловая система (иногда переключается «сама»).
  5. Запустите поиск файлов (находиться они начнут на втором проходе, первый — поиск заголовков файлов). При нахождении, они автоматически будут восстановлены в указанную вами папку. 

В моем эксперименте из 30 удаленных из внутренней памяти фотографий в идеальном состоянии было восстановлено 10 (лучше, чем ничего), для остальных — только миниатюры, также были найдены скриншоты png, сделанные ещё до хард-ресета. R-Studio показала примерно тот же результат.

Но, так или иначе, это не проблема способа, который работает, а проблема эффективности восстановления данных как таковой в некоторых сценариях. Так же отмечу, что DiskDigger Photo Recovery (в режиме глубокого сканирования с root) и Wondershare Dr. Fone for Android показали сильно худший результат на том же устройстве. Конечно, вы можете попробовать и любые другие средства, позволяющие восстанавливать файлы с разделов с файловой системой Linux.

По окончании процесса восстановления, извлеките подключенное USB устройство (используя соответствующие способы вашей операционной системы).

Затем можно просто перезагрузить телефон, выбрав соответствующий пункт в меню рекавери.

Значение USB Mass Storage Device не будет распознавать внешние устройства хранения данных?

Устройство запоминающего устройства USB не распознает внешние устройства хранения данных, это имя ошибки, содержащее сведения об ошибке, включая причины ее возникновения, неисправность системного компонента или приложения для возникновения этой ошибки вместе с некоторой другой информацией. Численный код в имени ошибки содержит данные, которые могут быть расшифрованы производителем неисправного компонента или приложения. Ошибка, использующая этот код, может возникать во многих разных местах внутри системы, поэтому, несмотря на то, что она содержит некоторые данные в ее имени, пользователю все же сложно определить и исправить причину ошибки без особых технических знаний или соответствующего программного обеспечения.

MSC — запоминающее устройство

SdFat

  • Пользователю предоставляется класс File, через который можно создавать/открывать файлы, читать и писать данные. Клиентский код не парится взаимодействием с носителем информации и тонкостями файловой системы.
  • Класс Volume занимается всей кухней по обслуживанию файловой системы, каталога, кластеров, FAT и такого прочего. Общение с носителем данных делегируется в нижележащие уровни.
  • Драйвер SD карты — этот компонент знает как общаться с картой, какие ей слать команды и какие слушать ответы. Библиотека предоставляет несколько видов драйверов для карт подключенных по SPI и SDIO. Теоретически можно подставить свой драйвер, например, для RAM диска.
  • Вышележащие слои кроссплатформенные, они ничего не знают о том как именно данные будут писаться на карту или читаться с нее. Это позволяет собирать библиотеку под разные платформу (как Ардуино, так и другие). Для конкретной платформы или микроконтроллера можно написать драйвер, который будет реализовывать передачу данных через необходимый интерфейс. По умолчанию библиотека предоставляет несколько драйверов, в т.ч. для ардуиновского SPI, но я заморочился и написал свой драйвер с преферансом и поэтессами передачей через DMA на основе HAL.
  • Наконец, HAL обеспечивает работу с регистрами конкретного микроконтроллера

спецификации вот линка

Operating system support

Most mainstream operating systems include support for USB mass storage devices; support on older systems is usually available through patches.

Microsoft Windows

Microsoft Windows has supported MSC since Windows 2000. There is no support for USB supplied by Microsoft in Windows before Windows 95 and Windows NT 4.0. Windows 95 OSR2.1, an update to the operating system, featured limited support for USB. During that time no generic USB mass-storage driver was produced by Microsoft (including for Windows 98), and a device-specific driver was needed for each type of USB storage device. Third-party, freeware drivers became available for Windows 98 and Windows 98SE, and third-party drivers are also available for Windows NT 4.0. Windows 2000 has support (via a generic driver) for standard USB mass-storage devices; Windows Me and all later Windows versions also include support.

Windows Mobile supports accessing most USB mass-storage devices formatted with FAT on devices with USB Host. However, portable devices typically cannot provide enough power for hard-drive disk enclosures (a 2.5-inch (64 mm) hard drive typically requires the maximum 2.5 W in the USB specification) without a self-powered USB hub. A Windows Mobile device cannot display its file system as a mass-storage device unless the device implementer adds that functionality. However, third-party applications add MSC emulation to most WM devices (commercial Softick CardExport and free WM5torage). Only memory cards (not internal-storage memory) can generally be exported, due to file-systems issues; see , below.

The AutoRun feature of Windows worked on all removable media, allowing USB storage devices to become a portal for computer viruses. Beginning with Windows 7, Microsoft limited AutoRun to CD and DVD drives, updating previous Windows versions.

MS-DOS

Neither MS-DOS nor most compatible operating systems included support for USB. Third-party generic drivers, such as Duse, USBASPI and DOSUSB, are available to support USB mass-storage devices. FreeDOS supports USB mass storage as an Advanced SCSI Programming Interface (ASPI) interface.

Mac OS

Apple Computer’s Mac OS 9 and X support USB mass storage; Mac OS 8.5.1 supported USB mass storage through an optional driver.

Linux

The Linux kernel has supported USB mass-storage devices since its 2.4 series (2001), and a backport to kernel 2.2.18 has been made. In Linux, more features exist in addition to the generic drivers for USB mass-storage device class devices, including quirks, bug fixes and additional functionality for devices and controllers (vendor-enabled functions such as ATA command pass-through for ATA-USB bridges, which is useful for S.M.A.R.T. or temperature monitoring, controlling the spin-up and spin-down of hard disk drives, and other options). This includes a certain portion of Android-based devices, through support USB-OTG, since Android uses the Linux kernel.

Other Unix-related systems

Solaris has supported devices since its version 2.8 (1998), NetBSD since its version 1.5 (2000), FreeBSD since its version 4.0 (2000) and OpenBSD since its version 2.7 (2000). Digital UNIX (later known as Tru64 UNIX), has supported USB and USB mass-storage devices since its version 4.0E (1998). AIX has supported USB mass-storage devices since its 5.3 T9 and 6.1 T3 versions; however, it is not well-supported and lacks features such as partitioning and general blocking.

Game consoles and embedded devices

The Xbox 360 and PlayStation 3 support most mass-storage devices for the data transfer of media such as pictures and music. As of April 2010, the Xbox 360 (a) used a mass-storage device for saved games and the PS3 allowed transfers between devices on a mass-storage device. Independent developers have released drivers for the TI-84 Plus and TI-84 Plus Silver Edition to access USB mass-storage devices. In these calculators, the usb8x driver supports the msd8x user-interface application.

А еще быстрее можно?

Операция Время
Передача запроса от драйвера MSC до драйвера карты (с использованием очереди запросов) <100мкс
Отправка карте команды на чтение 70мкс
Ожидание готовности карты 500-1000 мкс
Чтение одного блока с карты 280 мкс
Передача ответа назад в драйвер MSC <100 мкс
Операция Время
Отправка карте команды на запись 70мкс
Ожидание готовности карты 1-5мс
Запись одного блока на карту 0.4-1.2мс
  • Во-первых, SPI это явно не родной интерфейс для SD карт. Даже крутые карты тупят на самых обычных операциях. Тут есть смысл смотреть в сторону SDIO (я уже забрал на почте пакетик с STM32F103RCT6 — там есть поддержка SDIO из коробки)
  • Во-вторых, карта карте рознь. Нужно будет искать ту единственную. Хотя при подключении через SDIO это будет не так критично
  • В-третьих, при наличии достаточного количества памяти можно будет переключиться на чтение блоками бОльшего размера (скажем 4к). Тогда длинная задержка вначале чтения/записи будет нивелироваться большой скоростью передачи. Пока 20кб памяти моего контроллера (STM32F103C8T6) забиты почти под завязку и даже 512 байт для двойной буферизации я выкроил с трудом

Восстановление флешки и прошивка контроллера

Основными причинами выхода из строя флешки являются: небезопасное извлечение ее из usb — порта, если не дождались полного копирования файлов с жесткого диска компьютера на флешку или наоборот, вирусы и прочее

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

Восстановление флешки путем ее форматирования

Если есть возможность отформатировать флешку и система не выдает отказ на это действие, то лучше начать именно с форматирования. В операционной системе Windows есть встроенная утилита для форматирования. Также есть отдельные утилиты для форматирования флешек, например, HP USB Disk Storege Format Tool.

Если не помогло, то можно воспользоваться утилитой для низкоуровневого форматирования HDD Low Level Format Tool. Только при выборе флешки не спутайте жесткий диск, а то можете отформатировать его. Так что будьте внимательны!!!

Есть еще одна программа HDD Regenerator для восстановления жестких дисков, но так же подходит и для флешек. Программа устраняет физические повреждения (сбойные сектора) с поверхности жесткого диска и флешек. Также поддерживает низкоуровневое форматирование. После форматирование можно восстановить данные с флешки.

Если форматирование флешки не удается, то не отчаивайтесь. Возможно, слетел контроллер и его можно перепрошить.

Определение, поиск и прошивка контроллера флешки

Для того чтобы прошить контроллер необходимо узнать его модель и производителя, а точнее VID, PID и VendorID. Просто так это не узнаешь, поэтому понадобиться утилита CheckUDisk, если эта утилита не помогла можно также воспользоваться утилитами Usbdeview или ChipGenius. Но вроде, сколько не пользовался, утилита CheckUDisk работает безотказно и выдает необходимую информацию.

Даже если флешка не определяется как накопитель, но операционная система видит его как устройство, то утилита определяет VID и PID. Поэтому вставляем флешку в USB-порт и запускаем утилиту CheckUDisk. Нам нужно только VID, PID и VendorID, в моем случае VID = 0951 и PID = 1613, а VendorID: Kingston.

В моем случае в списке предложено не мало вариантов, так что выбор большой. Тут надо выбрать более подходящий. Работаем в два окна, где один сайт flashboot.ru, а другое окно утилита CheckUDisk. Некоторые утилиты для прошивки совпадают по названию с разными моделями флешек, просто они совместимы.

Копируем название утилиты для прошивки контроллера, которая нам подходит (в моем случае MPTool MP2232 v1.06.00) и вставляем поисковую строку раздела Файлы и нажимаем на кнопку Найти.

Вот что-то нашли, в принципе подходит, а значит можно скачать и восстановить флешку.

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

Я надеюсь Вам поможет эта информация и ваша флешка вновь наполниться файлами. А с Вами был блог об онлайн сервисах и приложениях.

Значение USB Mass Storage Device Support?

Поддержка USB Mass Storage Device — это имя ошибки, содержащее сведения об ошибке, включая причины ее возникновения, неисправность системного компонента или приложения для возникновения этой ошибки вместе с некоторой другой информацией. Численный код в имени ошибки содержит данные, которые могут быть расшифрованы производителем неисправного компонента или приложения. Ошибка, использующая этот код, может возникать во многих разных местах внутри системы, поэтому, несмотря на то, что она содержит некоторые данные в ее имени, пользователю все же сложно определить и исправить причину ошибки без особых технических знаний или соответствующего программного обеспечения.

Disk Scheduling

There are many disk scheduling algorithms that provide the total head movement for various requests to the disk. Here are the types of disk scheduling algorithms −

All these algorithms are explained using the following requests for the disk −

10,95,23,78,80

First Come First Serve Scheduling (FCFS)

In first come first served scheduling, the requests are serviced in their coming order. This algorithm is fair as it allows all requests a chance but it does not provide the fastest possible service. An example of FCFS scheduling is given below −

In the above example, the requests are serviced in the order they appear i.e 10, 95, 23, 78, 80. The seek head is initially positioned at 50 and it starts from there.

Shortest Seek Time First Scheduling

The requests that are closest to the current head are served first before moving away in shortest seek time first scheduling algorithm. A problem with SSTF algorithm is that it may cause starvation for some requests. An example of Shortest Seek Time First Scheduling is given below −

In the above example, the requests are serviced in the order 23, 10, 78, 80, 95. The seek head is initially positioned at 50 and it starts from there. 23 is closest to 50 so it is services first. Then 10 is closer to 23 than 78 so it is services next. After this 78, 80 and 95 are serviced.

SCAN Scheduling

In this scheduling algorithm, the head moves towards one direction while servicing all the requests in that direction until it reaches the end of the disk. After that it starts moving towards the other direction. In this way, the head continuously scans back and forth across the disk. An example of SCAN scheduling is given below −

In the above example, the requests are serviced in the order 23, 10, 78, 80, 95. The head is initially at 50 and moves towards the left while servicing requests 23 and 10. When it reaches the end of the disk, it starts moving right and services 78, 80 and 95 as they occur.

LOOK Scheduling

LOOK scheduling algorithm is similar to SCAN scheduling but is its practical version. In this algorithm, the head moves towards one direction while servicing all the requests in that direction until it reaches the last request. After that it starts moving towards the other direction. An example of LOOK scheduling is given below −

In the above example, the requests are serviced in the order 23, 10, 78, 80, 95. The head is initially at 50 and moves towards the left while servicing requests 23 and 10. When it reaches the last request on the left i.e. 10, it starts moving right and services 78, 80 and 95 as they occur.

Amit Diwan

Published on 19-Aug-2018 20:45:22

Previous Page
Print Page

Next Page  

USB Storage Support, Legacy USB storage detect — поддержка загрузки с внешних накопителей с интерфейсом USB (с фото) — Настройка BIOS

Настройка BIOS Setup USB-порт USB Storage Support, Legacy USB storage detect — поддержка загрузки с внешних накопителей с интерфейсом USB (с фото)

Опция USB Storage Support позволяет определить, будет ли на БИОС поддерживать загрузку ОС с внешнего устройств с интерфейсом USB.Значения опции:

  • Disabled – запретить БИОС выполнять поддержку внешних накопителей с интерфейсом USB;
  • Enabled – включить данную опцию.

Опция также может иметь другие названия:

  1. USB Storage Function
  2. Legacy USB storage detect
  3. USB emulation
  4. Legacy USB support

Примечание 1. USB (Universal Serial Bus, универсальная последовательная шина) – это последовательный интерфейс, с помощью которого можно подключать внешние периферийные устройства к персональному компьютеру.Более подробно о том, что такое USB-интерфейс, Вы можете прочитать здесь.Примечание 1. Legacy USB storage detect, USB Storage Function — опция служит для включения USB-накопителей в процессе инициализации Биоса — при выполнении POST процедуры.

  1. Включение данной опции необходима для загрузки с USB-флоппи диска или USB флеш-диска, форматированного как USB-FDD.
  2. Рекомендуется перевести в рабочий режим если у вас компьютер виснет при загрузке с воткнутым в USB 3G модемом, беспроводной мышке или клавиатуре.
  3. Для работы USB — устройств при загруженной операционной системе Windows — влияния не оказывает.

Legacy USB storage detect значение по умолчанию 

Возможное значение:

During POST, decide whether to detect USB storage devices including USB flash & HDD. Во время процедуры POST, решить, следует ли включить обнаружение устройства хранения USB, включая USB флэш & HDD.
BIOS will scan all USB storage devices. BIOS будет сканировать все устройства хранения данных USB.
ВIOS will not scan all USB storage devices. System will NOT boot from USB. ВIOS не будет сканировать все устройства хранения данных USB. Система НЕ загрузиться с USB.

USB emulation значение по умолчанию 

Возможное значение:

This field defines how the BIOS, in the absence of a USB-aware operating system, handles USB devices. USB emulation is always enabled during POST. Это поле определяет, как BIOS, конфигурирует USB контроллер в момент загрузки системы. На работу USB устройств при загруженной системе — данная опция не влияет.Эмуляция USB всегда включена во время POST тестирования системы.
Enabled = The USB emulation is always on.The factory default setting is Enabled. Enabled = эмуляции USB всегда включена.Заводская настройка по умолчанию — Включена.
Disabled = USB emulation is on until control is passed to the operating system.Note: you cannot boot any type of USB device (floppy, HDD, or memory key)when this field is off. Отключен = эмуляция USB выключена,  управление не передается операционной системе.Примечание: вы не можете загрузиться с любого типа USB устройств (дискета, жесткий диск, или карты памяти) когда это поле отключено.

Данная опция находится на вкладке: «Advanced»

Возможное значение:

Enables Legacy USB support Включает поддержку Legacy USB
Поддежка USB всегда включена
AUTO option disables legacy support if no USB devices are connected. Опция AUTO отключает поддержку стандартных устройсв, если устройства USB не подключены.
DISABLE option will keep USB devices available only for EFI applications. Отключить параметр, будет осуществляться поддержка устройств USB, доступные только для приложений EFI.
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector