Рубрики
Проекты на Raspberry Pi

Как загрузить Raspberry Pi с USB без SD-карты

Хотите загружать Raspberry Pi с USB-накопителя вместо ненадёжных SD-карт? Если вы пользуетесь Raspberry Pi достаточно долго, вы наверняка сталкивались с этой неприятной проблемой — поломкой SD-карты. Возможно, она повредилась сразу после отключения питания, а может быть, просто износилась от тысяч записей в журнал. Именно тогда я окончательно решил, что больше не буду использовать SD-карты. Они отлично подходят для начала работы с Raspberry Pi, но если вам нужна надёжность и скорость, лучше всего загружать Raspberry Pi с USB-накопителя.

А с новыми моделями Raspberry Pi загрузка Raspberry Pi с USB-накопителя не только возможна, но и удивительно проста, если вы знаете, с какой моделью Pi вы имеете дело. Я проделал этот процесс для нескольких моделей – Pi 3B, 3B+, 4B и даже для новой Pi 5. Так что, если вы задаетесь вопросом, может ли ваш Pi работать без microSD, используя только USB-накопитель, это руководство для вас.

Зачем загружать Raspberry Pi с USB, а не с SD-карты?

По умолчанию Raspberry Pi загружается с карты microSD. Она недорогая и работает отлично, пока не сломается. Помимо производительности, SD-карты со временем изнашиваются, особенно при интенсивном вводе-выводе. Если вы используете что-то, требующее большого количества операций чтения и записи, например, базы данных или частое ведение журналов, это может стать серьёзной проблемой.

Но есть ещё и фактор скорости. Я обнаружил, что SD-интерфейс Raspberry Pi 4 способен работать со скоростью около 50 МБ/с. Более старые модели, такие как 3B и 3B+, ещё медленнее, достигая скорости около 25 МБ/с. И в реальности даже лучшие SD-карты обеспечивают скорость записи всего около 38 МБ/с. Этого явно недостаточно для работы операционной системы или выполнения какой-либо интенсивной работы с диском.

А теперь сравните это с SSD-накопителем USB 3.0. В реальных тестах он достиг скорости чтения 208 МБ/с и записи 140 МБ/с. Это более чем в пять раз быстрее, чем у лучших SD-карт.

Разница заметна. Загрузка, установка пакетов, работа с файлами и даже просто просмотр рабочего стола ОС Raspberry Pi — всё это происходит значительно быстрее при загрузке с USB. Если вы выходите за рамки простых проектов, настройка загрузки Raspberry Pi с SSD может значительно повысить производительность.

Преимущества загрузки с USB

Реальные файловые операции демонстрируют значительное ускорение при загрузке Raspberry Pi с USB-накопителя. Скорость загрузки Raspberry Pi с USB-накопителя весьма существенна. Вот что я обнаружил в ходе реальных испытаний:

  • Производительность в 5-10 раз выше, чем у SD-карт.
  • Более надежная система хранения данных и меньше сбоев.
  • Преимущества в производительности относительно времени загрузки приложений и общей скорости реагирования системы.
  • Лучше подходит для развертывания на серверах и постоянного использования.
  • Профессионально развернуто и готово к производству.

Как загрузить Raspberry Pi с USB?

Я быстро понял, что не все модели Raspberry Pi ведут себя одинаково, когда пытался разобраться, как загрузить Raspberry Pi с USB-накопителя без SD-карты. Я обнаружил, что способ загрузки Raspberry Pi с USB-накопителя без SD-карты значительно различается в зависимости от модели. Позвольте мне пошагово объяснить каждый метод.

Модель Raspberry Pi Поддержка загрузки с USB Описание
Pi 3B С одноразовой конфигурацией Требуется установить флаг OTP через SD-карту
Pi 3B+ Из коробки Загрузка с USB включена по умолчанию
Pi 4 Родной с EEPROM Поддерживает загрузку через USB 3.0
Pi 5 Полная поддержка Поддерживает загрузку USB, PCIe NVMe

Теперь перейдем к более детальному описанию работы с каждой картой.

Raspberry Pi 3B: одноразовая разблокировка через USB

С этим пришлось немного повозиться. Raspberry Pi 3B не поддерживает загрузку с USB-накопителя из коробки; нужно переключить скрытый внутренний переключатель. Точнее, нужно установить флаг в памяти OTP (однократно программируемой) Raspberry Pi 3. Он постоянный, но после установки вы сможете загружаться с USB-накопителя Raspberry Pi 3 всегда, даже без карты microSD.

⇒ Шаг 1: Загрузка с SD-карты с ОС Raspberry Pi

Для начала я записал стандартную ОС Raspberry Pi на карту microSD и загрузил с неё Raspberry Pi 3B. Для этого можно использовать Raspberry Pi Imager. После запуска ОС откройте окно терминала — оно понадобится вам для дальнейших действий.

⇒ Шаг 2: Включите режим загрузки USB с помощью config.txt

Вот команда, которую я выполнил:

Что это делает:

echo program_usb_boot_mode=1 записывает флаг конфигурации для включения загрузки с USB
The(pipe) отправляет эту строку в следующую команду
sudo tee -a /boot/config.txt добавляет эту строку в файл /boot/config.txt, используя привилегии суперпользователя

Добавление program_usb_boot_mode=1 в файл конфигурации позволяет Pi записать флаг в свою память одноразовых паролей при следующей перезагрузке. Это нужно сделать только один раз за время жизни Pi; это не повредит Pi и не помешает последующим загрузкам с SD-карты.

⇒ Шаг 3: Перезагрузите устройство, чтобы применить изменения.

После изменения config.txt я запустил:

Это перезагрузит Pi и запустит загрузчик для чтения нового параметра конфигурации. Если он обнаружит program_usb_boot_mode=1, он запишет флаг загрузки с USB в одноразовую память Pi.

⇒ Шаг 4: Убедитесь, что установлен флаг OTP

После перезагрузки Raspberry Pi я решил убедиться, что флаг загрузки с USB-накопителя был прописан правильно. Поэтому я выполнил:

Вот что это делает:

vcgencmd otp_dump выводит содержимое памяти OTP (однократно программируемой) Pi
| grep 17: фильтрует строку 17, которая содержит конкретный бит загрузки USB

Если команда возвращает что-то вроде:

Вот и все, загрузка Raspberry Pi с USB теперь постоянно включена на вашем Pi 3 B.

⇒ Шаг 5: Загрузка с USB (без SD-карты!)

Я записал ОС Raspberry Pi на USB-накопитель (точно так же, как и на SD-карту), подключил его к USB-порту Pi 3B и извлек SD-карту. Когда я снова включил Pi, он загрузился прямо с USB-накопителя. SD-карты больше не нужны!

Raspberry Pi 3B+: встроенная поддержка загрузки с USB

Если вы используете Raspberry Pi 3B+, вам повезло. Загрузка с USB уже включена на заводе. Это значит, что вам не нужно настраивать какие-либо файлы конфигурации или выполнять команды в терминале. Вы просто прошиваете ОС на USB-накопитель и можете сразу же загрузить Raspberry Pi 3 с USB-накопителя. В Pi 3B+ поддержка загрузки с USB-накопителя уже включена на заводе, что позволяет Raspberry Pi 3 загружаться с USB-накопителя без SD-карты.

Вот что я сделал с помощью Raspberry Pi Imager:

⇒ Шаг 1: Откройте Raspberry Pi Imager: Я начал с открытия Raspberry Pi Imager на своём ПК. Это официальный инструмент для записи образов ОС на SD-карты или USB-накопители.

⇒ Шаг 2: Выберите модель Pi: Raspberry Pi Imager позволяет указать целевую плату. Я нажал кнопку «Choose Device» («Выбрать устройство») и выбрал Raspberry Pi 3B+. Это поможет инструменту оптимизировать ОС для вашей модели.

⇒ Шаг 3: Выберите ОС для Raspberry Pi: Я нажал «Choose OS» («Выбрать ОС») и выбрал Raspberry Pi OS (32-разрядную) из списка. Вы также можете использовать Raspberry Pi OS Lite, если настраиваете Raspberry Pi без монитора.

⇒ Шаг 4: Выберите USB-накопитель. Далее я нажал «Choose Storage» («Выбрать хранилище») и выбрал USB-накопитель из списка. Убедитесь, что вы выбираете правильный накопитель; во время прошивки данные с него будут стерты.

⇒ Шаг 5: Запись ОС: Я нажал «Записать», подтвердил предупреждение и записал ОС на USB-накопитель. Этот этап занял около 5–10 минут.

⇒ Шаг 6: Загрузка Pi 3B+ с USB: Когда USB-накопитель был готов, я отключил SD-карту от Pi (если она была), вставил USB-накопитель в один из USB-портов Pi и включил его.

Вот и всё. Pi 3B+ загрузился с USB без дополнительной настройки. Никаких конфигурационных файлов, никаких загрузчиков — просто подключи и работай.

Raspberry Pi 4: загрузчик с EEPROM

Raspberry Pi 4 — это большой шаг вперёд. Вместо жёстко прописанной логики загрузки он использует специальный чип EEPROM для хранения загрузчика, что обеспечивает гибкие настройки загрузки Raspberry Pi 4 с USB-накопителя без SD-карты. Это означает, что вы можете обновить его и изменить способ загрузки Pi. По умолчанию старые платы Pi 4 могут по-прежнему отдавать приоритет загрузке с microSD, но это можно изменить, чтобы разрешить загрузку Raspberry Pi 4 с USB-накопителя без SD-карты. 

Вариант 1: метод CLI

⇒ Шаг 1: загрузка с SD-карты и открытие терминала

Как и прежде, я загрузился с SD-карты с установленной ОС Raspberry Pi и открыл Терминал

⇒ Шаг 2: Обновите все

Чтобы убедиться, что моя система и загрузчик полностью обновлены, я выполнил следующие действия:

sudo apt update: извлекает последнюю информацию о пакетах из репозиториев.

sudo apt full-upgrade: Устанавливает обновления для всего, включая прошивку и ядро.

И тогда я выполнил:

Эта команда проверяет наличие последнего обновления загрузчика и при необходимости устанавливает его. Флаг -a означает «применять все доступные обновления автоматически».

⇒ Шаг 3: Установите порядок загрузки на USB

Затем я открыл инструмент настройки Raspberry Pi:

Затем перейдите к: «Advanced Options → Boot Order → USB Boot» («Дополнительные параметры → Порядок загрузки → Загрузка с USB»).

Это заставит загрузчик EEPROM сначала искать USB-накопитель, а затем переключиться на microSD.

⇒ Шаг 4: Перезагрузите устройство и извлеките SD-карту.

После установки порядка загрузки я перезагрузил Raspberry Pi 4, выключил его, извлек SD-карту и подключил USB-накопитель SSD с установленной ОС Raspberry Pi. При следующем включении Raspberry Pi 4 теперь можно загрузить с USB-накопителя быстрее, чем когда-либо.

Вариант 2: обновление загрузчика Raspberry Pi Imager

Если вы хотите узнать, как загрузить Raspberry Pi с USB-накопителя без SD-карты и избежать использования терминала, Raspberry Pi Imager предлагает удобное решение. Вот как это сделать.

→ Откройте Raspberry Pi Imager на вашем ПК и выберите плату.

→  Нажмите  «Choose OS» («Выбрать ОС») → прокрутите вниз до раздела Misc Utility Images → Bootloader → select USB Boot («Разные образы утилит» → «Загрузчик» → выберите «Загрузка с USB»).

→  Нажмите «Choose Storage» («Выбрать хранилище») и выберите SD-карту.

→  Нажмите Write и дождитесь завершения.

→  Вставьте SD-карту в ваш Pi и включите его.

Примерно через 10 секунд зелёный светодиод начнёт быстро мигать, или экран может стать зелёным; это означает, что обновление загрузчика прошло успешно. Выключите устройство, извлеките SD-карту, и теперь оно готово к загрузке с USB-накопителя.

Raspberry Pi 5 с собственной загрузкой USB и NVMe

Pi 5 — самый мощная на сегодняшний день плата Raspberry Pi, которая сразу из коробки поддерживает загрузку через USB 3.0 и PCIe. Никаких обновлений, никаких флагов или настроек EEPROM не требуется. Pi 5 обеспечивает самую полную поддержку загрузки, включая загрузку Raspberry Pi с SSD через несколько интерфейсов.

Вот все, что я сделал:

  • Использовал Raspberry Pi Imager для прошивки ОС Raspberry Pi на USB SSD.
  • Подключил SSD к одному из синих портов USB 3.0.
  • Работает на Pi 5 (без SD-карты).

Чтобы добиться невероятной производительности на Raspberry Pi 5, используйте его порт PCIe с совместимым адаптером NVMe, чтобы ваш Raspberry Pi загружался с SSD, как мини-ПК.

