Сообщество - GNU/Linux

GNU/Linux

1 172 поста 15 636 подписчиков

Популярные теги в сообществе:

46

ArchLinux: установка системы на subvolume BTRFS

Всем привет, на связи Уханов. Давно хотел написать заметку про BTRFS, но тема это огромная и когда-нибудь я её закончу. Сегодня же поговорим об установке ArchLinux на subvolume BTRFS. Почему я выбрал именно связку BTRFS + ArchLinux, а не Debian например? Ведь он мне так нравится, это Debian? Я ведь все проекты делаю именно на нём.

Ответ кроется в установщике — программе, которая даёт нам удобный набор инструментов для установки системы, но одновременно ограничивает наши возможности функционалом этих инструментов.

Файловая система BTRFS обладает огромным функционалом и рассказывать о ней можно очень долго. Меня на стадии установки системы интересуют два механизма: поддержка многодисковых конфигураций (multiple device support) и subvolumes. И вот именно на этом, начальном этапе Debian поставил меня в трудное положение: я могу отформатировать в BTRFS диски по-отдельности и никаких мне subvolume.

Потому я решил использовать ArchLinux — там нет инсталлятора и ничто не ограничит полёт фантазии. Приступим: у меня есть виртуальная машина с 4 дисками: их я использую для создания RAID10.

Настройка сети
Установку начнём с определения сетевого адаптера и получения ip адреса. В первом поможет команда

ip link
В её выводе мы увидим имя адаптера. В нашем случае это enp0s3. Так и запишем в параметрах dhcpcd
dhcpcd enp0s3

Ура, адрес получили. Настроим время:

timedatectl set-ntp true

Разметка дисков
До начала разбиения дисков, установка ничем не отличается от обычного сценария. А вот при настройке разделов возникают вопросы и было-бы неплохо понять некоторые моменты.

- Форматирование диска в BTRFS без создания разделов. Такой сценарий вполне возможен: вы форматировать в BTRFS диск без создания на нём разделов. Монтировать его будете так-же: без указания номера раздела — просто диск. Используя так называемые partitionless диски вы рискуете столкнуться с проблемами установки на них загрузчика.
- Раздел подкачки использовать необязательно — его можно заменить на файл подкачки. Это обеспечит вам некоторую свободу от отказа диска. В случае, если выйдет из строя диск с разделом подкачки, система завалится с отказом.
- Постарайтесь не выделять /usr в отдельный раздел — проблем будет меньше.

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

Создание файловой системы
У нас есть четыре раздела по одному на диск и пришло время их отформатировать. Нам предстоит создать файловую систему и настроить RAID10. Нам для этого пригодится всего одна команда:
Начнём с подготовки массива под систему: вводим в консоль команду, которая соберёт первые два диска массив уровня RAID1.

mkfs.btrfs -L Archlinux -d raid10 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1

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

При этом видно, что метаданные в чередовании не участвуют: только зеркалирование.

Создание subvolume
Теперь смонтируем всю эту музыку.

mount /dev/sda1 /mnt

Монтировать BTRFS можно используя любой раздел — участник массива. В нашем случае /dev/sda1.
Перейдём в каталог /mnt
cd /mnt

Создадим subvolume для корня системы, домашнего каталога, каталога var и для снапшотов (об этом потом).
btrfs subvolume create root
btrfs subvolume create var
btrfs subvolume create home
btrfs subvolume create snapshots
Проверим результат командой:
btrfs subvolume list /mnt

Теперь выйдем из каталога mnt и отмонтируем наш массив командой:
cd ..

umount /mnt


Монтирование и подготовка к установке
Нам предстоит смонтировать subvolume, который мы запланировали как корневой каталог, создать на нём точки монтирования и смонтировать туда остальные subvolume. Монтировать будем с опцией сжатия файловой системы zstd.
mount -o noatime,compress=zstd,subvol=root /dev/sda1 /mnt

Корень есть, создадим точки монтирования одной командой:
mkdir /mnt/{var,home,snapshots}

