Общие инструкции

Подключение к облачной платформе RESDS

Получить доступ к Dashboard можно из браузера. Для этого нужно перейти по адресу:

https://cloud.resds.ru/

В поле Domain выбрать AD, и ввести свой логин и пароль.
Будет отображена общая информация по проекту.

Выбрать нужный проект можно в верхней панели.

Необходимо перейти во вкладку Инстансы. Нужно включить инстанс, если он выключен.

Здесь находятся виртуальные машины. Необходимо нажать на имя виртуальной машины. Откроется более подробная информация о ней.

Для того чтобы получить доступ к ВМ, нужно перейти во вкладку Консоль. Здесь видно консоль виртуальной машины (если не работает клавиатура в ВМ, нажмите правой кнопкой мыши на синюю рамку сверху). Для того чтобы открыть консоль в отдельной вкладке, требуется нажать Нажмите сюда для показа только консоли.

Подключение к платформе для выполнения лабораторных работ

Получить доступ к Dashboard можно из браузера. Для этого нужно перейти по адресу:

https://panel.resds.ru/

В поле Domain выбрать AD, и ввести свой логин и пароль.
В правой части экрана, будут отображены под вашим логином будут отображены все доступные вам проекты

Вам необходимо нажать на необходимый проект и в появившемся меню выбрать пункт Инстансы

У вас появится новая информация в основном окне веб-приложения

Далее вам необходимо нажать на вкладку CONSOLE

В верхнем меню рядом с вкладкой Dashboard, появится новая вкладка в которой будет отображено название инстанса

Вам необходимо нажать на эту вкладку, и перед вами появится консоль для работы с виртуальной машинной

Полезные команды linux

Работа с редактором vi

vimtutor - встроенная обучающая программа по работе с vi (vimtutor ru–для отображения на русском языке)

Есть два основных режима - Normal и Insert. для перехода в режим insert нужно нажать i на клавиатуре, для возврата в режим Normal -нажать ESC

Normal – режим навигации по тексту и управление им(удаление строк, символов и проч). В этом режиме:кнопки стрелок, или символы h,j, k, l для навигации по тексту

p - вставка текстаx - удаление символа над курсором

dd - удаление текущей строки

:- режим выбора режима работы(все введённые символы отображаться в самой нижней строке консоли)

Insert –режим для добавления текста(вход из режима normal нажатием кнопки i, выход -ESC)

Visual –режим выделения текста(вход из режима normal нажатием кнопки v, выход -ESC)

Навигация по файловой системе

pwd показать текущую директорию
ls отобразить список файлов и папок
cd сменить текущую папку

Специальные символы для навигации по файловой системе

~ домашняя папка текущего пользователя
. Текущая директория
.. Родительская директория
* маска для любого имени файла или папки
? Маска для любого символа в имени файла или папки
TAB попытка автодополнения

Примеры навигации по файловой системе

cd /usr/local/lib сменить директорию на /usr/local/libcd
cd ~ сменить директорию на домашнюю директорию текущего пользователя
pwd показать рабочую (текущую) директорию
cd .. перейти в директорию на уровень вверх
cd / перейти в корневую директорию
ls –d pro* отобразить директории, имя которых начинается с pro

Просмотри истории команд

history -вся история

стрелки ↑ и ↓ клавиатуры для навигации по прошлым командам

Помощь по командам:

date –-help
man date
info date

Перенаправления через pipe(|)

W Показать всех пользователей, которые в данный момент вошли в систему

w | less показать всех пользователей, которые зашли в формате страниц

w | grep ‘tema’ выбрать всех пользователей, которые были авторизованы, и показать только тех, в имени которых содержится «tema»

обработка текста

cat Отобразить содержимое файла
grep поиск по шаблону
tail вывести последние 10 строк файла
awk язык поиска по шаблонам
cut обрезать конкретные поля в каждой строке файла
diff сравнить два файла
head показать первую часть файла
less показать файл постранично
od сделать дамп файлов в различных форматах
sed потоковый редактор
sort отсортировать текстовые файлы
split разделить файлы
tail показать последнюю часть файла
tr транслитерировать символы
uniq отбросить повторяющиеся строки в файле
wc посчитать количество строк или слов, или символов

Отображение содержимого в файловой системе

