Создание загрузочного USB-устройства флэш-памяти
Для развертывания Windows Server Essentials можно создать загрузочный USB-накопитель флэш-памяти. Первым этапом является подготовка USB-устройства флэш-памяти с помощью служебной программы командной строки DiskPart. Сведения о DiskPart см. в статье Параметры командной строки DiskPart.
Сведения о создании загрузочного USB-накопителя для восстановления или переустановки Windows на компьютере вместо сервера см. в статье «Создание диска восстановления».
Дополнительные сценарии, в которых вам может понадобиться создание или использование загрузочного USB-устройства флэш-памяти, см. в следующих темах:
- Полное восстановление системы из существующей резервной копии клиентского компьютера
- Восстановление сервера под управлением Windows Server Essentials
Создание загрузочного USB-устройства флэш-памяти
- Вставьте USB-устройство флэш-памяти в работающий компьютер.
- Откройте окно командной строки с правами администратора.
- Введите diskpart .
- В открывшемся новом окне командной строки введите list disk , чтобы указать номер загрузочного USB-устройства флэш-памяти или букву диска, затем нажмите клавишу ВВОД. Команда list disk отображает все диски компьютера. Запишите номер диска или букву диска USB-устройства флэш-памяти.
- В командной строке введите select disk , где X — номер диска или букву диска USB-устройства флэш-памяти, а затем нажмите клавишу ВВОД.
- Введите clean и нажмите клавишу ВВОД. Эта команда удаляет все данные с USB-устройства флэш-памяти.
- Чтобы создать новый основной раздел на USB-устройстве флэш-памяти, введите create partition primary , и нажмите клавишу ВВОД.
- Чтобы выбрать созданный раздел, введите select partition 1 и нажмите клавишу ВВОД.
- Чтобы отформатировать раздел, введите format fs=ntfs quick и нажмите клавишу ВВОД.
Важно! Если серверная платформа поддерживает Единый интерфейс EFI (UEFI), следует отформатировать USB-устройство флэш-памяти в файловой системе FAT32, а в NTFS. Чтобы отформатировать раздел в файловой системе FAT32, введите format fs=fat32 quick и нажмите клавишу ВВОД.
Создаем простейшее usb-устройство для общения со своей программой
В продолжение темы о создании собственного USB-гаджета.
Создание простого устройства.
Раз устройство планируется подключать к ПК, значит вероятнее всего потребуется передача данных между устройством и ПК.
Начнем писать прошивку и софт, наладив связь между ними.
Самым простым вариантом передачи данных является использование класса коммуникационных устройств USB (CDC).
При таком подключении устройство будет видно в системе как обычный виртуальный COM-порт.
Плюсом такого подключения является отсутствие необходимости писать собственные драйвера.
Так же радует простота приема и передачи данных: для работы с портом в Windows достаточно открыть его как текстовый файл и производить обычные операции чтения\записи.
Железо.
Возьмем схему с минимальной обвязкой МК.

На этот раз нам нужно добавить только 4 контакта к USB и одну кнопку (кнопка нужна только для бутлоадера: куда проще нажать ее и заменить прошивку в устройстве по USB, нежели переставлять чип в программатор).

Не сильно стараясь сделать красиво, разводка может выглядеть так:

Но при желании часто экспериментировать с подключаемыми компонентами лучше сразу развести каждую ногу МК сделав аналог ардуино — Jaluino.
Прошивка
Начнем с минимума:
include 18f2455 — библиотека для используемого МК
—
enable_digital_io () — переключение всех входов на цифровой режим
—
alias Button is pin_B7 — раз уж у нас подключена кнопка, объявим ее
pin_B7_direction = input — кнопка у нас работает на вход
—
— одна строчка — и у нас есть все необходимое для работы с USB CDC
include usb_serial — бибилотека для работы с usb
—
usb_serial_init () — —инициализируем USB CDC
forever loop — основной цикл, выполняется постоянно
usb_serial_flush () — обновление usb. Данная процедура выполняет все необходимые
— действия для поддержания соединения с ПК
end loop
Скомпилировав данный код, записав полученный HEX файл в МК при помощи бутлоадера и запустив устройство можно будет наблюдать как в системе опрделится новое устройство: Виртуальный сom-порт.