Устранение неполадок при загрузке с USB-накопителя

Проблема Симптомы Решение
Недостаточная мощность Диск не обнаружен Используйте USB-концентратор с питанием или высококачественный блок питания.
Загрузочный раздел поврежден Циклы загрузки или сбои Перепрошить диск с новым образом ОС
Несовместимый USB-накопитель Не загружается несмотря на настройку Тестирование с USB-накопителями разных марок
Устаревший загрузчик USB не распознан Обновите загрузчик EEPROM до последней версии
Неправильный USB-порт Низкая производительность Используйте порты USB 3.0 (синие) на Pi 4/5

Как видите, большинство проблем, которые могут возникнуть, достаточно просто решаемы.

Стоит ли загружать Raspberry Pi с USB?

Если вы устали от сбоев SD-карт, хотите повысить производительность или просто хотите, чтобы ваш Raspberry Pi работал как настоящий компьютер, то да, надежность, которую вы получите, узнав, как загрузить Raspberry Pi с USB-накопителя без SD-карты, на 100% того стоит.

Для любительских проектов SD-карты вполне достаточно, но для серьёзных задач, требующих надёжности и производительности, загрузка с USB-накопителя Raspberry Pi 3 и более новых моделей предлагает неоспоримые преимущества. Хороший USB-SSD оправдывает свою стоимость благодаря лучшему отклику системы, надёжности и ещё меньшему количеству проблем, связанных с выходом SD-карты из строя и задержками в обслуживании.

Часто задаваемые вопросы по загрузке Raspberry Pi с USB

⇥ Q1. Как узнать, поддерживает ли мой Raspberry Pi 4 загрузку с USB?
Все модели Raspberry Pi 4 поддерживают загрузку с USB, но устройствам, выпущенным до середины 2020 года, может потребоваться обновление загрузчика. Проверьте версию загрузчика с помощью команды vcgencmd bootloader_version — для стабильной поддержки загрузки с USB вам нужна версия 2020-04-16 или более поздняя.

⇥ Q2. Загрузка Raspberry Pi с USB-накопителя происходит быстрее, чем с SD-карты?
Да, но прирост скорости зависит от вашего хранилища и модели Pi. SSD с интерфейсом USB 3.0 могут передавать данные значительно быстрее, чем SD-карты. Однако USB-контроллер Raspberry Pi 4 использует ту же полосу пропускания, что и Ethernet, и фактическая производительность зависит от нагрузки.

⇥ Q3. Как устранить неполадки при загрузке с USB?
Проверяйте систематически: версию загрузчика (vcgencmd bootloader_version), убедитесь, что USB-накопитель имеет правильную структуру загрузочных разделов, протестируйте с заведомо исправным USB-устройством, попробуйте разные USB-порты, проверьте правильность питания (особенно для SSD) и проверьте порядок загрузки в raspi-config для Raspberry Pi 4.

⇥ Q4. Все ли модели Raspberry Pi поддерживают загрузку с USB?
Нет, загрузку с USB поддерживают только Raspberry Pi 3B (с конфигурацией), 3B+, 4 и 5. Для всех остальных плат требуется SD-карта для загрузки.

⇥ Q5. Какой USB-накопитель лучше всего подходит для загрузки Raspberry Pi?
SSD-накопители USB 3.0 — безусловно, лучший выбор, если вы цените продвинутые устройства. Другой вариант — USB-накопители (чем они качественнее, тем лучше), но лучше воздержаться от дешёвых флеш-накопителей, которые могут быстро разряжаться при постоянном использовании.

⇥ Q6. Если я включу загрузку с USB, смогу ли я использовать SD-карту?
Да, в большинстве случаев загрузка с USB также позволит использовать SD-карту. Если у вас есть оба устройства, Raspberry Pi будет загружаться с USB.

⇥ Q7. Может ли Raspberry Pi 5 получать питание от накопителей NVMe?
Да, Raspberry Pi 5 обеспечивает загрузку с NVMe, при условии использования адаптеров M.2 вы достигнете максимальной производительности хранилища.

⇥ Q8. Как отменить конфигурацию загрузки с USB?
Изменения одноразовых паролей (OTP) на Pi 3B сохраняются, но загрузка с SD-карты всё равно возможна. На Pi 4/5 порядок загрузки можно изменить с помощью raspi-config.

Добавить комментарий

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