Загрузка Raspberry Pi 5 и 4 с SSD/NVMe вместо SD-карты

Карта microSD — самое слабое место «малинки». Она медленная, от постоянной записи изнашивается, а при внезапном отключении питания может «умереть» вместе с вашими данными. Если Raspberry Pi работает круглосуточно (сервер, умный дом, фильтр рекламы), рано или поздно карта подведёт.

Выход простой: перенести систему на твердотельный накопитель. Он быстрее, служит дольше и надёжнее. На Raspberry Pi 5 для этого есть шина PCIe, к которой подключают NVMe SSD. Raspberry Pi 4 умеет загружаться с SSD по USB 3.0. В статье разберём, как это сделать на разных моделях, как перенести уже настроенную систему с карты и что делать, если плата не хочет загружаться.

Для Raspberry Pi 5 в статье два варианта: NVMe SSD на плате M.2 HAT+ и обычный SSD по USB 3.0. Скриншоты и вывод команд сняты на Raspberry Pi 5 с SATA SSD, подключённым по USB: NVMe-накопителя под рукой не оказалось. Для NVMe шаги те же, отличаются подключение (шаг 2) и имя устройства: nvme0n1 вместо sda. Часть про NVMe основана на официальной документации Raspberry Pi.


Что на каких моделях работает

МодельКак подключить накопительОсобенности
Raspberry Pi 5NVMe SSD через M.2 HAT+ (разъём PCIe) или SSD по USBЗагрузка с NVMe поддерживается. Если в слоте есть карта, плата загружается с неё, пока вы не измените порядок загрузки. Нужен обновлённый загрузчик
Raspberry Pi 4, 400SSD или флешка по USB (лучше в синий порт USB 3.0)Загрузка с USB включается порядком загрузки. На ранних платах Pi 4 может понадобиться обновить загрузчик
Raspberry Pi 3B+, Zero 2 WНакопитель по USBUSB-загрузка работает «из коробки», но скорость ограничена USB 2.0
Raspberry Pi 3B, 2B (версия 1.2), 3A+Накопитель по USBНужно один раз включить USB-загрузку в памяти платы (OTP). Это необратимо

NVMe-накопитель на старые платы не подключить: у них нет шины PCIe. У первых Raspberry Pi и у Raspberry Pi 2 (кроме версии 1.2) загрузка с USB не поддерживается.


Что понадобится (Raspberry Pi 5 + NVMe)

  • Raspberry Pi 5 и блок питания. Рекомендуется официальный 27 Вт (USB-C).
  • Плата-переходник M.2 HAT+ (подойдёт любой NVMe-накопитель формата 2230 или 2242) или M.2 HAT+ Compact (только формат 2230). У них один канал PCIe 2.0 с пиковой скоростью около 500 МБ/с и питание до 3 А для накопителя.
  • NVMe SSD с разъёмом M.2 типа M (SATA M.2 не подойдёт, нужен именно NVMe). Для платы Pi 5 разработчики выпускают собственные SSD формата 2230 на 256 ГБ, 512 ГБ и 1 ТБ.
  • Карта microSD с рабочей системой (для настройки) или компьютер с адаптером для записи SSD.

Важно. Перед установкой платы-переходника всегда отключайте Raspberry Pi от питания. Подключать и отключать накопитель можно только при выключенной плате.

Вариант без NVMe: SSD по USB

Если NVMe-накопителя и M.2 HAT+ нет, система будет работать и с обычным SSD по USB. Понадобится:

  • Raspberry Pi 5 и блок питания (рекомендуется официальный 27 Вт).
  • SSD: 2,5″ SATA, внешний SSD или M.2 SSD в корпусе с USB. У нас SATA SSD KingDian S180 на 60 ГБ, подключённый через простой адаптер SATA → USB 3.0.
  • Свободный синий порт USB 3.0 на плате (у Raspberry Pi 5 два порта USB 3.0, они синие).
  • Карта microSD с рабочей системой (для настройки) или компьютер для записи SSD.

Накопитель получает питание от платы, поэтому блок питания важен: если он слабее 27 Вт, плата ограничивает ток портов USB, и SSD может не определиться или отключаться под нагрузкой. По скорости SATA SSD по USB 3.0 даёт сотни МБ/с: это намного быстрее карты microSD и сопоставимо с PCIe Gen 2 у M.2 HAT+.


Шаг 1. Обновляем систему и загрузчик

Включите Raspberry Pi 5 с обычной картой и выполните:

sudo apt update
sudo apt full-upgrade
sudo rpi-eeprom-update

Последняя команда показывает версию загрузчика. Для работы M.2 HAT+ нужна версия не раньше 6 декабря 2023 года. Если дата старше, выберите последнюю версию загрузчика: sudo raspi-config → 6 Advanced Options → A5 Bootloader Version → Latest. После этого выполните и перезагрузитесь:

sudo rpi-eeprom-update -a
sudo reboot
Терминал Raspberry Pi 5: sudo rpi-eeprom-update показывает доступное обновление загрузчика, sudo rpi-eeprom-update -a его готовит, после перезагрузки BOOTLOADER: up to date

Так это выглядит на плате. Первая команда нашла обновление (CURRENT — 8 мая 2025, LATEST — 25 сентября 2026) и спросила «Install the update now? [y/N]». Мы ответили N и запустили sudo rpi-eeprom-update -a: она подготовила обновление (скопировала recovery.bin в /boot/firmware) и попросила перезагрузить плату. Само обновление применяется при перезагрузке, поэтому SSH-сессия оборвалась. Предупреждение про /dev/spidev10.0 нам не помешало. После нового входа sudo rpi-eeprom-update пишет BOOTLOADER: up to date: загрузчик свежий.


Шаг 2. Устанавливаем M.2 HAT+ и SSD

  1. Выключите плату и отключите питание.
  2. (По желанию) Если у вас есть активный кулер Raspberry Pi 5, установите его до платы-переходника.
  3. Прикрутите стойки из комплекта и вставьте контактную гребёнку (для M.2 HAT+) на GPIO-контакты.
  4. Подключите шлейф к разъёму PCIe на Raspberry Pi 5. Контакты шлейфа должны смотреть в сторону портов USB. Затем положите M.2 HAT+ на стойки и закрепите винтами.
  5. Подключите второй конец шлейфа к плате M.2 HAT+. Здесь контактами вверх. Прижимайте фиксаторы шлейфа аккуратно, с двух сторон.
  6. Вставьте SSD в разъём M.2 под небольшим углом, прижмите к плате и закрепите винтом из комплекта. Не затягивайте винт слишком сильно.
Raspberry Pi 5 с установленной платой PCIe to M.2 HAT+ с вентилятором, вид сверху: шлейф PCIe, разъём M.2 и подписи 2230 и 2242 у мест крепления винта

Raspberry Pi 5 с платой PCIe to M.2 HAT+, вид сверху. На снимке плата стороннего производителя с вентилятором: шлейф PCIe подключён, а SSD в разъём M.2 не установлен. Возле мест крепления винта подписаны размеры 2242 и 2230: винт ставят в то отверстие, которое соответствует длине вашего SSD (на снимке винт стоит на месте 2242).

[ИЗОБРАЖЕНИЕ: здесь можно вставить фотография подключения шлейфа PCIe к Raspberry Pi 5 (контакты к портам USB)]

Включите плату и проверьте, видит ли система накопитель:

ls -l /dev/nvme*

Если всё в порядке, вы увидите /dev/nvme0 и /dev/nvme0n1. Новый неразмеченный накопитель в проводнике не появится, а команда sudo blkid не покажет для него идентификатор раздела. Это нормально: SSD появится после записи системы.

Подключение SSD по USB

Если вместо NVMe у вас SSD с USB, M.2 HAT+ не нужен. Подключите накопитель к синему порту USB 3.0 и проверьте, видит ли его система:

lsblk
lsusb -t
SSD KingDian S180, подключённый через адаптер SATA – USB к синему порту USB 3.0 на Raspberry Pi 5

В lsblk появится диск sda (или sdb, если уже есть другой USB-накопитель). В lsusb -t накопитель стоит в списке с драйвером uas (или usb-storage) и скоростью 5000M: это USB 3.0. Если скорость 480M, накопитель попал в порт USB 2.0 или кабель с адаптером не поддерживает USB 3.0. Если на SSD уже были разделы (например, от Windows), они тоже будут в списке: SD Card Copier и Imager удалят их при записи системы.


Шаг 3. Записываем систему на SSD

Есть несколько способов. Выберите удобный.

Способ А. Imager на самой плате (проще всего). Загрузитесь с карты, запустите Raspberry Pi Imager (в системе с рабочим столом он уже есть, а в Lite его можно установить: sudo apt install rpi-imager). Выберите свою плату, систему и в качестве накопителя ваш NVMe SSD (или SSD по USB). Imager сам разметит и отформатирует накопитель. Подробности работы с программой смотрите в статье про установку Raspberry Pi OS.

Способ Б. Через компьютер. Подключите SSD к компьютеру через переходник M.2 → USB (для NVMe) или адаптер SATA → USB (для SATA SSD) и запишите систему в Imager, как на обычную карту. Потом верните SSD на плату.

Способ В. Без карты. Если загрузчик обновлён, можно загрузить Imager прямо по сети (режим Network Install). Тогда карта памяти не нужна совсем. Подробности в статье про установку Raspberry Pi OS (раздел про Network Install).

Способ Г. Клонирование с карты. Если система на карте уже настроена и не хочется настраивать всё заново, скопируйте её на SSD программой SD Card Copier. Она есть в меню Accessories версии с рабочим столом. Программу можно запустить на плате с монитором или открыть рабочий стол платы в браузере через Raspberry Pi Connect, как на наших снимках (подробнее в статье про удалённый рабочий стол Raspberry Pi).

  1. Откройте SD Card Copier: Accessories → SD Card Copier.
  2. В поле Copy From Device выберите карту (/dev/mmcblk0).
  3. В поле Copy To Device выберите ваш SSD: /dev/nvme0n1 для NVMe или /dev/sda для SSD по USB. Будьте внимательны: всё содержимое SSD будет удалено.
  4. Оставьте отмеченным пункт New Partition UUIDs, чтобы у копии были свои идентификаторы разделов и система не путала диски.
  5. Нажмите Start. Программа предупредит, что всё содержимое SSD будет стёрто, и назовёт накопитель. Убедитесь, что это нужный диск, и нажмите Yes.
  6. Дождитесь окончания. Программа показывает ход копирования по разделам («Copying partition 2 of 2…»), а в конце пишет «Copy complete»: нажмите OK.
Меню Raspberry Pi OS: Accessories, пункт SD Card Copier
Окно SD Card Copier: Copy From Device /dev/mmcblk0, Copy To Device KingDian S180 60GB /dev/sda, отмечен пункт New Partition UUIDs
SD Card Copier спрашивает: This will erase all content on the device KingDian S180 60GB. Are you sure? Кнопки No и Yes
SD Card Copier копирует систему на SSD: Copying partition 2 of 2
SD Card Copier: сообщение Copy complete и кнопка OK

На снимках карта копируется на SATA SSD по USB (/dev/sda). Система с рабочим столом на SSD объёмом 60 ГБ копировалась около трёх минут. Для NVMe всё то же самое, только в поле Copy To Device будет /dev/nvme0n1. Названия пунктов в разных версиях программы могут немного отличаться.


Шаг 4. Включаем загрузку с NVMe или USB SSD

Если в Raspberry Pi 5 нет карты microSD, плата загрузится с NVMe или с USB-накопителя сама. Если карта вставлена, плата пытается загрузиться с неё. Чтобы поменять порядок:

  1. Загрузитесь с карты.
  2. Выполните sudo raspi-config.
  3. Выберите 6 Advanced Options → A4 Boot Order.
  4. Выберите B2 NVMe/USB Boot. Тогда плата сначала пробует NVMe, потом USB, и только потом карту.
  5. Выйдите из утилиты (Finish) и перезагрузитесь командой sudo reboot.
raspi-config, меню Boot Device Order: B1 SD Card Boot, B2 NVMe/USB Boot (выбран), B3 Network Boot

После выбора B2 утилита сообщает «NVMe/USB is default boot device»: порядок записан в загрузчик и начнёт работать после перезагрузки.

raspi-config сообщает: NVMe/USB is default boot device

В меню есть три варианта:

ВариантЧто делает
B1 SD Card BootСначала карта. Если загрузочной карты нет, пробует NVMe, потом USB. Рекомендован по умолчанию
B2 NVMe/USB BootСначала NVMe, потом USB, потом карта
B3 Network BootСначала карта, затем загрузка по сети (PXE)

Выбранный вариант raspi-config записывает в загрузчик как параметр BOOT_ORDER. На Raspberry Pi 5 это 0xf461 для B1 (карта, NVMe, USB), 0xf146 для B2 (NVMe, USB, карта) и 0xf21 для B3 (карта, сеть). Как читать такие значения, показано ниже. Текущее значение можно посмотреть командой rpi-eeprom-config | grep BOOT_ORDER: на нашей плате после выбора B2 там BOOT_ORDER=0xf146.

Порядок загрузки вручную (BOOT_ORDER)

Порядок хранится в загрузчике в параметре BOOT_ORDER. Изменить его можно и вручную:

sudo rpi-eeprom-config --edit

Откроется текстовый редактор. Замените строку BOOT_ORDER на такую:

BOOT_ORDER=0xf416

Сохраните файл и перезагрузитесь. Параметр читается справа налево: каждая цифра обозначает один способ загрузки. Сначала пробуется последняя цифра, и так до f, которая означает «начать заново».

ЦифраЧто это
1Карта SD
2Сеть
4USB-накопитель
6NVMe
fПерезапуск списка

Значение 0xf416 означает «сначала NVMe, потом SD, потом USB». Вариант 0xf46 — «сначала NVMe, потом USB». Классический порядок «сначала карта, потом USB» записывается как 0xf41. Если вы подключаете к PCIe не HAT+ с автоопределением, а стороннее устройство, добавьте в конфигурацию ещё строку PCIE_PROBE=1.


Шаг 5. Проверяем

Выключите плату, извлеките карту (для чистоты эксперимента) и включите снова. Система должна загрузиться. Проверить, что она работает именно с SSD, можно так:

lsblk
findmnt /

В выводе корневой раздел / должен стоять на nvme0n1p2, а /boot/firmware на nvme0n1p1:

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
nvme0n1     259:0    0 232.9G  0 disk
├─nvme0n1p1 259:1    0   512M  0 part /boot/firmware
└─nvme0n1p2 259:2    0 232.4G  0 part /

Если накопитель подключён по USB, имена другие: sda, sda1 и sda2. Вот вывод на нашей плате, где система загружена с SSD по USB:

NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop0         7:0    0    2G  0 loop 
sda           8:0    0 55.9G  0 disk 
├─sda1        8:1    0  512M  0 part /boot/firmware
└─sda2        8:2    0 55.4G  0 part /
mmcblk0     179:0    0 57.8G  0 disk 
├─mmcblk0p1 179:1    0  512M  0 part /media/admin/bootfs
└─mmcblk0p2 179:2    0 57.3G  0 part 
zram0       254:0    0    2G  0 disk [SWAP]
TARGET SOURCE    FSTYPE OPTIONS
/      /dev/sda2 ext4   rw,noatime
Терминал Raspberry Pi 5: lsblk показывает диск sda с разделами sda1 (/boot/firmware) и sda2 (/), а findmnt / показывает корень на /dev/sda2

Корневой раздел / стоит на /dev/sda2, а /boot/firmware на /dev/sda1: плата работает с SSD. На нашем снимке карта осталась в слоте (в lsblk она видна как mmcblk0, её раздел bootfs смонтирован в /media/admin/bootfs), но из-за порядка загрузки B2 плата выбрала SSD.

Размер раздела расширять вручную не нужно: Imager и Raspberry Pi OS делают это сами. Если вы всё же клонировали систему на накопитель большего размера и место не использовано, посмотрите статью про изменение размера корневого раздела.


PCIe Gen 3: быстрее, но с риском

По умолчанию Raspberry Pi 5 использует шину PCIe Gen 2 (скорость до 5 GT/s). Её можно переключить на Gen 3 (8 GT/s), и тогда скорость чтения у быстрых SSD заметно вырастает. Но разработчики прямо пишут, что Raspberry Pi 5 не сертифицирована для скоростей Gen 3, и соединение может быть нестабильным. Если решите попробовать, добавьте в /boot/firmware/config.txt строку:

dtparam=pciex1_gen=3

Перезагрузитесь. Если появились сбои или зависания, удалите строку и вернитесь к Gen 2. Сделать то же самое можно из raspi-config: Advanced Options → PCIe Speed.


Raspberry Pi 4: загрузка с USB SSD

