Найти тему
Александр Селютин

Домашний сервер на RaspberryPi. Часть 1. Запуск основы.

Оглавление

Основа

О самой железке.

Прежде всего, это сама Raspberry Pi 4B 8Gb.

В качестве расширения взял корпус Argon ONE M.2 для использования SSD диска.
1Gb M.2 SSD диск
2Gb USB HDD диск

SSD взял на 1Gb для того, чтобы на нем сразу всё и собрать - и хранилище, и систему… Но данный подход не очень оправдал себя. Поэтому решил хранилища вынести всё-таки на отдельный диск. Но SSD уже менять не стал. На самом деле такой размер SSD точно избыточен (при наличии внешнего HDD).

HDD взял на 2Gb, чтобы уж с запасом ) Да и не дорогие они сейчас.

Для умного дома еще брал стик Zigbee CC2531, но это уже совсем другая история - про умный дом. Поэтому, если вдруг дойду до описания моих экспериментов с умным домом на основе «Малинки», то там уже и этот опыт опишу.

Итак, по порядку.

Сборка и установка OS

Первым делом - установка OS на «Малинку».

Особенность в установке на SSD в том, что нужно переключить в «Малинке» источник загрузки.

Важно! Заранее позаботьтесь о наличии у вас USB-кабеля USB A(m) - USB A(m), в простонародье именуемый «папа-папа». Без него будет не просто решить проблему записи непосредственно на SSD операционной системы.

Для этого есть отличное описание вот тут:
https://struchkov.dev/blog/raspberry-home-cloud-services-ecosystem/

Однако, данную инструкцию я использовал только до раздела «Первичная настройка».

Если коротко, то суть в том, что надо еще до сборки корпуса переключить режим загрузки Raspberry PI c MicroSD на USB (SSD диск по сути будте подключен к PI через USB).

Для этого выполняем следующую последовательность:

1. Скачиваем на обыкновенный компьютер с сайта https://www.raspberrypi.com/software/ программу Raspberry PI Imager последней версии.

2. На MicroSD записываем утилиту USB Boot. Для этого подключаем MicroSD к нашему компьютеру, запускаем скачанную программу, в ней выбираем
Choose OS –> Misc utility images –> Bootloader –> USB Boot.
Далее выбираем источник - нашу MicroSD.

3. Вставляем MicroSD в Raspberry, запускаем ее и ждём 3-4 минуты. Всё это должно сопровождаться частым миганием красного диода на «Малинке».

4. Выключаем PI, вынимаем MicroSD.

Наш девайс готов к загрузке через USB.

Далее, собираем малинку в корпус по инструкции, вставляем в него SSD диск.

Единственное, не вставляем пока USB-мост, который соединяет как раз модуль с SSD диском с основной частью «Малинки».

Вот тут нам и понадобится тот самый кабель «папа-папа».

Не подключая Raspberry к питанию, нижний модуль с SSD диском подключаем этим кабелем к компьютеру, на который мы установили Raspberry PI Imager. Если предварительно наш диск был отформатирован, то компьютер его увидит как внешний диск.

В программе выбираем тип операционной системы, которую собираемся использовать. Я использую Raspberry Pi OS Lite (64-bit) без графического интерфейса, т.к. работаю с «Малинкой» удаленно через SSH посредством терминала.

Все дальнейшие описания будут именно под этот тип инсталляции.

В этом случае выбираем
Raspberry PI OS (other) -> Raspberry Pi OS Lite (64-bit).
В источнике выбираем появившийся внешний диск (у меня это был ARGON).

Первичную настройку и настройку Удаленного доступа можно сделать сразу в программе Raspberry PI Imager, нажав перед запуском записи, нажав кнопку «шестеренка» и включив там сразу SSH сервер и заведя основного пользователя. Однако, если вы это забудете сделать (как обычно забываю я), то далее я опишу как это сделать.

Нажимаем кнопку «записать».

Всё. Raspberry Pi заряжен и готов к работе.

Вставляем USB-мост, подключаем к питанию, запускаем.

Первичная настройка

Как я уже сказал, я пользуюсь версией операционной системы без графического интерфейса. И часть того, что будет описано в следующих двух разделах актуально, если вы таки не нажали на шестеренку при записи системы на SSD.

Однако, самую первую настройку всё равно проще производить с экрана Raspberry. Поэтому я подключаю к ней по HDMI монитор и USB клавиатуру и делаю два действия.