Монтируем оставшиеся:
mount -o noatime,compress=zstd,subvol=var /dev/sdc1 /mnt/var
mount -o noatime,compress=zstd,subvol=home /dev/sdc1 /mnt/home
mount -o noatime,compress=lzo,subvol=snapshots /dev/sda1 /mnt/snapshots
Результат можно посмотреть и командой mount и при помощи df.

Установка
Далее в принципе установка проходит штатно и можно ориентироваться на мою прошлую заметку.
После выполнения pacstrap мы получим предупреждения от mkinitcpio.

Не будем игнорировать предупреждения и установим необходимое командой:

pacman -S btrfs-progs

И добавим hook btrfs в mkinitcpio.conf:
nano /etc/mkinitcpio.conf

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

pacman -S grub-btrfs

Она потянет за собой и обычный Grub. Загрузчик устанавливаем по очереди на каждый диск — участник массива. Это позволит загрузить систему в случае выхода из строя любого из них.

Вместо заключения
Мы установили Archlinux на многодисковую конфигурацию BTRFS с использованием subvolume и уровнем отказоустойчивости RAID10. Главное отличие subvolume от разделов в том, что у них общее пространство и не будет ситуации с нехваткой места на каком-то разделе.

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

Пост является копией заметки из моего блога.

Показать полностью 10
992

Запускаем DOOM на калькуляторе HP Prime G2

Установить DOOM на какое либо устройство, это как водрузить знамя победителя на павшей крепости. Мне задали вопрос “ну что, doom запустил?” не менее 35 раз, когда узнали что я вожусь с данным калькулятором. Решил не разочаровывать публику и добиться запуска DOOM. Попутно, это стало неплохим тестом работоспособности оборудования, а также выявления неприятных багов. В общем, поехали!


Краткая предыстория


Всё началось с приобретения калькулятора HP Prime G2  версии 2AP18AA (это важно, т.к. я не знаю будет ли это работать с другими калькуляторами). Поскольку Пикабу развлекательный ресурс, поэтому грузить сложными вещами не буду. Скажу, что на данный калькулятор установлен линукс, изначально проект начинался с Linux for HP Prime G2 . Но повторить инструкцию "влоб", как обычно бывает не получилось. Я достаточно долго бился, чтобы запустить linux, ковыряясь в исходных кодах, командах и т.п. Результат моих мучений описал в двух статьях: "Установка Linux на калькулятор. Часть I" и "Установка Linux на калькулятор. Часть II". Прошу понять меня правильно, не всем интересна установка Linux на калькулятор и это реально весьма сложная тема, поэтому даю ссылки, тем кому интересно - почитают. Те, кому интересен только DOOM, едем дальше. В результате я получил калькулятор, на котором успешно запускается и работает linux.

Когда линукс завёлся, поставить DOOM казалось простой задачей. И в целом так оно и есть. Оказалось, что всё хорошее давно придумано за нас, и DOOM можно собрать прямо в buildroot не вставая с дивана. Это я узнал, когда гуглил все возможные варианты DOOM для встраиваемых систем и пытался их собрать. Как оказалось, достаточно запустить:


make menuconfig


И выбрать DOOM. Это делается в "Target packages ---> Games --->"

В нашем распоряжении две версии DOOM: chocolate-doom и prboom. Шоколадный дум мне не понравится двумя моментами: он здоровый и не помещался в initramfs, плюс ещё криво растягивал на экран изображение. Запускается шоколадный дум следующей командой:


export SDL_NOMOUSE=1

chocolate-doom -geometry 320x240 -bpp 24 -nomouse


Итог меня сильно разочаровал: эта версия doom некорректно (или может, наоборот, корректно) растягивает экран, оставляя широкие полосы по краям экрана, что мне очень не понравилось.

При запуске, мне шоколадный дум говорит о том, что делает изменение размера окна:


I_InitGraphics: 320x240 mode not supported on this machine.

I_InitGraphics: Auto-adjusted to 320x200x32bpp.


Поэтому, я остановился на prboom. Сделал образ вместе с шароварными WAD-файлами и самим prboom, всё лишнее убрал. Но, всё равно очень долго не мог заставить его работать. Читал всевозможные мануалы, искал как сконфигурировать, чтобы всё корректно работало. Изображение выводит, на кнопки реагирует, но экран коряво растягивает и выводит кривые цвета. Пока на каком-то форуме не нашёл идеальные параметры запуска.

В общем, для нашего калькулятора запуск prboom такой: отключаем мышку, и далее запускаем prboom со следующими параметрами:


export SDL_NOMOUSE=1

/usr/games/prboom -width 320 -height 240 -nosound -vidmode 32bit


Ключевой параметр здесь: "-vidmode 32bit".

Результат запуска prboom


Долго искал подходящие параметры, и только с этим всё завелось. Для удобства всё записал в скрипт d.sh. Наконец всё работает, можно даже играть!

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


Достаточно разобрать калькулятор, замкнуть контакты, описанные в первой части и запустить


sudo uuu doom.uu


В конце всех действий, вы получите калькулятор, с linux и DOOM. Чтобы запустить DOOM, надо будет залогиниться и на калькуляторе выполнить:


./d.sh


Резюмируя


DOOM работает! Можно ли в него играть? Ну локально, загружая с компьютера — можно. Это выглядит круто и красиво, но на деле, не совсем то что хочется получить. В действительности будет круто, когда ты едешь в метро, взять и достать из широких штанин калькулятор, включить его (на данный момент режим энергосбережения не работает), и запустить DOOM. Вот это реально круто, играть в метро на калькуляторе в DOOM, Duke Nukem 3D, Quake I, II, III и т.д. Но факт остаётся фактом — DOOM на этой железке запущен. Но ещё очень много работы.

В целом, не хватает хотя бы небольшого сообщества вокруг этого калькулятора (хотя бы больше меня одного), чтобы были тестировщики проблем, было с кем поговорить и поделиться, услышать совет. Первоначальный автор явно остыл к данному проекту, хотя и проделал титаническую работу. Я его хорошо понимаю, и никак не могу укорять за то, что он не хочет помогать даже советом по данному проекту. Ну так, небольшие рекомендации давал, но ему явно уже не до него. Поэтому если у вас есть идеи, калькулятор, желание помочь, хотя бы советом, пишите, буду рад!


З.Ы. Это адаптированная для пикабу версия моей статьи на хабре.

Показать полностью 4 2
800

Изучаем GNU/Linux часть 36. Логирование

Продолжаем изучать GNU/Linux и готовиться к сертификации от Red Hat (RHCSA).

Для тех, кто видит мои посты впервые - я стараюсь очень лёгким языком с нуля научить вас работать с операционной системой GNU/Linux. Зачем? Потому что - Стоит ли делать курс по RHCSA?


Предыдущие темы:

Изучаем GNU/Linux часть 35. Системный менеджер systemd (RHCSA)

Изучаем GNU/Linux часть 34. Система инициализации systemd (RHCSA)

Глава 2: pikabu.ru/@doatta/saved/1399947

Глава 1: pikabu.ru/@doatta/saved/1399945


Рассмотрим настройку демонов логирования, ротацию логов и работу с логами.

P.S. Текстовые варианты и вопросы доступны по ссылке - https://gitlab.com/doatta/gnu-linux-rhcsa

Linux - лучшая ОС

Всем привет.

Это мой первый пост, поэтому не судите строго ;)


Сразу говорю, Linux подойдёт не всем. Эта ось для тех, кто готов иногда танцевать с бубном. Причиной этому служит то, что некоторых программ на Linux попросту нет, но это легко решается при помощи Wine и Virtualbox. Но! Есть ещё одно но. И это «но» - софт который требует больших мощностей вашего пк. Такой софт очень сложно запустить на виртуалке. Поэтому милости просим в репозитории за аналогами :)


И так, мой милый Linux.


Так зачем же менять ОС?


1. Linux и большая часть ПО бесплатные. Конечно, можно купить Windows 10 за 300 рублей и не париться, но вот большинство современных пользователей до сих пор пиратят ОС и большую часть софта.


Да, можно пользоваться пиратским софтом, но зачем? На заметку: на сайтах с всевозможными кряками регулярно прячутся вирусы, а на Linux в них нет необходимости.


Поэтому, если вы хотите перестать заниматься цифровым пиратством, начните с установки Linux. А еще это будет весомым плюсом, если приходите на работу со своим ноутбуком.


2. В Linux есть магазин приложений. В случае с  Windows начинают настройку стороннего ПО, они либо идут на торренты, либо начинают занимательное путешествие по файлообменным помойкам и рекламным сайтам в поисках установщика нужной программы, периодически попадая на вирусы. Да, безусловно, адблок и антивирус решат проблему, но нужно ли это? Антивирус же нагружает ос, что особенно заметно на маломощных и старых ПК.


Только не нужно говорить, что в Windows есть свой магазин приложений, я уже пробовал, как он работает и чуть не сошел с ума. И к тому же навязывание аккаунта (а соответственно и подписки Microsoft 365) немного раздражает.


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


3. В Linux никто не навязывает обновления. Пользователь сам решает стоит ли ставить их или нет. Это особенно актуально, когда у вас лимитированный трафик (например вы раздаете интернет с телефона).


4. Архитектура Linux менее подвержена вирусам. Большая часть вредоносного ПО сейчас разрабатывается именно для Windows. Сложности с поиском приложений и желание пользователей скачать что-то бесплатно открывают доступ для всевозможных троянов и вирусов.


В Linux имеется более сложная система разграничения прав доступа, модульность компонентов и монолитное ядро обеспечивают гораздо большую безопасность, чем “дырявый” системный реестр в Windows.


5. Linux потребляет меньше ресурсов компьютера. Это огромнейший плюс для тех, у кого ПК далеко не первой свежести, разумеется, для современных ПК с многоядерными процессорами и двузначным числом ОЗУ это не будет преимуществом, но вот старый системник или ноутбук с двумя ядрами и парой планок ОЗУ по 2 ГБ на Linux просто оживет.


6. Исходный код Linux открытый. Этим никого не удивишь, и мало кто в этом заинтересован, но это позволяет быстрее находить уязвимости, а разработчикам устранять их. Еще такой подход позволяет моментально выявить шпионские или вредоносные части кода, предупредить об этом общественность и отказаться от проблемного дистрибутива.


Много ли пользователи знают о механизмах слежки и шпионских скриптах в Windows? Часть из них известна сообществу энтузиастов, но отключать их придется в ручном режиме после установки системы, «пингвин» же напортив лишен таких недостатков.


7. У Linux есть множество дистрибутивов. Это явно понравится тем, кто не может «сидеть на одном месте». Если разделение Windows на версии направлено только на то, чтобы отключить у пользователя фишки, за который он не хочет платить, то в мире Linux есть действительно отличающиеся друг от друга сборки.


Самые известные дистрибутивы это (напишите в комментариях, если я что-то пропустил):

Linux Mint

Ubuntu

Kali Linux

Debian

Elementary OS

Kodachi


8. Linux имеет большое количество графических интерфейсов и элементов управления. Это не просто изменяемые обои, украшательства или съедающие ОЗУ дополнения. Это специально разработанные модули, которые могут добавляться или убираться при необходимости, делая систему такой, какой ее хочет видеть пользователь.


Самые опытные могут и вовсе обойтись командной строкой без графического интерфейса, а самые дотошные смогут превратить Linux в практически в полное подобие Windows или macOS.


9. Практически любую версию Linux можно запустить с флешки. Live-режим есть у большинства распространенных сборок и дистрибутивов. Вы можете попробовать любую версию Linux, посмотреть на графический интерфейс, встроенный набор ПО и драйверов без полной переустановки системы.


Разбавим ситуацию мемасиком ;)

Linux - лучшая ОС

А теперь продолжаем)


Кому Linux не подойдёт?


Во-первых, если вы играете в топовые игры. Только крутые современные проекты могут удержать вас на Windows, поиграть в популярные сетевые игры вроде CS:GO, Dota 2, Team Fortress 2 или War Thunder можно и на Linux. Есть для бесплатной ОС как порты так и официально выходящие версии многих стратегий, симуляторов, аркад и экшенов.


