операционная система

Подождите немного, страница загружается.
Здоровый сон не только продлевает жизнь, но и сокращает рабочее время!

"Существует только один босс, и это покупатель. Он может уволить любого сотрудника компании вплоть до директора, просто потратив деньги в другой компании." Сэм Уолтон

Join Us

QR

Содержание:

split
swap swap

Подключение видеокамеры SONY CMU-BR200 к компьютеру

Основное назначение видеокамеры SONY CMU-BR200 - исползование со Skype на телевизорах SONY.
Для подключения SONY CMU-BR200 к компьютеру, в ядре необходимо установить следующие параметры:

Device Drivers --->
<*> Multimedia support --->
Media device types ----
[*] Cameras and Video grabbers
# настройка видеокамеры
Media drivers --->
[*] Media USB Adapters --->
<M> USB Video Class (UVC)
[*] UVC input events device support
<*>Sound card support --->
# настройка микрофона
<*>Advanced Linux Sound Architecture --->
[*] USB sound devices --->
<M>USB Audio/MIDI driver

Код разворота видеокамеры Skype

Для компьютера ASUS K50IJ. Архитектура x86

#!/bin/sh

LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype

Щёлкаем правой кнопкой по значку “Skype”, выбираем настройка виджет “Значок”, приложения, в "Команда". Прописываем:

LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype

и жмём "OK"

Проблемы со звуком Skype при установке pulseaudio

Раскомментируйте строчки в /etc/pulse/daemon.conf:

default-fragments = 4
default-fragment-size-msec = 25

Создание иконки для запуска программ

1) Создаём скрипт запуска программы (в примере Samba):

sudo vim ~/QEMU/Samba/Запуск_Samba.sh

!/bin/sh

sudo /etc/init.d/samba start

2) Делаем его исполняемым

sudo chmod +x ~/QEMU/Samba/Запуск_Samba.sh

3) Создаём ярлык нашего приложения Samba.desktop (Расширение desktop обязательно) в любом редакторе:

[Desktop Entry]
Name=Samba
Comment=Запускаем Samba
GenericName=Samba-start
Keywords=Gentoo-Windows
Exec=sh ~/QEMU/Samba/Запуск_Samba.sh
#Terminal=false

Terminal=true
Type=Application
Icon=~/Анимашки/Колобок.png
Categories=Graphics;Photography;GTK
Path=
NoDisplay=false

Cвойства подробнее:
Name - имя приложения, которое будет отображаться под иконкой в "Главном меню";
Keywords - слова, по которым будет искаться данный ярлык в "Главном меню";
Exec - строка запуска приложения;
Terminal=true - запускать или false - не запускать приложение в окне терминала;
Type - определяет «раздел» в "Главном меню", где будет находится ярлык приложения;
Icon - путь или общесистемное название иконки;
Categories - категории, к которым будет относится ярлык приложения при выборе в "Главном меню" фильтров. Проще всего подсмотреть в ярлыке другого приложения, категория которого подходит;
Path - путь к рабочему каталогу приложения;
NoDisplay=false - отображать иконку в "Главном меню" или true не отображать.
Сохраняем его для рабочего стола KDE в директории ~/.local/share/applications.
Для рабочего стола Gnome в /usr/share/applications/.
Не забываем про права. Должны быть: -rv-r--r-- root root.
Ярлык появится в "Меню запуска приложений".

Руссификация KeePass

Скачиваем и распаковываем файл KeePass-2.XX-Russian.zip.
Создаём директорию для KeePass версии 2.38 и выше:

mkdir /usr/lib64/keepass/Languages (L заглавная!)

копируем туда распакованный файл Russian.lngx.
Далее запускаем KeePass, меняем язык и перезапускаем программу.
Для возможности автонабора логина и пароля при авторизации устанавливаем:

emerge --ask x11-misc/xdotool

Для возможности копирования в буфер обмена устанавливаем:

emerge --ask x11-misc/xsel

Установка пакетов программ из исходных кодов

Открытый исходный код (open source) означает, что код программы или блокчейна является общедоступным и может быть кем-либо проверен. Это позволяет другим проверять, сообщать об улучшениях, а также предупреждать, являются ли сервисы неисправными или вредоносными. В блокчейне и криптовалютах этот аспект необходим для открытого и инклюзивного сообщества.
После распаковки пакета, найти файл “Install” или “Readme” где будет указан способ установки.
Перейти (с помощью команды cd) в каталог, содержащий исходные коды устанавливаемого пакета.
1. Выполнить команду ./configure, которая осуществляет конфигурирование пакета в соответствии с вашей системой.
2. В некоторых программах используются возможности компилятора генерировать зависимости с помощью команды вида make depend
3. Выполнить команду make, для того, чтобы скомпилировать пакет.
Процесс выполнения этой команды занимает довольно длительное время, причем команда выдает на экран сообщения о том, какие именно особенности системы исполняются.
4. После этого можно выполнить (это шаг не является обязательным) команду make check, которая вызывает запуск процедур самотестирования, поставляемых с пакетом.
5. Выполнить команду make install для установки программ, а также файлов данных и документации.
Для выполнения этой команды могут потребоваться права супер пользователя:

sudo make install

6. Заключительный этап состоит в выполнении команды make clean, которая удаляет промежуточные объектные и двоичные файлы из каталога с исходными кодами.
Для удаления временных файлов, которые создала команда configure (после чего пакет можно компилировать для другого типа компьютеров), надо выполнить команду
make distclean
7. Если сборка не может произойти по какой любо причине, прежде чем пытаться компилировать исходники снова, необходимо запустить make clean, чтобы удалить все файлы, оставленные прошлой попыткой компиляции.
8. В некоторых пакетах есть функция "uninstall" ("удалить"), которая удаляет программу из системы. Просто вернитесь обратно в основную директорий с исходными кодами и выполните команду:

make uninstall

PATH Эта переменная содержит разделенный двоеточиями список каталогов, в которых система ищет исполняемые файлы. Введенное имя это исполняемый файл, но если исполняемый файл не находится в каталоге из списка, то система не будет выполнять его (можно указать полный путь в качестве команды).
Для определения переменной окружения локально, используйте ~/.bashrc или ~/.bash_profile:

vim ~/.bashrc
PATH="${PATH}:/home/my_user/bin:"


После reboot, переменная PATH будет обновлена.
Определение переменной PATH для текущей сессии, с использованием команды export:

export PATH="${PATH}:/home/my_user/tmp/usr/bin"

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

Файл подкачки swap

Если после установки или модернизации системы нужно изменить область подкачки, создаём swap файл:

dd if=/dev/zero of=/swapfile bs=1M count=512

где:
if указывает на источник, т.е. на то, откуда копируем,
of указывает на файл назначения,
bs количество байт, которые будут записаны за раз,
count сколько раз будет записано количество байт указанные в bs.
В команде dd для задания размеров можно использовать суффиксы K, M, G для килобайт, мегабайт и гигабайт соответственно.
Таким образом, команда создаст файл 1*512 мегабайт.

chmod 600 /swapfile # Ограничиваем безопасность файла, доступ только для root.

Сообщаем системе, что это файл подкачки:

mkswap /swapfile

Подключаем файл подкачки:

swapon /swapfile

Проверяем, что swap подключен

swapon -s

Чтобы не подключать swap файл каждый раз, добавляем строчку в /etc/fstab:

/swapfile none swap sw 0 0

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

swapon -p 1 /swapfile

Приоритет является целым числом от 0 до 32767.

Для отключения файла подкачки:

swapoff -a

Для systemd создаём Unit swap.service:

vim /etc/systemd/system/swap.service

следующего содержания:

[Unit]
Description=Start swap

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/swapon /swapfile
ExecStop=/sbin/swapoff /swapfile

[Install]
WantedBy=multi-user.target

Перезагружаем systemd для измененния Unit:

systemctl daemon-reload

Добавляем Unit в автозапуск:

systemctl enable swap.service

Запускаем Unit:

systemctl start swap.service


Для Btrfs устанавливаем необходимые атрибуты в файле подкачки, отключив копирование при записи и сжатие.

cd /path/to/ # путь к директории в которую устанавливаем файл swapfile
truncate -s 0 ./swapfile
chattr +C ./swapfile
btrfs property set ./swapfile compression none


zfs не позволяет использовать файлы подкачки, но можно использовать том ZFS (ZVOL) в качестве подкачки. Важно установить размер блока ZVOL в соответствии с размером системной страницы, который можно получить с помощью команды getconf PAGESIZE (по умолчанию для x86_64 это 4 КиБ). Другой вариант, полезный для поддержания нормальной работы системы в ситуациях с нехваткой памяти - это отказ от кэширования данных ZVOL.
Создайте том zfs размером 8 ГиБ:

zfs create -V 8G -b $(getconf PAGESIZE) -o compression=zle \
-o logbias=throughput -o sync=always \
-o primarycache=metadata -o secondarycache=none \
-o com.sun:auto-snapshot=false <pool>/swapfile


Готовим его как раздел подкачки:

mkswap -f /dev/zvol/<pool>/swapfile
swapon /dev/zvol/<pool>/swapfile


Добавляем строку в /etc/fstab:

/dev/zvol/<pool>/swapfile none swap discard 0 0

Утилита e2fsck

Linux - одна из самых надёжных операционных систем, однако это не означает, что оборудование на котором она работает так же надёжно.
Жёсткие диски могут работать с ошибками и как следствие, возникают проблемы на файловых системах.
С помощью утилиты e2fsck можно проверить наличие ошибок и восстановить работу файловых систем ext2; ext3; ext4.
Перед её работой необходимо обязательно отмантировать проверяемую файловую систему!!!
Запустить такую проверку лучше всего загрузившись с Live-дистрибутива Linux:

umount /dev/sda4

после успешного размонтирования запускаем утилиту:

e2fsck -f -y -v -C /dev/sda4

-f - принудительная проверка файловой системы, даже если по журналу она чистая;
-y - сообщает, что мы согласны со всеми задаваемыми вопросами утилитой e2fsck;
-v - максимально подробный вывод;
-C - показать прогресс проверки файловой системы.

Сохранение слоя в GIMP

Для сохранения слоя изображения, например gif, необходимо нажать Shift и кликнуть по глазику выбраного слоя.

Логи

Большинство файлов логов Linux находятся в папке /var/log/.
Список файлов логов можно вывести с помощью команды:

$ ls -l /var/log