ls -a показать все файлы, в том числе скрытые “.”
ls -ld * показать информацию о папке, а не о содержимом
ls -F поместить индикатор в конец каждого имени файла
ls –l простой длинный вывод
ls –lR рекурсивный длинный вывод(с учетом вывода содержимого под папок)
ls –lh отображение размера файлов в читаемом виде
ls –lS отсортировать файлы по размеру
ls –lt отсортировать файлы по времени создания

Набор полезных команд

cp [file1] [file2] скопировать файлы
mkdir [name] создать папку
rmdir [name] удалить пустую папку(если не пустая, то не удалится)
mv [file] [destination] переместить (переименовать файл)
rm [file] удалить (-r рекурсивно)
file [file] идентифицировать тип файлы
less [file] вывести файл в постраничном виде
head -n [file] показать первые n строк файла
tail -n [file] показать последние n строк файла
ln –s [file] [new] создать символьную ссылку на файл
tac [file] вывести содержимое файла в обратном порядке, в сравнении с cat
touch [file] создать файл(если создан, изменить время создания)

Создание новой виртуальной машины в проекте.

Создание виртуальной машины в новом проекте

Подготовка к созданию
1. Подключение к облачной инфраструктуре

Перейти по ссылке. Для подключения использовать домен AD, а также учётную запись пользователя, используемую для подключения к WiFi СПбГУТ

Screenshot from 2022-05-12 16-15-31.png

2. Открыть: проект -> сеть -> сети, и убедиться, что там есть сеть external-direct-net или external-net

cr.png

external-direct-net - сеть маршрутизируема в сети бонча

3. Генерация ключевой пары.

При первом входе сгенерировать ключевую пару, для доступа к Linux виртуальным машинам.

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

Открыть: Проект -> ключевая пара -> создать ключевую пару

Создание виртуальной машины, генерация ключевой пары.png

В открывшемся окне ввести имя ключевой пары и тип ключа(ssh-key)

Окно создание ключевой пары.png

Имя ключевой пары может быть любым

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

Создание виртуальной машины
4. Создать виртуальную машину.

Открыть меню Проект > вычислительные ресурсы > инстансы > запустить инстанс

запустить инстанс.png

В открывшемся окне, во вкладке подробности ввести имя инстанса и нажать Следующая > внизу страницы.

создание инстанса.png

Имя инстанса может быть любым

В следующем меню (Источник) выбрать источник – образ, указать размер тома данных, выбрать удаление диска при удалении инстанса, выбрать необходимый вам образ из доступных (например Ubuntu-server-20.04:docker), и нажать справа от него стрелку вверх

Создание инстанса 2.png

В следующем меню (тип инстанса) определить объем выделяемых виртуальной машине вычислительных ресурсов. Для этого нужно выбрать один из предопределённых типов инстансов (например small), и нажать справа от него стрелку вверх.

тип инстанса.png

В меню сети выбрать нужную вам сеть, к которой будет подключена виртуальная машина (наличие сети было проверено в п.1). Если в инфраструктуре доступна только одна сеть, она будет выбрана автоматически, и выбирать ничего не нужно.

Сеть.png

Затем перейти к меню Ключевая пара, выбрать созданную ключевую пару, и нажать справа от неё стрелку вверх.

Выбор ключа.png

После выполнения всех действий - нажать справа снизу кнопку запустить инстанс для создания и запуска виртуальной машины.

5. Настройка правил безопасности.

Для работы с инстансом необходимо разрешить ему сетевое взаимодействие (например 80/TCP – HTTP, 22/TCP – SSH, 51820/UDP - other): Для этого нужно открыть Проект > Сеть > Группы безопасности > выбрать группу безопасности default и нажать – управление правилами

группы безопасности.png

В открывшемся меню добавить правило для входящего трафика

правила безопасности 2.png

В открывшемся меню добавления правил, добавить правило для порта 80(tcp)
Для этого выбрать:
Правило: «Настраиваемое правило TCP»
Направление: Входящий трафик
Порт: 80
Формат записи подключаемого диапазона адресов: CIDR
Сам подключаемый диапазон адресов: 0.0.0.0/0
Последняя запись означает разрешение подключения с любого адреса.
После заполнения всех полей нажать кнопку Добавить в правом нижнем углу.

 80-tcp.png

То же самое необходимо сделать для всех остальных портов.

6. Узнать адрес виртуальной машины

Для этого вернуться во вкладку инстансы и в поле ip адрес будет ip адрес вашего виртуального инстанса. Этот адрес понадобится в дальнейшем, для подключения к нему и его настройки.

find ip.png

Подключение к VM
7. Putty

Сделать это можно, например, с помощью putty. Для этого необходимо перейти на страницу загрузки, выбрать msi установщик, так как понадобятся дополнительные компоненты Открыть puttygen, нажать кнопку load и выбрать скачанный в п.2 ключ с расширением .pem Puttygen автоматически подставит все поля из ключа. Далее необходимо нажать кнопку save private key, и выбрать место, куда ключ будет сохранен

putty.png

Открыть расположение сохраненного ключа, и два раза нажать на него, для запуска помощника авторизации pagent (pagent откроется в трее рабочего стола, пользователь не увидит запуск никаких приложений на рабочем столе) Запустить putty Открыть меню connection -> SSH -> Auth и в открывшемся меню в поле private key for authentication выбрать путь к сгенерированному ключу

putty2.png

Открыть заново вкладку session, ввести адрес нашей ВМ и нажать Open В открывшемся окне терминала ввести имя пользователя cloudadmin. Это позволит получить удалённый доступ к вашей виртуальной машине.

8. Linux

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

Для этого нужно выполнить команду, где pemkey.pem, это файл полученный вами на 3 пункте данной инструкции

ssh-add pemkey.pem

Для подключения в данном случае в терминале достаточно ввести команду:

ssh cloudadmin@172.17.5.1

адрес 172.17.5.1 необходимо заменить на ваш адрес полученный из пункта 6 инструкции

9. Windows 10 OpenSSH

В Windows 10 c версии 1809 включен пакет OpenSSH, проверить это можно с помощью команды (выполняется с правами администратора):

Дальнейшие действия выполняются в PowerShell

Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Client*'

Screenshot from 2022-05-12 17-40-45.png

Если SSH клиент отсутствует (State: Not Present), его можно установить:

Add-WindowsCapability -Online -Name OpenSSH.Client*

Далее необходимо включить SSH-агент:

Start-Service ssh-agent

Добавить ключ можно с помощью команды:

ssh-add "C:\Users\username\.ssh\id_rsa"

Теперь вы можете подключиться используя команду:

ssh cloudadmin@172.17.5.1

адрес 172.17.5.1 необходимо заменить на ваш адрес полученный из пункта 6 инструкции

Включение SSH-сервера windows 10

  1. Открыть Power shell с правами администратора и внести команды
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
  1. Проверка, что сервер запущен и ждет подключение на 22 порту c помощью CMD
netstat -na | find ":22"

vitastor

vitastor

Vitastor on ecrypted volume

Настройка OSD на зашифрованном томе

Конфигурация OSD для хранения данных на зашифрованном томе

зашифровать том с помощью luks

настроить osd для хранения с помощью утилиты vitastor-disk

vitastor-disk prepare --data_device /dev/mapper/osd02_1 --force --disable_data_fsync off

Где:

--data_device - устройство, появившееся после расшифровки LUKS

Конфигурация udev для обнаружения и инициализации OSD

в файле

/usr/lib/udev/rules.d/90-vitastor.rules

изменить первую строку на:

SUBSYSTEM=="block", ENV{DM_NAME}=="osd*", \

Где:

ENV{DM_NAME}=="osd*" будет указывать на то, что данное правило стоит применять тогда, когда в системе появится устройство с именем, начинающимся на osd.

При применении этого правила в системе будет появляться файл /dev/vitastor, в котором будет появляться симлинк на нужное дисковое устройство, и может быть запущен сервис для osd.

После изменения правила udev необходимо применить изменения:

udevadm control --reload-rules

Так же для проверки можно выполнить:udevadm trigger, что заставит эмулировать запуск правила udev

orange pi

orange pi

Установка uefi на orangepi 5

Загрузка нужных утилит

  1. Необходимо загрузить утилиту RKdevTools для процессора RK3588, было найдено на сайте radaxa, по документации orangepi обязательно версии 2.96 (файл RKDevTool_Release_v2.96-20221121.rar)

  2. Необходимо загрузить прошивальщик, тоже у radaxa для версии rock-5a подошло, так как там тоже процессор rk3588s

  3. Необходимо загрузить uefi(выбрал edk2), подходящий найден был тут, искать по релизам для orangepi 5, например релиз v0.12.1

  4. необходимо загрузить драйвера для rockchip, было найдено на сайте radaxa, файл DriverAssitant_v5.0.zip

