Armbian перенос на hdd
Не так давно я описывал процесс установки сервера 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-карты и записать в него данную команду? Так возможно?
Добрый день. Собственно вопрос в заголовке, кто-то знает, как перенести систему на HDD ? Boot можно оставить на SD карте. Уже кучу инструкций перелопатил, ничего не выходит. Есть у кого опыт или рабочие инструкции конкретно к Raspberry PI 4?
а в чём проблема? ядру указываешь нужный root=PARTUUID= и всё
Boot можно оставить на SD карте
уже можно и boot перенести
Соотв тебе достаточно просто поставить временную систему на sd, пропатчить загрузчик, после стандартным установщиком поставить уже на HDD, подключенный через USB. После reboot HDD сам переразметится как нужно.
Jopich1 ☆ ( 15.06.20 11:22:05 )Последнее исправление: Jopich1 15.06.20 11:29:22 (всего исправлений: 4)
ну и если usb адаптер хищный, нужно добавить usb-storage.quirks=152d:0578:u где 152d:0578 это VID:PID
Я пытался через UUID но не запускалось. Тупанул? Нужно было через /dev/sda1?
Кстати, а разве не /dev/sdb1 если на то пошло? Или SD карта не монтируется под /dev/sda?
sd карта должна быть mmcblk0
Очевидно - видимо неверно ввел uuid. Какой командой его смотрел ?
Кстати, а разве не /dev/sdb1 если на то пошло? Или SD карта не монтируется под /dev/sda?
диск может и sda и sdb - нужно смотреть в системе.
Я тебе выше ссылку на инструкцию послал - там ничего вручную не нужно переопределять. Или ты не видел ?
Очевидно - видимо неверно ввел uuid. Какой командой его смотрел ?
Я делал типо root=UUID=54blabla. Смотрел через blkid помойму.
Я тебе выше ссылку на инструкцию послал - там ничего вручную не нужно переопределять. Или ты не видел ?
На работе, ещё к малине не добрался, обязательно гляну.
TheLinuxUser ★ ( 15.06.20 16:44:24 )Последнее исправление: TheLinuxUser 15.06.20 16:44:41 (всего исправлений: 1)
Если UUID правильный, а оно всё равно не алё, то попробуй дописать
в командную строку ядра. Эта опция актуальна когда грузишься с устройств, которые обнаруживаются не сразу (USB, sdcard и т.д.). Ядро будет ждать момента их обнаружения, а не уходить в панику с ошибкой «невозможно смонтировать корневое устройство».
Роутер будет использоваться для объединения сетевых клиентов в локальную сеть, которая будет работать автономно. Основной сервер со службами будет установлен на BananaPiPro.
Сбросить настройки на заводские: подать питание на роутер, нажать и удерживать кнопку сброса около 10 сек (индикатор питание изменится на желтый). Дождаться запуска роутера.
Подключить компьютер (который будет использоваться в качестве консоли и монитора управления) к роутеру по LAN или WiFi (имя сети: dlink; возможно другая). В "Сетевые подключения / Свойства сетевых адаптеров" проверить "Состояние" сетевого подключения и опрелелить подсеть и адрес роутера.
На ПК в браузере перейти по адресу роутера. По умолчанию адрес для страницы настроек 192.168.0.1 (возможно 192.168.1.1), логин: admin, пароль отсутствует (возможно admin).
Перейти на страницу настройки WiFi (беспроводной сети). Отключить WPS. Изменить имя (SSID) для беспроводной сети (например: mywifi). Включить режим безопасности WPA/WPA2. Задать ключ безопасности (мин. 8 символов). Сохранить настройки.
Перейти на страницу настройки LAN (проводной сети). Установить диапазон IP адресов для DHCP сервера. Сохранить настройки.
Подключить роутер к Интернету (через WAN от провайдера или от другого роутера с Интернетом в локальной сети). Перейти на страницу настройки Интернета (WAN). Установить тип соединения (настройки провайдера или Динамический IP-адрес (DHCP), установить имя хоста для роутера (например: myrouter). Сохранить настройки.
Проверить статус подключений по локальной сети, беспроводной сети и Интернету.
Для запуска системы необходима microSDC с минимальным объемом памяти 2 Гб и классом 10. Карта будет использоваться только для старта системы, система будет работать с HDD.
Вставить карту в кардридер, подключить кардридер к ПК (если необходимо), запустить Win32DiskImager.
Выбрать распакованный образ Armbian, выбрать диск с SDC и записать образ на карту памяти.
Подключить модуль RTC DS3231 к CON6 BananaPiPro (CON6: 1 - VCC3V3, 3 - TWI2-SDA, 5 - TWI2-SCL, 9 - GND).
Подключить HDD SATA кабелем к BananaPiPro.
Вставить записанную microSDC в BananaPiPro, подключить кабель LAN к роутеру, подать питание на плату.
После запуска ОС на BananaPiPro LAN замигает - связь есть.
Запустить Angry IP Scanner (ipscan-win32), нажать Старт.
После окончания сканирования найти BananaPiPro (Hostname: bananapipro или IP выданный DHCP роутера) и определить его IP в локальной сети.
Возможно определение IP-адреса через роутер (просмотреть список подключенных клиентов).
При необходимости, настроить DHCP в роутере, для выдачи фиксированного IP (можно настроить статический IP адрес для BananaPiPro используя его MAC адрес).
Запустить SSH клиент PuTTY.
Ввести адрес подключения, т.е.IP адрес BananaPiPro, порт по умолчанию 22, тип подключения SSH.
Сохранить сеcсию с именем bananapipro_lan и соединиться с BananaPiPro.
При подключении, программа выдаст предупреждение безопасности PuTTY о том, что открытый ключ безопасности ранее не использовался. Для соединения выбрать [Yes].
Ввести логин root и пароль 1234 по умолчанию:
Прим.: При вводе пароля символы не отображаются!
При первом запуске Armbian потребует сменить пароля для root.
Для смены пароля сначала ввести текущий пароль 1234, затем два раза новый пароль (например: bananapipro).
Далее, система попросит создать нового пользователя. Этот шаг пропустить нажав Ctrl-C.
Соединение по SSH закроется. Вновь подключиться используя сохраненную сессию bananapipro_lan, ввести новый пароль.
В конфигураторе: перейти System / Firmware, выполнить обновление списка пакетов и обновление пакетов, или выполнить:
После обновления перезагрузить систему.
Перейти Personal / Timezone, выбрать регион, выбрать город или соответствующий часовой пояс, или выполнить
Перейти Personal / Locales, настроить локали, или выполнить
Перейти System / Hardware, включить поддержку I2C2 (так же включить необходимую периферию). Сохранить изменения.
В конфигураторе перейти в Network, выбрать нужный интерфейс.
При необходимости настроить подключение по WiFi и/или режим точки доступа.
Отредактировать /etc/network/interfaces. Примеры того, как настроить интерфейсы могут быть найдены в /usr/share/doc/ifupdown/examples/network-interfaces.gz.
Установить Midnight Commander для работы с файлами:
После установки запустить Midnight Commander:
Открыть конфигурацию: [F9] / Options / Configuration.
В Other options установить использование внутреннего редактора (Use internal edit). Подтвердить изменения [OK].
Сохранить конфигурацию: [F9] / Options / Save setup.
Выход: [F10]
Установить пакет i2c-tools для работы с шиной I2C:
Проверить подключение часов на шине I2C2:
Часы должны быть на "0x68" адресе. Далее, настроить автоматический запуск часов rtc1 и установку системного времени из них.
Запустить MC, вызвать файл /etc/rc.local на редактирование ([F4]), перед строкой exit 0 добавить строки для запуска rtc1 при каждой перезагрузке:
После запуска, проверить подключение DS3231:
Вместо "0x68" должны быть "UU" на адресе.
Для чтения системного времени:
Для чтения времени из часов:
Для установки системного времени:
Для установки времени в часах:
Для записи системного времени в часы:
При старте системы время берется с RTC DS3231. Если есть связь с Интернетом, то время будет установлено (синхронизировано) автоматически через службу SNTP.
Диск должен быть подключен к разъему SATA и питанию.
Запускаем конфигурацию:
Переходим в System / Install, и следуем подсказкам. При установки выбираем файловую систему ext4. После окончания процесса перегружаем систему.
Система перенесена на HDD, запуск системы по прежнему с SDC. Объем дискового пространства можно увидить в Midnight Commander.
Установить (записать) образ ОС для Orange Pi PC используя компьютер с Windows - очень просто. Для этого нам потребуется карта памяти MicroSD и последняя версия Win32Imager, скачайте, установите и запустите данную утилиту (образ желаемой ОС уже должен быть скачан и распакован из архива, итоговый файл должен быть с расширением .img).
В окне Win32 Disk Imager выберите файл образа, находящийся на Вашем диске и букву диска, которая соответствует карте памяти microSD на которую необходимо записать образ операционной системы и нажмите Write, а затем подтвердите запись на карту памяти нажатием Yes в окне подтверждения (будьте внимательны, этот процесс полностью удалит все данные с карты памяти).
Установка образа Linux из Mac OS
Запись образа из Mac OS будет выполнятся только при помощи встроенных системных утилит.
Проблемы
- Ошибка dd: invalid number '1m' - замените bs=1m на bs=1M в команде записи.
- Если команда записи все еще возвращает ошибку - попробуйте записывать напрямую в карту памяти, без /dev/rdisk2, просто в /dev/disk2
Установка образа Linux из Linux
Перед началом скачайте предпочитаемый образ ОС и распакуйте его из архива в удобное для Вас место (в примере этот файл будет на рабочем столе), а также подключите карту памяти microSD в кард-ридер компьютера.
- Нужно определить системный путь к карте памяти, выполните команду df -h. В левой колонке будут перечислены все диски примонтированные в данный момент, карта памяти будет иметь название похожее на одно из следующих /dev/mmcblk0p1 или /dev/sdс1. p1 или 1 это номер раздела на диске, а нам нужен сам диск, потому используем /dev/mmcblk0 или /dev/sdc
- Отмонтируйте все разделы карты памяти примонтированные в систему автоматически. В нашем случае только один раздел p1
- Приступаем к записи.
if= - Путь с образу ОС. То есть "то, что будем копировать".
of= - Путь к диску, место назначения. То есть - "то, куда будем копировать".
bs=4M - Размер блока данных (чем больше - тем быстрее запись). При ошибках записи понижайте это значение до 1M. - Выполните команду sync чтобы все данные из кэша были окончательно записаны на диск.
Установка образа Linux в eMMC (NAND)
Образы ОС Linux для Orange Pi построены таким образом, что они не могут быть записаны напрямую во внутреннюю память устройства (NAND), потому для установки ОС на eMMC чип придется сначала установить на карту памяти, запустить плату с microSD карты и встроенными в сборку ОС средствами перенести систему во внутреннюю память платы. Эта инструкция применима с платами Orange Pi Plus, Orange Pi Plus 2 и Orange Pi PC Plus.
В разных сборках ОС свои скрипты для переноса ОС во внутреннюю память, здесь мы упомянем все известные нам ОС и как их перенести в NAND.
Armbian
В ОС Armbian есть встроенная утилита (скрипт) nand-sata-install, при выполнении данной команды запустится интуитивный мастер переноса ОС во внутреннюю память устройства или подключенный SATA диск.
Сборки от loboris
- Установите ОС на карту памяти по инструкциям выше и запустите свой Orange Pi
- Выполните команду
- По окончанию процесса отключите питание и извлеките карту памяти из платы.
- Включите питание. Загрузка начнется из внутренней памяти платы.
Обратите внимание, если вы снова загрузите плату с картой памяти на которой записана рабочая ОС, загрузка будет произведена с карты памяти, так как она имеет высший приоритет над встроенной памятью, отформатируйте карту памяти перед использованием в качестве дополнительного хранилища.
Вы можете использовать файловую систему btrfs со сжатием "compress=lzo" что поможет сохранить до 40% дискового пространства. Для этого - переносите ОС такой командой
Перенос ОС из встроенной eMMC на microSD карту
- Запустите плату без подключенной microSD карты.
- После загрузки подключите карту памяти в слот
- Выполните команду
- Готово. Теперь у Вас 2 независимые копии ОС, во внутренней памяти и на microSD карте. microSD карту Вы можете запустить на любом другом Orange Pi.
Установка на USB флешку
Перенос и загрузка системы может осуществлятся так же с USB флешкой. Для этого в сборках ОС от loboris присутствует скрипт install_to_usb.
- Для запуска процесса выполните команду
/dev/sdXn - Путь к USB флешке, можно посмотреть командой df -h
btrfs - Если добавить этот параметр (не обязательный) флешка будет отформатирована в btrfs вместо ext4
noformat - При использовании данного параметра - USB флешка не будет отформатирована. Данные будут объединены. Используется для обновления резервной копии системы на USB диске. - По окончанию процесса копирования - перезагрузите плату, загрузка начнется с USB флешки.
Более детальные инструкции по этому процессу описаны в теме форума "Перенос системы Orange Pi на USB флешку".
Выбираем Europe - Moscow
На этом форуме много писали, что есть проблемы у плат RaspberryPi и Cubieboard-1(2), при перезагрузке сбивается время и поэтому запись в БД MySQL происходит неправильно.
На нашей плате - Cubietruck на борту имеется модуль RTC и часы при перезагрузке/отключении не сбиваются, по идее))
Я решил попробовать отключить демон ntpd и синхронизировать время командой ntpdate при загрузке системы и раз в сутки, при этому раз в сутки синхронизированное время системы записывается в часы RTC.
1. Отключаем демон ntpd, если он включен.
root@cubie:
Возможность вывода в лог делал для отладки, если надо оставить навсегда - то необходимо реализовать ротацию логов.
Теперь что касается харверных часов.
Проверяем время системное: Упс. А время то хардверных часов оказывается UTC.
Исправим эту оплошность: Закончим с настройкой времени, как писал выше, будем синхронизировать время раз в сутки и записывать синхронизированное время в часы RTC на плате.
В системе по пути /etc есть папки типа /etc/cron.daily/ , /etc/cron.monthly/ и т.п.
Соответственно в эти папки можно запихнуть свои скрипты на bash'e, они будут выполняться по временным промежуткам, соответ. названиям директорий.
К примеру: нам надо выполнять синхронизацию времени системы раз в сутки и записывать это время в харверные часы RTC на плате Cubietruck.
1. Создаем скрипт: Собственно всё.
Проверяем работу, смотрим содержимое файла /etc/crontab - там есть строка: Т.е. скрипты из директории /etc/cron.daily запускаются каждые сутки в 6.25 утра.
Проверка заключается в том, что надо дождаться этого времени и посмотреть файл /var/log/ntpdate.log на предмет результата синхронизации с интетом и файл /var/log/syslog,
там должна быть строчка типа: Это обновление времени часов RTC на плате (кстати может они сами обновляются, я не смотрел ). Последний раз редактировалось electric Чт май 28, 2015 11:51 am, всего редактировалось 9 раз. Было: Majordomo v.0.6.0.b на Cubietruck. OS Armbian с переносом на HDD
Стало: ioBroker на Cubietruck OS Armbian + ZigBee Xiaomi + OWFS + BLE. Так, будем считать что Debian поставили, настроили, все крутится - вертится.
Теперь займемся установкой Majordomo на наш мини-сервер.
Все действия я выполняю от root, поэтому sudo мне не к чему - будьте внимательны.
Последовательность действий будет такая:
Apache2 --> MySQL --> PHP --> curl --> Phpmyadmin --> настройка LAMP --> MajorDoMo --> mplayer+VLC --> проверка
----------------------------------------------------------------------------
Перед устновкой на всякий случаем обновляем source: Поставим веб-сервер apache, для этого наберем не хитрую команду: Установка подтянет необходимы пакеты, надо только утвердительно согласится на установку (или запускать с ключем -y).
После установки веб-сервер стартует, возможно, кстати, на экране отобразится ошибка "apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message". Чтобы от нее избавится редактируем: Просто в конец файла надо вставить строку ServerName localhost.
Теперь можно перезапустить апач и проверить что ошибка больше не появляется: Можно целевую директорию /var/www/ для файлов MajorDoMo оставить по-умолчанию. Как я писал выше - будем устанавливать на диск /dev/sda3, который монтирую в /srv.
Создаем папку /srv/www: Теперь меняем конфиг сайта "default", для этого редактируем:
Я менял только "AllowOverride None" на "AllowOverride All" в трех местах и "DocumentRoot", "Directory" вместо /var/www написал свой путь - /srv/www
Теперь займемся MySQL, для этого установим необходимые пакеты:
Соглашаемся с установкой (подтянутся зависимости).
Во время установки нас попросят придумать и ввести пароль суперпользователя (с повтором для достоверности).
Теперь установим PHP, Curl и инструмент для работы с MySQL - phpmyadmin.
Для это сначала наберем:
Теперь устанавливаем phpmyadmin:
Во время установки вас сначала попросят ввести пароль доступа супер-пользователем MySQL (вводили ранее при установке MySQL).
Затем попросят придумать и ввести пароль пользователя root для доступа к phpmyadmin (с повтором для достоверности) - выполняем.
Настроим связку LAMP для работы с MajorDoMo:
Для начала включаем mod_rewrite:
Для сервиса apache находится здесь: Для работы запуска скриптов из командной строки редактируем здесь: Объединил потому как редактировать одно и то же, а именно:
Заменить строку error_reporting = E_ALL &
E_STRICT на error_reporting = E_ALL &
E_STRICT
На всякий случай меняем параметры (не обязательно):
max_execution_time с 30 меняем на 90
max_input_time поменяем с 60 на 180
post_max_size меняем с 8M на 200M
upload_max_filesize меняем с 2M на 50M
max_file_uploads меняем с 20 на 150
Для удобного поиска слов в редакторе nano, есть комадна Ctrl+W - далее вводим слово/фразу/строку, нажимаем Enter.
Для повторного поиска этого же текста просто Ctrl+W и сразу Enter.
Первичная настройка закончена.
Устанавливаем MajorDoMo.
Я устанавливаю сначала стабильную сборку с сайта: Версия 0.6.0b от 25.01.2014 (архив)
Затем из админки "накатываю" обновления. Но если честно, обновлялся только один раз и сразу об этом пожалел - почти все мои наработки по "украшательствам" исчезли.
Поэтому советую сначала обновиться - только затем заниматься разработкой в IDE.
Итак, продолжим - создадим временную папку для файлов MDM:
Проверить можно просмотрев файл /etc/group любым листером (например в Midnight Commander кнопка F3)
Там увидим следующие строки - audio29:www-data - значит все ОК.
Теперь разберемся с правами. На этом сайте на страничке "Установка Linux" рекомендуют дать права 777 на все папки и 666 на файлы.
Если внимательно посмотреть по пути /srv/www, можно там увидеть скрипт install-linux.sh, его содержимое примерно следующее:
Делаем этот скрипт исполняемым:
Дождемся когда он закончит работу (в конце предупредит что надо юзера www-data добавить в группу audio, мы это уже сделали).
Кстати, есть такая программка - WinSCP.
Крайне рекомендую скачать и установить. Она работает с CT по протоколу SFTP и выглядит как обычный командер.
Ею удобно пользоваться когда надо залить какие то файлы на сервак (FTP, samba еще не настроены), а главное - с её помощью можно легко менять права/владельца!
Вот скриншот прав папки /srv/www на моем кубике:
Для полноценной работы системы осталось запустить циклы. Я запускаю их от пользователя www-data.
Для автоматического запуска при загрузке системы открываем на редактирование файл /etc/crontab:
Можно перезагружать систему командой reboot.
После перезагрузки циклы могут запуститься и тут же остановиться - не пойму с чем это связано, но после повторной перезагрузке все ОК.
И циклы системы можно запустить вручную из командной строки от root:
Кстати в консоль посыпется отладочная информация - можно выловить причину остановки. Когда надоест, нажмите Ctrl+C))
Программка подтянет зависимости (их будет много - не пугайтесь ), установим все.Теперь можно попробовать что-нибудь проиграть от пользователя www-data.
В папке /srv/www/sounds/ есть файлик dingdong.mp3: В колонках должен буть слышен этот, такой уже знакомый звук)))
Выйдем из сессии www-data командой exit.
Громкость можно чуть подрегулировать, выполняем команду:
Там интуитивно понятно, кнопки на клавиатуре влево-вправо это выбор устройства, кнопки вверх-вниз это прибавить-убавить.
Попробуем настроить онлайн-радио.
Для начала установим VLC плейер:
Теперь заходим в админку Majordomo, идем в меню Маркет дополнений, ищем там Online Radio (v 1.0) by LuckyFIA жмем напротив ссылку Install.
Скорее всего после установки дополнения, остановятся циклы, поэтому надо перезапустить систему командой reboot.
Как я уже писал проигрывать будем через другой терминал, его надо создать - нажимаем там же в админке меню Терминалы, затем ссылку Добавить новую запись и вводим
настройки для работы с VLC:
Добавим одну радиостанцию, для этого нажимаем в админке меню Онлайн радио, выбираем только что созданный терминал (MEDIA), нажимаем кнопку добавить радиостанцию и вводим название, урл потока:
Заметил еще одну особенность.
На Raspberry Pi у меня стоит аналогичная система, сейчас я потихоньку переезжаю на Cubietruck.
Так вот, аудиокарта малинки поддерживает микширование, т.е. при работе vlc (например играет радио) Алиса может начать говорить (вывод через mplayer)
На Cubietruck такой фокус не прокатил - при работе vlc, mplayer выдавал ошибку:
Читайте также: