Всем привет! Проблема с перезаписью bootloader UEFI.
Новый ноут (HP OMEN), два диска, две оси - Мастдай и Арчик. Диски GPT, загрузка в режиме UEFI. Настроено меню загрузки для systemd-boot. Загрузка работает, загружается выбранная ось, проблем нет…
… до момента загрузки Мастдая - каждый раз он из UEFI автоматически удаляет мультисистемный загрузчик Linux и заменяет на свой. Естественно, после этого при перезагрузке выбор операционки из меню пропадает, как и само меню.
Перепробовал кучу вариантов из WiKi Archlinux - ничего не помогает! Главная трудность, что на этом ноутбуке невозможно сохранить в UEFI две загрузочные записи одновременно - остается только одна, та что была добавлена последней.
Может кто-то сталкивался с подобной ситауцией, знает как откючить перезапись?
Решение: не отключать а подправить загрузочную запись:
Всем привет!
На Debian GNU/Linux 11 (bullseye) (SMP Debian 5.10.162-1 (2023-01-21)) разворачиваю веб-сервис (GLPI-10) под php8.1. Дефолтный репозиторий поддерживает максимум php7.4, поэтому пришлось подключить внешний: https://packages.sury.org/php/. Установить из него php8.1 со всеми необходимыми модулями получилось, все работает.
НО, наступил на грабли: теперь любой устанавливаемый пакет, в котором есть зависмость от php* тащит из внешнего репозитория в систему модули топовой версии php = 8.2, создавая «кашу» из разных версий.
Вопрос: как заблокировать установку 8.2 в пользу 8.1?
при этом в stdout выводит каждый ключ (а это несколько строк бинарного вида) при обращении к каждому хосту. получается оооочень много ненужного текста. Можно как-то подавить вывод содержимого всех ключей на экран, чтобы отображался только результат задачи?
РЕШЕНИЕ
Всем спасибо, было много полезных советов, но решение все же выглядит так: надо заменить строку
with_items: "{{ ssh_id_admins }}"
на следующий фрагмент:
loop: "{{ ssh_id_admins|flatten(levels=1) }}"
loop_control:
index_var: id
label: "{{ id }}"
и тогда на выхлоп летит только индекс элемента, а не все содержимое ключа.
хочется фильтровать https/SSL трафик, чтобы на основе «регулярки» направлять запросы через разные хосты в зависимости от URL. В теории прокси, используя подставной сертификат, выдает себя за целевой хост и расшифровывает трафик клиента, а потом от его имени запрашивает странички и передает ответ клиенту.
Чего имеем:
имеем софтину «privoxy», которая тут анонсировала что умеет такое:
Supports https inspection which allows to filter https requests.
Чего не получилось:
не взлетает функционал. Может я чего не понял и в конфиге недопилил? Вот конфиги:
Тут я пытаюсь перенаправлять запросы «example.ru/balala.*jpg$» через сокс-прокси «192.168.96.12». Остальное все уходит через дефолтный шлюз.
Вот файл https-enable.action
{+limit-connect{-}} # All ports are OK
{+limit-connect{,}} # No HTTPS/SSL traffic is allowed
{+https-inspection \
+ignore-certificate-errors }
example.ru
В мануале есть замечание, что
Note that the action has to be enabled based on the CONNECT request which doesn’t contain a path. Enabling it based on a pattern with path doesn’t work as the path is only seen by Privoxy if the action is already enabled.
Только я не понял, это надо как-то в конфиге подключить или это просто описание процесса? Может кто пользовался уже и знает в чем проблема?
Алтернативные решения приветствутся. Главное, чтоб софт под Linux работал.
Кто-нибудь пробовал (НА ПРАКТИКЕ) объединить две подсети от двух wg-серверов, чтоб хосты из разных подсетей друг-друга «видели»? Маршруты с двух сторон на хостах прописаны, «соседние» подсети в интерфейсах добавлены - глухо.
tcpdump на граничном хосте показывает, что пакеты с интерфейса уходят в соседнюю подсеть. Но до целевого хоста не долетают. Похоже, что wg-сервер их дропает, а на нем IP не прописан (маршрут не добавить).
PS: теоретики, советов не надо, если нет ссылки на описание практической реализации.
Кто Дебиан хорошо знает, подскажите как проще собрать свой автономный установщик, которому для разворачивания новой системы с подобранным предустановленным ПО не требуется интернет?
Народ, вопрос для тех кто понимает как управлять загрузкой сетевых интерфейсов.
На Дебиане по USB подключено несколько модемов, которые при загрузке создают сетевые интерфейсы eth1, eth2, eth3. Я по событию if-up (/etc/network/if-up.d/my-init) на этих интерфейсах запускаю скрипт инициализации нужных сервисов, привязанных к ним.
Вопрос: как управлять очередностью их запуска в зависимости друг от друга в нужной мне последовательности?
Собираю приложение из нескольких модулей при помощи cmake. Чтобы из файлового менеджера в иксах бинарник «запускался» кликом мышки, указываю для «CMAKE_CXX_FLAGS» одним из параметров "-no-pie". При сборке GCC проблем нет. Но тут захотелось нового...
Пытаюсь собрать clang-ом с параметром "-fno-PIE", все модули выдают ошибку:
/usr/bin/ld: CMakeFiles/appdbg_clang.dir/src/io.cpp.o: перемещение R_X86_64_32 для «.rodata.str1.1» не может использоваться при создании объект PIE; recompile with -fPIE
и результирующий файл не собирается. А без "-fno-PIE" файл собирается как исполняемый, но не кликабельный из иксов.
Кто имеет опыт работы со «шлангом», подскажите, что почитать?
---
РЕШЕНИЕ: использовать в CMakefile.txt не «CMAKE_CXX_FLAGS», а опцию:
Настроил Арчика на внешнем SSD Samsung 500Gb [USB-3.0 Box «Transcend» с SATA контроллером], системный раздел ext4. Все летает, как на «внутреннем» диске. Одна проблема: диск периодически отваливается - полностью, со всеми последствиями, и никаких логов. Работа восстанавливается только рестартом компьютера.
В БИОСе все опции энергосбережения, какие нашел, повыключал, в ОС тоже все, что связано в энергосбережением выключено. К самому Арчику вопросов нет: пользуюсь не первый год в нескольких местах - на разу ничего похожего не случалось.
Подозрение, что косячит контроллер «Transcend». Кто-нибудь сталкивался с подобной проблемой, как диагностировать и можно ли лечить?
РЕЗЮМЕ: Помогла только замена HDD-бокса.
P.S.: внезапно выснилось, что на некоторых «старых» мамках (HP 2009 г.) из бокса USB-3.1 ядро не загружается.
31 июля 2013 года USB 3.0 Promoter Group объявила о принятии спецификации следующего интерфейса, USB 3.1, скорость передачи которого может достигать 10 Гбит/с.
Загрузчик отрабатывает, а в момент старта ядра индикатор питания бокса выключается и все останавливается. На более новых мамках с поддержкой USB 3.1 все OK. При использовании бокса USB-3.0 (DEXP) никаких проблем не возникло - двое суток, полет нормальный.
Я сделал аварийную мультизагрузочную USB-3 флэшку на Archlinux с загрузчиком grub и несколькими разделами. Загрузочный раздел (UEFI + legacy) в fat32, система установлена на разделе ext4. Загрузка прекрасно работает и в режиме UEFI и в легаси, но только когда флэшка в порту USB-2.
В порту USB-3 загружается grub, стартует ядро и останавливается из-за ошибки монтирования системного раздела в корень файловой системы. Ядро не видит раздел диска, подключенный через порт USB-3. Пробовал на разных компьютерах и ноутах - результат одинаковый.
Подскажите, кто в курсе, где можно найти информацию с описанием функционала подключаемых модулей ядра? Думаю, нужно просто грамотно добавить в initrd модуль поддержки интерфейса USB-3.
P.S. Решение:
Два модуля в initrd - «xhci-hcd» (USB-3) и «ehci-hcd» (USB-2), позволяют без проблем монтировать корневой раздел, размещенный в любом USB порту. Можно еще добавить «ohci-hcd», если ожидается использовать USB-1.1
В ArchLinux модули вносятся в файл «/etc/mkinitcpio.conf» как параметр: MODULES=(xhci_hcd ehci_hcd)
Есть виртуальная машинка (Archlinux с X11) под Virtualbox. Менеджеров рабочих столов нет, только иксы. Запускаю на ней графическое приложение из командной строки в формате:
$ xinit /usr/bin/application
Проблема в том, что если нет ввода с клавиатуры/мышки, то через десяток минут окно виртуалбокса чернеет - типа энергосбережение и «отключение монитора». Не могу найти, что контролирует процесс блокировки экрана. Пакетов хранителей экрана в системе не нашел. Подскажите кто знает, куда копать чтобы экран виртуальной машины не гас?
Привет всем, если у кого-то имеется опыт разработки на FLTK, дайте совет пожалуйста!
Пытаюсь реализовать для «Fl_Input» функционал редактирования как в терминальной строке - стрелками вверх/вниз подгружать историю ввода. Но засада с обработкой клавиш стрелок - не получается подвесить отдельный обработчик события на «стрелки» - приходится только полностью все события клавиатуры обрабатывать в собственном цикле. Или например такой вариант:
В таком варианте корректно обрабатывается только одно нажатие на стрелку сразу после ввода/удаления символа в строке ввода. Два нажатия подряд не работают. Что-то надо переключить в состоянии, но что? Или может использовать другой класс для ввода строки?
Ответ (спасибо, rymis):
#include <functional>
#include <FL/Fl_Window.H>
#include <FL/Fl_Input.H>
#include <FL/Fl_Simple_Terminal.H>
Fl_Simple_Terminal *Tty = nullptr;
Fl_Input* Input = nullptr;
class History {
public:
void log (const char* msg){ Tty->printf( "%s\n", msg ); }
void up (void){ log("Up is pressed."); };
void down(void){ log("Down is pressed."); };
void add (const char* msg){ log(msg + 2); };
};
class MyInput : public Fl_Input {
History hist;
public:
template <typename...Args>
MyInput(Args&&...args) : Fl_Input(std::forward<Args>(args)...) { }
int handle(int ev) override {
if (ev != FL_KEYDOWN) return Fl_Input::handle(ev);
auto key = Fl::event_key();
if (key == FL_Up) {
hist.up();
return 1;
} else if (key == FL_Down) {
hist.down();
return 1;
} else if (key == FL_Enter) {
hist.add(value());
value("$ ");
return 1;
}
return Fl_Input::handle(ev);
}
};
int main(int, char**) {
int width = 500; int tty_h = 500; int inp_h = 24;
Fl_Window *Win = new Fl_Window(width, tty_h + inp_h, "App");
Win->begin();
Tty = new Fl_Simple_Terminal(0, 0, width, tty_h);
Input = new MyInput(0, tty_h - 3, width, inp_h, nullptr);
Input->insert("$ ");
Win->end();
Win->resizable(Tty);
Win->show();
Fl::focus(Input);
return Fl::run();
}
Такой вот бесполезный но наглядный рабочий примерчик - можно даже скомпилировать и запустить. Правда, надо отметить, что народ не слишком-то любит FLTK.
Привет всем! Кто постиг Вим, можете пояснить, почему (у меня) во время набора текста (в режиме вставки) при вводе символа открывающей угловой скобки < курсор не сразу переходит на позицию следующего символа, а с некоторой задержкой. Сбивает с ритма, можно-ли такое поведение отключить?
Пишу приложение с wxWidgets. Подскажите пожалуйста, кто освоил cmake, можно-ли при помощи pkg_check_modules найти настройки для скомпилированых библиотек, расположеных не в «системных» папках, а в подкаталоге проекта - недавно вышел свежий релиз, а менять версию в системе чревато...
Какая-то настройка для поиска по командам, для примера, вида:
Насколько я помню описание иксов, там написано, что X-сервер проектировался и разрабатывался как сетевой сервер, и в него (вроде как) ИЗНАЧАЛЬНО! заложена возможность подключаться удаленными клиентами.
Х.З, может я не в теме, но почему как начинаешь поиск как подключиться удаленно, то сплошь натыкаешься на советы типа: «установи VNC», «используй RDP» (мелкомягкого - я в шоке!), проброс портов «по SSH» ... и т.д.
Не могу сказать, что досконально «прошерстил» сайт http://www.freedesktop.org/wiki/, но так и не нашел ответ - как же это делается, и главное - ГДЕ это «заложено»?
Люди добрые, киньте ссылкой на мануал в первоисточник - как с пользовательской X&nix станции удаленно подключаться к X-серверу (без сторонних приложений)?
Все красиво и удобно! Тут тебе и синтаксис и грамматика и автодополнение, короче - все удобства в наличии. Но вот из-за того, что для режима работы с исходниками на Go требуется 12 дополнительных модулей, то Emaсs при загрузке чуть притормаживать стал. Конечно, 2 секунды - это ерунда, но стало мне любопытно, ведь я же с кучей языков еще работаю - плюсы, питон, java, веб-скрипты, шелл, конфиги всякие... И если я не 12 а 120 модулей со временем на него загружу, то как он «взлетать» то будет?
Вроде бы самое очевидное решение - подгружать конфиги по мере необходимости (при помощи хука):
Кто знает/помнит такие настройки Emacs, подскажите пож-ста, как настроить пользовательский конфиг, чтоб по клавише «Tab» он не умничал, перепрыгивая в позицию первого пробела верхней строки, а тупо (это я ляпнул «сгоряча») вставлял заданное количество заданных пробельных символов?
А то по «C-h a indent» вываливает кучу статей на чужом языке, где фиг что найдешь ;-)
Я работаю несколько лет под Арчиком, но никогда раньше не пользовался Имаксом. На прошлой неделе что-то «накатило» - плотно занялся его освоением и попутно Лиспом (куда же без него и Имаксе?).
И вот уже несколько раз попадаются мне предупреждения gpg о неверной подписи или отсутствии ключа и невозможности ее проверить. Крайний раз при установке пакета ORG:
Failed to verify signature org-edna-1.0alpha1.tar.sig:
Bad signature from 474F05837FBDEF9B GNU ELPA Signing Agent <elpasign@elpa.gnu.org>
Command output:
gpg: [don't know]: indeterminate length for invalid packet type 14
gpg: Подпись сделана Вт 30 май 2017 06:05:03 +09
gpg: ключом DSA с идентификатором 474F05837FBDEF9B
gpg: ПЛОХАЯ подпись пользователя "GNU ELPA Signing Agent <elpasign@elpa.gnu.org>" [неизвестно]
Но проблема, похоже, не в Эльпе. Потому что:
$ curl -O https://beta.quicklisp.org/quicklisp.lisp
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 57144 100 57144 0 0 28572 0 0:00:02 0:00:02 --:--:-- 21410
[07:29 ib@alzs] ~/files
$ curl -O https://beta.quicklisp.org/quicklisp.lisp.asc
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 882 100 882 0 0 882 0 0:00:01 --:--:-- 0:00:01 923
[07:29 ib@alzs] ~/files
$ gpg --verify quicklisp.lisp.asc quicklisp.lisp
gpg: Подпись сделана Чт 29 янв 2015 05:13:26 +08
gpg: ключом RSA с идентификатором 307965AB028B5FF7
gpg: Не могу проверить подпись: Нет открытого ключа
Ладно, думаю. Хоть в мои планы и не входило изучать как работает GPG, тем не менее пробежал по хелпу, полистал маны на оф. сайте. Выяснил - нужно импортировать открытый ключ. Нашел там-же: https://beta.quicklisp.org/release-key.txt. Импортировал... Оно снова матерится, еще страшнее:
$ gpg --verify quicklisp.lisp.asc quicklisp.lisp
gpg: Подпись сделана Чт 29 янв 2015 05:13:26 +08
gpg: ключом RSA с идентификатором 307965AB028B5FF7
gpg: Действительная подпись пользователя "Quicklisp Release Signing Key <release@quicklisp.org>" [неизвестно]
gpg: Внимание: Данный ключ не заверен доверенной подписью!
gpg: Нет указаний на то, что подпись принадлежит владельцу.
Отпечаток первичного ключа: D7A3 489D DEFE 32B7 D0E7 CC61 3079 65AB 028B 5FF7
Что за «танцы с бубнами» на пустом месте? Нахрена вся эта навороченая безопасность с подписями которая не работает, или я чего-то «не догоняю»?
Кто-нибудь знает, в чем причина, и как поступать в таких случаях?
Кто-нибудь сталкивался с такой проблемой: после добавления пользователю членства в новой группе клиентское подключение по ssh не видит добавленной группы:
Тут по ssh пользователь не видит своего членства в группе www, и соответственно не получает предоставляемых членам этой группы прав на файлы. Но если авторизуется локально (из аппаратной консоли сервера) - все группы отображаются корректно и набор прав доступа соответствует. Кто-то знает, что это за грабли?
---
Выяснено, что проблема в кэшировании параметров SSH-сессий на стороне клиента. Решается [грубо] перезагрузкой клиентского хоста, хотя наверняка есть и более корректное решение.