Если игры для вас не самое главное и вы не против сыграть во что-то 2-5 летней давности, то можно смело переходить на Linux.


Во-вторых, если вы используете специализированное ПО, которые работает только под Windows. Всевозможные узконаправленные приложения, бухгалтерские или управленческие программы, ПО для взаимодействия с банками хоть и устанавливаются на Linux с определенными костылями, рисковать стабильностью рабочих инструментов вряд ли кто-то захочет.

Не радостная ситуация и с распространенным программным обеспечением для профессионалов. То же Photoshop или Pixelmator на Linux заменить практически не чем. Лучший из графических редакторов GIMP имеет довольно скромные возможности, остается только пытаться запустить нужное приложение через среду WINE.


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

Если же вы используете популярные модели железа, ситуацию исправят несколько команд в терминале.


Так переходить или нет?


Если вы, как и я, цените свою приватность и не боитесь «танцев с бубном», то вам однозначно стоит переходить. А так, то финальное решение всегда за вами ;)



Да прибудет с вами GNU!

Показать полностью 1
395

Закрыта десятилетняя уязвимость в sudo

Специалисты по IT-безопасности компании Qualys опубликовали отчёт об обнаруженной «дыре» в популярной консольной Linux-утилите sudo. Как оказалось, используя баг, которому недавно исполнилось почти десять лет, злоумышленники могут получить root-доступ без прохождения аутентификации в ряде популярных дистрибутивов.

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

По заявлению экспертов, уязвимость датируется июлем 2011-го. Проблема заключается в том, что при обычном запуске утилита sudo (её работу можно сравнить с запуском командной строки от имени администратора в Windows) экранирует специальные символы с помощью обратного слэша при указании опций -i и -s — но используя инструмент sudoedit, этот процесс можно обойти, дописав нужные команды для взлома системы.

Разработчики дистрибутивов Debian, RHEL, Ubuntu, Fedora, Arch, Gentoo, FreeBSD, SUSE/openSUSE и Slackware уже получили уведомление от Qualsys и выпустили соответствующие патчи для операционных систем. Для проверки уязвимости достаточно ввести в терминале строку sudoedit -s /. О наличии бага будет свидетельствовать вывод строки с ошибкой, начинающейся с sudoedit:. Пользователям указанных дистрибутивов эксперты рекомендуют установить последние патчи безопасности для закрытия «дыры» в системе.

Источник:

https://4pda.ru/amp/2021/01/27/381159/

Уязвимость:

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3156

Исследование:

https://blog.qualys.com/vulnerabilities-research/2021/01/26/...

Описание:

https://www.sudo.ws/alerts/unescape_overflow.html

Картинка-комикс отсюда:

Sudo

Показать полностью 1

Вопрос. Кто знает как подключить рдп из линукса на винду?

При этом чтобы по рдп передавались оба экрана, а не один?

Использую linux mint клиент Remmina. По рдп подключает нормально, но второй экран не тянет, на основном мониторе удалёнка с Win 10, на втором показывает экран от линукса.

В интернете к сожалению не нашёл решения, только какую-то программу которая стоит денег, но в её эффективности я не уверен.

Может кто-то сталкивался и решил эту проблему?
Или на удалённом рабочем компе тоже линьку надо ставить?

Bash: перебор файлов в директории

Коллеги, прошу помочь со скриптом.

Задача следующая:

есть папка с десятком текстовых логов, из каждого нужно надо вытащить определенные строки. В идеале хотелось бы сагрегировать в один файл с указанием из какого файла взято, но пока не разобрался с sed.

Пока я накидал следующее:

#/bin/bash
# Variable
cwd=$(pwd) #тут такое условие потому что скрипт должен запускаться в папке, в которой лежат две другие папки с логами, по которым нужно пройтись скриптом
# Script

if [ -d $cwd]
then
cd $cwd || return #я не уверен нужен ли здесь return
for dir in $(ls)
do
if [ -d $dir ]
then
cd $dir || return  #и здесь
for file in $(ls)
do
if [ -f $file ]
then
grep -С2 "нужное мне значение" $file > readed$file
fi
done
fi
done
fi
Показать полностью
Отличная работа, все прочитано!