- Raspberry Pi. Загрузка с USB-накопителя
- Что нам понадобится
- Активация загрузки с USB на Raspberry Pi 2 / 3
- Установка системы
- Загрузка
- Заключение
- Raspberry Pi 3. Правильное монтирование USB HDD и флешек
- Что нам понадобится
- Добавление в Raspbian поддержки NTFS
- Вариант 1. Монтирование USB HDD через fstab
- Установка прав доступа
- Вариант 2. Автоматическое монтирование через pmount
- Заключение
Raspberry Pi. Загрузка с USB-накопителя
Не так давно я описывал процесс установки сервера Home Assistant на Raspberry Pi и упоминал недостаток подобной системы: работающий Home Assistant может довольно быстро «убивать» microSD-карточки интенсивными операциями чтения-записи.
Выход из ситуации — установка системы на внешний HDD или SSD диск и загрузка микрокомпьютера с него.
Что нам понадобится
Для осуществления описываемых в этой статье действий понадобится:
Хорошая новость — все свежие модели микрокомпьютеров линейки Raspberry Pi «из коробки» поддерживают загрузку с USB-накопителей. И только на старых моделях эту возможность нужно активировать вручную.
Активация загрузки с USB на Raspberry Pi 2 / 3
Для появления возможности загрузки с USB-накопителей на Raspberry Pi 3 нужно активировать опцию USB Boot Mode путем внесения значения в OTP-память.
Для нужно загрузиться в Raspberry Pi OS с microSD-карты и добавить строчку с командой в файл config.txt:
echo program_usb_boot_mode=1 | sudo tee -a /boot/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 в headless-режиме, то стоит сразу закинуть в корень получившегося загрузочного диска пустой файл с названием «ssh» без расширения. А если для подключения к сети будет использоваться беспроводной интерфейс, то туда же в корень нужно добавить файл wpa_supplicant.conf с данными для подключения к точке доступа:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=RU network=
Загрузка
Извлекаем из Raspberry Pi microSD-карточку с системой, подключаем к USB наш внешний диск и подаем питание.
Начнется загрузка с внешнего диска и через десяток-другой секунд система будет готова к работе.
При подключении внешнего жесткого диска потребляемая Raspberry Pi 4 мощность возрастает. Чтобы не столкнуться с нехваткой мощности для полноценной работы микрокомпьютера заранее позаботьтесь о наличии хорошего блока питания и качественного кабеля.
В некоторых случаях Raspberry Pi 4 может некорректно грузиться с подключенных к порту USB 3.0 накопителей. Если операционная система не стартует более минуты или пытается войти в Emergency Mode — переподключите жесткий диск в любой из портов USB 2.0. Да, скорость передачи данных по USB 2.0 будет ниже, зато работать будет надежнее.
Заключение
Легкость перевода Raspberry Pi на загрузку с USB-накопителей — еще один довод за покупку микрокомпьютеров именно этой линейки.
Буквально 10 минут работы позволяют в разы повысить надежность системы, отказавшись от использования карточек памяти с ограниченным ресурсом в пользу твердотельных накопителей или обычных HDD.
Broadcom BCM2711 | 2Gb/4Gb/8Gb RAM | 10/100/1000Mbit Ethernet
Raspberry Pi 3. Правильное монтирование USB HDD и флешек
В этой публикации из цикла статей о Raspberry Pi и Arduino я хочу рассказать о том, как правильно подключать внешние жесткие диски (USB HDD) к Raspberry Pi.
Монтирование жесткого диска обязательно потребуется, если «малину» планируется использовать для работы с контентом в домашней сети. Поэтому я хочу вынести инструкцию по монтированию HDD и флешек в отдельную статью, дабы иметь возможность ссылаться на нее в своих последующих публикациях.
Что нам понадобится
Для осуществления описываемых в этой статье действий понадобится:
Установке и настройке Raspbian на Raspberry Pi 3 посвящена статья «Raspberry Pi 3. Обзор и начало работы». В этой статье подразумевается, что OS Raspbian уже установлена и готова к работе.
Добавление в Raspbian поддержки NTFS
Скорее всего, используемый жесткий диск будет отформатирован в NTFS.
В OS Raspbian нет поддержки NTFS «из коробки», поэтому нужно установить соответствующий пакет:
sudo apt-get update sudo apt-get install ntfs-3g
После этого можно приступить непосредственно к монтированию HDD.
Вариант 1. Монтирование USB HDD через fstab
fstab — конфигурационный файл, в котором описывается каждое из подключенных к компьютеру устройств хранения информации.
Добавлением строк в этот файл в *nix-системах совершается монтирование жестких дисков и других устройств.
Структура записей fstab выглядит так:
# /dev/cdrom /mnt/cd iso9660 ro,user,noauto,unhide 0 0
Наша цель — в правильной форме создать и записать строку для монтирования подключенного по USB жесткого диска (или флешки).
Настоятельно рекомендую перед редактированием файла fstab сделать бэкап системы, потому что ошибки в редактировании этого файла могут привести к тому, что Raspbian перестанет загружаться до конца, выдавая в процессе сообщение об ошибке. Новичка в *nix-системах это может сильно смутить.
Для начала найдем нужное нам значение для жесткого диска. Для этого при подключенном жестком диске нужно выполнить команду:
В ответ на которую мы увидим нечто примерно такое:
Строка с /sda1 — наш жесткий диск. А написанное синим шрифтом — это как раз то, что мы ищем. Копируем эти символы куда-нибудь.
Теперь создадим точку монтирования:
Я решил, что мой смонтированный жесткий диск будет доступен по пути /usbstorage, но этот параметр может быть любым.
Ничто не мешает назвать точку монтирования /hdd1, /500gb, /media, /data или любым другим ранее не задействованным именем.
Название точки монтирования — это наше будущее значение в структуре записи fstab.
Теперь разбираемся со значением .
Поле — тут нужно будет указать файловую систему, в которой отформатирован наш накопитель. Если мы ранее пользовались Windows, то скорее всего жесткий диск отформатирован в NTFS. Менее вероятно — FAT32. Практически невероятно — EXT4 и другие применяемые в *nix-системах файловые системы.
Если ошибиться в указании файловой системы монтируемого жесткого диска, то это гарантированно приведет к ошибке во время загрузки Raspbian.
Далее идут опции монтирования (). Они перечисляются через запятую. Рекомендую просто написать как у меня: «nofail,uid=pi,gid=pi».
И последними в структуре идут и .
Первый используется утилитой dump для создания резервных копий. Этот параметр нужно выставить «0».
Второй определяет приоритет, с которым утилита для сканирования и исправления ошибок fsck будет приступать к сканированию данного диска. Значением этого параметра может быть «0», «1» или «2», где «1» и «2» — приоритеты, а «0» — отключение. Я выставил «0», но можно поставить и «1» — особо это ни на что не влияет.
Таким образом, у меня формируется следующая строка для добавления в fstab:
UUID=E2CCEF5FCCEF2D0B /mnt/usbstorage ntfs nofail,uid=pi,gid=pi 0 0
Набор символов после UUID= нужно вставить свой, остальную часть строки можно использовать в таком виде без изменений.
Вставляем строку в fstab и сохраняем его:
Установка прав доступа
В завершении процедуры монтирования жесткого диска нужно выставить права доступа:
sudo chmod 777 /mnt/usbstorage
777 — полный доступ на чтение, запись и запуск файлов для всех пользователей. Рискованное с позиции безопасности разрешение, но гарантированно беспроблемное.
Если «малина» находится в домашней сети, то ничего страшного от выставления полного доступа для всех к примонтированному к ней жесткому диску не произойдет. Но в локальных сетях на предприятиях и на интернет-серверах полный доступ к файлам выставлять нельзя.
На этом процесс монтирования можно считать завершенным и остается только перезагрузить систему:
Вариант 2. Автоматическое монтирование через pmount
При использовании данного способа все подключаемые к «малинке» USB-накопители будут монтироваться автоматически.
Для этого нам потребуется установить утилиту pmount:
sudo apt-get install pmount
Затем создадим файл с правилами монтирования накопителя:
sudo nano /etc/udev/rules.d/usbstick.rules
И впишем в него следующую строку:
ACTION=="add", KERNEL=="sd[a-z]3", TAG+="systemd", ENV="usbstick-handler@%k"
Затем создадим новый сервис:
sudo nano /lib/systemd/system/usbstick-handler@.service
Впишем в него следующее содержимое:
[Unit] Description=Mount USB sticks BindsTo=dev-%i.device After=dev-%i.device [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/local/bin/cpmount /dev/%I ExecStop=/usr/bin/pumount /dev/%I
Создадим файл скрипта для монтирования:
sudo nano /usr/local/bin/cpmount
#!/bin/bash if mountpoint -q /media/usb1 then if mountpoint -q /media/usb2 then if mountpoint -q /media/usb3 then if mountpoint -q /media/usb4 then echo "No mountpoints available!" #You can add more if you need else /usr/bin/pmount --umask 000 --noatime -w --sync $1 usb4 fi else /usr/bin/pmount --umask 000 --noatime -w --sync $1 usb3 fi else /usr/bin/pmount --umask 000 --noatime -w --sync $1 usb2 fi else /usr/bin/pmount --umask 000 --noatime -w --sync $1 usb1 fi
Сделаем скрипт исполняемым:
sudo chmod u+x /usr/local/bin/cpmount
После этого все подключаемые к системе устройства будут автоматически монтироваться по адресам /media/usbX/, где X — порядковый номер устройства.
Заключение
Если с самого начала разобраться в процессе монтирования устройств в *nix-системах, то процесс подключения USB HDD к Raspberry Pi займет не более 5 минут.
Руководитель отдела в IT-компании. Веду этот блог с 2013 года, пишу о гаджетах и домашней автоматизации, обозреваю одноплатные компьютеры, неспешно собираю «умный дом».
Уведомления о статьях. 0% рекламы.