Общие инструкции
- Подключение к облачной платформе RESDS
- Подключение к платформе для выполнения лабораторных работ
- Полезные команды linux
- Создание новой виртуальной машины в проекте.
- Включение SSH-сервера windows 10
- vitastor
- orange pi
Подключение к облачной платформе 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 СПбГУТ
2. Открыть: проект
-> сеть
-> сети
, и убедиться, что там есть сеть external-direct-net
или external-net
external-direct-net
- сеть маршрутизируема в сети бонча
3. Генерация ключевой пары.
При первом входе сгенерировать ключевую пару, для доступа к Linux виртуальным машинам.
Ключевая пара - это взаимосвязанная пара, состоящая из открытого и закрытого асимметричного ключа. Используется для подключение к виртуальной машине, без использования пароля
Открыть: Проект
-> ключевая пара
-> создать ключевую пару
В открывшемся окне ввести имя ключевой пары и тип ключа(ssh-key)
Имя ключевой пары может быть любым
Ключ будет сохранен на ваш компьютер, он понадобится в дальнейшем.
Создание виртуальной машины
4. Создать виртуальную машину.
Открыть меню Проект
> вычислительные ресурсы
> инстансы
> запустить инстанс
В открывшемся окне, во вкладке подробности ввести имя инстанса и нажать Следующая
> внизу страницы.
Имя инстанса может быть любым
В следующем меню (Источник) выбрать источник – образ
, указать размер тома данных, выбрать удаление диска при удалении инстанса
, выбрать необходимый вам образ из доступных
(например Ubuntu-server-20.04:docker), и нажать справа от него стрелку вверх
В следующем меню (тип инстанса) определить объем выделяемых виртуальной машине вычислительных ресурсов. Для этого нужно выбрать один из предопределённых типов инстансов
(например small
), и нажать справа от него стрелку вверх.
В меню сети выбрать нужную вам сеть, к которой будет подключена виртуальная машина (наличие сети было проверено в п.1). Если в инфраструктуре доступна только одна сеть, она будет выбрана автоматически, и выбирать ничего не нужно.
Затем перейти к меню Ключевая пара, выбрать созданную ключевую пару, и нажать справа от неё стрелку вверх.
После выполнения всех действий - нажать справа снизу кнопку запустить инстанс
для создания и запуска виртуальной машины.
5. Настройка правил безопасности.
Для работы с инстансом необходимо разрешить ему сетевое взаимодействие (например 80/TCP – HTTP, 22/TCP – SSH, 51820/UDP - other):
Для этого нужно открыть Проект
> Сеть
> Группы безопасности
> выбрать группу безопасности default
и нажать – управление правилами
В открывшемся меню добавить правило для входящего трафика
В открывшемся меню добавления правил, добавить правило для порта 80(tcp)
Для этого выбрать:
Правило: «Настраиваемое правило TCP»
Направление: Входящий трафик
Порт: 80
Формат записи подключаемого диапазона адресов: CIDR
Сам подключаемый диапазон адресов: 0.0.0.0/0
Последняя запись означает разрешение подключения с любого адреса.
После заполнения всех полей нажать кнопку Добавить
в правом нижнем углу.
То же самое необходимо сделать для всех остальных портов.
6. Узнать адрес виртуальной машины
Для этого вернуться во вкладку инстансы и в поле ip адрес будет ip адрес вашего виртуального инстанса. Этот адрес понадобится в дальнейшем, для подключения к нему и его настройки.
Подключение к VM
7. Putty
Сделать это можно, например, с помощью putty
.
Для этого необходимо перейти на страницу загрузки, выбрать msi установщик, так как понадобятся дополнительные компоненты
Открыть puttygen
, нажать кнопку load
и выбрать скачанный в п.2 ключ с расширением .pem
Puttygen автоматически подставит все поля из ключа. Далее необходимо нажать кнопку save private key, и выбрать место, куда ключ будет сохранен
Открыть расположение сохраненного ключа, и два раза нажать на него, для запуска помощника авторизации pagent (pagent откроется в трее рабочего стола, пользователь не увидит запуск никаких приложений на рабочем столе) Запустить putty Открыть меню connection -> SSH -> Auth и в открывшемся меню в поле private key for authentication выбрать путь к сгенерированному ключу
Открыть заново вкладку 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*'
Если 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
- Открыть Power shell с правами администратора и внести команды
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
- Проверка, что сервер запущен и ждет подключение на 22 порту c помощью CMD
netstat -na | find ":22"
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
Установка uefi на orangepi 5
Загрузка нужных утилит
-
Необходимо загрузить утилиту RKdevTools для процессора RK3588, было найдено на сайте radaxa, по документации orangepi обязательно версии 2.96 (файл RKDevTool_Release_v2.96-20221121.rar)
-
Необходимо загрузить прошивальщик, тоже у radaxa для версии rock-5a подошло, так как там тоже процессор rk3588s
-
Необходимо загрузить uefi(выбрал edk2), подходящий найден был тут, искать по релизам для orangepi 5, например релиз v0.12.1
-
необходимо загрузить драйвера для rockchip, было найдено на сайте radaxa, файл DriverAssitant_v5.0.zip
Прошивка устройства
Перейдите в папку RKDevTool и откройте файл config.ini. По умолчанию язык инструмента - китайский, а если вы читаете этот блог, то, скорее всего, вы предпочитаете английский. Поменяйте местами файлы Lang1file и Lang2file.
Теперь откройте RKDevTool, и он должен выдать сообщение о том, что устройство не подключено.
Нужно все отключить от девайса. И питание.
Подключить только один usb порт. Причем строго определенный, к компу (см инструкцию пользователя стр. 41). Тот, который НЕ подает питания.
Нажать спец кнопку на нем недалеко от порта (см инструкцию пользователя стр. 41)
Далее подключить питание, у меня это тоже usb порт.
Отпустить спец кнопку.
Щелкните правой кнопкой мыши в области таблицы и выберите пункт load config
Перейдите в папку miniloader и выберите файл config.cfg. Затем нажмите кнопку открыть.
После успешной записи конфига необходимо прописать соответствующие файлы в нужных полях из недавно скачанных.
Убедитесь, что поставили галочку напротив Write By Address
, затем нажмите Run. Прогресс можно наблюдать в меню справа.
В окне состояния справа будут появляться обновления по мере установки, но на этапе загрузки образа уйдет довольно много времени. Если все прошло успешно, в последней строке должно появиться сообщение «Download image OK», и плата больше не будет подключена.
Все, можно подключать все обратно к устройству и наблюдать за загрузкой, в том числе и UEFI интерфейс.
источники
статья с утсновкой из linux на orangepi 5b
статья с работой в интерфейсе rkdevtool
необходимые утилиты для windows
Установка uefi на orangepi 5 plus
Загрузка нужных утилит
-
Необходимо загрузить утилиту RKdevTools для процессора RK3588, было найдено на сайте radaxa, по документации orangepi обязательно версии 2.96 (файл RKDevTool_Release_v2.96-20221121.rar)
-
Необходимо загрузить прошивальщик, тоже у radaxa для версии rock-5b подошло, так как там тоже процессор rk3588
-
Необходимо загрузить uefi(выбрал edk2), подходящий найден был тут, искать по релизам для orangepi 5, например релиз v0.12.2
-
необходимо загрузить драйвера для rockchip, было найдено на сайте radaxa, файл DriverAssitant_v5.0.zip
Прошивка устройства
Перейдите в папку RKDevTool и откройте файл config.ini. По умолчанию язык инструмента - китайский, а если вы читаете этот блог, то, скорее всего, вы предпочитаете английский. Поменяйте местами файлы Lang1file и Lang2file.
Теперь откройте RKDevTool, и он должен выдать сообщение о том, что устройство не подключено.
Нужно все отключить от девайса. И питание.
Подключить только один usb порт. Причем строго определенный, к компу (см инструкцию пользователя стр. 41). Тот, который НЕ подает питания.
Нажать спец кнопку на нем недалеко от порта (см инструкцию пользователя стр. 41)
Далее подключить питание, у меня это тоже usb порт.
Отпустить спец кнопку.
Щелкните правой кнопкой мыши в области таблицы и выберите пункт load config
Перейдите в папку miniloader и выберите файл config.cfg. Затем нажмите кнопку открыть.
После успешной записи конфига необходимо прописать соответствующие файлы в нужных полях из недавно скачанных.
Убедитесь, что поставили галочку напротив Write By Address
, затем нажмите Run. Прогресс можно наблюдать в меню справа.
В окне состояния справа будут появляться обновления по мере установки, но на этапе загрузки образа уйдет довольно много времени. Если все прошло успешно, в последней строке должно появиться сообщение «Download image OK», и плата больше не будет подключена.
Все, можно подключать все обратно к устройству и наблюдать за загрузкой, в том числе и UEFI интерфейс.
источники
статья с утсновкой из linux на orangepi 5b
статья с работой в интерфейсе rkdevtool
необходимые утилиты для windows
Установка Armbian c grub
Установка Armbian с grub на систему с UEFI возможна на любой тип ностиеля, что избавляет от проблемы прошивки SPI для каждого из типа дисков, и возможные проблемы совместимости с другими дисками. Возможно путь в данном руководстве не самый оптимальный но рабочий.
В случае установки в данном примере понадобится:
- SD карточка
- образ Armbian
- Микрокомпьютер с arm
- Установленный целевой диск на микрокомпьютере(в моем случае это NVMe на 256gb)
- интернет на миникомпьютере
Подготовка 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
)
- 1 раздел - 512mb c типом раздела vfat. Он будет использован для uefi
- 2 раздел - все остальное, будет использовано для всего остального, в том числе и boot
Отформатировать первый раздел под 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):
После этого необходимо выйти из chroot и отмонтировать все разделы:
exit
umount /mnt/EFI
umount /mnt/proc
umount /mnt/sys
umount /mnt/dev
umount /mnt
sync
Всё, теперь систему можно перезагружать, обязательно вынув sd карту и она загрузится в новую установленную систему.