Подключение ssd к raspberry pi 4
Не так давно я описывал процесс установки сервера Home Assistant на Raspberry Pi и упоминал недостаток подобной системы: работающий Home Assistant может довольно быстро «убивать» microSD-карточки интенсивными операциями чтения-записи.
Что нам понадобится
Для осуществления описываемых в этой статье действий понадобится:
Активация загрузки с USB на Raspberry Pi 2 / 3
Пропускайте этот пункт, если пользуетесь Raspberry Pi 3B+ или Raspberry Pi 4. Для появления возможности загрузки с USB-накопителей на Raspberry Pi 3 нужно активировать опцию USB Boot Mode путем внесения значения в OTP-память.Для нужно загрузиться в Raspberry Pi OS с microSD-карты и добавить строчку с командой в файл config.txt:
А затем перезагрузить систему:
Во время следующей загрузки команда будет обработана и пропишет активирующее возможность загрузки с USB-дисков значение в OTP-память микрокомпьютера. Данная операция необратима. Но волноваться по этому поводу не стоит: активация USB Boot Mode не лишит вас возможности запускать «малинку» с microSD-карты, а всего лишь добавит новую опцию, которая активна по умолчанию в более свежих моделях микрокомпьютера.
Также обращу внимание, что из config.txt строка program_usb_boot_mode=1 сама по себе никуда не денется, поэтому после перезагрузки ее желательно оттуда удалить.
Установка системы
Установка операционной системы для Raspberry Pi на USB-накопитель ничем принципиально не отличается от установки на microSD-карту: нам все также потребуется скачать образ нужной системы и записать его на подходящий диск.
Удобнее всего использовать для этого специальную утилиту Raspberry Pi Imager, доступную под Windows, Ubuntu и macOS. В отличие от универсальных приложений для записи образов (Rufus, Win32DiskImager, balenaEtcher и т.п.), она может работать не только с локально хранящимися файлами, но и выкачивать нужный образ с сайта Raspberry Pi Foundation прямо в процессе записи.
Выбираем нужный образ из списка:
Выбираем накопитель для записи:
И дожидаемся окончания процесса:
Загрузка
Извлекаем из Raspberry Pi microSD-карточку с системой, подключаем к USB наш внешний диск и подаем питание.
Начнется загрузка с внешнего диска и через десяток-другой секунд система будет готова к работе.
Важный момент №1: При подключении внешнего жесткого диска потребляемая Raspberry Pi 4 мощность возрастает. Чтобы не столкнуться с нехваткой мощности для полноценной работы микрокомпьютера заранее позаботьтесь о наличии хорошего блока питания и качественного кабеля.Заключение
Буквально 10 минут работы позволяют в разы повысить надежность системы, отказавшись от использования карточек памяти с ограниченным ресурсом в пользу твердотельных накопителей или обычных HDD.
17 комментария на «Raspberry Pi. Загрузка с USB-накопителя»
Цитата:
Для нужно загрузиться в Raspberry Pi OS с microSD-карты и добавить строчку с командой в файл config.txt:
echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
====================================================
А если открыть /boot/config.txt непосредственно в корне SD-карты и записать в него данную команду? Так возможно?
Возможности подсистемы хранения данных одноплатного компьютера Raspberry Pi можно расширить, подключив к нему NVMe-диск. Такие диски обычно подключают к PCIe, что даёт им потенциальную возможность считывать и записывать данные на скорости более 3000 Мб/с.
Я уже слышу слова критиков этой идеи, в частности, касающиеся реально достижимой скорости работы с данными, поэтому сразу сделаю оговорку.
Раскрыть весь потенциал NVMe-накопителя на Raspberry Pi 4 не удастся. Но у NVMe-диска есть пара преимуществ перед обычной SD-картой. Это — надёжность и скорость. Покупка подобного диска и адаптера к нему не потребует заметно больше средств, чем покупка более старого диска M.2. А если понадобится, то NVMe-диску можно найти и другое применение (ниже, при разговоре о CM4, я ещё к этому вернусь).
Если у вас имеется внешний SSD с интерфейсом USB или M.2-диск, то вы тоже можете воспользоваться этим руководством.
Поиск и сборка аппаратных компонентов
Вот список компонентов, которые использованы в этом проекте:
-
— в моём случае — версия с 8 Гб памяти.
- Официальный источник питания.
- SD-карта — карта размером 16-32 Гб нас вполне устроит.
- Кардридер для SD-карт — обратите внимание на то, чтобы это была модель, поддерживающая USB3. Иначе скорость работы с данными будет ниже. — M.2-диски выглядят почти так же, но у них две выемки, а не одна. Обычно скорость работы SSD-дисков измеряется сотнями Мб/с, а не тысячами.
Компоненты, готовые к сборке
Вставьте NVMe-диск в адаптер и подключите его к компьютеру для того чтобы быстро его проверить.
Внутренняя печатная плата не закреплена. Поэтому проверьте всё при открытом корпусе
Я мог бы выбрать и более быстрый диск, не WD Blue, а, например, Samsung EVO 970 Plus. Но такой диск дороже на £50-60. Скорость передачи данных будет ограничена интерфейсом USB3 Raspberry Pi, поэтому тратиться на более быстрый диск смысла нет.
Настройка Raspberry Pi и тестирование диска
Мои инструкции должны сработать и на Ubuntu 20.04. Если при этом возникнут какие-то сложности — взгляните на этот материал.
Теперь запишем ОС на SD-карту, создадим файл boot.txt в первом разделе, подключим карту к Raspberry Pi и загрузимся. После этого подключимся к плате:
Проверим версию загрузчика:
Теперь включим загрузку с USB-накопителей, перейдя по пути Advanced Options > Boot Order > USB Boot .
Включение загрузки с USB-накопителей
Мы занимаемся настройкой Raspberry Pi, а поэтому нам ничто не мешает зайти в раздел настроек Options > GPU Memory и изменить размер видеопамяти с 65 Мб на 16 Мб. Если Raspberry Pi не используется для работы с графическими программами, то мы, благодаря этому, ничего не потеряем, а лишь вернём системе немного оперативной памяти.
А вы знали о том, что можно вернуть Raspberry Pi немного оперативной памяти?
Выключим Raspberry Pi.
Теперь воспользуемся компьютером, который применялся для записи ОС на SD-карту, или другим Raspberry Pi. Подключим к компьютеру NVMe-диск по USB и SD-карту с помощью кардридера. Я, для решения этой задачи, воспользовался компьютером Intel NUC с установленной на нём Linux.
После выполнения на этом компьютере команды lsblk должны быть выведены сведения о нашем диске:
Теперь отзеркалим SD-карту на NVMe-диск. При этом нужно очень внимательно следить за правильностью имён накопителей. Иначе можно перезаписать загрузочный диск компьютера, на котором осуществляется подготовка NVMe-диска к работе:
Теперь нужно загрузить Raspberry Pi по USB и попробовать подключиться к плате:
Далее, установим hdparm для исследования производительности диска:
Проверим скорость работы диска.
Хороший прирост производительности в сравнении с SD-картой!
Попробуем записать на диск файл размером 500 Мб из памяти:
Правда, если сравнить это с тем, что показывает Samsung EVO 970 Plus на моём шестиядерном Intel NUC, то это будет, так сказать, просто небо и земля.
Исследование производительности разных дисков и интерфейсов
Если посмотреть на скорость буферизованного чтения данных, то очевидным становится то, что интерфейс USB3 Raspberry Pi не даёт диску работать в полную силу:
- M.2 SSD, подключённый по USB3 — 33,94 Мб/с
- NVMe-диск, подключённый по USB3 — 344 Мб/с
- NVMe в компьютере, подключённый по PCIe — 2531 Мб/с
Тут хочется отметить то, что у нас есть шанс раскрыть потенциал NVMe-дисков тогда, когда широко распространится плата CM4 (Raspberry Pi Compute Module 4), имеющая один PCIe-канал. К ней можно будет напрямую подключать подобные диски. Вот видео, в котором идёт речь о CM4 и о различных возможностях ввода-вывода платы.
Итоги
Теперь в вашем распоряжении есть новое хранилище данных для Raspberry Pi, более быстрое и надёжное, чем SD-карта.
Сегодня мы рассмотрим очень интересный и удобный вариант сборки сервера управления умным домом на базе одноплатного компьютера Raspberry Pi 4B и универсального решения все — в одном Argon ONE M.2 c SSD диском на 128 ГБ. Я специально сказал решение, а не корпус, так как Argon ONE включает в себя несколько плат расширения и систему охлаждения, по сути кроме него и самого одноплатника — больше ничего не нужно, кроме источника питания. Но для удобства, далее в обзоре я буду употреблять термин — корпус.
Содержание
Где купить ?
- Argon ONE M.2 на Aliexpress — цена на момент публикации $61.69 с SSD M.2 диском на 128 ГБ
- Raspberry Pi 4 Model B на aliexpress — цена на момент публикации $61.62 на 4 ГБ
Комплект
Комплект рассмотренный в этом видео состоит из трех составляющих — компьютера Raspberry Pi 4B, корпуса Argon ONE M.2, и SSD диска на 128 ГБ Netac. Корпус и диск я купил одним комплектом. Несмотря на то что посылки отправились с разных магазинов и разными почтовыми службами, приехали они с разницей всего в день.
В моем случае была выбрана модель Raspberry Pi 4B с объемом оперативной памяти на 4 ГБ, хотя скажу честно и откровенно — 2 ГБ версии, для развертывания Home Assistant, даже с тяжелыми аддонами — хватает с головой.
Что касается корпуса — то кроме версии Argon ONE M.2 — есть версия и без расширения для SSD диска, его кстати можно докупить отдельно, кроме этого существует музыкальная модель Argon Nano sound и компактный вариант Argon Neo
А это M.2 SSD диск, который можно взять в комплекте с корпусом, одним лотом, мне показалось так удобнее. Всего доступно три варианта комплектации Argon ONE M.2 — без диска, с диском на 128 ГБ который рассмотрен в обзоре и диском на 512 ГБ — для моих целей это слишком много.
Argon ONE M.2
Как я и сказал Argon ONE M.2 это не просто корпус, это целый комплекс, решающий целый ряд задач и превращающий одноплатник в полноценный и готовый к работе ПК. И что мне понравилось — много внимания уделено именно удобству будущей работы с мини компьютером.
Верхняя часть корпуса занимается охлаждением — для чего тут имеется вентилятор, управление которым осуществляется программно. Кроме этого тут имеется джемпер управляющий режимами питания, принимающий ИК диод и порт питания для одноплатника, заменяющий штатный. Соединение с Raspberry Pi 4B организовано через шину GPIO которая кстати остается доступной для использования.
Нижняя часть корпуса — это плата расширения для установки SSD дисков M.2. длиной 30, 42, 60 и 80 мм с ключами B или B + M. Диски NVMe — не поддерживаются.
В комплекте имеется плата расширения, которая выводит разъемы HDMI и 3,5 мм аудио с боковой на заднюю сторону, что гораздо удобнее. Кроме этого, штатные micro HDMI порты, преобразованы в полноразмерные, что дает возможность подключаться к сборке обычным кабелем, без переходников.
Комплект крепежа из 4 коротких и 4 длинных винтов, термопроводящие наклейки, USB-USB соединитель для подключения SSD диска к одноплатнику и антискользящие ножки.
Весь процесс сборки и подключения расписан в англоязычной инструкции. Знаний языка тут не требуется все подробно указано в картинках.
Сборка — верхняя часть
Сборка начинается с платы расширения для звукового и видео разъемов. Необходимо совместить разъемы на ней и одноплатнике, после чего аккуратно соединить вместе.
После этого, все разъемы кроме порта питания, буду располагаться с одной, назовем ее задней, стороны. HDMI теперь полноразмерные, к ним можно подключать стандартные видео кабеля.
Далее крепим термопроводящие наклейки на выступы верхней части, ориентированные на наиболее горячие элементы — процессор и память. Удаляем с наклеек защитные пленки.
С внутренней стороны верхней платы расширения находится разъем подключения вентилятора, тут видно и разъем продолжающий шину GPIO- через него на одноплатник будет подаваться питание — здесь же находится и USB Type C порт, заменяющий штатный и располагающийся на той же стороне что и все остальные разъемы.
Теперь внимательно совмещаем шину GPIO одноплатника с разъемом платы корпуса и аккуратно соединяем, при этом одноплатник с уже подключенным расширением устанавливается на свое штатное место.
Теперь все разъемы — штатные USB и LAN, а также выведенные платами расширения — HDMI, audio, разъем питания и кнопка включения — находятся на одной стороне корпуса.
Настала очередь коротких винтов комплектного крепежа — согласно инструкции закрепляем в одной, пока, точке плату Raspberry.
Остальные предназначены для платы расширения. Аккуратно, но плотно завинчиваем крепеж, теперь одноплатник, хоть и не полностью, но уже надежно закрепляется в корпусе.
Теперь установим режим питания — их есть два, переключаются они при помощи джемпера на плате крышки корпуса. По умолчанию установлен режим включения с кнопки.
Мне удобнее использовать режим всегда включено, поэтому я переключил джемпер на контакты 2-3. В этом случае одноплатник автоматически включится при подаче питания.
Bootloader
Теперь нужно обновить bootloader одноплатника, для активации режима загрузки с USB. И делать это надо на этом этапе, так как при полной сборке — необходимый для этой процедуры micro SD разъем будет закрыт корпусом. Нам понадобится штатная утилита Raspberry Pi Imager.
Качаем и устанавливаем ее, находим рабочую micro SD карту — можно и небольшого объема, и запускаем прошивальщик.
Нажимаем на кнопку выбора операционной системы и тут ищем раздел разное. В нем находится единственный на момент съемки этого видео раздел bootloader
Если сравнивать с моим уроком 2021 года по установке Home Assistant — то в этом разделе произошли некоторые изменения. Теперь тут несколько вариантов bootloader в зависимости от того, какая загрузка вам нужна. Я выбрал USB Boot. После этого нажимаем на кнопку выбора носителя — тут должна определится подключенная SD карта. Объем записи небольшой, так что размер значения не имеет.
Прошивальщик готов к записи — осталось нажать кнопку write. После этого, программа качает из сети и записывает bootloader на флешку. Процесс довольно быстрый но не мгновенный, известны случаи когда по какой-то причине запись не осуществлялась, соответственно загрузчик не обновлялся.
Записанную карточку устанавливаем в card reader одноплатника.
Подаем питание, на этом этапе ничего больше подключать не надо.
Процесс обновления весьма быстрый, о его успешном завершении свидетельствует быстро мигающий зеленый светодиод. Если он ведет себя как-то по другому, нужно перезаписать либо заменить и записать карту о попробовать снова.
Сборка — нижняя часть
Теперь перейдем к нижней части корпуса — тут находится плата для установки M.2 SSD диска, так что нам понадобится и он.
На плате имеются 4 винтовых крепления для дисков разной длины, сам же крепежный винт уже завинчен в последнем, которое кстати нам и пригодится.
Снимаем винт — он состоит из двух частей, золотистой — подставки и черной — винта крепежа. Сначала ставится золотистая.
Устанавливаем диск — он вставляется в разъем под углом, до упора.
Теперь прижимаем его и закрепляем к плате расширения при помощи того самого крепежного винта.
После этого можно записать на диск образ операционной системы. Удобнее всего использовать для этого USB кабель папа-папа, но в крайнем случае можно обойтись USB удлинителем и комплектным П образным переходником.
Запись образа
Подключаем диск к компьютеру и снова запускаем штатный прошивальщик. Идем в выбор операционных систем — раздел Raspberry Pi OS другие. Тут выбираем Lite версию, без десктопа, он нам не нужен. Напомню что процесс установки Home Assistant Supervised показан в моем уроке.
Вот так определился подключенный к плате расширения диск. В моем случае объем на 128 ГБ. Прошивальщик готов к работе — нажимаем write и ждем завершения процесса.
Он может занять некоторое время, так как образ качается из сети, сама запись — если через USB 3, то довольно быстрый. Образ записан — теперь надо отсоединить диск от компьютера и подключить его снова.
Комп увидит небольшой загрузочный раздел, в котором необходимо создать пустой файл с названием ssh без расширения, это нужно для включения доступа к консоли управления.
Завершение сборки
Завершаем сборку — совмещаем нижнюю часть корпуса с верхней половинкой, в этом случае внутри никаких соединений нет, все снаружи.
Низ корпуса не участвует в охлаждении, поэтому сделан из полупрозрачного темного пластика, не выбиваясь из общей цветовой палитры. Для свободного движения воздуха при работе вентилятора — тут имеется специальная перфорация.
Используем оставшиеся четыре винта — длинных и свинчиваем обе половинки корпуса вместе.
Тут же нам пригодится комплектная наклейка с резиновыми ножками. Устанавливаем их в отведенные для этого места.
И, наконец, соединяем плату с установленным SSD диском с нижним USB 3,0 портом одноплатника при помощи комплектной перемычки. Напомню, что в этом случае при использовании USB Zigbee стика — обязательно будет нужен USB удлинитель.
Аппаратная часть сервера для управления умным домом полностью собрана и готова к установке и использованию.
Если для каких-то целей вам понадобится доступ к GPIO шине устройства — она находится под съемной крышкой сверху. Крышка держится на магнитах, пользоваться ей легко.
Использование
При работе — на фронтальной части корпуса, видна активность светодиодов через полупрозрачный материал корпуса.
Конфигуратор работы вентилятора ставим командой
Для настройки используется сервис
Вентилятор может быть всегда включен, работать в режиме 25, 50 и 100 % мощности в зависимости и трех установленных значений температуры или настроен кастомно.
Я оставил второй режим, только поднял на 5С второй и третий предел (50 и 100 % мощности вентилятора)
Установка Supervised Home Assistant — описана в моем уроке номер 1.1 Самое начало где показано обновление bootloader и запись образа — можно пропустить, мы это уже сделали, далее — идем по шагам инструкции.
Что касается температурного режима — до включения вентилятора дело не доходит, крышка корпуса отлично с этим справляется, пассивного режима полностью хватает.
Видео версия обзора
Вывод
Лично мне корпус очень понравился — решение все в одном, отличного качества и при этом внешне выглядит очень круто. Если Argon One M.2 — встретился мне год назад, то точно все мои 4ки были бы с ним. Достаточно большая площадь верхней части отлично справляется с охлаждением даже без вентилятора.
Кроме внешнего вида он еще и удобен — все разъемы выведены назад, в использовании это гораздо практичнее штатного подключения сбоку и конечно надо отметить полноразмерные HDMI. Недостатков этого решения — не вижу, даже на первый взгляд высокая цена, если ее разложить по составляющим, окажется более чем умеренной.
По умолчанию, Raspberry Pi загружает операционную систему только с карты micro SD, теоретически максимальная пропускная способность которой составляет всего 50 Мбит / с на Raspberry Pi 4 и 25 Мбит / с на предыдущих моделях. Используя SSD or USB флэш-накопитель может значительно ускорить производительность устройства, но это не так далеко, что с Обновление микропрограммы это можно сделать, поэтому здесь мы собираемся дать вам шаг за шагом руководство запустить Raspberry Pi 4 от USB, с помощью SSD или флешки.
В тестах скорости чтения до 140 МБ / с и записи 208 МБ / с были достигнуты с использованием подключенного к USB SSD для Raspberry 4, скорость которого значительно выше, чем у устройства, поддерживаемого с помощью карты micro SD. Аналогично, вместо SSD можно использовать перьевой накопитель USB 3.0, что также значительно повысит производительность устройства хранения, поскольку существуют очень дешевые накопители, которые намного превышают 100 МБ / с.
Посмотрим, как это сделать.
Как сделать загрузку Raspberry Pi 4 с SSD или USB-накопителя?
Первое, что вы должны сделать, это запустить Raspberry Pi с микро SD обычным способом, предпочтительно с операционной системой Raspbian. Затем необходимо обновить операционную систему, и для этого введите следующие команды:
Когда процесс заканчивается, вы должны отредактировать файл, чтобы позволить вам установить это обновление прошивки, о котором мы говорим, так как это бета-версия прошивки. Введите следующую команду:
Судо нано / и т.д. / по умолчанию / rpi-eeprom-update
В редакторе измените значение «критическое» на «бета» и нажмите CTRL + X для выхода (нажмите Y, когда вас спросят, хотите ли вы сохранить изменения, чтобы сохранить их).
После этого необходимо установить бета-загрузчик, для этого необходимо ввести следующую команду:
sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader/beta/pieeprom-2020-05-15.bin
Этот процесс может завершиться ошибкой, если была выпущена более новая прошивка, и в этом случае вам следует проверить дату. Для этого просто перейдите в каталог / lib / firmware / raspberrypi / bootloader / beta / и проверьте имя файла pieeprom.
После этого вы должны перезапустить Raspberry Pi, а после перезагрузки убедиться, что он установлен правильно, с помощью следующей команды:
Вы должны увидеть, что дата прошивки совпадает с той, которую мы установили на предыдущем шаге, перед перезапуском.
Если все правильно, теперь вам нужно либо скопировать все содержимое вашей микро SD с Raspbian на SSD или USB-накопитель, который вы хотите использовать, либо смонтировать на нем новый образ операционной системы. В Raspbian у вас есть приложение под названием «SD Copier».
Теперь вам нужно проделать небольшую «хитрость», чтобы все работало хорошо, и для этого рекомендуется использовать Windows ПК, к которому вы можете подключить SSD или USB-накопитель, который вы хотите использовать позже на Raspberry.
Начните с загрузки полный файл обновления прошивки , разархивируйте его где-нибудь на вашем ПК, и теперь вам нужно перейти в каталог / boot и скопировать все файлы с расширением * .dat и * .elf в раздел. «Загрузка» USB-устройства с перезаписью существующих.
Теперь, когда Raspberry Pi 4 выключен, извлеките карту micro SD и подключите SSD или USB-накопитель, который мы модифицировали. Если все прошло хорошо, вы должны запустить операционную систему нормально и без необходимости трогать что-либо еще.
Возможные проблемы
Имейте в виду одну вещь: мощность USB-портов Raspberry очень ограничена. Многие пользователи сталкиваются с такими проблемами, как хорошая загрузка операционной системы, но не работает периферийное устройство, подключенное через USB (и они нагло обвиняют в этом тот факт, что мощности USB недостаточно для большего). Если это ваш случай, рекомендуется использовать, например, док-станцию для SSD, которая имеет внешнее питание и не нуждается в питании от самого USB-порта.
При использовании карт памяти microSD можно столкнуться с ограничениями по скорости чтения/записи данных, поэтому поддержка загрузки ОС с подключенного по USB флеш-накопителя или SSD оказывается очень полезной. Настроить такой метод загрузки очень просто — ниже представлена пошаговая инструкция.
⚠️ Данный гайд применим к моделям Raspberry Pi 4B и Pi 400.
Содержание
Обновление бутлоадера
Шаг 1. Для того, чтобы обновить загрузчик или настроить порядок загрузки необходимо установить на обычную microSD официальную систему Raspberry OS. В данном случае достаточно lite-версии без окружения рабочего стола.
Шаг 2. Вставьте карту с системой в Raspberry и загрузитесь с неё.
Шаг 3. Войдите в систему, используя логин pi и пароль raspberry.
Шаг 4. Чтобы установить самый свежий загрузчик, выполните эту команду:
Шаг 5. После успешного обновления запустите raspi-config.
Шаг 6. Выберите пункт Advanced Options, подтвердите клавишей Enter.
Шаг 7. Откройте пункт Bootloader Version, после чего выберите первый пункт и подтвердите его.
Шаг 8. На это предложение ответьте отказом:
Шаг 9. Далее выберите раздел Boot Order и переместите USB на первое место. Если такой порядок был изначально, подтвердите его, нажав Ok.
Запуск с USB
Шаг 1. Запишите любую подходящую ОС на USB-накопитель через утилиту balenaEtcher на компьютере. Для этого в окне программы выберите образ системы, диск и нажмите Flash.
Шаг 2. Отключите Raspberry Pi от питания, извлеките microSD (так как система будет всегда загружаться в первую очередь с карты памяти), вставьте USB-накопитель с записанной операционной системой и подключите питание снова.
Шаг 3. Готово, одноплатный компьютер должен загрузиться с подключенного по USB диска.
Читайте также: