Рубрики
archlinux Конспект

Конспект: Archlinux / arch / pacman / keyring / archinstall / kde / ovs / libvirt / kvm

Ссылки:

https://archlinux.org/

https://archlinux.org/download/ - образы ISO

https://wiki.archlinux.org/title/KVM
https://wiki.archlinux.org/title/Libvirt
https://wiki.archlinux.org/title/Open_vSwitch

https://wiki.archlinux.org/title/systemd-networkd
https://wiki.archlinux.org/title/systemd-networkd_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)

https://habr.com/ru/company/selectel/blog/313150/
https://habr.com/ru/company/ruvds/blog/309010/

https://www.balena.io/etcher/

https://archlinux.org/news/gnupg-21-and-the-pacman-keyring/

https://www.youtube.com/watch?v=OJEVBEJsKEQ&list=PLc0sjwKqKpx-EBd0rPcW01-ekFufAnL39&ab_channel=esturiano - видосики по арчу


https://wiki.archlinux.org/title/installation_guide - гайд установки
https://wiki.archlinux.org/title/installation_guide_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)

https://habr.com/ru/articles/836400/

Скрипт для установки archlinux

archinstall

iwd / iwctl / wi-fi

!!! https://wiki.archlinux.org/title/Iwd
iwctl
   device list - показать устройства
   station wlan0 scan - сканировать сеть
   station wlan0 get-networks - показать отсканированные сети 
   station wlan0 connect SSID_name - подключится к сети SSID_name

pacman — установка софта

pacman -Syu - обновления списка пакетов и установка обновлений
pacman -Ss name_packeg - поиск пакета 
pacman -Sy name_packeg - установка пакета
pacman -Scc - очистка кэша пакетов

sudo pacman -Syu
sudo pacman -Sy telegram-desktop

sudo pacman -Sy --needed git base-devel zsh htop mc hunspell hunspell-ru hunspell-en_us hunspell-en_gb telegram-desktop docker docker-compose libreoffice-fresh libreoffice-fresh-ru gwenview spectacle peek neofetch ark unzip unrar noto-fonts-emoji element-desktop partitionmanager filelight ntfs-3g adobe-source-han-sans-otc-fonts networkmanager-l2tp strongswan networkmanager-openvpn cups print-manager dnsutils whois wine gnupg keychain bluez bluez-utils net-tools traceroute kgpg inetutils

sudo pacman -Sy --needed linssid qalculate-gtk remmina freerdp gtk-vnc pycharm-community-edition gnome-keyring libsecret libgnome-keyring qbittorrent okular
sudo pacman -Sy --needed chromium
sudo pacman -Sy --needed  bash-completion

sudo pacman -Ss bash
sudo pacman -Ss libvirt
sudo pacman -Ss kvm
sudo pacman -Sy libvirt virt-install
sudo pacman -Si libvirt
sudo pacman -Ss 
sudo pacman -Ss kvm
sudo pacman -Si virt-manager
sudo pacman -Sy virt-manager
sudo pacman -Sy man

sudo pacman -Ss openvswitch
sudo pacman -Sy openvswitch

yay

sudo pacman -Sy --needed git base-devil 
git clone https://aur.archlinux.org/yay.git
cd yay/
makepkg -si

zsh

0. Установка оболочки zsh:
yay -S zsh --noconfirm 

1. Установка скрипта oh-my-zsh:
curl -L https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh 

2. Делаем zsh по умолчанию:
chsh -s /usr/bin/zsh

3. Первый запуск оболочки zsh
zsh

4. Конфиг .zshrc  
Строка ZSH_THEME отвечает за темы

5. Установка пакета подсветки синтаксиса оболочки zsh
git clone https://github.com/zsh-users/zsh-syntax-highlighting
mv zsh-syntax-highlighting .zsh-syntax-highlighting
echo "source ~/.zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ~/.zshrc  

6. Установка пакета дополняющего команду по мере её ввода на основе истории
$ git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

7. Плагины 
Внесение изменений в файл конфигурации .zshrc
nano .zshrc
1) В файле раскомментировать строку под номером 2
2) Дописать в строку файла .zshrc, изначально выглядящую так: plugins =(git), чтобы она стала выглядеть так:
plugins =(git zsh-autosuggestions sudo)

Обновить конфигурацию оболочки (делать каждый раз, когда правим файл .zshrc)
source .zshrc

цвет консоли и репы

vim /etc/pacman.conf 
--------------------
[multilib]
Include = /etc/pacman.d/mirrorlist

# Misc options
#UseSyslog
Color
#NoProgressBar
CheckSpace
#VerbosePkgLists
#ParallelDownloads = 5
--------------------

консоль в стиле quake

pacman -S yakuake

locale — русский язык

0. редактируем "/etc/locale.gen"
vim /etc/locale.gen
-------------------
ru_RU.UTF-8 UTF-8
-------------------

1. генерируем locale
localectl set-locale ru_RU.UTF-8
#localectl set-x11-keymap --no-convert us,ru pc105 "" grp:alt_shift_toggle
#locale-gen - а можно так сгенерировать локаль

2. раскладка языка
vim /etc/vconsole.conf
----------------------
KEYMAP=ru
----------------------

3. Язык системы:
echo "LANG=en_US.UTF-8" > /etc/locale.conf

4. Установка часового пояса
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime

5. Синхронизация аппаратных часов
hwclock --systohc --utc

iptables + route

0. редактируем
vim /etc/systemd/system/sex-sec.service
---------------------------------------
[Unit]
Description= add iptables route 
After=network.target

[Service]
Type=simple
TimeoutStartSec=10
ExecStart=/etc/iptables/sex_sec.sh

[Install]
WantedBy=multi-user.target
---------------------------------------

1. Включаем демон 
systemctl daemon-reload 
systemctl status sex-sec.service 
systemctl --failed 

2. Редактируем
vim /etc/iptables/sex_sec.sh
----------------------------
#!/bin/bash
iptables-restore /etc/iptables/iptable.4
ip6tables-restore /etc/iptables/iptable.6
sleep 10
ip route add 192.168.55.0/24 via 192.168.16.55
----------------------------

/etc/iptables/iptable.4


*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.16.126/24 -m state --state NEW -p tcp --dport 22 -j ACCEPT
#-A INPUT -s 10.0.3.6/32 -j ACCEPT -m comment --comment "backup"
#-A INPUT -s 10.1.2.1/32 -m state --state NEW -p tcp --dport 10050 -j ACCEPT
# ICMP
-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 100/sec -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 4 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 12 -j ACCEPT
COMMIT

/etc/iptables/iptable.6

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p ipv6-icmp -j ACCEPT
COMMIT

qemu + kvm

0. установка
pacman -Sy qemu
pacman -Sy fuse2 gnutls libpciaccess libssh libxml2 numactl parted polkit yajl dmidecode virt-viewer libvirt-python perl-sys-virt libvirt-python libvirt-glib libguestfs

systemctl enable libvirtd.service 
usermod -aG libvirt ey
usermod -aG libvirt-qemu ey

systemctl start libvirtd.service virtlogd.service
systemctl enable libvirtd.service virtlogd.service

1. Редактируем

vim /etc/libvirt/libvirt.conf 
-----------------------------
uri_default = "qemu:///system"
listen_tls = 0
listen_tcp = 1
auth_tcp="none"
-----------------------------

ovs

pacman -Sy  openvswitch 
pacman -Sy dnsmasq
(ovs-vswitchd.serviceтакже запустит ovsdb-server.service)
systemct enable ovs-vswitchd.service
systemct start ovs-vswitchd.service

!!! можно собрать default
0. Редактируем файл
cd /root
vim  ovsbr0.xml 
---------------

  default
  
  
  

---------------

1. Добавляем пулы сети
virsh net-destroy default
virsh net-create --file /root/ovsbr0.xml
virsh net-autostart default
virsh net-start default

2. Пересоздаем пулы для хранилища
virsh pool-destroy --pool default
virsh pool-define-as --type dir --target /kvm/images --name images
virsh pool-define-as --type dir --target /kvm/iso --name iso
virsh pool-autostart --pool images iso
virsh pool-autostart --pool images
virsh pool-autostart --pool iso
virsh pool-autostart --disable --pool default 


ping bash

#!/bin/bash
ping -s 1 -c 4 IP_a
remmina

systemd network

vim /etc/systemd/network/20-wired.network
-----------------------------------------
[Match]
Name=enp1s0

[Network]
DHCP=yes
-----------------------------------------

vim /etc/systemd/network/20-wired.network
-----------------------------------------
[Match]
Name=enp1s0

[Network]
Address=10.1.10.9/24
Gateway=10.1.10.1
DNS=10.1.10.1
-----------------------------------------

systemd network ovsbr0

ls /etc/systemd/network/
-----------------------
30_enp2s0.network
40_ovsbr0.network         
-----------------------
      
cat > /etc/systemd/network/30_enp2s0.network << "EOF"
[Match]
Name=enp2s0
EOF

cat > /etc/systemd/network/40_ovsbr0.network << "EOF"
[Match]
Name=ovsbr0
[Network]
LinkLocalAddressing=ipv4
DHCP=ipv4
#DHCP=yes
EOF


update keyring

https://wiki.archlinux.org/title/Pacman/Package_signing

pacman -Sy archlinux-keyring

GnuPG-2.1 and the pacman keyring

pacman -Syu haveged
systemctl start haveged
systemctl enable haveged

rm -fr /etc/pacman.d/gnupg
pacman-key --init
pacman-key --populate archlinux

Шрифты:

https://habr.com/ru/post/77122/
pacman -Sy ttf-droid


General — Droid Sans 10;
Fixed Width — Droid Sans Mono 10;
Small — Droid Sans 8;
Toolbar — Droid Sans 8 (Bold);
Menu — Droid Sans 10;
Window Title — Droid Sans 10 (Bold);
Taskbar — Droid Sans 10;
Desktop — Droid Sans 10.

Не работает переключение ALT+Shift:


перед этим еще убедится что в выводе команды localctl  есть строка alt_shift_toggle

если не то выполнить
localectl --no-convert set-x11-keymap us,ru "" ""  grp:alt_shift_toggle

Для применения изменений потребуется ребут или перезапуск display-manager
!!! Внимание все окна закроет :)
#systemctl restart display-manager

Восстановление загрузки

https://bbs.archlinux.org/viewtopic.php?id=82056

1. Boot from liveCD/usbimage
2. Set up your network if needed later
3. Prepare your Chroot:

# mkdir /mnt/arch                        #optional, you may also just use /mnt/
# mount /dev/sdax /mnt/arch              #substitute sdax with your root partition
# mount /dev/sday /mnt/arch/boot         #only needed if you have a seperate partition sday for /boot
# mount -t proc proc /mnt/arch/proc      #mount system folders
# mount -t sysfs sys /mnt/arch/sys
# mount -o bind /dev /mnt/arch/dev
4. Chroot into your Install

chroot /mnt/arch/
After that, you may downgrade/upgrade/split your screen with an axe, as you like.
To just rebuild the initramfs, type:

mkinitcpio -v -k  -g /boot/kernel26.img

P.S.
Так как установка mkinitcpio приведет к генерации initramfs и ядра.
Вам может повезти банально установив mkinitcpio и у вас восстановится загрузка arch. 
Достаточно после установки chroot выполнить команду установки mkinitcpio.
pacman -Syu mkinitcpio 

zerotier

pacman -Sy zerotier-one
zerotier-cli info
systemctl start zerotier-cli
systemctl start zerotier-one.service 
systemctl enable zerotier-one.service 
zerotier-cli join YOU_ID_NET


ноут / планшет

yay iio-sensor-prox - сенсор для поворота экрана
pacman -Sy onboard - экранная клава





#!/bin/bash
xrandr -o inverted
#xrandr -o normal
#xrandr -o left
#xrandr -o right
#xrandr --rotate "$xrandr_rotation"

Тестовая samba с пользователем guest

#https://wiki.archlinux.org/title/Samba

Примечание: 
Пользователь и группа nobody изначально существуют в системе, используются как гостевой аккаунт (guest account) 
по умолчанию и могут быть использованы в ресурсах для общего доступа с опцией guest ok = yes, 
благодаря чему пользователям не понадобится логиниться для доступа к таким ресурсам.

0. Добавляем пользователя:
useradd guest -s /bin/nologin

1. Создаем каталог:
mkdir /home/samba

2. Создаем конфиг
!!! Создание общего ресурса для анонимных пользователей
cat > /etc/samba/smb.conf << "EOF"
[global]
security = user
map to guest = bad user
guest account = guest

[guest]
    comment = guest
    path = /home/samba
    public = yes
    only guest = yes
    writable = yes
    printable = no

EOF


3. Добавить автозапуск для smb 
systemctl enable smb.service
systemct start smb.service
systemctl restart smb.service

Жизнь без archinstall, ставим arch руками:

0. Раскладка и шрифты:
Посмотреть список доступных раскладок можно с помощью команды:
localectl list-keymaps

Установка раскладки клавиатуры и шрифта:
loadkeys ru

Используйте Ctrl+Shift для переключения между английской и русской раскладками.

Консольные шрифты расположены в каталоге /usr/share/kbd/consolefonts/
Для загрузки шрифта стандартного размера с русскими буквами:
setfont cyr-sun16
Для экрана HiDPI можно выбрать один из самых больших доступных шрифтов с русскими буквами:
setfont ter-c32b


1. Проверка режима загрузки
Проверьте разрядность UEFI:
cat /sys/firmware/efi/fw_platform_size
Если команда выведет 64, то система загружена в режиме UEFI и имеет 64-битный x64 UEFI. 
Если команда выведет 32, то система загружена в режиме UEFI и имеет 32-битный IA32 UEFI — такой вариант тоже поддерживается, 
но в качестве загрузчика получится использовать только systemd-boot. 
Если же такого файла не существует, возможно, система загружена в режиме BIOS (или CSM). 
Если система загрузилась не в том режиме, который вам нужен (UEFI или BIOS), обратитесь к руководству пользователя вашей материнской платы.

2. Проверить соединение с интернетом:
DHCP: установка динамического IP-адреса и адреса DNS-сервера (при помощи systemd-networkd и systemd-resolved) 
должна срабатывать автоматически для проводных и беспроводных сетевых интерфейсов.

Провод ethernet:
ip link
ping 8.8.8.8
ping ya.ru

# если кто-то удалил /etc/resolv.conf
# для debian11-12 может пригодится для восстановления systemd-resolved
#  ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

Wi-Fi: 
Используйте iwctl подключитесь к беспроводной сети 

Мобильный широкополосный модем: 
Используй mmcli

3. Синхронизация системных часов
# можно вот так вот включить синхронизацию времени
# timedatectl set-ntp true - включение синхронизации времени

В live-окружении по умолчанию включен systemd-timesyncd, который выполнит синхронизацию времени автоматически после подключения интернета.
Чтобы удостовериться, что время задано правильно:
timedatectl
timedatectl set-timezone Europe/Moscow - установить временную зону Europe/Moscow

4. Разметка дисков:
!!! ВНИМАНИЕ, форматирование и разметка уничтожит ваши данные
Проверяем доступные диски:
fdisk -l

