Гид по технологиям

Как загрузить Raspberry Pi 3 с USB-накопителя

5 min read Raspberry Pi Обновлено 19 Dec 2025
Загрузка Raspberry Pi 3 с USB-накопителя
Загрузка Raspberry Pi 3 с USB-накопителя

TL;DR

Raspberry Pi 3 можно настроить для загрузки с USB-накопителя: включите USB-boot через OTP-флаг, скопируйте Raspbian на разделы USB-диска и поправьте конфигурационные файлы. Подходит для флешек, USB-SSD и внешних HDD; полезно для повышения надёжности и скорости по сравнению с microSD.

raspi-boot-usb

Raspberry Pi — универсальная плата для проектов: медиасерверы, ретро-игры, вещание FM и многое другое. До недавнего времени у неё была одна ограничение — загрузка с USB не была доступна прямо «из коробки». На моделях Raspberry Pi 3 это ограничение можно обойти: плата позволяет загрузиться с USB-устройства после включения соответствующего OTP-флага. Ниже — пошаговая инструкция, советы по совместимости и устранению проблем.

Raspberry Pi 3 B board

Подготовка: установите Raspbian и обновите файлы загрузчика

Лучше начинать с чистого образа Raspbian (в примере — Raspbian Jessie). Запишите образ на microSD, вставьте карту в выключенный Pi, подключите питание и зайдите по SSH.

Выполните обновление и установку актуальных файлов загрузчика. Это заменит файлы start.elf и bootcode.bin в /boot на свежие версии:

sudo apt-get update

sudo BRANCH=next rpi-update

Обновлённые файлы будут размещены в каталоге /boot. Затем включите режим загрузки с USB, добавив команду в конфигурацию:

echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt

Эта команда добавляет строку program_usb_boot_mode=1 в конец /boot/config.txt.

Важно: после этого потребуется перезагрузка Pi.

Перезагрузите плату. Далее проверьте, установился ли OTP-флаг (one-time programmable memory):

vcgencmd otp_dump | grep 17:

Если вывод содержит значение, похожее на 17:3020000a (например, 17:3020000a), значит флаг установлен. Можно удалить строку program_usb_boot_mode=1 из config.txt, если вы планируете использовать эту microSD-карту в другом Pi 3.

Откройте файл для редактирования, если нужно:

sudo nano /boot/config.txt