У Raspberry Pi 4 нет разъёма PCIe, зато есть быстрые порты USB 3.0 (синие). Подойдёт SSD в корпусе-адаптере SATA/NVMe → USB. Те же шаги годятся и для SSD по USB на Raspberry Pi 5: так мы и сделали выше.

  1. Обновите систему и загрузчик, как в шаге 1 (sudo apt full-upgrade, sudo rpi-eeprom-update -a). На самых ранних платах Pi 4 без обновления загрузчика загрузка с USB может не работать.
  2. Запишите систему на SSD (Imager на компьютере или на плате либо SD Card Copier, как описано выше). SSD при этом подключён к порту USB.
  3. Если карта остаётся в слоте, измените порядок загрузки: sudo raspi-config → 6 Advanced Options → A4 Boot Order → B2 NVMe/USB Boot. Без карты плата загрузится с USB сама.
  4. Выключите плату, подключите SSD к порту USB 3.0, включите.

Обращайте внимание на питание. SSD получает энергию от самой платы, а некоторые накопители и корпуса потребляют много. Если вы подключаете диск побольше (например, 2,5″ жёсткий диск) или больше одного накопителя, нужен внешний источник питания: диск с отдельным блоком или USB-хаб с питанием.

Raspberry Pi 3 и Zero 2 W

Raspberry Pi 3B+ и Zero 2 W загружаются с USB без дополнительных действий. У Raspberry Pi 3B, 2B (версия 1.2) и 3A+ режим USB-загрузки по умолчанию отключён. Чтобы включить его, добавьте в /boot/firmware/config.txt на карте с Raspberry Pi OS строку:

program_usb_boot_mode=1

Перезагрузитесь и проверьте, что бит записан:

vcgencmd otp_dump | grep 17:

Если в ответе 17:3020000a, всё получилось. После этого плата сможет загружаться с USB без карты.

Внимание. Изменение OTP-памяти необратимо. А на Raspberry Pi 3A+ установка этого бита навсегда отключает загрузку в режиме USB-устройства. На этих платах скорость всё равно ограничена USB 2.0: выигрыш в основном в надёжности, а не в скорости.


Если что-то не работает

ПроблемаЧто проверить
Нет /dev/nvme0Выключите плату и проверьте, что шлейф вставлен до упора и ровно, а SSD закреплён винтом. Накопитель должен быть NVMe, а не SATA. Обновите загрузчик
Накопитель виден, но не загружаетсяПроверьте порядок загрузки (B2 NVMe/USB Boot). Если в слоте карта с системой, плата загрузится с неё. Убедитесь, что на SSD записана система, а не только отформатирован раздел
Чёрный экран, мигает светодиодЭто код ошибки загрузчика. Подключите монитор: на новых платах загрузчик показывает экран диагностики. Расшифровка кодов есть в документации Raspberry Pi
USB SSD не загружается или отваливаетсяНекоторые адаптеры USB-SATA плохо работают с режимом UAS. Попробуйте другой адаптер или обновите загрузчик. Проверьте питание накопителя
SSD по USB не виден в lsblkВыполните lsusb -t: накопитель должен быть в списке. Скорость 5000M значит USB 3.0, а 480M значит, что накопитель попал в порт USB 2.0 или кабель с адаптером не поддерживает USB 3.0. Попробуйте синий порт, другой кабель и блок питания 27 Вт
Нестабильная работа на Gen 3Удалите dtparam=pciex1_gen=3 из config.txt
Не удаётся записать систему на SSD с компьютераАдаптер M.2 → USB должен поддерживать NVMe (многие дешёвые поддерживают только SATA)
Система загрузилась с SD, а не с SSDИзмените порядок загрузки или извлеките карту

Совет. Даже на SSD не забывайте про резервные копии. Если SSD для вас новое место хранения всего, имеет смысл хотя бы раз настроить регулярное копирование важных файлов на другой накопитель или NAS.


Что дальше


Материалы

  • NVMe SSD boot — официальная инструкция по загрузке с NVMe.
  • Raspberry Pi connector for PCIe — включение PCIe, загрузка и режим Gen 3.
  • M.2 HAT+ — установка платы-переходника, характеристики, загрузка с NVMe.
  • USB mass storage boot — загрузка с USB-накопителей, включая платы старше Raspberry Pi 4.
  • Raspberry Pi bootloader configuration — параметры загрузчика, включая BOOT_ORDER.

Оставьте комментарий

Отправляя комментарий, вы соглашаетесь с обработкой ваших данных (имя, адрес электронной почты, текст комментария) в соответствии с политикой конфиденциальности.