Linex и Артемий – Telegram
Linex и Артемий
131 subscribers
89 photos
7 videos
16 files
54 links
Автор: @heveat
Щит-постинг на тему того с чем я сталкивался во время использования линукса. Может быть вы и сможете найти тут что то полезное, хз
Download Telegram
Ребята, не поверите. Написал скрипт который позволяет менять всю музыку на картах SuperTuxKart на вашу собственную. На видосах выше, например, драм энд бас и хардстайл ремиксы русской попсы. Протестировано на Андроиде, должно работать и на компе.
change_music.sh
11.2 KB
НЕ ЗАБУДЬТЕ УСТАНОВИТЬ ffmpeg и xmlstarlet

Открываете файлик в текстовом редакторе, меняете первые три строчки. Если у вас Андроид, меняйте только первую строчку, MUSIC_DIR. На местоположение папки внутри которой лежат .ogg файлы. Потом запускаете скрипт с ключем apply-orig для изменения музыки на оригинальных картах, либо же apply-addon для скачанных с интернета. Чтобы отменить изменения, revert-orig и revert-addon соответственно.
👍1
Графоний подтянули
👍1
Linex и Артемий
Video
Просто у меня телефон за 500 рублей и на видосах я играю с самыми минимальными настройками графики
Здравствуйте. А я с новостями :)

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

Загрузка Линукса по сети, используя SAMBA

Зачем? Длинная история.
Недавно я зачислился в шарагу, и сразу понял, что нужно сделать что-нибудь эдакое, чтобы заработать пару очков в карму и получить респект от преподавателей.

Так что я решил вести допы. По Линуксу. И нет, это не из корыстных побуждений, мне просто интересно обучать пиздюков всякому, в чём я сам хорошо разбираюсь. Ну и плюсы из этого тоже вытекают.

Сразу столкнулся с проблемой, один кабинет на несколько дней в неделе мне выделить не могут. Всегда получается выпросить, но не какой-то конкретный. Так что нужно чтобы у каждого студента был доступ к своему Линуксу из любого кабинета. Да, можно конечно тупо установить Линукс на флешку и загружаться от туда, но у некоторых флешек нет, а если и есть, то они китайское говно. А ещё большинство компьютеров МЕГА старые и там есть только USB 2.0

На этом моменте я вспомнил про SAMBA шару, доступ к которой есть у каждого студента. И родилась гениальная идея...

Да, конечно, можно использовать SAMBA как / (гугл cifsroot), но для этого у SAMBA сервера должна быть поддержка UNIX Extensions, а её нет.

Так что должно быть так:
SAMBA -> Папка студента -> образ ext4

А теперь о том, как я это реализовал:
Есть одна единственная флешка, на ней лежит образ на 100 мегабайт, в котором есть: linux, initramfs.

initramfs — временная файловая система в ОЗУ, которая используется в большинстве Линукс дистрибутивов как промежуточный этап, который загружается перед запуском целевой системы. Например, чтобы расшифровать диск.

Я написал свой initramfs, где init - скрипт на bash. При запуске он спрашивает студента несколько вопросов (логин, пароль, домен для САМБЫ, где лежит образ ext4, использовать ли swap, где лежит ядро (об этом позже))

После чего получается IP-адрес по DHCP, монтирует самбу, монтирует образ ext4. А теперь следите за руками:

На флешке ядро одной версии, а на целевой системе - другой версии. Ну, допустим, потому что на целевой системе ядро было обновлено через пакетный менеджер. Не дело. Загрузится со старым ядром в новую систему мы не можем. Модули ядра (драйверы) — не совместимы друг с другом. Надо придумать механизм, который будет загружать новое ядро, заменяя старое. И в Линуксе уже есть такой механизм! Он называется kexec! И он буквально позволяет без физической перезагрузки компьютера менять ядро "на горячую". Но тогда все примонтированные директории пропадут... Так что, нужно сохранять ответы на вопросы студентов (про логин и пароль) в каком-то месте. И такое место есть. /proc/cmdline. Туда передаются аргументы для ядра (по сути - абсолютно любой текст). И так, мы, после монтирования самбы, а из него ext4, загружаем в ОЗУ новое ядро и новый initramfs через kexec, а также передаём ядру уже ранее введеные студентом ответы через cmdline. Производим kexec, заново всё монтируем, и производим в ext4 образ switch_root. Это системный вызов ядра, который позволяет изменить корень текущей системы на другой. Удаляя ВСЕ данные из старого корня (в первую очередь это нужно для того, чтобы вычистить из ОЗУ данные initramfs), переходя в другой. И, после этого, запускается systemd, включаются все службы, запускается Arch Linux...

Теперь у студентов есть возможность запускать свой Линукс из любого места в любое время😳😳😳
👍18🥴4
This media is not supported in your browser
VIEW IN TELEGRAM
Демонстрация работы
👍13👎2🥴2