суббота, 31 августа 2024 г.

Не загружается система: [initramfs]: Please, fsck /dev/sda1

Данное сообщение на чёрном экране говорит о том, что необходимо проверить файловую системы дискового раздела sda1 на предмет наличия ошибок на его файловой системе. Имеется два варианта:

1) загрузиться с загрузочной флэшки и через gparted проверить файловую систему нужного раздела диска на ошибки;

2) ввести, как рекомендует система, команду fsck /dev/sda1

Не вводите sudo fsck /dev/sda1 ( ! ), вводите именно то, что указано. После ввода нужной команды диск будет проверяться на наличие ошибок. Если ошибка будет обнаружена, то будет предлагаться исправить её, нажав клавишу y (yes, то есть "да"). Возможно, что такие ошибки придётся исправлять несколько раз. После того как все ошибки будут исправлены попробуйте перезагрузиться через Ctrl-Alt-Del. 

пятница, 30 августа 2024 г.

TimeSync – замена стандартной службы времени Windows

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

Одно время мной использовался NetTimeSync. Однако потом был найден ещё один инструмент, который для моих нужд показался мне более предпочтительным за счёт того, что в нём отсутствуют как индикатор на панели задач, так и никогда не используемая мной совмещенная возможность одновременно выступать и как источник точного времени для других компьютеров сети. Просто клиент, который работает и синхронизирует время.

Сайт программы здесь. Скачать ПО здесь. Просто нажать кнопку Download и скачать файл exe. На момент публикации данной заметки последняя версия этого ПО была 1.90  Несмотря на то что в тексте картинки приводятся для версии 1.89, не думаю, что в интерфейсе программы произошли революционные изменения, что и подтверждается замечаниями к релизу.

Установка делается в один клик:


после чего клиент сразу же начинает работу. Встроенную службу времени можно либо отключить, либо вообще разрегистрировать (если вы являетесь продвинутым пользователем).


Перейдите в Settings и установите интервал синхронизации такой, какой вам необходим (Update interval). На примере ниже установлено "каждые 30 минут". Ведение протокола отключено.

Источники серверов точного времени мной не изменялись, поскольку у меня не было такой необходимости: при обращении к указанным источникам (pool.ntp.org) мой провайдер производит перенаправление запросов на региональный пул адресов серверов NTP.


Ну и собственно сама служба в диспетчере задач:


Что ещё сказать про данное ПО даже не имею представления.


среда, 28 августа 2024 г.

Автоматизация действий с файлами при использовании Syncthing

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

Подсчитывается количество файлов в папке источника $source (путь к папке задаётся в переменных скрипта, например, source=/home/minter/Документы/Exchange). Подсчёт производится без учёта вложенных папок папки источника, то есть из него исключаются папки .stfolder и .stversions. Также из подсчёта исключаются файлы, загрузка которых ещё не завершена и которые будут иметь расширение .tmp  Если результат подсчёта равен 0, то ничего не предпринимается. В противном случае выполняются какие-то действия.

#!/bin/bash
count=`find $source -maxdepth 1 -type f ! -name "*.tmp" | wc -l`
if [ $count -eq 0 ]; then
    :
  else
    перечисление действий или выполняемые скрипты sh
fi
exit

Например, перенести файлы jpg и mp4 в нужные папки $dest1 или $dest2. Подсчёт нужных файлов производится по их расширениям:

Для файлов jpg:

cjpg=`find $source -maxdepth 1 -name "*.jpg" | wc -l`
if [ $cjpg -eq 0 ]; then
      :
  else
      mv $source/*.jpg $dest1
fi

Для файлов mp4:

cmp4=`find $source -maxdepth 1 -name "*.mp4" | wc -l`
if [ $cmp4 -eq 0 ]; then
      :
  else
      mv $source/*.mp4 $dest2
fi 

Для переноса папок вопрос усложняется, так как необходимо учесть множество условий. Задача становится более простой, если передаваемая папка будет упакована в какой-либо архив: tar, zip. 7z  Если при подсчёте файлов будут найдены файлы с расширениями tar, zip, 7z, то будет запущена задача извлечения данных из таких архивов в папку назначения (например, $dest), а исходные файлы могут быть либо удалены начисто, либо перемещены в Корзину. Примеры ниже.

Файлы архивов tar

ctar=`find $source -name "*.tar" | wc -l`
if [ $ctar -eq 0 ]; then
    :
  else
    for package in $dest/*.tar;
    do
    tar -xf "$package" -C $dest
    done
    # указать одно из двух
    rm $source/*.tar  # удалить начисто
    gio trash $source/*.tar  # удалить в Корзину
fi

Файлы архивов tar.gz

ctargz=`find $source -name "*.tar.gz" | wc -l`
if [ $ctargz -eq 0 ]; then
    :
  else
    for package in $dest/*.tar.gz;
    do
    tar -xzf "$package" -C $dest
    done
    # указать одно из двух
    rm $source/*.tar.gz  # удалить начисто
    gio trash $source/*.tar.gz  # удалить в Корзину
fi

Файлы архивов zip

czip=`find $dest -name "*.zip" | wc -l`
if [ $czip -eq 0 ]; then
    :
  else
   for package in $dest/*.zip;
   do
   unzip -d $dest "$package"
   done
    # указать одно из двух
    rm $source/*.zip  # удалить начисто
    gio trash $source/*.zip  # удалить в Корзину
fi

Файлы архивов 7z

c7zsp=`find $source -name "*.7z" | wc -l`

if [ $c7z -eq 0 ];
  then
    :
  else
    for package in $source/*.7z;
    do
    7z x "$package" -o$dest
    done
    # указать одно из двух
    rm $source/*.7z  # удалить начисто
    gio trash $source/*.7z  # удалить в Корзину
fi

Если архивы 7z закрыты паролем, данный пароль не меняется и применяется постоянно, то команда распаковки будет иметь вид:

7z x -pпароль "$package" -o$dest

Такие архивы можно помечать дополнительной буквой, например s, добавляемой к концу имени файла. Тогда вместо *.7z нужно будет указать *s.7z

воскресенье, 25 августа 2024 г.

Выключить звук при старте Linux Mint на ПК Apple Macmini

Достался мне по случаю ПК Apple Macmini 5,2. Имевшийся на нём Mac был снесён, а вместо него был установлен Linux Mint 22. И, казалось бы, что всё замечательно: отзывчивость очень хорошая, производительность на высоте, но "ложка дёгтя в бочке мёда" имелась – появляющийся при старте звук из встроенных динамиков доводил до состояния "белого каления". Но, как оказалось, эту встроенную функцию можно выключить, то есть установить громкость звука динамика при старте в уровень 0.

Сначала установите пакет efivar. Мне вывод команды sudo apt install efivar сообщил, что такого пакета не найдено. Однако, как показало следствие, в репозитории он имеется и его можно установить из Synaptic.


Далее следует сделать изменяемым параметр 
SystemAudioVolume-7c436110-ab2a-4bbb-a880-fe41995c9f82

sudo chattr -i /sys/firmware/efi/efivars/SystemAudioVolume-7c436110-ab2a-4bbb-a880-fe41995c9f82

Можно посмотреть, какое указанный параметр значение имеет сейчас:

sudo efivar -n 7c436110-ab2a-4bbb-a880-fe41995c9f82-SystemAudioVolume -p

В англоязычном источнике, которым я руководствовался, был указан вывод:

GUID: 7c436110-ab2a-4bbb-a880-fe41995c9f82
Name: "SystemAudioVolume"
Attributes:
Non-Volatile
Boot Service Access
Runtime Service Access
Value:
00000000  1a

У меня, если не ошибаюсь, последняя строка была такой:  00000000  6k
 
📌   Далее необходимо переключиться на su, так как для изменения значения рассматриваемого параметра команда вида sudo ... вернёт ответ, что изменение запрещено.

sudo su

После этого выполняется команда:

printf "\x07\x00\x00\x00\x00" > /sys/firmware/efi/efivars/SystemAudioVolume-7c436110-ab2a-4bbb-a880-fe41995c9f82

и для изменённого параметра восстанавливается существовавший ранее запрет на внесение в него изменений:

chattr +i /sys/firmware/efi/efivars/SystemAudioVolume-7c436110-ab2a-4bbb-a880-fe41995c9f82

Проверьте, какое значение имеется сейчас.

efivar -n 7c436110-ab2a-4bbb-a880-fe41995c9f82-SystemAudioVolume -p

Должно быть:

GUID: 7c436110-ab2a-4bbb-a880-fe41995c9f82
Name: "SystemAudioVolume"
Attributes:
Non-Volatile
Boot Service Access
Runtime Service Access
Value:
00000000  00 

Если у вас последняя строка точно такая же, то можете себя поздравить – при дальнейших стартах системы звука из динамиков раздаваться не будет. 

воскресенье, 11 августа 2024 г.

Brave stable InRelease не поддерживает архитектуру «i386»

При использовании установленного по инструкции с официального сайта браузера Brave при выводе информации в терминале после команды sudo apt update имеет место следующая запись: 

Пропускается получение настроенного файла «main/binary-i386/Packages», так как репозиторий «https://brave-browser-apt-release.s3.brave.com stable InRelease» не поддерживает архитектуру «i386»

Со временем данная информации стала раздражать. К счастью, устраняется легко. Перейдите в файловом менеджере в папку etc файловой системы и далее в apt. Станьте курсором мыши на папку sources.list.d и, вызвав правое контекстное меню мыши, откройте её с правами суперпользователя (Открыть как root). 



В этой папке найдите файл brave-browser-release.list. Если у вас установлены версии этого браузера Beta и Nighty, то понадобится также обращаться к файлам brave-browser-beta.list и brave-browser-nightly.list Нужный файл откройте в текстовом редакторе. Внесите в содержание файла изменения, добавив перед signed-by=... arch=amd64, пробел:

deb [arch=amd64 signed-by=...

Сохраните изменения.