1. Завожу основного пользователя (если не менять, то это будет пользователь pi, но я меняю на привычного мне пользователя.

2. Настраиваю SSH сервер, чтобы дальше можно было работать с Raspberry удаленно.

Да. Пока, всё, что мы делаем - это без пробрасывания нашего сервера наружу, поэтому в некоторых случаях я на этом этапе «снижаю требования» к безопасности. Однако, если вы сразу предполагаете делать свой сервер внешним, то позаботьтесь уже на этом этапе о безопасности, придумав достаточно сложный пароль для вашего основного пользователя.

Итак, подключаю «малинку» к монитору и клавиатуре и вижу запрос на имя пользователя и затем на пароль к нему (его запросят дважды).

После этого устройство полностью готово.

Сразу, не отходя от кассы, смотрим IP адрес нашего устройства, запустив команду:
ifconfig

Я подключил «Малинку» сразу к проводной сети, поэтому меня интересует адрес устройства eth0. Назовем его server-IP. У меня это был 192.168.50.89.

Далее, для удобства, на уровне роутера, я присвоил этот адрес как статический своему серверу, чтобы он вдруг неожиданно не поменялся по DHCP - мало ли что?

Удаленный доступ

Ну и напоследок запускаю сервер SSH на Raspberry, чтобы уже всё остальное делать дистанционно.

Всё с той же клавиатуры и монитора выполняю следующие действия:
sudo raspi-config

Запускается программа настройки «Малинки».

Нас там будет интересовать несколько вещей, но прежде всего это удаленный доступ.

Идем в
Interfacing Options -> SSH
и выбираем
YES.

Всё… Удаленный доступ включен.

Пробуем подключиться с другого компьютера удаленно. У меня это Mac, поэтому я просто запускаю Terminal:
ssh USER@server-IP

Здесь:
USER - это то имя пользователя, которого вы создали (по-умолчанию это пользователь
pi)
server-IP - это IP адрес «Малинки» из команды ifconfig.

У меня, соответственно, это выглядит так:
ssh uuu@192.168.50.89

Если всё сделано правильно, то вы увидите запрос пароля для указанного пользователя, и далее попадете в терминал самой «Малинки».

Супер!

Возможно, что введя указанную выше команду вы получите сообщение:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Это означает, что вы уже раньше подключались, скорее всего, по SSH к данному адресу, и вам необходимо заменить ключ подключения.

Тогда вам уже на удаленном компьютере нужно выполнить следующие действия:
cd ~
rm .ssh/known_hosts

После этого еще раз выполнить команду подключения по SSH.

Система запросит у вас согласие на генерацию нового ключа, отвечаете с клавиатуры «yes». Вводите пароль.

Всё должно получиться…

Локализация

Вообще, пока еще монитор и клавиатура подключены к Raspberry, можете побегать по меню и посмотреть доступные настройки.

Так, вы можете поменять пароль созданному пользователю, разогнать процессор и многое другое. Но нас будет интересовать лишь несколько опций:

1. Настройка русской локализации.

Заходим в
Localisation Options -> Locale
В списке находим
ru_RU.UFT-8 UFT-8 (или те, которые нужны именно вам) и ставим *напротив. Нажимаем Ok.

Нас запрашивают локализацию по-умолчанию. Я оставляю en, но если вы хотите, то можете сделать ru - тогда все системные сообщения, подсказки и пр. система будет выдавать на русском языке.

2. Ставим нашу тайм-зону.
Localisation Options -> Timezone
Там всё просто.

Всё. Пока достаточно.

Отключаем монитор и клавиатуру - они нам больше не понадобятся. По крайней мере, в ближайшее время.

Обновление и перезапуск

Наша «Малинка» готова к следующим нашим шагам. Но перед этим обновим систему до последней версии.

Все дальнейшие шаги можно, безусловно, выполнять и на самом сервере, но я их уже делаю дистанционно:
sudo apt update
sudo apt full-upgrade
sudo rpi-update
sudo reboot

Тюнинг корпуса Argon

Немного меняем обороты вентилятора корпуса, чтобы он был тише. Опция совершенно не обязательная.

Скачиваем программу управления:
curl https://download.argon40.com/argon1.sh | bash

Смотрим текущую температуру (просто для оценки):
vcgencmd measure_temp

Настраиваем новые параметры:
argonone-config

Выбираем пункт 2.

Далее устанавливаем параметры. Я ставлю их так:
55 - 30%
60 - 50%
65 - 100%

Далее займемся монтированием дисков и обеспечения к ним доступа с других устройств.

Почему и зачем я этим занимаюсь, написано здесь:
Домашний сервер. Личная экосистема. Пролог.

#RaspberryPi #УмныйДом #ХочуКомфорт #ДомашнийСервер #ЛичнаяЭкосистема