Теперь, когда устройство уже работает, научим его общаться.
Для чтения принятого байта существует функция usb_serial_read(byte):boolean. При наличии полученного байта она заносит его в указанную переменную и возвращает true, иначе возвращает false.
Для отправки байта существует процедура usb_serial_data. Она замаскирована под переменную, потому для отправки байта достаточно присвоить ей значение отправляемого байта.
Объявим переменную размером в байт до основного цикла, в основном цикле будем проверять наличие полученных байт, и при их наличии отправлять их обратно.
include 18f2455
—
enable_digital_io ()
—
alias Button is pin_B7
pin_B7_direction = input
—
—
include usb_serial
—
usb_serial_init ()
var byte ch — объявляем переменную
forever loop — основной цикл
usb_serial_flush ()
if ( usb_serial_read ( ch ) ) then — если байт получен, он будет записан в ch
usb_serial_data = ch — отправляем полученный байт обратно
end if
end loop
Компилируем, зажимаем кнопку, передергиваем питание, запуская бутлоадер, меняем прошивку, запускаем.
Устройство снова определилось в системе, теперь нам нужен софт, дабы протестировать работу устройства.
Пока у нас нет своего, используем готовый терминал: я использовал программу RealTerm.
Открываем порт с нужным номером и отправляем данные.

И нам в ответ приходит то, что мы отправили. Значит, все работает как надо.
Софт
Итак, наш микроконтроллер умеет принимать байты и тут же отправлять их обратно. Теперь напишем свой софт для общения с ним (я буду использовать Delphi).
Создаем новый проект, раскидываем по форме необходимые компоненты:
SpinEdit1 — для указания номера порта
Button1 — для установки соединения
Button2 — для разрыва соединения
SpinEdit2 — для ввода байта в десятичном виде
Button3 — для отправки байта
Memo1 — для вывода принятой информации.
Как уже было сказано выше, с com-портом нужно работать так же, как и с обычным текстовым файлом: используя функции CreateFile, WriteFile и ReadFile.
Дабы не вдаваться в подробности, возьмем готовую библиотеку для работы с com-портом: ComPort.
Вешаем на каждую кнопку необходимую задачу и получаем конечный код:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics , Controls, Forms,
Dialogs, StdCtrls, Spin,ComPort;
type
TForm1 = class (TForm)
SpinEdit1: TSpinEdit;
Button1: TButton;
Button2: TButton;
SpinEdit2: TSpinEdit;
Button3: TButton;
Memo1: TMemo;
procedure OnRead(Sender: TObject; ReadBytes: array of Byte );
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
< Private declarations >
Port: TComPort;
public
< Public declarations >
end;
var
Form1: TForm1;
num: integer;
implementation
procedure TForm1.Button1Click(Sender: TObject);
begin
Port := TComPort.Create(SpinEdit1.Value, br115200); //создаем соединение
Port.OnRead := OnRead; //создаем поток чтения принятых данных
Button2.Enabled := true ; //активируем кнопку закрытия соединения
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Port.Free; //закрываем соединение
Button2.Enabled := false ; //отключаем кнопку
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if Button2.Enabled then Port.Write([SpinEdit2.Value]);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
if Button2.Enabled then
Port.Free;
end;
procedure TForm1.OnRead(Sender: TObject; ReadBytes: array of Byte );
var
i:integer;
begin
for i := Low(ReadBytes) to High(ReadBytes) do //проходим по массиву принятых байт
begin
Memo1.Text := Memo1.Text + ‘.’ +InttoHex(ReadBytes[i],2); //добавляем его HEX значение в окно
inc(num); //считаем колв-о принятых байт
end;
if num > 10 then begin
Memo1.Lines.Add( » ); //переносим строку
num := 0;
end;
end;
Запускаем, устанавливаем соединение, отправляем байты:

Вот и готов наш самый простой терминал для работы с самым простым usb-устройством.
Как видно, чтение и запись происходит динамическими массивами байт.
Обрабатывая получаемую информацию можно составить необходимый протокол обмена, подходящий для текущей задачи.
include 18f2455
—
enable_digital_io ()
—
alias Button is pin_B7
pin_B7_direction = input
—
—
include usb_serial
—
usb_serial_init ()
var byte ch
var byte i — объявляем вторую переменную
forever loop — основной цикл
usb_serial_flush ()
if ( usb_serial_read ( ch ) ) then — если байт получен выполняем необходимые действия
case ch of — перебираем номер байта
0 : usb_serial_data = 0xff
1 : usb_serial_data = Button — отправка состояния кнопки
OTHERWISE block — если получено что-то иное
for 16 using i loop — отправляем 10 байт с данными
usb_serial_data = ch + i — от ch до ch+15
end loop
end block
end case
end if
end loop
Дополнительные возможности
Если на этом остановиться, получится обычная статья с подробным описанием примера использования библиотеки, коих на просторах сети достаточно. Потому добавлю немного более углубленной информации.
Упрощение отправки данных
Отправлять информацию по одному байту — не всегда удобно. Очень часто может пригодиться библиотека print. Она содержит процедуры по отправке данных всевозможной длины всевозможными форматами: byte,hex,dec,bin,boolean что может упростить вывод данных в программе.
> include print
.
var dword data
print_dword_hex ( usb_serial_data , data )
Название всех команд можно посмотреть в файле библиотеки.
Ожидание подключения к ПК
Если перед стартом основного цикла микроконтроллера необходимо предварительно установить соединение с ПК, то можно дописать перед ним строчки
while ( usb_cdc_line_status () == 0x00 ) loop
end loop
Привязываем к устройству номер порта
Если оставить все как есть, система при каждом новом подключении будет выделять первый свободный номер порта. А это значит что за ним придется всегда следить.
Для того, что бы этого не происходило, необходимо устройству присвоить уникальное значение серийного номера до подключения библиотеки usb:
Номер может быть любой длины и содержать различные символы.
const byte USB_STRING3 [ 24 ] =
24 , — длина массива
0x03 , — bDescriptorType
«0» , 0x00 ,
«1» , 0x00 ,
«2» , 0x00 ,
«3» , 0x00 ,
«4» , 0x00 ,
«5» , 0x00 ,
«6» , 0x00 ,
«7» , 0x00 ,
«8» , 0x00 ,
«9» , 0x00 ,
«X» , 0x00
>
Меняем имя устройства на свое
Поменять имя устройства, видимое в системе до установки драйверов можно объявив массив с именем, как и серийный номер, это необходимо сделать до подключения библиотеки USB.
const byte USB_STRING2 [ 28 ] =
28 , —
0x03 , — bDescriptorType
«D» , 0x00 ,
«e» , 0x00 ,
«m» , 0x00 ,
«o» , 0x00 ,
» « , 0x00 ,
«B» , 0x00 ,
«o» , 0x00 ,
«a» , 0x00 ,
«r» , 0x00 ,
«d» , 0x00 ,
» « , 0x00 ,
» #FF0000″>0x00 ,
«)» , 0x00
>

Но увы, после установки драйверов устройство поменяет имя на указанное в .inf файле, потому поменяем имя и там
[Strings]
DESCRIPTION=«Demo CDC»

Организуем автоподключение устройства
Увы, никаких прямых путей выполнить данную задачу нет, потому придется исхитриться.
Прежде всего необходимо присвоить своему устройству уникальное значение производителя и продукта, дабы легко определять его среди сотен других стандартных CDC-прошивок.
VID и PID выдаются за денюжку, потому пойдем по пуути китайцев: втихую возьмем себе заведомо свободные значения.
Прошивка:
В прошивке необходимо объявить две переменные до подключения библиотеки USB
const word USB_SERIAL_PRODUCT_ID = 0xFF10
const word USB_SERIAL_VENDOR_ID = 0xFF10
Вместо FF10 можно вставить любые два слова (2 байта). Конечный результат содержится в прилагаемом архиве.
Драйвера:
Так как драйвера не предназначены для нашей комбинации VID и PID, допишем наши значения в .inf файл вручную:
[DeviceList]
%DESCRIPTION%=DriverInstall, USB\VID_FF10&PID_FF10
[DeviceList.NTamd64]
%DESCRIPTION%=DriverInstall, USB\VID_FF10&PID_FF10
Софт:
Для отлова событий подключения\отключения устройства подключим библиотеку ComponentUSB. Не считаю нужным пояснять каждую строчку: все изменения можно увидеть в прилагаемом проекте.
Результат
На скриншоте сложно разглядеть, но кнопка отправки активна только в момент наличия подключенного устройства, при этом каждые 50мс программа подает запрос на получение состояния кнопки (что, впрочем, неправильно, потому как нажатие кнопки должно обрабатываться на МК).

Как видно, организовать обмен данными между МК и ПК через USB — не самое сложное занятие. Полученное соединение можно использовать не только для конечынх целей: оно так же подходит для отладки программы. Ведь отправить на компьютер результаты расчетов, текущие состояния регистров и переменных куда нагляднее, чем моргать парой светодиодов азбукой морзе.
И напоследок: советую заглянуть в исходный код лампы настроения. Там можно найти довольно-таки хороший вариант обработки принимаемых данных для организации удобного протокола обмена.
Создание USB-накопителя восстановления
Поддержка Windows 8.1 закончилась 10 января 2023 г. Чтобы продолжить получать обновления системы безопасности от Майкрософт, рекомендуется перейти на компьютер с Windows 11.
USB-накопитель восстановления поможет выявить и устранить проблемы с компьютером под управлением Windows даже в случае, когда компьютер не запускается.
Возможно, на вашем компьютере есть образ восстановления, используемый для обновления или сброса компьютера. Образ для восстановления хранится на диске компьютера в специальном разделе восстановления и обычно занимает 3–6 ГБ. Чтобы сэкономить место на диске, можно удалить с компьютера образ для восстановления и использовать вместо него диск восстановления. Windows 8.1 включает встроенное средство для создания USB-диска восстановления. Windows сообщит вам, насколько велика секция восстановления, и вам потребуется USB-устройство флэш-памяти, по крайней мере, такое большое.
Предупреждение: При создании накопителя восстановления будут стерты все данные, имеющиеся на USB-устройстве флэш-памяти. Перед созданием USB-накопителя восстановления скопируйте с него все важные данные на другое запоминающее устройство либо используйте пустое USB-устройство флэш-памяти.
Создание USB-накопителя восстановления
- Выполните прокрутку от правого края экрана и нажмите кнопку Поиск. (Если вы используете мышь, переместите указатель в правый нижний угол экрана, потом вверх, а затем щелкните Поиск.)
- Введите в поле поиска диск восстановления, а затем выберите пункт Создание диска восстановления.
- После того как откроется средство создания диска восстановления, установите флажок Выполнить резервное копирование системных файлов на диск восстановления и нажмите кнопку Далее.
Примечание: Если на компьютере нет раздела восстановления, то этот значок будет недоступен. На диске восстановления будут только средства восстановления и загрузочный образ, но не будет образа для восстановления компьютера или возврата его в исходное состояние.
- Если вы хотите сохранить раздел восстановления на компьютере, нажмите кнопку Готово.
- Если вы хотите удалить раздел восстановления с компьютера и освободить место на диске, выберите пункт Удаление раздела восстановления. Затем нажмите кнопку Удалить. В результате на диске освободится место, которое занимал образ для восстановления. По окончании удаления нажмите кнопку Готово.
Примечание: Некоторые компьютеры не предлагают удалить раздел восстановления. Это значит, что на компьютере нет раздела восстановления, на хранение которого уходит часть места на диске.
Примечание: Если компьютер поставляется с Windows 8 и вы обновили его до Windows 8.1, диск восстановления будет включать Windows 8, и вам потребуется выполнить обновление до Windows 8.1 после обновления или сброса компьютера.
Компьютер не видит USB-устройства, что делать? Ремонт компьютеров и ноутбуков
При оказании услуг мы гарантируем соблюдение профессиональных и этических норм принятых в профессиональном сообществе.
31 декабря 2023
Компьютер не видит USB-устройства
Компьютер не видит USB-устройства

Нередко пользователи ПК сталкиваются с определенными сложностями, когда им требуется подключить к компьютеру через USB-порт какой-либо прибор. Например, это может быть принтер, сканер, мобильный телефон, внешний жесткий диск или флешка, игровой манипулятор и еще множество других устройств, взаимодействующих с ПК через этот универсальный порт. Как правило, если USB-порт работает нормально, при подключении устройства оно распознается, и пользователь может взаимодействовать с ним. Однако часто бывает, что после подключения либо вообще ничего не происходит (компьютер не видит USB-устройства), либо система сообщает, что устройство обнаружено, но работает неправильно. Источники такого поведения могут крыться как в программной и аппаратной части самого компьютера, так и в подключаемом приборе, поэтому поиск причин следует проводить комплексно.
Из-за чего USB устройство может не работать
- Неисправность самого внешнего прибора, например, флешки;
- Неисправность кабеля, которым осуществляется подключение;
- Физическая поломка контролера USB-порта;
- Неустановленный, устаревший или несовместимый драйвер устройства;
- Неверные настройки режимов работы контролера USB;
- Отключение USB-порта в настройках БИОСа;
- Заражение ПК вирусом, который может блокировать правильную работу порта.
Если речь идет о том, что не работают только USB-порты на передней панели, как правило, это может быть связано с некачественной сборкой ПК, когда сборщики просто забывают подключить шлейфы к соответствующим разъемам материнской платы.
Как восстановить работоспособность USB-устройства в таких случаях
Вариантов устранения проблемы может быть несколько:
- Если ПК вообще не реагирует на подключение прибора, стоит проверить кабель и само внешнее устройство на другом ПК, скорее всего проблема именно в них. Также рекомендуется подключить любое другое устройство, чтобы убедиться, что с портом все в порядке.
- Система сообщает об обнаружении устройства, но не может распознать его. Как правило, проблема здесь может заключаться в отсутствии драйверов или их несовместимости, нередко причиной могут быть и компьютерные вирусы. Также возможна перегрузка по питанию, поэтому, если другие устройства работают нормально, стоит попробовать отключить их и подключить только «проблемное устройство».
- Использование USB-порта запрещено в БИОС, в этом случае следует его включить. Так же некоторые антивирусные пакеты позволяют запрещать подключение к USB внешних накопителей, поэтому следует внимательно посмотреть настройки антивируса в параметрах защиты ПК.
Если ничего из вышеперечисленного не помогло, стоит обратиться в центр компьютерной помощи Serty Service, специалисты которого быстро обнаружат проблему и устранят ее.