Закомментируйте или удалите строку (поставьте # перед строкой), чтобы не оставлять лишних настроек на карте.

Linux Terminal Boot Raspberry Pi 3 With USB Nano Edit

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

Подключите USB-накопитель к свободному порту Pi 3. Диск будет отформатирован — убедитесь, что на нём нет нужных данных.

Определите имя устройства командой:

lsblk

В примере microSD — mmcblk0, а USB-флешка — sda (раздел sda1). У вас устройство может называться sdb, sdc и т. д.

Отмонтируйте диск и создайте таблицу разделов и два раздела: 100 МБ FAT32 (BOOT) и оставшееся пространство под ext4 (root):

sudo umount /dev/sda

sudo parted /dev/sda

В интерактивном (parted) введите:

mktable msdos

mkpart primary fat32 0% 100M

mkpart primary ext4 100M 100%

print

Если parted сообщает, что диск используется, выберите Ignore и подтвердите, что содержимое будет уничтожено. При необходимости можно переключиться в графическую среду и убедиться, что диск не монтирован.

Затем создайте файловые системы:

sudo mkfs.vfat -n BOOT -F 32 /dev/sda1

sudo mkfs.ext4 /dev/sda2

Теперь смонтируйте целевые разделы и скопируйте текущую систему на USB-диск с сохранением прав и метаданных:

sudo mkdir /mnt/target

sudo mount /dev/sda2 /mnt/target/

sudo mkdir /mnt/target/boot

sudo mount /dev/sda1 /mnt/target/boot/

sudo apt-get update; sudo apt-get install rsync

sudo rsync -ax --progress / /boot /mnt/target

Команда rsync скопирует корневую систему и /boot — это может занять длительное время в зависимости от скорости диска.

Linux Terminal Boot Raspberry Pi 3 With USB Copying

Обновление SSH-ключей и chroot

Чтобы после перезагрузки не получить конфликт ключей SSH, обновите host-ключи в новой системе. Для этого используйте chroot и перегенерацию ключей:

cd /mnt/target

sudo mount --bind /dev dev

sudo mount --bind /sys sys

sudo mount --bind /proc proc

sudo chroot /mnt/target

rm /etc/ssh/ssh_host*

dpkg-reconfigure openssh-server

exit

sudo umount dev

sudo umount sys

sudo umount proc

Примечание: после sudo chroot вы будете под root (приглашение изменится с pi@raspberrypi на root@raspberrypi) до ввода команды exit.

Linux Terminal Boot Raspberry Pi 3 With USB SSH

Подготовка к перезагрузке с USB

Перед выключением нужно изменить параметры, указывающие корневой раздел и fstab. Измените cmdline.txt так, чтобы root указывал на /dev/sda2 вместо /dev/mmcblk0p2:

sudo sed -i "s,root=/dev/mmcblk0p2,root=/dev/sda2," /mnt/target/boot/cmdline.txt

Потом подправьте /etc/fstab:

sudo sed -i "s,/dev/mmcblk0p,/dev/sda," /mnt/target/etc/fstab

Отмонтируйте целевые файловые системы и выключите плату:

cd ~

sudo umount /mnt/target/boot

sudo umount /mnt/target

sudo poweroff

Отключите питание, выньте microSD-карту, затем снова подайте питание — Raspberry Pi должна загрузиться с USB-накопителя.

Примечание: при проблемах подключите SD-карту обратно — она служит удобным инструментом восстановления.

Типичные проблемы и решения

  • Устройство не загружается: убедитесь, что OTP-флаг действительно установлен (vcgencmd otp_dump). Если флаг не выставлен, повторите шаг с echo program_usb_boot_mode=1 и перезагрузите.
  • Некорректный root в cmdline.txt: проверьте, что там ровно одна строка и root=/dev/sda2 заменил root=/dev/mmcblk0p2.
  • USB-накопитель требует больше времени для инициализации: попробуйте другой корпус/адаптер USB, используйте активный USB-хаб или SSD с отдельным питанием.
  • Совместимость: не все USB-флешки и адаптеры поддерживают загрузку; флешки китайских контроллеров или WD Green/Blue в некоторых конфигурациях могут не загружаться.

Когда этот способ не подходит

  • Если требуется PXE/сетевой загрузчик — используйте сетевую загрузку или специализированные решения.
  • На Raspberry Pi 4 механизм загрузки с USB другой: у Pi 4 есть собственные опции загрузки в EEPROM, инструкция для Pi 3 здесь не применима напрямую.

Альтернативы и варианты

  • Сетевая (PXE) загрузка — полезна для централизованного управления большим парком плат.
  • Использование USB-SSD через отдельный контроллер с хорошей совместимостью — заметно ускоряет работу.
  • На Pi 4 используйте встроенную поддержку USB-boot и обновление EEPROM вместо OTP-флага.

Краткие рекомендации и эвристики

  • Для стабильности предпочитайте качественные SSD в корпусе USB и проверенные кабели.
  • Всегда делайте резервную копию данных перед изменением таблицы разделов.
  • Если миграция выполняется на рабочем устройстве, сначала протестируйте процедуру на отдельной плате.

Контрольный список (для хоббиста и администратора)

Хоббист:

  • Имеется резервная microSD-карта с оригинальным образом Raspbian
  • USB-накопитель готов к форматированию
  • Подключение по SSH настроено
  • Выполнен rpi-update и выставлен program_usb_boot_mode

Администратор/внедрение:

  • Проверена совместимость USB-накопителя с массовыми образцами
  • Автоматизирован процесс копирования образа (скрипт)
  • Тесты восстановления и отката отработаны
  • Документированы serial/SSH ключи и сетевые настройки

Небольшой глоссарий в одну строку

  • OTP: одноразово программируемая память, флаг в контроллере загрузки, который включает USB-boot.
  • cmdline.txt: файл с параметрами ядра и указателем корневого раздела.
  • /boot: раздел, содержащий загрузочные файлы Raspberry Pi.

FAQ

Работает ли этот метод на Raspberry Pi 4?

Нет — у Pi 4 другой механизм загрузки (EEPROM). Для Pi 4 используйте официальные инструкции по обновлению EEPROM и включению USB-boot.

Нужно ли оставлять program_usb_boot_mode=1 в config.txt после установки?

Нет, после того как OTP-флаг установлен, запись в config.txt можно убрать — флаг хранится в аппаратной памяти.

Какие USB-накопители лучше использовать?

Лучше SSD в качественном USB-корпусе или проверенные USB-накопители от известных производителей. Избегайте дешёвых контроллеров без отзывов о совместимости.

Итог

Перенос загрузки Raspberry Pi 3 на USB даёт преимущества по надёжности и скорости по сравнению с microSD. Основные шаги: обновить загрузочные файлы, включить USB-boot через OTP, подготовить разделы USB-накопителя, скопировать систему и изменить cmdline.txt с fstab. Проведите тесты и имейте резервные копии.

Краткие выводы:

  • Процедура необратима для одной платы (OTP), но безопасна при правильном выполнении.
  • Не все USB-устройства совместимы — проверяйте заранее.
  • Для Pi 4 используйте отдельную инструкцию.

Если нужно, подготовлю сценарий автоматизации (bash-скрипт) для клонирования и настройки USB-boot или рекомендации по выбору SSD/адаптера.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Оплата при доставке в WordPress — подключение COD
WordPress

Оплата при доставке в WordPress — подключение COD

Где смотреть плей‑офф MLB: каналы и стримы
Спорт

Где смотреть плей‑офф MLB: каналы и стримы

Как полностью закрыть приложение на Android
Android.

Как полностью закрыть приложение на Android

Фильтровать диаграмму в Excel — Windows и Mac
Excel

Фильтровать диаграмму в Excel — Windows и Mac

Как поделиться местоположением в Facebook Messenger
Руководство

Как поделиться местоположением в Facebook Messenger

Как пользоваться мышью в Windows 8
Руководство

Как пользоваться мышью в Windows 8