Некоторых из этих логов встречаются только в определенных дистрибутивах.
/var/log/messages - содержит глобальные системные логи Linux, в том числе те, которые регистрируются при запуске системы. В этот лог записываются несколько типов сообщений: это почта, cron, различные сервисы, ядро, аутентификация и другие.
/var/log/dmesg - содержит сообщения, полученные от ядра. Регистрирует много сообщений еще на этапе загрузки, в них отображается информация об аппаратных устройствах, которые инициализируются в процессе загрузки. Количество сообщений в логе ограничено, и когда файл будет переполнен, с каждым новым сообщением старые будут перезаписаны. Также можно посмотреть сообщения из этого лога с помощью команды dmseg.
/var/log/auth.log - содержит информацию об авторизации пользователей в системе, включая пользовательские логины и механизмы аутентификации, которые были использованы.
/var/log/boot.log - Содержит информацию, которая регистрируется при загрузке системы.
/var/log/daemon.log - Включает сообщения от различных фоновых демонов.
/var/log/kern.log - Тоже содержит сообщения от ядра, полезны при устранении ошибок пользовательских модулей, встроенных в ядро.
/var/log/lastlog - Отображает информацию о последней сессии всех пользователей. Это нетекстовый файл, для его просмотра необходимо использовать команду lastlog.
/var/log/maillog /var/log/mail.log - журналы сервера электронной почты, запущенного в системе.
/var/log/user.log - Информация из всех журналов на уровне пользователей.
/var/log/Xorg.x.log - Лог сообщений Х сервера.
/var/log/alternatives.log - Информация о работе программы update-alternatives. Это символические ссылки на команды или библиотеки по умолчанию.
/var/log/btmp - лог файл Linux содержит информацию о неудачных попытках входа. Для просмотра файла удобно использовать команду last -f /var/log/btmp
/var/log/cups - Все сообщения, связанные с печатью и принтерами.
/var/log/anaconda.log - все сообщения, зарегистрированные при установке сохраняются в этом файле.
/var/log/cron - Всякий раз когда демон Cron запускает выполнения программы, он записывает отчет и сообщения самой программы в этом файле.
/var/log/secure - содержит информацию, относящуюся к аутентификации и авторизации. Например, SSHd регистрирует здесь все, в том числе неудачные попытки входа в систему.
/var/log/wtmp или /var/log/utmp - системные логи Linux, содержат журнал входов пользователей в систему. Можно узнать кто и когда вошел в систему.
/var/log/faillog - лог системы linux, содержит неудачные попытки входа в систему. Используйте команду faillog, чтобы отобразить содержимое этого файла.
/var/log/mysqld.log - файлы логов Linux от сервера баз данных MySQL.
/var/log/httpd/ или /var/log/apache2 - лог файлы linux11 веб-сервера Apache. Логи доступа находятся в файле access_log, а ошибок в error_log.
/var/log/lighttpd/ - логи linux веб-сервера lighttpd
/var/log/conman/ - файлы логов клиента ConMan.
/var/log/mail/ - в этом каталоге содержатся дополнительные логи почтового сервера
/var/log/prelink/ - Программа Prelink связывает библиотеки и исполняемые файлы, чтобы ускорить процесс их загрузки. /var/log/prelink/prelink.log содержит информацию о .so файлах, которые были изменены программой.
/var/log/audit/- Содержит информацию, созданную демоном аудита auditd.
/var/log/setroubleshoot/ - SE Linux использует демон setroubleshootd (SE Trouble Shoot Daemon) для уведомления о проблемах с безопасностью. В этом журнале находятся сообщения этой программы.
/var/log/samba/ - содержит информацию и журналы файлового сервера Samba, который используется для подключения к общим папкам Windows.
/var/log/sa/ - Содержит .cap файлы, собранные пакетом Sysstat.
/var/log/sssd/ - Используется системным демоном безопасности, который управляет удаленным доступом к каталогам и механизмами аутентификации.
Смотрим лог /var/log/messages, с возможностью прокрутки:

less /var/log/messages

Просмотр логов Linux, в реальном времени:

tail -f /var/log/messages

Выводим только ошибки из /var/log/messages:

grep -i error /var/log/messages

Логи хранят в себе ценную информацию, позволяющую понять, что, когда и как происходило в системе.
Но со временем логи вырастают до гигантских объемов.
Чтобы диск системы не переполнился логами под завязку и не завалил её, надо логи периодически подчищать.
Процесс сохранения нескольких копий логов с удалением старой и созданием новой копии называется ротацией.
Для этой цели существует программа logrotate.
После устаноки logrotate создаём файл конфигурации, например (для MySql /etc/logrotate.d/mysql) для Apache2:

vim /etc/logrotate.d/apache2

и заполняем его:

/var/log/apache2/*log {
weekly
# регулярность ротации - ротация раз в неделю, возможна иная периодичность: daily, monthly
compress # сжимать копию лога, по умолчанию для этого используется архиватор gzip, хотя можно изменить на другой
delaycompress # сжимать последнюю копию только при следующей ротации, это удобно, потому что самые свежие логи не придётся разархивировать
notifempty # не ротировать лог, если он пуст
missingok # не проверять наличие файла (если лога нет, то ничего страшного)
rotate 24 # количество сохраняемых копий
mail umanov@mail.ru # отправляет свежую созданную копию на указанный e-mail
create 644 root root # сразу после ротации старого создать новый пустой лог, указываются, соответственно, права доступа, юзер и группа файла
sharedscripts # запустить скрипт или утилиту после ротации всех логов
postrotate # выполнить далее указанный скрипт сразу после ротации
/etc/init.d/apache2 reload > /dev/null 2>&1 || true # перезапускаем apache
# для systemd:
systemctl restart apache2 > /dev/null 2>&1 || true
endscript # признак окончания вызова скрипта
}

Вместо weekly можно указать size 500M
Тестируем конфиг:

logrotate -d /etc/logrotate.d/apache2

С ключом -d программа выводит на экран диагностические сообщения, не трогая логи.
Если всё в порядке, запускаем программу в рабочем режиме:

logrotate -v -f /etc/logrotate.d/apache2

Проверка оперативной памяти с помощью Memtest86+

Memtest86+ записывает в каждый блок памяти информацию, а затем считывает её и проверяет на ошибки. В процессе тестирования утилита совершает несколько проходов, что позволяет выявить и составить список плохих блоков памяти.
Загружаем программу:

emerge --ask memtest86+

После загрузки программы, генерируем конфигурацию GRUB:

grub-mkconfig -o /boot/grub/grub.cfg

Прежде чем, запустить проверку оперативной памяти убираем из слотов все плашки памяти, кроме одной. Каждую плашку проверяем поочерёдно.
Проверку запускаем через меню GRUB.
Программа тестирует оперативную память циклически, т.е. у нее есть десять тестов, которые она гоняет пnо кругу, полный проход по всем от 0 до 9ти.
Пробегов памяти может быть несколько, в зависимости от выбранного режима. Обычно как минимум хватает двух-трёх циклов.
Если по окончании теста выдаётся сообщения ** Pass complete, no errors, press Esc to exit **, то память не содержит неисправных блоков.
Если в процессе или по окончании теста появляются ошибки красного цвета, то память скорее всего неисправная.
Завершить тест можно, перезагрузив компьютер нажатием кнопочки Esc.

Создание мультизагрузочной флешки

Чтобы оставить возможность пользоваться флешкой как обычной, разбиваем её на два раздела.
Начальный, для файлов, этот раздел обязательно должен быть первым.
Второй, загрузочный для установки Grub.
Разбиваем флешку, например, при помощи parted с таблицей разделов GPT.
При использовании интерфейса UEFI для загрузки системы (вместо BIOS), отмечаем загрузочный раздел в качестве раздела EFI System Partition:

(parted) name 2 "EFI System Partition"

Делаем его загрузочным:

(parted) set 2 boot on

Форматируем оба раздела в FAT32
Монтируем второй раздел флешки, например в директорию /mnt:

mount /dev/sdb2 /mnt/

Устанавливаем на флешку Grub для UEFI:

grub-install --target=x86_64-efi --removable --efi-directory=/mnt --boot-directory=/mnt /dev/sdb

Создаём директорию /iso:

mkdir /mnt/iso

Копируем туда .iso файлы.
GRUB2 может загружать образы ядер ОС в том числе из файлов-образов, отображаемых в псевдоустройство командой loopback. Однако следует иметь в виду, что псевдоустройство действует только в пределах загрузчика.
В общем случае загрузка из образа выглядит примерно так:

loopback loop файл-образа
linux (loop)/путь/к/vmlinuz параметры
initrd (loop)/путь/к/initrd


Две последние строчки можно взять из того образа, который нужно загрузить.
Так как средства загрузки с loopback-устройства в разных дистрибутивах различаются, для каждого из них требуется передавать при загрузке параметры, специфичные для данного дистрибутива.
В некоторых дистрибутивах средства загрузки из образа могут и вовсе отсутствовать, поэтому не все существующие загрузочные образы могут быть использованы подобным образом.
Для добавления каждого нового пункта загрузочного меню GRUB, в его конфиг добавляется своя секция menuentry.
Создаём главный файл конфигурации Grub:

vim /mnt/grub/grub.cfg

set default="0"
отвечает за загружаемый по умолчанию пункт меню. Параметры в данном пункте могут быть числовыми (начинается с "0")
set lang=ru_RU.utf8
set timeout="10"
insmod efi_gop
insmod efi_uga
loadfont /grub/fonts/unicode.pf2
set gfxmode=auto
insmod gfxterm
terminal_output gfxterm
insmod gfxmenu
loadfont /grub/themes/starfield/dejavu_10.pf2
loadfont /grub/themes/starfield/dejavu_12.pf2
loadfont /grub/themes/starfield/dejavu_14.pf2
loadfont /grub/themes/starfield/dejavu_16.pf2
loadfont /grub/themes/starfield/dejavu_bold_14.pf2
insmod png
set theme=/grub/themes/starfield/theme.txt
export theme
set timeout_style=menu
#set hidden_timeout_quiet=false
insmod play
play 960 440 1 0 4 440 1
dir=/iso
# Если использовать для образа особый каталог, впиcываем путь к нему (относительно корня раздела) в строку dir=
insmod regexp # для шаблонов * в именах файлов
probe -s root_uuid -u $root # получаем UUID для подстановки в img_dev=
# Для Sysresccd ZFS
for iso in $dir/sysresccd-*_$zfs_*.iso ; do # ищем образ Sysresccd по шаблону
if [ ! -f "$iso" ] ; then continue; fi # только если образ существует
regexp -s Gbuild 'sysresccd-(.+)-'$zfs "$iso" # получаем из имени образа дату сборки
menuentry "Sysresccd ZFS $Gbuild $zfs" --source="\
loopback loop $iso
probe -s sysresccd -l loop
linux (loop)/sysresccd/boot/x86_64/vmlinuz archisobasedir=sysresccd img_dev=/dev/disk/by-uuid/$root_uuid img_loop=$iso earlymodules=loop
initrd (loop)/sysresccd/boot/intel_ucode.img (loop)/sysresccd/boot/amd_ucode.img (loop)/sysresccd/boot/x86_64/sysresccd.img"
done

# Для Arch Linux
arch=x86_64
for iso in $dir/archlinux-*-$arch.iso ; do
if [ ! -f "$iso" ] ; then continue; fi
regexp -s Abuild 'archlinux-(.+)-'$arch "$iso"
menuentry "Arch Linux ISO $Abuild $arch" --source="\
loopback loop $iso
probe -s isolabel -l loop
linux (loop)/arch/boot/x86_64/vmlinuz-linux archisolabel=\$isolabel img_dev=/dev/disk/by-uuid/$root_uuid img_loop=$iso earlymodules=loop
initrd (loop)/arch/boot/x86_64/initramfs-linux.img"
done

# Для Ubuntu
for iso in $dir/*ubuntu-*.iso ; do
if [ ! -f "$iso" ] ; then continue; fi
regexp -s name '.*/(.+)\.iso' "$iso"
# выделяем только имя
if regexp server "$name" ; then continue ; fi # Ubuntu Server не трогаем
if regexp amd64 "$name" ; then efi='.efi' ; else efi= ; fi # для x86_64 образ ядра vmlinuz.efi
menuentry "$name" --source="\
loopback loop $iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$iso noeject --
initrd (loop)/casper/initrd"
done

