Ответы пользователя по тегу Linux
  • Как писать код С++ на Линукс?

    @rPman
    Настоятельно рекомендую начать изучение c++ с командной строки (буквально hello world писать в текстовом редакторе и собирать, запуская вручную gcc/clang), т.е. тулчейна, затем системы сборки, make, cmake, scons (кстати это питоновские скрипты, описывающие проект) и вот после того как пощупаешь, соберешь чужие проекты, и вот тогда загляни в красивые GUI (idea/qtcreator/eclipse/...)
    Ответ написан
    Комментировать
  • RAID 1 из дисков разной емкости?

    @rPman
    Программный рейд mdadm или фишки файловых систем btrfs и zfs, позволяют создавать raid массивы на основе разделов а не дисков (вообще любых блочных устройств, в т.ч. каскадно), производитель дисков или дискового контроллера будет не важен

    В твоем случае ты можешь разбить 1т.б. диски на по 2х 500гб раздела, и объединить по отдельности первые с 500гб дисками и вторые друг с другом
    Ответ написан
    Комментировать
  • Как записать iso образ на флешку из-под Linux Manjaro?

    @rPman
    Если флешка и машина, на которой она будет использоваться, работает в режиме EFI, то достаточно отформатировать флешку как fat32 и распаковать на нее содержимое iso, открыв его как архив. Все делается из GUI в linux штатными инструментами, например работа с разделами, форматирование - gparted/kde patitionmanager

    Если система на флешке не умеет EFI или загружаться это будет на машине с legacy boot mbr, то есть лайфхак (я встречал только одну очень старую машину где это не сработало, речь идет о 10-15-летней материнке), просто скопировать посекторно содержимое iso на устройство, к сожалению gui для этого под linux нет (точнее есть что то типа gdiskdump но не в репозитариях, да и зачем такую простую задачу усложнять), для этого используют dd, причем iso записывается прямо на весь диск а не раздел, пользоваться такой флешкой до переформатирования можно будет только для чтения этого образа.
    Ответ написан
    2 комментария
  • Почему доступно 0 байт на диске?

    @rPman
    у тебя разные диски по UUID но mtab почему то записались как /dev/sda1
    В системе явный глюк, либо что то прописано хитрое в initramfs, либо просто глючит ядро с UUID, либо что то хитрое прописано в systemd *.mount файлах (никогда не пользовался но там есть такой способ)
    для начала:
    1. загрузись в livecd
    2. проверь диски на целостность с помощью fsck
    3. примонтируй корневой диск /dev/sdb1 вручную
    4. убери из fstab монтирование /dev/sda1 /mnt/data1 кстати в качестве эксперимента везде укажи прямой путь к диску а не UUID (можно указывать не /dev/sdX а /dev/disk/by-id/xxx так как бывает редко но устройства могут произвольно менять порядок сегодня sda завтра sdb, например если это разные контроллеры)
    перезагрузись и проверь что изменилось
    Ответ написан
    Комментировать
  • Форматирование смонтированного диска?

    @rPman
    Штатно операционная система не даст офторматировать файловую систему, если она примонтирована, но это не значит что ты не можешь в принципе что то туда записаь, root доступ это позволяет.

    Например можно проделать с помощью виртуализации, если диск передать как устройство внутрь файловой системы и уже из нее провести форматирование

    Так вот если файловая система была открыта с доступом на запись, то во время ее размонтирования, даже если на нее не было проведено какой либо записи во время этого эксперимента, в зависимости от формата файловой системы (например это замечено у btrfs, пишет много при размонтировании), может записывать данные в этот момент, а это значит состояние файловой системы будет в неконсистентном состоянии, и если эти записи попадут на области, которые разметило форматирование - структуры будут повреждены.

    При монтировании в режиме только для чтения, проблем с отформатированным диском не будет, но чтение с этого диска начнет выдавать ошибки

    p.s. одновременно смонтированный на запись диск из хост и гостевой системы при использовании описанной схемой монтрования с помощью виртуализации, с очень высокими шансами повреждает структуры файловой системы и даже данные, в которые велась запись
    В одном моем конфиге был момент, когда внутри виртуальной машины использовался системный диск и если не успеть выбрать правильную ос, получалась одновременная загрузка одной и той же системы на хосте и в гостевой машине, данные на диске повреждались во всех случаях (потерялись даные mysql базы используемой какими то системными утилитами), это был 'временный конфиг' и даже тут успел напортачить, позже само собой для виртуалки был настроен отдельный grub, кстати совет, не размещать windows по соседству с linux, с очередным обновлением с высокой вероятностью приезжает что то ломающее загрузчик
    Ответ написан
    Комментировать
  • Почему не грузится диск после клонирования с ide на sata?

    @rPman
    в grub или что у тебя там и в /etc/fstab, как прописан путь до корневого диска и остальных? через /dev/xxx или UUID=xxxxxx ?
    старые ide диски в старых версиях linux назывались /dev/hdX
    а новые /dev/sdX

    но лучше прописать по UUID=xx а сам идентификатор узнать с помощью к примеру ls -l /dev/disk/by-uuid/

    загружайся в рекавери режим или с livecd любого linux и правь конфиги

    в grub можно временно поправить конфиг, нажав клвишу e на нужном меню
    Ответ написан
    9 комментариев
  • Исправить ошибку после ребута Linux машины?

    @rPman
    загрузиться в рековери режиме (в меню загрузки grub выбирать advanced - recovery) там можно выбрать проверку диска в меню либо вручную зайти в консоль и сделать fsck и раздел то что у тебя /
    Ответ написан
  • Как запустить devtools в обычной консоли?

    @rPman
    посмотри как сделали тут
    Ответ написан
    Комментировать
  • Почему ноутбук не перестает работать в режиме сна?

    @rPman
    загляни в bios посмотри что там в разделе acpi прописано, на старых машинах можно было выбирать какой режим сна будет доступен от полного до лайтового, где только экран отключался, правда называлось это странно но как минимум перебором можно протестировать
    Ответ написан
  • Как исправить ошибку при обновлении пакетов?

    @rPman
    идешь на сайт apt.pop-os.org и копируешь от туда команду сразу большими буквами написана
    apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 63C46DF0140D738961429F4E204DD8AEC33A7AFF

    ну и в догонку, поддерживает он только impish и jammy релизы ubuntu
    Ответ написан
    Комментировать
  • Какой сервер используется в Ubuntu?

    @rPman
    приложения на nodejs поднимают свой веб сервер (буквально слушает порт и обрабатывает http запросы), это не сложный процесс даже для высоконагруженных задач

    собственно для расширения кругозора погугли что такое вебсервер однострочник
    Ответ написан
  • Какая Linux без проблем встанет вместе с Windows 10(на один диск)?

    @rPman
    Практически все современные linux для загрузки используют grub, т.е. вне зависимости от выбранной ОС способ настройки и потенциальные проблемы - одни и те же.

    Настоятельно рекомендую grub (и EFI раздел linux если используется secureboot) не совмещать с загрузчиком windows и в идеале выделить любой носитель (хоть флешку или карту памяти, потребуется от силы несколько десятков мегабайт а для mbr legacy - всего 1) и для выбора с чего загружаться выбирать загрузочный раздел в BIOS. Саму же систему можно ставить куда угодно, я помню были даже решения, когда linux размещался в файле-контейнере на window диске (да это медленнее).

    Дело в том что конечно linux умеет предлагать выбор, что загружать, linux или windows. но майкрософту это не нравится ис периодичесттью раз в 1-2 года, с очередным обновлением приезжает какая то хрень и что то перестает работать, можно получить проблемы на пустом месте (например grub подменялся на майкрософтовский загрузчик и приходилось его восстанавливать), или вот - например у меня в прошлом году win10 отказывалась обновляться, ошибка маловразумительная причины гуглились в linux загрузчике но решения не подходили, я тогда помаялся и впервые решил проблему в win10 переустановкой, как это было когда то с winxp (скорее всего решение было но там был вопрос времени)
    Ответ написан
    Комментировать
  • Как удалить программу через Ubuntu Software?

    @rPman
    Универсальный способ удаления программ в linux, установленных с помощью пакетного менеджера
    1. определить как называется пакет (его настоящее название а не то что подменяет отвратительный Центр Приложений)
    можно посмотреть в самом центре приложений снизу в описании будет написано что то типа
    GHex is a hex editor for the GNOME desktop.

    можно забить в поиск synaptic или консольной apt свое название gnome hex editor и в полученном списке ищем что то похожее
    p.s.
    это одна из причин за что Центр приложений ненавидят
    помимо страшных тормозов на топовых машинах
    у них какой то свой список приложений и рядовому пользователю не совсем понятно что есть что, даже описания не совпадают иногда с тем что в пакете, вто что покажет apt show ghex
    Description: GNOME Hex editor for files
    The GHex program can view and edit files in two ways, hex or ascii. Good
    for editing saved game files.
    а вот что центр приложений
    GHex is a hex editor for the GNOME desktop.

    GHex can load raw data from binary files and display them for editing in the traditional hex editor view. The display is split in two columns, with hexadecimal values in one column and the ASCII representation in the other. A useful tool for working with raw data.
    кстати они еще умудрились мультиязыковую поддержку убить, в пакетах есть русскоязычное название а в центре приложений только английское


    либо смотрим свойства ярлыка запуска, там будет команда, что то типа
    ghex %F
    это имя приложения не обязательно будет совпадать с именем пакета, поэтому для гарантии можно поискать среди установленных
    определяем путь к запускаемому приложению если в ярлыке не указан
    # whereis ghex
    ghex: /usr/bin/ghex /usr/share/man/man1/ghex.1.gz
    затем определяем имя пакета по имени файла (не обязательно запускаемого)
    # dpkg -S /usr/bin/ghex
    ghex: /usr/bin/ghex

    тут слева имя пакета, справа имя файла (может быть что один и тот же файл есть в разных пакетах
    p.s. если поиск пакета по файлу не сработал, значит данный пакет не установлен, если не говорить в разрезе задачи удаления а просто определить в каком пакете нужный файл, нужно установить утилиту apt-file, она загрузит базу всех пакетов и позволит искать по ним (так же на сколько я знаю при установке bashcompletion при запуске неизвестного приложения будет выдаваться список пакетов где есть похожие по имени)

    2. узнав имя пакета его можно удалить либо synaptic либо в консоли
    apt remove ghex
    или
    apt purge ghex

    вторая команда не только удалит пакет но и файлы настроек которые пользователь или программа за время работы понасоздавала

    если что то идет не так, то нужно смотреть сообщения об ошибках
    p.p.s. есть мощный консольный GUI для пакетного менеджера - aptitude, умеет много проблем разруливать
    Ответ написан
    Комментировать
  • Не открываются консольные программы, как решить?

    @rPman
    Однозначно, что то ты сделал лишнее, инструкции на видео вполне исчерпывающие.

    Тебе необходимо пройти установку по шагам (перед этим удали wsl и установку что уже сделал), и на каждом шаге сравнивать сообщения у тебя на компьютере и на видео

    p.s. kali linux внутри windows это хардкор, зачем начинать обучение с вырезанием 'глад через задницу'?
    Ответ написан
    Комментировать
  • Как в Linux создать 1 том из двух дисков?

    @rPman
    backup format restore, используя livecd или консоль восстановления (лучше удобный livecd)

    у тебя на выбор lvm, mdadm (рейд 0 - stripe), btrfs/zfs
    делать резервную копию временно на новый диск, затем выбираешь любой инструмент (в зависимости от выбора будут требования по разбивке дисков), форматируешь раздел, восстанавливаешь и расширяешь диск.

    самое простое использовать btrfs, это файловая система поддерживает онлайн из коробки и добавление/удаление дисков и расширение разделов, в т.ч. raid всех уровней, сжатие на лету, дедупликация (инструменты кстати пока еще не из коробки), бесплатные снапшоты и прочее прочее, поддерживается grub (т.е. не нужно делать /boot раздел) и т.п. (к сожалению efi раздел для secureboot или biosboot для legacy на gpt все еще нужны)

    т.е. длелаешь копию на втором диске, затем форматируешь раздел на старом как btrfs, копируешь обратно, добавляешь к первому диску второй раздел команда
    btrfs device add /dev/sda1 /dev/sdb1
    затем обновляешь grub
    grub-install /dev/sda --root-directory=/path/to/mounted/root

    p.s. кстати в linux файловые системы можно разворачивать прямо на диске, без создания разделов (но тогда нужен /boot где то разворачивать)
    Ответ написан
    Комментировать
  • Как перенести VDS сервер Ubuntu на другой хостинг?

    @rPman
    Сначала делаем backup.
    При наличии root доступа штатно linux переносится даже простым tar!

    Хостер может добавить своих утилит, свои скрипты и особенности настройки сети, свой способ загрузки (например нет /boot а загрузка ядра и initramfs идет 'снаружи'), это все в принципе восстанавливается, скрипты хостера чистятся и т.п... в основном только тут могут быть проблемы но все просто решается.

    Затем восстановление - и тут могут быть проблемы.
    Универсально все будет работать только с не openvz/lxc/docker системами виртуализации, так как такие могут тупо не позволить работать с версиями системных библиотек (очень редко), отличных от хоста... а у тебя древняя ubuntu (я запускал в chroot просто утилиты, развернув образ с помощью debootstrap еще до появления docker, так что технически шансы проблем - минимальны). Дело в том что хостер может запретить, а точнее не дать инструментов для подмены системных файлов, а из самой работающей системы заменить ее саму нельзя (очень сложно).

    p.s. я помню, поднимал систему, загрузив ее внутри user mode linux на машине даже без админовских прав, каскадно на системе с openvz (по умолчанию может не хватать некоторых модулей ядра, особенно для настроек сети, но там все решаемо), народ забыл про этот способ контейниризации без наличия аппаратной поддержки виртуализации, но она есть, старейшая, мощнейшая и удобнейшая из всех (по поводу производительности спорно - числодробилки быстро, но системные вызовы медленее)
    --------------

    Если виртуальная машина kvm/vbox/vmware/... то проблем не будет от слова совсем. Чтобы развернуть бакап, понадобится на новом месте загрузиться в консоль восстановления (лучше с iso образа), отформатировать файловую систему и тупо распаковать архив с бакапом (обычно /dev в архив не складывают, но если его не будет на новой системе то я помню старые версии ubuntu ругались на отсутствие null, это все решается ручным копированием тут же), затем переустановить загрузчик
    grub-install /dev/sdX --root-directory=/path/to/mounted/root/

    Ну и само собой архитектура исходной машины и новой должны совпадать, т.е. нельзя смешивать ни тип процессора (x86/arm ни битность x86/x64), правда особых проблем с запуском x86 на x64 быть не должно.
    Ответ написан
    Комментировать
  • Как создать виртуальный дисплей?

    @rPman
    питон тут однозначно не подойдет

    для windows:
    Без использования драйверов фейкового монитора, но при наличии физических выходов на видеокарте, можно к ним подключить заглушку (она дешевая, разная для каждого типа разъемов, гуглить эмулятор заглушка терминатор монитора dsub/hdmi/dp), благодаря которой система будет считать что монитор подключен, и уже средствами ОС работать с этим монитором (само собой чтобы самому видеть содержимое придется поставить какой-нибудь vnc с поддержкой мультимониторной конфигурации)

    Есть бесплатный враппер (это не кряк а утилита использующая штатный win api), которая превращает рабочие ревизии windows в сервер терминалов (позволяет подключиться mstsc одновременно несколько сессий а не только одну), фокус к сожалению будет убегать но можно сделать каскадные подключения

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

    (после win8 лицензия стала запрещать использовать компьютер с такими ревизиями больше чем одному человеку, даже игры splitscreen, следовать ли этому бредовому требованию - на вашей совести, технических ограничений нет)

    рекомендую если надо запускать браузеры с автоматизацией и без потери фокуса, дешевле по памяти
    для linux:
    вот пример создания виртуальных мониторов программно (там более сложный случай описывается)

    так же можно установить несколько xserver, работающих в оперативной памяти - vfb, это будут полноценные рабочие места, работающие исключительно в оперативной памяти (подключение например по vnc)

    и есть xephyr, версия xserver, работающая внутри окна (т.е. буквально выбираешь любое окно, хоть фейковое и говоришь - заменить изображение окна полноценным xserver, мышка и клавиатура будут общими но можно настроить (так делают multiseat на одной видеокарте с несколькими видеовыходами)
    Ответ написан
    Комментировать
  • Почему медленно скачиваются файлы в Manjaro Cinnamon?

    @rPman
    Если замерить скорость на speedtest, то выдаёт 800-900 Mbps
    повыбирай сервера в speedtest, находящиеся в разных странах, начнешь понимать что скорость в интернете штука условная и зависит от кучи вещей

    Кстати speedtest показывает скорость в мегабитах, а при копировании файла в проводнике - в мегабайтах, эти единицы измерения отличаются в 8 раз (в байте - 8 бит)

    Тут важны и расстояние, и провайдеры, включая того у кого размещен файл, и настройки сервера и его текущая нагрузка.

    p.s. в современных реалиях 2мбайта/с это даже хорошая скорость
    Ответ написан
    Комментировать
  • Как на Linux читать и изменять память процесса?

    @rPman
    погуглю за тебя
    помимо самого доступа нужно еще и чужие структуры понимать, а это значит использовать как минимум те же версии подключаемых библиотек (в т.ч. статически, что не так просто определить)
    Ответ написан
    Комментировать
  • Как оптимизировать параметры монтирования?

    @rPman
    в опции монтирования добавить noatime,nodiratime - я не видел ни одного применения этой 'время последнего доступа' (при чтении идут записи на диск)... это и для ssd рекомендую

    если данные на диске не содержат важных вещей, т.е. не страшно потерять данные при внезапном выключении компьютера, то data=writeback и barriers=0 (на сколько я помню нужно будет еще в самой файловой системе это прописать tune2fs -o journal_data_writeback ... ), это СИЛЬНО поднимет скорость записи на диск (что очень помогает для тестовых задач) но при внезапном выключении или подвисании компьютера можно получить кашу вместо данных

    p.s. Если данные важны, а скорость записей ext4 хоть немного поднять хочется, то можно все же найти ssd диск и разместить на нем журнал (это максимум гигабайт)
    https://raid6.com.au/posts/fs_ext4_external_journal/
    p.p.s. смени файловую систему на btrfs и включи компрессию, это немного поднимет производительность за счет меньшего объема операций и небольшого повышения нагрузки на процессор
    Ответ написан
    1 комментарий