Прошивка устройства

Перейдите в папку RKDevTool и откройте файл config.ini. По умолчанию язык инструмента - китайский, а если вы читаете этот блог, то, скорее всего, вы предпочитаете английский. Поменяйте местами файлы Lang1file и Lang2file.

image-34.png

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

Screenshot_3.png

Нужно все отключить от девайса. И питание.

Подключить только один usb порт. Причем строго определенный, к компу (см инструкцию пользователя стр. 41). Тот, который НЕ подает питания.

55fe28614b38061a7f07d4c367678a28.png

Нажать спец кнопку на нем недалеко от порта (см инструкцию пользователя стр. 41)

03c03b99b8655aa208a8b532452d901a.png

Далее подключить питание, у меня это тоже usb порт.

Отпустить спец кнопку.

Щелкните правой кнопкой мыши в области таблицы и выберите пункт load config

Перейдите в папку miniloader и выберите файл config.cfg. Затем нажмите кнопку открыть.

image-38.png

image-39.png

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

image-40.png

image-41.png

Убедитесь, что поставили галочку напротив Write By Address, затем нажмите Run. Прогресс можно наблюдать в меню справа.

image-42.png

В окне состояния справа будут появляться обновления по мере установки, но на этапе загрузки образа уйдет довольно много времени. Если все прошло успешно, в последней строке должно появиться сообщение «Download image OK», и плата больше не будет подключена.

Screenshot_1.png

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

источники

статья с утсновкой из linux на orangepi 5b

статья с работой в интерфейсе rkdevtool

образ uefi

необходимые утилиты для windows

spi для rk3588s

orange pi

Установка uefi на orangepi 5 plus

Загрузка нужных утилит

  1. Необходимо загрузить утилиту RKdevTools для процессора RK3588, было найдено на сайте radaxa, по документации orangepi обязательно версии 2.96 (файл RKDevTool_Release_v2.96-20221121.rar)

  2. Необходимо загрузить прошивальщик, тоже у radaxa для версии rock-5b подошло, так как там тоже процессор rk3588

  3. Необходимо загрузить uefi(выбрал edk2), подходящий найден был тут, искать по релизам для orangepi 5, например релиз v0.12.2

  4. необходимо загрузить драйвера для rockchip, было найдено на сайте radaxa, файл DriverAssitant_v5.0.zip

Прошивка устройства

Перейдите в папку RKDevTool и откройте файл config.ini. По умолчанию язык инструмента - китайский, а если вы читаете этот блог, то, скорее всего, вы предпочитаете английский. Поменяйте местами файлы Lang1file и Lang2file.

image-34.png

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

Screenshot_3.png

Нужно все отключить от девайса. И питание.

Подключить только один usb порт. Причем строго определенный, к компу (см инструкцию пользователя стр. 41). Тот, который НЕ подает питания.

55fe28614b38061a7f07d4c367678a28.png

Нажать спец кнопку на нем недалеко от порта (см инструкцию пользователя стр. 41)

03c03b99b8655aa208a8b532452d901a.png

Далее подключить питание, у меня это тоже usb порт.

Отпустить спец кнопку.

Щелкните правой кнопкой мыши в области таблицы и выберите пункт load config

Перейдите в папку miniloader и выберите файл config.cfg. Затем нажмите кнопку открыть.

image-38.png

image-39.png

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

image-40.png

image-41.png

Убедитесь, что поставили галочку напротив Write By Address, затем нажмите Run. Прогресс можно наблюдать в меню справа.

image-42.png

В окне состояния справа будут появляться обновления по мере установки, но на этапе загрузки образа уйдет довольно много времени. Если все прошло успешно, в последней строке должно появиться сообщение «Download image OK», и плата больше не будет подключена.

Screenshot_1.png

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

источники

статья с утсновкой из linux на orangepi 5b

статья с работой в интерфейсе rkdevtool

образ uefi

необходимые утилиты для windows

spi для rk3588

orange pi

Установка Armbian c grub

Установка Armbian с grub на систему с UEFI возможна на любой тип ностиеля, что избавляет от проблемы прошивки SPI для каждого из типа дисков, и возможные проблемы совместимости с другими дисками. Возможно путь в данном руководстве не самый оптимальный но рабочий.