# Для Linux Mint
for iso in $dir/linuxmint-*.iso ; do
if [ ! - f "$iso" ] ; then continue; fi
regexp -s Mbuild 'linuxmint-*/(.+)\.iso' "$iso"
menuentry "Linux Mint $Mbuild" --source="
loopback loop $iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$iso quiet splash --
initrd (loop)/casper/initrd.lz"
done

# Для MemTest86
menuentry "MemTest86" { # установку смотри ниже
insmod part_gpt
insmod fat
set root='(hd0,gpt2)'
chainloader ($root)/EFI/memtest86/BOOTX64.efi
}
menuentry "Reboot" {
reboot
}
menuentry "Poweroff" {
halt
}


Для добавления MemTest86 на мультизагрузочную флешку, загружаем zip-файл MemTest86, доступный на веб-сайте PassMark.
Создаём директорию memtest86:

mkdir /mnt/memtest86

Заходим в эту директорию:

cd /mnt/memtest86

Разархивируем zip-файл MemTest86 в текущею директорию:

unzip /mnt/memtest86/memtest86-usb-9.5-beta-1.zip

Используем утилиту fdisk для анализа содержимого и определения правильной точки монтирования:

fdisk -lu memtest86-usb.img
Устр-во начало Конец Секторы Размер Тип
memtest86-usb.img1 2048 524287 522240 255M Microsoft basic data
memtest86-usb.img2 524288 1048575 524288 256M EFI
memtest86-usb.img3 1048576 2097118 1048543 512M Microsoft basic data


Файл, который необходимо смонтировать, - это файл «memtest86-usb.img2», содержащий загрузочный образ EFI. Нужно извлечь этот файл и смонтировать его во временное место.
Создаём временную директорию:

mkdir /mnt/memtest-temp

Смонтируем файл образа во временную директорию, рассчитав правильное смещение монтирования (полученное путём умножения старта - 524288 на 512, размер каждого сектора, в результате 268435456):

mount -o loop,offset268435456 /mnt/memtest86/memtest86-usb.img /mnt/memtest-temp

Копируем созданный каталог /EFI/BOOT в загрузочный каталог EFI флешки:

cp -r /mnt/memtest-temp/EFI/BOOT /mnt/EFI/memtest86

Редактируем главный файл конфигурации Grub, добавляя раздел MemTest86.
Отмонтируеи файл образа и удаляем временную директорию:

rm -r /mnt/memtest-temp

Для определения флешки вводим «c» в меню grub, чтобы получить командную строку. Затем «ls», для получения списка всех дисков. Все диски/разделы перечислены как (hd#,gpt#), независимо от того, каковы они физически. Затем перечисляем их, используя «ls (hd#,gpt#)/» для каждого диска, пока не найдём наш раздел.

"У вас нет прав на подключение этого устройства"

Если после подключения флешки появляется выше указанное предупреждение, создаём файл 10-udisks.rules и добавляем правило:

vim /etc/polkit-1/rules.d/10-udisks.rules
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.udisks2.filesystem-mount" && subject.isInGroup("plugdev")) {
return "yes";
}
});


Определяем присутствие включений AdBlock или AdGuard

Эти расширения блокируют рекламу на сайтах, соответственно доход с рекламы не идёт.
Создаём DIV с идентификатором, на пример, #spoof-overlay. Нельзя создавать классы или идентификаторы, в которых присутствует слова ad или advertising, так как AdGuard DIV-ы с ними заблокирует. Внутри DIV-а укажем просьбу, выключить AdBlock или AdGuard:

<div id="spoof-overlay">
Выключите, пожалуйста, AdBlock или AdGuard!
</div>


Добавим немного стилей:

#spoof-overlay{
display:none;
position:fixed;
color:white;
text-align:center;
font-size:22px;
top:10%;
z-index:99999;}


display:none; - будем менять это свойство в JavaScript, если у посетителя включен AdBlock.
Для этого создадим два JS файла. Первый назовем advert.js, второй custom.js. Advert это название популярной рекламной сети. Adblock блокирует все их рекламные баннеры и тизеры, соответственно он примет скрипт advert.js за оригинальный. Adblock подумает, что это реклама и не выполнит его. Проверим факт выполнения этого JavaScript файла и его подгрузки. Если он подгрузится, то Adblock отключен, если нет, то будет выводиться информация о том, что это реклама.
Создадим простую функцию в файле advert.js и назовём её spoof:

function spoof() {
window.spoof_adblock = true;
}
spoof();


Проверяем наличие свойства spoof_adblock в объекте window. Если свойство есть, это будет говорить о том, что Adblok отключен.
Создаём файл custom.js со следующим кодом:

jQuery(document).ready(function() {
if( typeof window.spoof_adblock == 'undefined')
{ //Если AdBlock или AdGuard активен! Покажем наше окно с сообщением
jQuery('#spoof-overlay').fadeIn('slow');
}});


Первым подключаем скрипт advert.js за-тем custom.js.

Избавление от рекламы в правом нижнем углу браузера

Реклама появляется в углу браузера Google Chrome постоянно. Если она сильно раздражает, заходим в Настройки ▶ Дополнительные ▶ Конфиденциальность и безопасность ▶ Настройки сайта ▶ Уведомления ▶ опускаемся в самый низ, Разрешить, нажимаем на все строки где есть *** (три точки) и удалить.

Уничтожение данных на жёстком диске

Чтобы на носителе ничего нельзя было восстановить - можно забить его нулями:

dd if=/dev/zero of=/dev/DEVICE

/dev/random и /dev/urandom - специальные символьные псевдоустройства в некоторых UNIX-подобных системах. Они предоставляют интерфейс к системному генератору случайных чисел, который выводит шум из драйверов устройств и других источников в «хаотичный» пул (англ. entropy pool). Генератор также сохраняет необходимое количество битов шума в этом пуле и формирует из него случайную либо псевдослучайную последовательность чисел.
Разницу между /dev/random и /dev/urandom можно описать так:
/dev/random - генератор случайных чисел;
/dev/urandom - генератор псевдослучайных чисел.
При чтении данных из устройства /dev/random выводятся только случайные байты, полностью состоящие из битов шума «хаотичного» пула ОС. Если «хаотичный» пул опустел, /dev/random ничего не выдаст, пока необходимое количество битов в пуле не будет создано, читающая /dev/random программа будет ждать появления очередного случайного байта.
В ядре Linux «хаотичный» пул получает энтропию из нескольких источников, в том числе из аппаратного генератора случайных чисел современных процессоров Intel.
Устройство /dev/random может быть необходимо пользователям, которые требуют очень высокого коэффициента случайности, например, при создании ключа шифрования, предполагающего длительное использование.
Чтение данных устройства /dev/urandom возвратит столько байтов, сколько было запрошено. В результате, если в пуле было недостаточно битов, теоретически возможно найти уязвимость алгоритма, использующего это устройство (на настоящее время нет опубликованных работ о такой атаке). Если это важно, следует использовать /dev/random.
Пример типичного использования /dev/urandom - заполнение массива «шумом».
Заполняем раздел случайными данными для удаления остаточной информации:

dd if=/dev/urandom of=/dev/sdb2

Проверить можно тем же dd:

dd if=/dev/sdb | hexdump -C

Команда hexdump предназначена для вывода содержимого бинарных файлов.
Базовый синтаксис команды выглядит следующим образом:

hexdump [параметры] имя-бинарного-файла

Утилита позволяет задать длину исследуемого фрагмента файла в байтах с помощью параметра -n, сдвиг от начала файла в байтах с помощью параметра -s, задать строку форматирования с помощью параметра -e, а также выбрать формат вывода с помощью одного из описанных ниже параметров.
Для понимания, создаём текстовый файл hexdump.txt со строкой "linux-faq.ru".

cat hexdump.txt
linux-faq.ru


Используем команду hexdump без каких-либо параметров для исследования этого файла:

hexdump hexdump.txt
0000000 696c 756e 2d78 6166 2e71 7572 000a
000000d


В столбце слева приведены 32-битные адреса, а после них следуют шестнадцатеричные представления пар байтов.
Эквивалентный результат будет выведен при использовании параметра -x, с немного измененным форматированием:

hexdump -x hexdump.txt
0000000 696c 756e 2d78 6166 2e71 7572 000a
000000d


Используем параметр -b для исследования файла:

hexdump -b hexdump.txt
0000000 154 151 156 165 170 055 146 141 161 056 162 165 012
000000d


В этом формате после шестнадцатеричных значений сдвигов выводятся восьмеричные значения каждого из байтов файла.
Используем параметр -c для исследования файла:

hexdump -c hexdump.txt
0000000 l i n u x - f a q . r u n
000000d


В этом формате после шестнадцатеричных значений выводятся непосредственно символы.
Используем параметр -d для исследования файла:

hexdump -d hexdump.txt
0000000 26988 30062 11640 24934 11889 30066 00010
000000d


В этом формате после шестнадцатеричных значений сдвигов приводятся десятичные представления пар байтов.
Используем параметр -o для исследования файла:

hexdump -o hexdump.txt
0000000 064554 072556 026570 060546 027161 072562 000012
000000d


В этом формате после шестнадцатеричных значений сдвигов приводятся восьмеричные представления пар байтов.
Используем параметр -C для исследования файла:

hexdump -C hexdump.txt
00000000 6c 69 6e 75 78 2d 66 61 71 2e 72 75 0a |linux-faq.ru.
0000000d


Это классический формат hex-редакторов, который предусматривает вывод шестнадцатеричных значений всех байтов файла с соответствующими им символами.

Настройка звуковой карты с помощьюALSA (Advanced Linux Sound Architecture) и PulseAudio

USE="... alsa ..." - флаг должен быть установлен.
Определяем нашу звуковую карту:

$ lspci | grep -i audio
00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)


Получаем о ней более подробную информацию:

$ lspci -v -s 00:1f.3
00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)
DeviceName: Onboard - Sound
Subsystem: Micro-Star International Co., Ltd. [MSI] Cannon Lake PCH cAVS
Flags: bus master, fast devsel, latency 32, IRQ 125
Memory at a1210000 (64-bit, non-prefetchable) [size=16K]
Memory at a1000000 (64-bit, non-prefetchable) [size=1M]
Capabilities: <access denied>
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel


Параметры, необходимые, для установки в ядре, для нашей карты.

CONFIG_SND
CONFIG_SND_HDA_INTEL


Активируем их и дополнительно следующие параметры ядра:

Device Drivers --->
<*> Sound card support -->
<*> Advanced Linux Sound Architecture --->
[*] PCI sound devices --->

Выбираем драйвер для аудио карты.
HD-Audio --->
Выбираем кодек или включаем все используя универсальный синтаксический анализ для выбора правильных:
<M> HD Audio PCI
[*] Build Realtek HD-audio codec support
[*] ...
[*] Build Silicon Labs 3054 HD-modem codec support
[*] Enable generic HD-audio codec parser
[*] USB sound devices --->

Параметр должен быть, если карты представлены как USB-устройства.
[*] USB Audio/MIDI driver
IPC semaphore - функция
General setup --->
-*- System V IPC

Команд lsmod|grep snd поможет определить драйвер звуковых карт.
Если в системе более 8 звуковых выходов (каждый выход HDMI на графическом процессоре считается за один), максимальное количество звуковых карт необходимо увеличить:
Device Drivers --->
<*> Sound card support
<*> Advanced Linux Sound Architecture --->
-*- Dynamic device file minor numbers
(32) Max number of sound cards


Устанавливаем alsa-utils

emerge --ask media-sound/alsa-utils

Можно посмотреть список всех потенциально работающих карт в системе:

$ aplay -l

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

$ aplay -L

Определяем, как ядро видит звуковые карты в системе:

$ cat /proc/asound/cards

Когда используется несколько звуковых карт, список доступных имён можно получить с помощью:

$ cat /sys/class/sound/card*/id

Определение подключеных аудио устройств:

$ arecord --list-devices

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

gpasswd -a user audio

При использовании OpenRC запускаем ALSA:

rc-service alsasound start

Добавляем ALSA в авто загрузку:

rc-update add alsasound boot

В systemd состояние ALSA будет сохраняться и автоматически восстанавливаться при перезапуске системы.
Статус ALSA можно проверить с помощью команды:

systemctl status alsa-restore

Включаем каналы с помощью микшера среды рабочего стола alsamixer, выбрав соответствующие каналы и нажав клавишу M, чтобы отключить или включить звук:

$ alsamixer

Иногда для работы разъёма для гарнитуры требуется дополнительная информация о модели для аудиодрайвера. Например, в случае с драйвером snd-hda-intel необходимо добавить в /etc/modprobe.d/alsa.conf:

options snd-hda-intel model=headset-mic

Когда приложения используют PulseAudio, необходим CONFIG_HIGH_RES_TIMERS, чтобы избежать (snd_pcm_recover) ошибок недогрузки и ухудшения звука:

General setup --->
Timers subsystem --->
[*] High Resolution Timer Support


Глобально включаем USE-флаге PulseAudio, в make.conf для поддержки в других пакетах:

USE="...pulseaudio..."

После установки USE-флага обновляем систему, чтобы изменения вступили в силу:

emerge --ask --changed-use --deep @world

PulseAudio использует udev для динамического предоставления доступа к звуковым картам текущему «активному» пользователю.
Чтобы это сделать возможным, необходимо установить ACL (списки контроля доступа):

File systems --->
Pseudo filesystems --->
[*] Tmpfs virtual memory file system support (former shm fs)
[*] Tmpfs POSIX Access Control Lists


Плагины media-plugins/alsa-plugins должны быть установлены с включенным USE-флагом pulseaudio.
Устанавливаем PulseAudio Volume Control (pavucontrol) - простая утилита управления звуком (микшер) для звукового сервера PulseAudio, написанная на GTK+. В отличие от классического микшера, она позволяет управлять звуком для устройства и каждого потока воспроизведения раздельно. Также позволяет перенаправлять поток на другой выход не прерывая воспроизведение:

emerge --ask media-sound/pavucontrol

Отключение KWallet

Для полного отключения KWallet, редактируем файл:

~/.config/kwalletrc
[Wallet]
Enabled=false

Полезные команды Linux

Сжимаем файлы .pdf, .jpeg и .png

Сжимаем файл .pdf с помощью утилиты ps2pdf, которая является частью пакета app-text/ghostscript-gpl:

$ ps2pdf big.pdf little.pdf

Сжимается в несколько раз. При этом видимого ухудшения качества практически не проиcходит.
Сжимаем файл .jpeg с помощью утилиты "jpegoptim":

emerge --ask jpegoptim

Для сжатия без потерь используется команда:

$ jpegoptim photo.jpg

С помощью опции "-d" указываем директорию для сохранения сжатого файла:

$ jpegoptim -d ./compressed photo.jpg

Для проверки возможности и степень сжатия, без его выполнения, используем опцию "-n":

$ jpegoptim -n photo.jpg

Можно сжать с потерями.
В этом случае используем опцию "-m<maximum-quality>", где качество задается в диапазоне от 0 до 100 (0 - наихудшее качество, 100 - наилучшее качество).
Например, для сжатия файла с 50% качеством:

$ jpegoptim -m50 photo.jpg

Для сжатия большого количества изображений, находящихся в одной директории, используем следующий скрипт:

#!/bin/sh
for i in *.jpg; do jpegoptim -d . /compressed -p "$i" ; done