4.1 Производим разметку используя fdisk (или можем использовать cfdisk из пункта 4.2:
!!! Не забываем поменять разметку на GPT и сменить тип раздела на EFI для раздела /boot 
fdisk /dev/диск_для_разметки
Примеры схем:

UEFI с GPT
/boot - Системный раздел EFI - Минимум 300 МиБ. При установке нескольких ядер лучше 1 ГиБ или более.
[SWAP] - Linux swap - предпочитаю создавать в виде файла уже в корневом разделе Более 512 МиБ
/ - Корневой раздел - минимум 10Гб
BIOS с MBR
/ - Корневой раздел - минимум 10Гб
[SWAP] - Linux swap - предпочитаю создавать в виде файла уже в корневом разделе Более 512 МиБ


4.2 Использования cfdisk вместо fdisk
cfdisk /dev/sdX
Выберите GPT, удалите все существующие разделы и создайте следующие:
EFI: 300+ MB
SWAP: количество оперативной памяти (например, 4 GB)
Корневая папка: 20-30 GB (оптимально 60 GB при наличии места)
Домашняя папка: оставшееся пространство
После создания разделов нажмите WRITE, подтвердите изменения и выйдите с помощью QUIT.


Форматирование разделов:
Чтобы отформатировать /dev/корневой_раздел в файловую систему Ext4, выполните следующую команду:
mkfs.ext4 /dev/корневой_раздел
Если вы создали раздел для подкачки (swap), инициализируйте его с помощью утилиты mkswap(8):
mkswap /dev/раздел_подкачки
Для создания EFI выполните:
mkfs.fat -F 32 /dev/системный_раздел_efi

Пример:
mkfs.fat -F32 /dev/sda1 # EFI
mkswap /dev/sda2 # SWAP
mkfs.ext4 /dev/sda3 # Корневая папка
mkfs.ext4 /dev/sda4 # Домашняя папка (если создана)


5. Монтирование разделов:
Монтирование разделов
mount /dev/корневой_раздел /mnt
mount --mkdir /dev/системный_раздел_efi /mnt/boot
#swapon /dev/раздел_подкачки - на данном этапе я своп делать не буду (выполню после arch-chroot)


6. Выбор зеркал
Пакеты для установки будут скачиваться с серверов-зеркал, прописанных в файле /etc/pacman.d/mirrorlist. 
В установочном образе используется reflector, который после подключения к сети обновит список зеркал (выбрав 20 наиболее актуальных HTTPS-зеркал) 
и отсортирует их по скорости загрузки.
Чем выше зеркало расположено в списке, тем больший приоритет оно имеет при скачивании пакета. 
Вы можете проверить этот файл и, при необходимости, отредактировать его вручную, переместив наверх наиболее географически близкие зеркала.
При этом также учитывайте и другие критерии.
Позже pacstrap скопирует этот файл в новую систему, так что это действительно стоит сделать.

vim /etc/pacman.d/mirrorlist

Примечание: 
Никакие программы или настройки (кроме файла /etc/pacman.d/mirrorlist) из live-окружения в устанавливаемую систему не переносятся.

7. Установка основных пакетов
pacstrap -K /mnt base linux linux-firmware vim grub efibootmgr sudo man qemu-guest-agent
#pacstrap -K /mnt base linux linux-firmware - прям минимальная установка


8. Создаем своп в виде файла на 1G:
fallocate -l 1G /mnt/.swap
chmod 600 /mnt/.swap
mkswap /mnt/.swap
swapon /mnt/.swap

9. Генерация fstab:
genfstab -U /mnt >> /mnt/etc/fstab

10. Chroot
Войдем в систему
arch-chroot /mnt


11. Локализация
Добавьте локали, например en_US.UTF-8 UTF-8 и ru_RU.UTF-8 UTF-8
vim /etc/locale.gen
locale-gen

vim /etc/locale.conf
--------------------
LANG=ru_RU.UTF-8
--------------------

vim /etc/vconsole.conf
----------------------
KEYMAP=ru
FONT=cyr-sun16
----------------------

12. Имя хоста:
/etc/hostname
-------------
имявашегохоста
-------------

13. Пароль суперпользователя
Установите пароль суперпользователя:
passwd

14. Установка загрузкича
!!! Главное убедитесь что у вас есть раздел EFI (fdisk -l)
Установка по умолчанию:
grub-install /dev/имя_вашего_диска
Если возникает ошибка:
grub-install --recheck /dev/имя_вашего_диска
Если возникает ошибка: 
grub-install --boot-directory=/boot /dev/имя_вашего_диска

Если выше также не отработали пробуем ставить EFI сами:
grub-install --efi-directory=/boot
grub-mkconfig -o /boot/grub/grub.cfg


Генерация загрузочного образа для BIOS без установки grub:
Новые версии GRUB2 генерируют загрузочный образ core.img, который может быть загружен не только кодом бут-сектора, 
но и другими загрузчиками (GRUB2, GRUB Legacy, syslinux)
grub-install --grub-setup=/bin/true /dev/sda


15. Графика установка KDE
pacman -Syu xorg-server plasma-meta sddm
systemctl start sddm

iptables.service

0. Проверяем:
cat /usr/lib/systemd/system/iptables.service
--------------------------------------------                                                                                                                   
[Unit]
Description=Packet Filtering Framework

[Service]
Type=oneshot
ExecStart=/usr/bin/iptables-restore /etc/iptables/iptables.rules
ExecReload=/usr/bin/iptables-restore /etc/iptables/iptables.rules
ExecStop=/usr/lib/systemd/scripts/iptables-flush
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
-------------------------------------------- 

1. Проверяем работу, добавляем правила и включаем iptables.service

systemct enable iptables.service
systemctl start iptables.service

cat > /etc/iptables/iptables.rules << "EOF"
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A POSTROUTING -s 172.18.0.0/16 ! -o br-6e31867864c0 -j MASQUERADE
-A POSTROUTING -o ovsbr0 -j MASQUERADE
-A POSTROUTING -s 172.18.0.2/32 -d 172.18.0.2/32 -p tcp -m tcp --dport 443 -j MASQUERADE
-A POSTROUTING -s 172.18.0.5/32 -d 172.18.0.5/32 -p tcp -m tcp --dport 8080 -j MASQUERADE
-A DOCKER -i docker0 -j RETURN
-A DOCKER -i br-6e31867864c0 -j RETURN
-A DOCKER ! -i br-6e31867864c0 -p tcp -m tcp --dport 8443 -j DNAT --to-destination 172.18.0.2:443
-A DOCKER ! -i br-6e31867864c0 -p tcp -m tcp --dport 32768 -j DNAT --to-destination 172.18.0.5:8080
COMMIT

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -i enp0s20f0u1u4 -j ACCEPT
-A INPUT -i enp0s20f0u1u1 -j ACCEPT
-A INPUT -i zthnhjuefn -j ACCEPT
-A INPUT -i wg0 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p udp -m udp --dport 5678 -j ACCEPT
-A INPUT -s 192.168.16.0/24 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s 192.168.15.0/24 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s 192.168.15.0/24 -p tcp -m state --state NEW -m tcp --dport 5905 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 100/sec -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 4 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i zthnhjuefn -j ACCEPT
-A FORWARD -i wg0 -j ACCEPT
-A FORWARD -i enp0s20f0u1u4 -j ACCEPT
COMMIT
EOF


cat > /etc/iptables/ip6tables.rules << "EOF"
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p ipv6-icmp -j ACCEPT
COMMIT
EOF


systemct restart iptables.service

Звук

Возможные ошибки:
У вас конфликтующая настройка звукового демона: либо установите Pipewire-media-session и удалите Wireplumber, 
если вы хотите придерживаться PulseAudio, либо полностью переключитесь на PipeWire, заменив PulseAudio на PipeWire-Pulse.



pacman -Sy pipewire pipewire-pulse wireplumber pavucontrol wpctl easyeffects



Команды для проверки:
sudo fuser -v /dev/snd/*
aplay -lL
amixer -c0
pactl list cards
pactl list sinks
sudo dmesg | grep -E 'snd|sof'




Глюки с интеловской встройкой
systemctl --user --now enable pipewire pipewire-pulse wireplumber
cat > /etc/modprobe.d/alsa-base.conf << "EOF"
options snd-hda-intel dmic_detect=0
options snd-hda-intel index=0
EOF

bluetooth

pacman -Sy bluez bluez-utils  bluez-deprecated-tools
systemctl start  bluetooth.service
systemctl status  bluetooth.service
# если все ок добавляем в автозагрузку
systemctl enalbe bluetooth.service

GRUB update - symbol "grub_is_shim_lock_enabled" not found

0. Загружаемся с livecD и монтируем основной раздел и раздел с загрузчиком
mount /dev/sda2 /mnt
mount /dev/sda1 /mnt/boot

1. Выполняем arch-chroot
arch-chroot /mnt

2. (Не обязательно) Удаляем старые файлы grub
rm -rf /boot/grub 

3. Ставим grub
grub-install --target=x86_64-efi --efi-directory=/boot --disable-shim-lock
grub-mkconfig -o /boot/grub/grub.cfg

erroe electron

Ошибка при pacman -Syu
:: Запускается полное обновление системы...
разрешение зависимостей...
проверка конфликтов...
ошибка: не удалось подготовить транзакцию (не удалось удовлетворить зависимости)
:: installing icu (76.1-1) breaks dependency 'libicui18n.so=75-64' required by electron29
:: installing icu (76.1-1) breaks dependency 'libicuuc.so=75-64' required by electron29
:: installing flac (1.5.0-1) breaks dependency 'libFLAC.so=12-64' required by electron29
:: installing icu (76.1-1) breaks dependency 'libicui18n.so=75-64' required by electron30
:: installing icu (76.1-1) breaks dependency 'libicuuc.so=75-64' required by electron30
:: installing flac (1.5.0-1) breaks dependency 'libFLAC.so=12-64' required by electron30

Возможное решение удалить electron:
pacman -R electron29 electron30
pacman -Suy

Возможное решение два игнорировать ошибку и обновить систему:
pacman -Suy --ignore icu --ignore flac

ошибка: не удалось получить файл 'community.db'

Пример:
ошибка: не удалось получить файл 'community.db' из berlin.mirror.pkgbuild.com : The requested URL returned error: 404
ошибка: не удалось получить файл 'community.db' из geo.mirror.pkgbuild.com : The requested URL returned error: 404
ошибка: не удалось получить файл 'community.db' из arch.mirror.constant.com : The requested URL returned error: 404
ошибка: не удалось получить файл 'community.db' из arch.phinau.de : The requested URL returned error: 404
ошибка: не удалось получить файл 'community.db' из mirror.telepoint.bg : Protocol "rsync" not supported
ошибка: не удалось получить файл 'community.db' из mirrors.neusoft.edu.cn : The requested URL returned error: 404
ошибка: не удалось получить файл 'community.db' из mirror.yandex.ru : The requested URL returned error: 404
ошибка: не удалось получить файл 'community.db' из mirror.yandex.ru : The requested URL returned error: 404


Решение:
https://archlinux.com.ru/forum/viewtopic.php?t=4311
В системах, где /etc/pacman.conf все еще ссылается на старый репозиторий [community]
Нужно его просто закомментировать или удалить строки 

не обновлялся yay / could not find all required packages: nodejs-lts-hydrogen / 2025.04.02

0. Почистить кеш yay и удалить старые зависимости
yay -Yc
1. Обновить базу пакетов и AUR-зависимости
yay -Syu --devel --timeupdate
2. sudo pacman -Syu