В случае установки в данном примере понадобится:

  1. SD карточка
  2. образ Armbian
  3. Микрокомпьютер с arm
  4. Установленный целевой диск на микрокомпьютере(в моем случае это NVMe на 256gb)
  5. интернет на миникомпьютере

Подготовка SD карты

загрузить последний образ Armbian на компьютер для своей системы. В данном случае это образ Armbian для Orangepi 5

С помощью BalenaEther или любой удобной утилиты как Rufus или dd(можно и dc3dd, ставится через apt) записать образ на sd карту

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

Запись образа на диск

Подключиться к операционной системе миникомпьютера. Пройти первоначальный wizard для настройки пользователей и сети

Удобней будет по SSH подключиться к этому миникомпьютеру, и все дальнейшие действия выполнять по SSH

Первым делом на сам миникомпьютер скачать требуемый образ Armbian. В данном случае всегда будет скачиваться последний образ Armbian

Пофиксить проблему с DNS. Разбираться не стал, просто удаляю симлинк /etc/resolv.confrm -rf /etc/resolv.conf и создаю новый с указанием своего DNS например: echo nameserver 192.168.1.1 > /etc/resolv.conf

curl -o armbian_bookworm_minimal.img.xz -L https://dl.armbian.com/orangepi5/Bookworm_vendor_minimal

Установить dc3dd (работает сильно быстрее dd с дефолтными настройками, вероятно сам подбирает размер блока и параметры работы с кэшами)

apt install -y dc3dd

распаковать скачанный образ armbian:

xz -d armbian_bookworm_minimal.img.xz

раcпакованный образ записать на NVMe(полностью диск без разделов) с помощью dc3dd

dc3dd if=armbian_bookworm_minimal.img of=/dev/nvme0n1

Теперь на диске появился раздел /dev/nvme0n1p1. Надо заново записать его в образ(но теперь это будет образ партиции и не всего диска)

dc3dd if=/dev/nvme0n1p1 of=armbian_bookworm_minimal-part.img

Разбить диск с помощью fdisk(fdisk /dev/nvme0n1)

Отформатировать первый раздел под vfat:

mkfs.vfat -F 32 /dev/nvme0n1p1

На второй раздел записать образ раздела armbian:

dc3dd if=armbian_bookworm_minimal-part.img of=/dev/nvme0n1p2

Настройка Armbian для загрузки Grub

Можно сказать что образ Armbian установлен на диск, но его ещё надо настроить для корректной загрузки из grub Для этого надо сделать chroot в этот диск:

mount /dev/nvme0n1p2 /mnt
mkdir /mnt/EFI
mount /dev/nvme0n1p1 /mnt/EFI
mount -t proc /proc /mnt/proc
mount -o bind /sys /mnt/sys
mount -o bind /dev /mnt/dev
chroot /mnt

Внутри новой системы тоже пофиксить проблему с DNS. Разбираться не стал, просто удаляю симлинк /etc/resolv.confrm -rf /etc/resolv.conf и создаю новый с указанием своего DNS например: echo nameserver 192.168.1.1 > /etc/resolv.conf

установить необходимые пакеты

apt update
apt install -y vim grub2-common grub-efi

Установить GRUB

grub-install --target=arm64-efi --efi-directory=/EFI --boot-directory=/boot --removable

В файле /etc/default/grub привести строку GRUB_CMDLINE_LINUX_DEFAULT к следующему виду:

GRUB_CMDLINE_LINUX_DEFAULT="rootwait rootfstype=ext4"

сохранить файл и создать файл grub:

grub-mkconfig -o /boot/grub/grub.cfg

Так как данная версия grub-mkconfig не поддерживает автоматическое создание devicetree, вписать это в grub самому. для этого открыть /boot/grub/grub.cfg и в нем добавить строку devicetree /boot/dtb/rockchip/rk3588s-orangepi-5.dtb в меню загрузки для orangepi 5, приведя его к виду как на изображении (uuid разделов не менять, добавить только строку с devicetree): Screenshot_2.png

После этого необходимо выйти из chroot и отмонтировать все разделы:

exit
umount /mnt/EFI
umount /mnt/proc
umount /mnt/sys
umount /mnt/dev
umount /mnt
sync

Всё, теперь систему можно перезагружать, обязательно вынув sd карту и она загрузится в новую установленную систему.