сжать все .jpg файлы в текущем каталоге и поместите их в каталог ./compressed с той же датой изменения, что и в исходных файлах.
Сжимаем файл .png с помощью утилиты "optipng":

emerge --ask optipng

Синтаксис утилиты тот же, как и у предыдущих, но отличается опциями:
-backup - сохранять копии изменённых файлов;
-dir - папка для записи файлов;
-force - принудительная запись исходящего файла;
-out - записать исходящий файл в указанный;
-simulate - не выполнять никаких действий, а только показать результат;
-o - установить уровень сжатия от 0 до 7.

Разрезание файла на части командой split

Часто используемые опции:
-b, --bytes=SIZE эта опция задает размер выводимых файлов.
-d, --numeric-suffixes использовать цифровые суффиксы вместо алфавитных.
-n, --number=CHUNKS задает количество выводимых файлов.
Если не используется опция suffix, по умолчанию команда split будет разделять файлы на части, название которых начинаеться с x, за которым следуют еще два символа в алфавитном порядке. Например, первый файл называться xaa, за тем идут xab, xac, а последний файл называться xzz. Это значит, что можно разбить файл не более чем на 676 частей (26x26).
Заходим в директорию с файлом:

$ cd ~/Gentoo/

Разбиваем, например .iso - файл на четыре части:

~/Gentoo $ split -n 4 Gentoo.iso

Проверяем:

~/Gentoo $ ls -l
итого 13312000
-rw-r--r-- 1 nikolay nikolay 6815744000 фев 16 15:58 Gentoo.iso
-rw-r--r-- 1 nikolay nikolay 1703936000 фев 16 20:43 xaa
-rw-r--r-- 1 nikolay nikolay 1703936000 фев 16 20:44 xab
-rw-r--r-- 1 nikolay nikolay 1703936000 фев 16 20:44 xac
-rw-r--r-- 1 nikolay nikolay 1703936000 фев 16 20:45 xad


С помощью команды cat собираем файл обратно:

~/Gentoo $ cat x* > newGentoo.iso

Поверяем суммы:

~/Gentoo $ md5sum *.iso
41e3a4b20ba35887b66ca08f3d4524f3 Gentoo.iso
41e3a4b20ba35887b66ca08f3d4524f3 newGentoo.iso

OpenSSL - распаковка файла .tar.gz.enc

OpenSSL - это система защиты и сертификации данных. Название SSL переводится, как система безопасных сокетов (secure socket layer). OpenSSL используется практически всеми сетевыми серверами для защиты передаваемой информацией.
Убеждаемся, что есть пароль для распаковыемого файла.
Запускаем следующие команды:

openssl aes-256-cbc -d -in your_archive_filename.tar.gz.enc -out your_archive_filename.tar.gz
Вводим пароль при появлении запроса.
tar -zxvf your_archive_filename.tar.gz

Команда head

выводит начальные строки (по умолчанию - 10) из одного или нескольких документов. Также она может показывать данные, которые передаёт на вывод другая утилита.
-n (--lines) - показывает заданное количество строк вместо 10, которые выводятся по умолчанию. Если записать эту опцию в виде --lines=[-]NUM, будет показан весь текст кроме последних NUM строк.

head -n15 ABEL.TXT | iconv -f cp866 -t utf8
head -n15 ABEL.TXT | iconv -f koi8 -t utf8
head -n15 ABEL.TXT | iconv -f koi8r -t utf8
head -n15 ABEL.TXT | iconv -f cp1251 -t utf8

Преобразование текста из одной кодировки в другую

iconv -f {{from_encoding}} -t {{to_encoding}} {{input_file}}

cat ABEL.TXT | iconv -f cp866 -t utf8 > ABEL_utf8.txt

Продаются
книги

Оставить отзыв

Здесь будет Ваше имя и город!

Николай: Не понравился сайт, хотите научить меня администрировать? Пожалуйста, с удовольствием буду учиться.
Отзывы в Вашем распоряжении!

Здесь будет Ваше имя и город!

Николай: Я знаю, у Вас уйма вопросов! На многие из них можете получить ответы прямо сейчас.

Здесь будет Ваше имя и город!

Николай: Я знаю, у Вас уйма вопросов! На многие из них можете получить ответы прямо сейчас.

Установи и
БУДЕШЬ СЧАСТЛИВ!

Хочешь быть счастливым - будь им!

Помощь сайту!
Номер счёта: P1033771335
lightning
Приму в добрые руки!
Bitcoin bc1qs8ljgufm0r4yj0swp43yya30yq0l5scl8ntc0e
Dash XhaN3NWmxSXKK8dMpzotWSBk5As6KvFxog
Dogecoin DL1LyCQkKEUrgBBuWBbgvzb2RR5yeW5RQ9
Litecoin ltc1qr5ntqxafw9jcmq5jfgdhrm0uq306mqntntmhwf
Ethereum 0x0A476b0Fa1DF5a97c911AF4271897153800D23Db
Solana 4AzHdrArwh4c42D6FtfXZXWSxxE9L5ocmEqmgSumXXxk
Cardano
addr1q8q2ratx2fj3gnfj7y8vmggaj0wmyxs0r2lh6v5sfvkqeuwfwcteneggk0dhkv42u75ykq0f2vlgac5738urscf0ef6sr65rsw
Monero
4B8tc66Y136YHHEGSioVnpSAW7H5qU5W5MSaXH9RX2QSW6Uy6fFba2S7SndPsJqCXaH7Q4mLduGgZ1UXDx1FAgpoK4Rzvow
Scrooge
Dollar
Ruble
Ruble
Gold