<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wwoss.direct.quickconnect.to/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>worldwide open-source software - software:linux_server:arch_linux</title>
        <description></description>
        <link>https://wwoss.direct.quickconnect.to/</link>
        <lastBuildDate>Wed, 17 Jun 2026 09:07:35 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=wiki:logo.png</url>
            <title>worldwide open-source software</title>
            <link>https://wwoss.direct.quickconnect.to/</link>
        </image>
        <item>
            <title>arch_linux_circuit</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:linux_server:arch_linux:arch_linux_circuit&amp;rev=1779719739</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;схемы&quot;&gt;схемы&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Сквозная схема файловой системы хоста tom_1 и конструктора ISO
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Конструктор как изоляция: Каталог ~/custom_iso/ создается пользователем eva локально на хосте. Он служит сборочным цехом. Всё, что находится внутри ~/custom_iso/, станет корнем файловой системы самой флешки после записи ISO.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Процесс клонирования ядра: Команды cp /boot/… ~/custom_iso/… берут текущие рабочие загрузочные файлы хоста tom_1 и переносят их во вложенную структуру конструктора, чтобы будущий образ гарантированно загрузился на том же ядре.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Рекурсивное исключение при запаковке: Когда утилита mksquashfs сканирует корень / для генерации файла airootfs.sfs, она упаковывает все файлы etc, usr/share/nginx/html и т.д., но в параметрах запуска обязательно пропускает папку ~/custom_iso (и архивы *.iso), чтобы избежать бесконечного цикла (упаковки архива внутрь самого себя).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Директория ~/custom_iso/ не входит внутрь файла airootfs.sfs и не подключается к нему напрямую. Она выполняет роль внешнего «контейнера» (конструктора), внутри которого этот файл создается и хранится.
&lt;br/&gt;

Если сопоставить обе схемы, то папка ~/custom_iso/ находится на самом верхнем уровне и в момент финальной сборки через утилиту xorriso превращается в корень загрузочного ISO-образа.
&lt;br/&gt;

Вот схема, показывающая точное местоположение airootfs.sfs внутри конструктора ~/custom_iso/:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:arch_linux_circuit&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;circuit&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Корень системы, раздел &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sda3, тип Ext4&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
│
├── boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;                                &lt;span class=&quot;co0&quot;&gt;# Точка монтирования реального UEFI (ESP) раздела хоста&lt;/span&gt;
│   ├── vmlinuz-linux ──────────────────┐ &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;копирование&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;co0&quot;&gt;# Родное исполняемое ядро Arch Linux&lt;/span&gt;
│   ├── initramfs-linux.img ────────────┼───┐ &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;копирование&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;co0&quot;&gt;# Основной образ системы ранней загрузки &lt;/span&gt;
│   ├── initramfs-linux-fallback.img    │   │     &lt;span class=&quot;co0&quot;&gt;# Резервный образ загрузки (включает &lt;/span&gt;
├── EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;                                │   │                   полный набор драйверов&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
│   └── BOOT&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;                           │   │
│       ├── BOOTX64.EFI ────────────────┼───┼───┐ &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;копирование UEFI-загрузчика&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
│       └── fbx64.efi                   │   │   │ &lt;span class=&quot;co0&quot;&gt;# (Опционально) Файл Fallback-&lt;/span&gt;
│                                       │   │   │                 загрузчика для восстановления
│                                       │   │   │
├── etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;                                │   │   │ &lt;span class=&quot;co0&quot;&gt;# Системные конфигурационные файлы&lt;/span&gt;
│   ├── fstab                           │   │   │ &lt;span class=&quot;co0&quot;&gt;# [ВАЖНО] Очищен (0 байт) перед запаковкой!&lt;/span&gt;
│   ├── &lt;span class=&quot;kw2&quot;&gt;passwd&lt;/span&gt;                          │   │   │ &lt;span class=&quot;co0&quot;&gt;# База пользователей (используется api/users.php)&lt;/span&gt;
│   ├── group                           │   │   │ &lt;span class=&quot;co0&quot;&gt;# База групп (используется api/groups.php)&lt;/span&gt;
│   ├── shadow                          │   │   │ &lt;span class=&quot;co0&quot;&gt;# Хэши паролей (модифицируется веб-интерфейсом)&lt;/span&gt;
│   ├── sudoers                         │   │   │ &lt;span class=&quot;co0&quot;&gt;# Настроен беспарольный доступ пользователя http&lt;/span&gt;
│   │                                   │   │   │
│   ├── nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;                          │   │   │
│   │   └── nginx.conf                  │   │   │ &lt;span class=&quot;co0&quot;&gt;# Веб-сервер Nginx настроен на порт 5000&lt;/span&gt;
│   │                                   │   │   │
│   ├── systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;                        │   │   │
│   │   ├── network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;                    │   │   │
│   │   │   └── &lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network        │   │   │ &lt;span class=&quot;co0&quot;&gt;# Сетевой конфиг (статический IP 192.168.1.150)&lt;/span&gt;
│   │   └── system&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;                     │   │   │
│   │                                   │   │   │ &lt;span class=&quot;co0&quot;&gt;# Включена автозагрузка служб: nginx, php-fpm,  &lt;/span&gt;
│   │                                   │   │   │       systemd-networkd, systemd-resolved, smb                                        
│   └── samba&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;                          │   │   │
│       └── smb.conf                    │   │   │  &lt;span class=&quot;co0&quot;&gt;# Файловый сервер для Windows-разработки&lt;/span&gt;
│                                       │   │   │
├── var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;               │   │   │  &lt;span class=&quot;co0&quot;&gt;# Кэш менеджера пакетов&lt;/span&gt;
│   └── &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;.pkg.tar.zst&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;                 │   │   │  &lt;span class=&quot;co0&quot;&gt;# Загруженные из интернета пакеты (nginx, &lt;/span&gt;
│                                       │   │   │     php-fpm, samba...&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; 
├── usr                                 │   │   │
│   ├──bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;                             │   │   │  &lt;span class=&quot;co0&quot;&gt;# Системные исполняемые файлы&lt;/span&gt;
│   │  └── pacman                       │   │   │  &lt;span class=&quot;co0&quot;&gt;# Менеджер пакетов хоста (утилита управления)&lt;/span&gt;
│   │                                   │   │   │
│   └── share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;                          │   │   │ 
│       └── nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;                      │   │   │ 
│           └── html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;                   │   │   │  &lt;span class=&quot;co0&quot;&gt;# Исходный код Веб-Инсталлятора (права 775/664,  &lt;/span&gt;
│               │                       │   │   │    http:http&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
│               ├── index.html          │   │   │  &lt;span class=&quot;co0&quot;&gt;# Интерфейс панели управления&lt;/span&gt;
│               ├── css&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;                │   │   │
│               │   └── style.css       │   │   │  &lt;span class=&quot;co0&quot;&gt;# Стили оформления панели&lt;/span&gt;
│               ├── js&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;                 │   │   │
│               │   └── app.js          │   │   │  &lt;span class=&quot;co0&quot;&gt;# Клиентские скрипты логики&lt;/span&gt;
│               └── api&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;                │   │   │
│                   ├── users.php       │   │   │  &lt;span class=&quot;co0&quot;&gt;# Серверный обработчик пользователей&lt;/span&gt;
│                   └── groups.php      │   │   │  &lt;span class=&quot;co0&quot;&gt;# Серверный обработчик групп&lt;/span&gt;
│                                       │   │   │
└── home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;                               │   │   │
    └── eva&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;                            │   │   │ &lt;span class=&quot;co0&quot;&gt;# Домашний каталог текущего пользователя хоста&lt;/span&gt;
        │                               │   │   │
        └── ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;               │   │   │ &lt;span class=&quot;co0&quot;&gt;# [ВХОДНАЯ ТОЧКА] Папка проекта-конструктора                                      &lt;/span&gt;
            │                           │   │   │                   будущей флешки
            │                           │   │   │ &lt;span class=&quot;co0&quot;&gt;# (Содержимое этой папки утилита xorriso                                                                        &lt;/span&gt;
            │                           │   │   │     превратит в ISO&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; 
            ├── archlinux-x86_64.iso    │   │   │ &lt;span class=&quot;co0&quot;&gt;# ISO-образа Arch Linux, скачанного из интернета                                                                        &lt;/span&gt;
            │                           │   │   │      
            ├── EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;                    │   │   │
            │   └── BOOT&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;               │   │   │
            │       └── BOOTX64.EFI ◄───┼───┼───┘      &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Скопирован из &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOT&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOTX64.EFI&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            │                           │   │
            ├── loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;                 │   │           &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;ГЕНЕРАЦИЯ ИЗ ТЕРМИНАЛА ХОСТА&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
            │   ├── loader.conf ◄───────┼───┼────────── Команда: &lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
            │   │                       │   │                    loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader.conf
            │   │                       │   │           Содержит: таймаут меню и выбор 
            │   │                       │   │                    записи по умолчанию
            │   └── entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;            │   │
            │       │                   │   │           &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;ГЕНЕРАЦИЯ ИЗ ТЕРМИНАЛА ХОСТА&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;                                                              
            │       └── 01-archiso-linux.conf ◄──────── Команда: &lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
            │                           │   │                  loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf
            └── arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;                   │   │           Содержит: параметры ядра, COM-порта
                ├── boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;               │   │                     и метку ARCH_202605
                │   └── x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;         ▼   │
                │       ├── vmlinuz-linux   ▼     &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Скопирован из &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                │       └── initramfs-linux.img   &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Скопирован из &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;initramfs-linux.img&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                │
                └── x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
                    └── airootfs.sfs               &lt;span class=&quot;co0&quot;&gt;# [ФИНАЛЬНЫЙ СЛЕПОК] Сюда команда &lt;/span&gt;
                        │                          &lt;span class=&quot;co0&quot;&gt;# mksquashfs запакует весь корень &#039;/&#039;,&lt;/span&gt;
                        │                          &lt;span class=&quot;co0&quot;&gt;# исключая виртуальные ФС и сам custom_iso&lt;/span&gt;
                        │                 
                        │                          &lt;span class=&quot;co0&quot;&gt;# (Опционально) Файл Fallback-загрузчика &lt;/span&gt;
                        │                                          для восстановления
                        │                
                        &lt;span class=&quot;co0&quot;&gt;# При загрузке сервера ядро монтирует этот файл в Live-ОЗУ как корень &#039;/&#039;:&lt;/span&gt;
                        ├── etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;passwd&lt;/span&gt;, shadow, nginx.conf, &lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                        ├── usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;код вашего веб-инсталлятора&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                        └── ...                          &lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;архитектурная_логика_связей_на_схеме&quot;&gt;Архитектурная логика связей на схеме:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Конструктор как изоляция: Каталог ~/custom_iso/ создается пользователем eva локально на хосте. Он служит сборочным цехом. Всё, что находится внутри ~/custom_iso/, станет корнем файловой системы самой флешки после записи ISO.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Процесс клонирования ядра: Команды cp /boot/… ~/custom_iso/… берут текущие рабочие загрузочные файлы хоста tom_1 и переносят их во вложенную структуру конструктора, чтобы будущий образ гарантированно загрузился на том же ядре.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Рекурсивное исключение при запаковке: Когда утилита mksquashfs сканирует корень / для генерации файла airootfs.sfs, она упаковывает все файлы etc, usr/share/nginx/html и т.д., но в параметрах запуска обязательно пропускает папку ~/custom_iso (и архивы *.iso), чтобы избежать бесконечного цикла (упаковки архива внутрь самого себя).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Стрелки на схеме в точности повторяют логику выполнения следующих трех команд&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; cp /boot/EFI/BOOT/BOOTX64.EFI ~/custom_iso/EFI/BOOT/BOOTX64.EFI&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; cp /boot/vmlinuz-linux ~/custom_iso/arch/boot/x86_64/vmlinuz-linux&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; cp /boot/initramfs-linux.img ~/custom_iso/arch/boot/x86_64/initramfs-linux.img&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; файлы конфигурации загрузчика loader.conf и 01-archiso-linux.conf не копируются из готовых папок хоста tom_1. Они создаются с нуля на лету с помощью консольных команд перенаправления вывода (cat « &amp;#039;&lt;abbr title=&quot;End of file&quot;&gt;EOF&lt;/abbr&gt;&amp;#039; &amp;gt; …) прямо внутри целевых папок конструктора ~/custom_iso/. &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Менеджер пакетов pacman (/usr/bin/pacman):Он является частью установленной операционной системы хоста tom_1. При запуске команды mksquashfs бинарный файл pacman и все его конфигурационные файлы автоматически попадают внутрь слепка airootfs.sfs. Благодаря этому на целевом сервере tom_2 в Live-режиме будет полноценно работать команда pacman.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Загруженные пакеты (/var/cache/pacman/pkg/):Когда на Шаге 2.2 выполняется команда sudo pacman -S nginx php-fpm …, пакеты сначала скачиваются из интернета в этот системный кэш, а затем устанавливаются в систему. Если перед сборкой образов не вызвать очистку кэша (pacman -Sc), все эти скачанные .tar.zst файлы тоже будут запакованы внутрь airootfs.sfs, что увеличит размер финального ISO-образа.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Скачанный оригинальный ISO-образ (~/archlinux-x86_64.iso):В данном руководстве автор реализует метод сборки на основе слепка живой системы (Host Snapshot), а не классический метод через утилиту archiso. Поэтому оригинальный ISO-образ Arch Linux автора не интересует — из него ничего не монтируется и не копируется.В тексте руководства он упоминается ровно один раз на Шаге 4.2 в качестве флага исключения:… -e /proc /sys … ~/archlinux-x86_64.iso ~/custom_iso …Это сделано исключительно для того, чтобы архиватор mksquashfs случайно не стал упаковывать этот огромный скачанный файл весом в 1 ГБ внутрь создаваемого слепка.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;исключенные_директории_флаг_-e_в_mksquashfs&quot;&gt;Исключенные директории (Флаг -e в mksquashfs)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
При сборке слепка командой sudo mksquashfs / … напрямую исключаются виртуальные, временные и резервные папки хоста, так как они генерируются ядром автоматически при загрузке в ОЗУ:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; /proc и /sys — виртуальные ФС ядра.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; /dev — файлы устройств (заполняются службой udev).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; /run — динамические runtime-данные (сюда при старте создается сокет /run/php-fpm/php-fpm.sock).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; /tmp — временные файлы.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; /mnt и /media — точки монтирования внешних дисков.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:arch_linux_circuit&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;circuit&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;                                   &lt;span class=&quot;co0&quot;&gt;# Точка монтирования реального UEFI (ESP) раздела хоста&lt;/span&gt;
├── vmlinuz-linux                        &lt;span class=&quot;co0&quot;&gt;# Родное исполняемое ядро Arch Linux (сжатый бинарник)&lt;/span&gt;
├── initramfs-linux.img                  &lt;span class=&quot;co0&quot;&gt;# Основной образ файловой системы ранней загрузки (ОЗУ-диск)&lt;/span&gt;
├── initramfs-linux-fallback.img         &lt;span class=&quot;co0&quot;&gt;# Резервный образ загрузки (включает полный набор драйверов)&lt;/span&gt;
└── EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
    └── BOOT&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
        ├── BOOTX64.EFI                  &lt;span class=&quot;co0&quot;&gt;# Основной бинарный файл загрузчика UEFI (в данном проекте systemd-boot)&lt;/span&gt;
        └── fbx64.efi                    &lt;span class=&quot;co0&quot;&gt;# (Опционально) Файл Fallback-загрузчика для восстановления&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;ключевые_файлы_схемы&quot;&gt;Ключевые файлы схемы:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; vmlinuz-linux и initramfs-linux.img — это «сердце» загрузки . Они обновляются каждый раз, когда вы выполняете команду sudo pacman -Syu . Именно их актуальные версии забирает конструктор, чтобы гарантировать отсутствие паники ядра на флешке.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; EFI/BOOT/BOOTX64.EFI — это переименованный исполняемый файл systemd-boot, который материнская плата сервера считывает первым при старте ПК в режиме UEFI&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0441\u0445\u0435\u043c\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0445\u0435\u043c\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-18728&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;разбивки_диска_оригинальго_arch_linux_с_fat32&quot;&gt;разбивки диска оригинальго Arch linux с  Fat32&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
На основе стандартных рекомендаций по установке оригинального Arch Linux в режиме UEFI (включая требования из руководства по созданию ISO), ниже представлена схема разбивки физического диска (например, /dev/sda или /dev/nvme0n1).
&lt;br/&gt;

Схема содержит обязательный системный раздел FAT32 (для загрузчика), основной раздел Ext4 (корень системы) и раздел подкачки Swap:
&lt;/p&gt;

&lt;p&gt;
Физический диск (Разметка таблицы разделов: GPT)
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:arch_linux_circuit&amp;amp;codeblock=2&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;GPT&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;┌─────────────────────────────────────────────────────────────────────────────────────────┐
│ Номер раздела │ Файловая система │ Название &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; Назначение     │ Точка монтирования       │
├───────────────┼──────────────────┼───────────────────────────┼──────────────────────────┤
│   &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sda1   │      FAT32       │ EFI System Partition &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ESP&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;│ &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot                    │
│               │                  │ Размер: &lt;span class=&quot;nu0&quot;&gt;512&lt;/span&gt; МБ - &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; ГБ     │                          │
├───────────────┼──────────────────┼───────────────────────────┼──────────────────────────┤
│   &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sda2   │    linux-swap    │ Swap Partition &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Подкачка&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; │ &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;SWAP&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;                   │
│               │                  │ Размер: равен ОЗУ или выше│                          │
├───────────────┼──────────────────┼───────────────────────────┼──────────────────────────┤
│   &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sda3   │      Ext4        │ Root Partition &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Корень&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;   │ &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Сюда ставится система&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; │                        
│               │                  │ Размер: Всё оставшееся    │                          │
└─────────────────────────────────────────────────────────────────────────────────────────┘&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;важные_технические_особенности&quot;&gt;Важные технические особенности:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Почему FAT32 обязателен? Материнские платы с UEFI «из коробки» не умеют читать файловые системы Linux (такие как Ext4, Btrfs или SquashFS). Они понимают только FAT32. Поэтому папка /boot выносится на отдельный FAT32-раздел, чтобы плата могла запустить загрузчик BOOTX64.EFI и считать ядро.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Флаг загрузки: При создании раздела /dev/sda1 утилитами fdisk или gdisk ему обязательно выставляется тип EFI System (код ef00 в gdisk), а форматируется он строго командой mkfs.vfat -F 32 /dev/sda1.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Использование в ISO: При сборке вашего кастомного ISO-образа утилита xorriso имитирует эту структуру прямо внутри одного ISO-файла, создавая скрытый FAT-образ для совместимости с UEFI-загрузкой целевых серверов.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0438 \u0434\u0438\u0441\u043a\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u0433\u043e Arch linux \u0441  Fat32&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0438_\u0434\u0438\u0441\u043a\u0430_\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u0433\u043e_arch_linux_\u0441_fat32&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;18729-23018&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;примеры_схем&quot;&gt;1.9.1 Примеры схем&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.archlinux.org/title/Installation_guide_(Русский)&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Installation_guide_(Русский)&quot; rel=&quot;ugc nofollow&quot;&gt;UEFI с GPT&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&#039;plugin_tablelayout_placeholder&#039; data-tablelayout=&quot;{&amp;quot;colwidth&amp;quot;:[&amp;quot;200px&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;230px&amp;quot;]}&quot;&gt;&lt;/div&gt;&lt;div class=&quot;table sectionedit4&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Точка монтирования в установленной системе&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Раздел&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Тип раздела&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Рекомендуемый размер&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;/boot1&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;/dev/системный_раздел_efi&lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;Системный раздел EFI	&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;1 ГиБ&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;[SWAP]&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;/dev/раздел_подкачки&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Linux swap&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;Не менее 4 ГиБ&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;/&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;/dev/корневой_раздел&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Linux x86-64 root (/)&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;Остаток, минимум 23–32 ГиБ&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;23185-23625&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1.9.1 \u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u0445\u0435\u043c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0438\u043c\u0435\u0440\u044b_\u0441\u0445\u0435\u043c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;23019-23626&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;схема_веб-панели_управления_в_основной_системе_tom_1&quot;&gt;Схема веб-панели управления в основной системе (tom_1)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Папка веб-сервера nginx_html находится по пути /usr/share/nginx/html/ и имеет следующую структуру файлов бэкенда (PHP) и фронтенда (JS/&lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;/usr/share/nginx/html/               # Корневая директория веб-сервера Nginx
├── index.html                       # Главный интерфейс панели (вкладки, таблицы, модальные окна)
├── css/
│   └── style.css                    # Стили оформления интерфейса панели управления
├── js/
│   └── app.js                       # Клиентская логика (асинхронные Fetch-запросы к API, фильтры)
└── api/
    ├── users.php                    # Серверный обработчик для системных пользователей (/etc/passwd)
    └── groups.php                   # Серверный обработчик для системных групп (/etc/group)&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0445\u0435\u043c\u0430 \u0432\u0435\u0431-\u043f\u0430\u043d\u0435\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 (tom_1)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0445\u0435\u043c\u0430_\u0432\u0435\u0431-\u043f\u0430\u043d\u0435\u043b\u0438_\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f_\u0432_\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439_\u0441\u0438\u0441\u0442\u0435\u043c\u0435_tom_1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;23627-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 25 May 2026 14:35:39 +0000</pubDate>
        </item>
        <item>
            <title>arch_linux_installing_core_packages</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:linux_server:arch_linux:arch_linux_installing_core_packages&amp;rev=1779798940</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;перечень_основных_и_дополнительных_пакетов&quot;&gt;Перечень основных и дополнительных пакетов&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Никакие программы или настройки (кроме файла /etc/pacman.d/mirrorlist) из live-окружения в устанавливаемую систему не переносятся. Единственным обязательным для установки пакетом является base, который не предоставляет все инструменты, имеющиеся на установочном носителе, поэтому вам скорее всего понадобится установить дополнительные пакеты для получения полностью функциональной базовой системы.
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c_\u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445_\u0438_\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445_\u043f\u0430\u043a\u0435\u0442\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-812&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;системные_компоненты_и_базовые_утилиты&quot;&gt;1. Системные компоненты и базовые утилиты&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Инструменты для развертывания ОС, управления накопителями и чтения документации.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/core/x86_64/linux/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/core/x86_64/linux/&quot; rel=&quot;ugc nofollow&quot;&gt;linux&lt;/a&gt;: ядро операционной системы.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/core/any/linux-firmware/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/core/any/linux-firmware/&quot; rel=&quot;ugc nofollow&quot;&gt;linux-firmware&lt;/a&gt;: набор микропрограмм (драйверов) для компьютерного железа.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/core/x86_64/grub/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/core/x86_64/grub/&quot; rel=&quot;ugc nofollow&quot;&gt;grub&lt;/a&gt;: популярный универсальный загрузчик&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wiki.archlinux.org/title/Systemd-boot/systemd-boot&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Systemd-boot/systemd-boot&quot; rel=&quot;ugc nofollow&quot;&gt;https://wiki.archlinux.org/title/Systemd-boot/systemd-boot&lt;/a&gt;: простой и быстрый загрузчик, встроенный в системную среду systemd&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/core/any/base/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/core/any/base/&quot; rel=&quot;ugc nofollow&quot;&gt;base&lt;/a&gt;:единственный обязательный пакет для минимальной установки.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/core/x86_64/btrfs-progs/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/core/x86_64/btrfs-progs/&quot; rel=&quot;ugc nofollow&quot;&gt;btrfs-progs&lt;/a&gt;: утилиты для создания и обслуживания файловой системы Btrfs.                                       &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/core/x86_64/e2fsprogs/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/core/x86_64/e2fsprogs/&quot; rel=&quot;ugc nofollow&quot;&gt;e2fsprogs&lt;/a&gt;: стандартный набор программ для работы с файловыми системами ext2/ext3/ext4.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wiki.archlinux.org/title/RAID#Installation&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/RAID#Installation&quot; rel=&quot;ugc nofollow&quot;&gt;mdadm&lt;/a&gt;: инструмент для создания, управления и мониторинга программных &lt;a href=&quot;https://wiki.archlinux.org/title/RAID&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/RAID&quot; rel=&quot;ugc nofollow&quot;&gt;RAID-массивов&lt;/a&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wiki.archlinux.org/title/LVM#RAID&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/LVM#RAID&quot; rel=&quot;ugc nofollow&quot;&gt;LVM&lt;/a&gt;: подсистема управления дисковым пространством в Linux&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/snapper/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/snapper/&quot; rel=&quot;ugc nofollow&quot;&gt;snapper&lt;/a&gt;: инструмент автоматического создания снимков (снапшотов) файловой системы Btrfs и LVM.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/any/inxi/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/any/inxi/&quot; rel=&quot;ugc nofollow&quot;&gt;inxi&lt;/a&gt;консольная утилита для получения подробного отчета об аппаратном и программном обеспечении ПК.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/core/any/man-pages/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/core/any/man-pages/&quot; rel=&quot;ugc nofollow&quot;&gt;man-pages&lt;/a&gt; / &lt;a href=&quot;https://archlinux.org/packages/core/x86_64/texinfo/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/core/x86_64/texinfo/&quot; rel=&quot;ugc nofollow&quot;&gt;texinfo&lt;/a&gt;: справочные руководства и интерактивная системная документация в терминале.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1. \u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0438 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435_\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b_\u0438_\u0431\u0430\u0437\u043e\u0432\u044b\u0435_\u0443\u0442\u0438\u043b\u0438\u0442\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;813-3387&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;сетевые_службы_и_подключение&quot;&gt;2. Сетевые службы и подключение&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Пакеты для настройки сети, удаленного доступа и маршрутизации.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/networkmanager/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/networkmanager/&quot; rel=&quot;ugc nofollow&quot;&gt;networkmanager&lt;/a&gt;: служба для настройки сети и управления сетевыми соединениями в системе.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/core/x86_64/openssh/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/core/x86_64/openssh/&quot; rel=&quot;ugc nofollow&quot;&gt;openssh&lt;/a&gt;: пакет для безопасного удаленного управления сервером по протоколу SSH.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/dnsmasq/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/dnsmasq/&quot; rel=&quot;ugc nofollow&quot;&gt;dnsmasq&lt;/a&gt;: легкий &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;-форвардер и DHCP-сервер для локальных сетей.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2. \u0421\u0435\u0442\u0435\u0432\u044b\u0435 \u0441\u043b\u0443\u0436\u0431\u044b \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0435\u0442\u0435\u0432\u044b\u0435_\u0441\u043b\u0443\u0436\u0431\u044b_\u0438_\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;3388-4149&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;безопасность_и_аутентификация&quot;&gt;3. Безопасность и аутентификация&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Инструменты для защиты сервера, контроля доступа, шифрования и проверки на угрозы.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/core/x86_64/pam/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/core/x86_64/pam/&quot; rel=&quot;ugc nofollow&quot;&gt;pam&lt;/a&gt;: библиотека подключаемых модулей для аутентификации пользователей в Linux.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/libpam-google-authenticator/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/libpam-google-authenticator/&quot; rel=&quot;ugc nofollow&quot;&gt;libpam-google-authenticator&lt;/a&gt;: модуль двухфакторной аутентификации (2FA) через Google Authenticator.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/qrencode/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/qrencode/&quot; rel=&quot;ugc nofollow&quot;&gt;qrencode&lt;/a&gt;: утилита для генерации QR-кодов в консоли (нужна для настройки 2FA).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/any/ufw/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/any/ufw/&quot; rel=&quot;ugc nofollow&quot;&gt;ufw&lt;/a&gt;: простой в настройке межсетевой экран (брандмауэр).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/any/fail2ban/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/any/fail2ban/&quot; rel=&quot;ugc nofollow&quot;&gt;fail2ban&lt;/a&gt;: защита от брутфорса, блокирующая IP-адреса за частые ошибки авторизации.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/any/certbot/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/any/certbot/&quot; rel=&quot;ugc nofollow&quot;&gt;certbot&lt;/a&gt;: клиент для автоматического получения и продления SSL/TLS-сертификатов Let&amp;#039;s Encrypt.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/clamav/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/clamav/&quot; rel=&quot;ugc nofollow&quot;&gt;clamav&lt;/a&gt;: открытый антивирусный пакет для сканирования системы на вредоносное ПО.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3. \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0438 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c_\u0438_\u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;4150-5735&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;веб-серверы_и_субд&quot;&gt;4. Веб-серверы и СУБД&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Программное обеспечение бэкенда для хостинга сайтов, веб-приложений и баз данных.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/nginx/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/nginx/&quot; rel=&quot;ugc nofollow&quot;&gt;nginx&lt;/a&gt;: легковесный, быстрый HTTP-сервер и обратный прокси-сервер.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wiki.archlinux.org/title/PHP&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/PHP&quot; rel=&quot;ugc nofollow&quot;&gt;php&lt;/a&gt; / &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/php-fpm/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/php-fpm/&quot; rel=&quot;ugc nofollow&quot;&gt;php-fpm&lt;/a&gt;: менеджер процессов FastCGI для корректной и быстрой работы PHP под Nginx.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/apache/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/apache/&quot; rel=&quot;ugc nofollow&quot;&gt;apache&lt;/a&gt;: мощный и расширяемый модульный веб-сервер общего назначения.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/php-apache/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/php-apache/&quot; rel=&quot;ugc nofollow&quot;&gt;php-apache&lt;/a&gt;: модуль интеграции интерпретатора PHP со стандартным веб-сервером Apache.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/mariadb/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/mariadb/&quot; rel=&quot;ugc nofollow&quot;&gt;mariadb&lt;/a&gt;: реляционная база данных, быстрая замена MySQL с открытым кодом.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/any/phpmyadmin/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/any/phpmyadmin/&quot; rel=&quot;ugc nofollow&quot;&gt;phpmyadmin&lt;/a&gt;: веб-интерфейс для удобного администрирования баз данных MySQL/MariaDB.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/proxyboi/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/proxyboi/&quot; rel=&quot;ugc nofollow&quot;&gt;proxyboi&lt;/a&gt; — простой обратный прокси-сервер с поддержкой TLS.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4. \u0412\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440\u044b \u0438 \u0421\u0423\u0411\u0414&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440\u044b_\u0438_\u0441\u0443\u0431\u0434&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;5736-7263&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;общие_сетевые_и_файловые_хранилища&quot;&gt;5. Общие сетевые и файловые хранилища&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Пакеты для развертывания локальных файлообменников и синхронизации данных.
&lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/samba/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/samba/&quot; rel=&quot;ugc nofollow&quot;&gt;samba&lt;/a&gt;: сервер для создания общих сетевых папок (SMB/CIFS) совместимых с Windows и Active Directory.
&lt;a href=&quot;https://archlinux.org/packages/core/x86_64/nfs-utils/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/core/x86_64/nfs-utils/&quot; rel=&quot;ugc nofollow&quot;&gt;nfs-utils&lt;/a&gt;: утилиты поддержки сетевой файловой системы NFS для Unix-подобных ОС.
&lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/bftpd/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/bftpd/&quot; rel=&quot;ugc nofollow&quot;&gt;bftpd&lt;/a&gt;: компактный, простой в конфигурации и надежный &lt;abbr title=&quot;File Transfer Protocol&quot;&gt;FTP&lt;/abbr&gt;-сервер.
&lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/rsync/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/rsync/&quot; rel=&quot;ugc nofollow&quot;&gt;rsync&lt;/a&gt;: утилита для синхронизации и резервного копирования файлов на сервере и по сети
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;5. \u041e\u0431\u0449\u0438\u0435 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0431\u0449\u0438\u0435_\u0441\u0435\u0442\u0435\u0432\u044b\u0435_\u0438_\u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0435_\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;7264-8245&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;готовые_веб-приложения_и_платформы_cms_вики&quot;&gt;6. Готовые веб-приложения и платформы (CMS/Вики)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Веб-инструменты для управления базами данных, хостинга блогов, документации и порталов.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/any/dokuwiki/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/any/dokuwiki/&quot; rel=&quot;ugc nofollow&quot;&gt;dokuwiki&lt;/a&gt;: простой, быстрый wiki-движок, не требующий базы данных (работает на текстовых файлах).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/any/wordpress/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/any/wordpress/&quot; rel=&quot;ugc nofollow&quot;&gt;wordpress&lt;/a&gt;: популярная &lt;abbr title=&quot;Content Management System&quot;&gt;CMS&lt;/abbr&gt;-платформа для создания сайтов, блогов и публикации контента.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/gitea/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/gitea/&quot; rel=&quot;ugc nofollow&quot;&gt;gitea&lt;/a&gt;: легковесный хостинг IT-проектов и Git-репозиториев (Self-hosted аналог GitHub)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;6. \u0413\u043e\u0442\u043e\u0432\u044b\u0435 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b (CMS\/\u0412\u0438\u043a\u0438)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0433\u043e\u0442\u043e\u0432\u044b\u0435_\u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f_\u0438_\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b_cms_\u0432\u0438\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;8246-9119&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;домашние_медиа-серверы_и_персональные_облака&quot;&gt;7. Домашние медиа-серверы и персональные облака&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Пакеты для каталогизации, стриминга медиаконтента и синхронизации календарей.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/minidlna/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/minidlna/&quot; rel=&quot;ugc nofollow&quot;&gt;minidlna&lt;/a&gt;: легкий медиа-сервер для раздачи видео и музыки на телевизоры и плееры по сети DLNA.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/mpd/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/mpd/&quot; rel=&quot;ugc nofollow&quot;&gt;mpd&lt;/a&gt; (Music Player Daemon): гибкий сервер для фонового воспроизведения музыки в сети.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/immich-go/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/immich-go/&quot; rel=&quot;ugc nofollow&quot;&gt;immich-go&lt;/a&gt;: утилита для быстрой миграции и загрузки фото в self-hosted аналог Google Фото — Immich.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/any/radicale/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/any/radicale/&quot; rel=&quot;ugc nofollow&quot;&gt;radicale&lt;/a&gt;: легковесный CalDAV и CardDAV сервер для синхронизации личных календарей и контактов.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/opensmtpd/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/opensmtpd/&quot; rel=&quot;ugc nofollow&quot;&gt;opensmtpd&lt;/a&gt;: почтовый сервер (SMTP) для отправки и маршрутизации системных уведомлений и писем&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;7. \u0414\u043e\u043c\u0430\u0448\u043d\u0438\u0435 \u043c\u0435\u0434\u0438\u0430-\u0441\u0435\u0440\u0432\u0435\u0440\u044b \u0438 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0431\u043b\u0430\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043c\u0430\u0448\u043d\u0438\u0435_\u043c\u0435\u0434\u0438\u0430-\u0441\u0435\u0440\u0432\u0435\u0440\u044b_\u0438_\u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435_\u043e\u0431\u043b\u0430\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;9120-10420&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;офис_графика_и_разработка_по&quot;&gt;8. Офис, графика и разработка ПО&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Инструменты редактирования файлов, кода, просмотра графики и работы с документами.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/core/x86_64/nano/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/core/x86_64/nano/&quot; rel=&quot;ugc nofollow&quot;&gt;nano&lt;/a&gt;: классический консольный текстовый редактор для редактирования конфигов в терминале.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/code/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/code/&quot; rel=&quot;ugc nofollow&quot;&gt;code&lt;/a&gt; (VS Code): open-source сборка текстового редактора Visual Studio Code для разработки.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/core/x86_64/python/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/core/x86_64/python/&quot; rel=&quot;ugc nofollow&quot;&gt;python&lt;/a&gt;: интерпретатор современного объектно-ориентированного языка программирования Python.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/feh/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/feh/&quot; rel=&quot;ugc nofollow&quot;&gt;feh&lt;/a&gt;: очень быстрый консольный и графический просмотрщик изображений.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/libreoffice-fresh/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/libreoffice-fresh/&quot; rel=&quot;ugc nofollow&quot;&gt;libreoffice-fresh&lt;/a&gt; (с языковыми пакетами &lt;a href=&quot;https://archlinux.org/packages/extra/any/libreoffice-fresh-en-gb/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/any/libreoffice-fresh-en-gb/&quot; rel=&quot;ugc nofollow&quot;&gt;en&lt;/a&gt;/&lt;a href=&quot;https://archlinux.org/packages/extra/any/libreoffice-fresh-ru/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/any/libreoffice-fresh-ru/&quot; rel=&quot;ugc nofollow&quot;&gt;ru&lt;/a&gt;): полноценный офисный пакет для работы с текстом и таблицами&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;8. \u041e\u0444\u0438\u0441, \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u041f\u041e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0444\u0438\u0441_\u0433\u0440\u0430\u0444\u0438\u043a\u0430_\u0438_\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430_\u043f\u043e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;10421-11834&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;виртуализация_контейнеры_и_автоматизация_задач&quot;&gt;9. Виртуализация, контейнеры и автоматизация задач&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Среды для изолированного запуска приложений, виртуальных машин и планирования процессов.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/docker/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/docker/&quot; rel=&quot;ugc nofollow&quot;&gt;docker&lt;/a&gt;: платформа для развертывания и управления изолированными контейнерами приложений.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/qemu-system-x86/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/qemu-system-x86/&quot; rel=&quot;ugc nofollow&quot;&gt;qemu-system-x86&lt;/a&gt;: мощный аппаратный эмулятор и гипервизор для запуска x86 виртуальных машин.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/kcron/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/kcron/&quot; rel=&quot;ugc nofollow&quot;&gt;kcron&lt;/a&gt;: графический инструмент для удобной настройки и планирования задач cron.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/fzy/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/fzy/&quot; rel=&quot;ugc nofollow&quot;&gt;fzy&lt;/a&gt;: быстрый интерактивный инструмент для продвинутого нечёткого (fuzzy) поиска в терминале.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;9. \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0430\u0434\u0430\u0447&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f_\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b_\u0438_\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f_\u0437\u0430\u0434\u0430\u0447&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;11835-12962&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;web-приложения&quot;&gt;10. Web-приложения&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; требуются написать Анализатор системы&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; требуются написать Монитор рисурсов&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; требуются написать Центр журналов log&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; требуются написать Диспетчер хранения&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; требуются написать Средство просмотра документов (редактор)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; требуются написать Средство просмотра документов (pdf)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; требуются написать fale manager&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; требуются написать chat&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; требуются написать universal search&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; требуются написать установщик matomo&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; требуются написать установщик phpBB&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; требуются написать установщик Joomla&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; требуются написать установщик Calibre-Web&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; требуются написать установщик mediacms&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; требуются написать установщик notepad++&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; требуются написать установщик notepadqq&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Список пакетов, присутствующих в установочном образе, доступен на странице &lt;a href=&quot;https://geo.mirror.pkgbuild.com/iso/latest/arch/pkglist.x86_64.txt&quot; class=&quot;urlextern&quot; title=&quot;https://geo.mirror.pkgbuild.com/iso/latest/arch/pkglist.x86_64.txt&quot; rel=&quot;ugc nofollow&quot;&gt;pkglist.x86_64.txt&lt;/a&gt;.
&lt;br/&gt;

Чтобы установить дополнительные пакеты или группы пакетов, добавьте их названия к приведённой ниже команде &lt;a href=&quot;https://man.archlinux.org/man/pacstrap.8&quot; class=&quot;urlextern&quot; title=&quot;https://man.archlinux.org/man/pacstrap.8&quot; rel=&quot;ugc nofollow&quot;&gt;pacstrap&lt;/a&gt; через пробел или используйте &lt;a href=&quot;https://wiki.archlinux.org/title/Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; rel=&quot;ugc nofollow&quot;&gt;pacman&lt;/a&gt;  во время этапа &lt;a href=&quot;https://wiki.archlinux.org/title/Installation_guide_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#Chroot&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Installation_guide_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#Chroot&quot; rel=&quot;ugc nofollow&quot;&gt;#Chroot.&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10. Web-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;web-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;12963-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 26 May 2026 12:35:40 +0000</pubDate>
        </item>
        <item>
            <title>arch_linux_stages</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:linux_server:arch_linux:arch_linux_stages&amp;rev=1779738601</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;этапы&quot;&gt;Этапы&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:arch_linux_stages&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;stages&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt; ┌──────────────────────────────────────────────────────────┐
 │                    &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;. ПОДГОТОВКА СРЕДЫ                   │
 │  Установка базовой ОС Ubuntu &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;основной гипервизор&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;хост&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  │
 └────────────────────────────┬─────────────────────────────┘
                              │
                              ▼
 ┌──────────────────────────────────────────────────────────┐
 │             &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;. СОЗДАНИЕ ЭТАЛОННОЙ СИСТЕМЫ                │
 │    Развертывание вирт. машины Arch Linux &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ВМ tom_1&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;      │
 │    • Полное обновление пакетов и фиксация ядра           │
 │    • Настройка сети, Nginx, PHP-FPM и Samba              │
 │    • Разработка исходного кода WebUI-инсталлятора        │
 └────────────────────────────┬─────────────────────────────┘
                              │
                              ▼
 ┌──────────────────────────────────────────────────────────┐
 │              &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;. КОНСЕРВАЦИЯ И СБОРКА ISO                 │
 │   Генерация дистрибутива в изолированной папке tom_1     │
 │    • Временное обнуление таблицы разделов &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;   │
 │    • Сжатие всей файловой системы в SquashFS-слепок      │
 │    • Настройка UEFI-загрузчика &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;systemd-boot&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;            │
 │    • Компиляция универсального ISO через утилиту xorriso │
 └────────────────────────────┬─────────────────────────────┘
                              │
                              ▼
 ┌──────────────────────────────────────────────────────────┐
 │             &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;. ЭКСПОРТ И ПЕРЕНОС ДАННЫХ                  │
 │   Скачивание образа из виртуальной среды на рабочую ПК   │
 │    • Выполнение команды &lt;span class=&quot;kw2&quot;&gt;scp&lt;/span&gt; в консоли PowerShell Windows │
 │    • Сохранение файла arch_custom.iso в папку «Загрузки» │
 └────────────────────────────┬─────────────────────────────┘
                              │
                              ▼
 ┌──────────────────────────────────────────────────────────┐
 │             &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;. ПРОЖИГ И ПОДГОТОВКА НОСИТЕЛЯ              │
 │   Запись live-образа на виртуальный&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;физический диск      │
 │    • Запуск утилиты Rufus на Windows-машине              │
 │    • Выбор схемы разделов: GPT &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; Целевая система: UEFI   │
 │    • Присвоение жесткой глобальной метки ARCH_202605     │
 │    • Создание загрузочной флешки &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;диск arch-flash&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;       │
 └────────────────────────────┬─────────────────────────────┘
                              │
                              ▼
 ┌──────────────────────────────────────────────────────────┐
 │          &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;. СЛЕПОЕ РАЗВЕРТЫВАНИЕ НА СЕРВЕРЕ              │
 │ Запуск ВМ tom_2 в изолированной локальной сети без инета │
 │    • Подключение созданного диска arch-flash к ВМ        │
 │    • Загрузка сервера «вслепую» из Live-RAM флешки       │
 │    • Авто-подъем статического адреса 192.168.1.150       │
 │    • Управление пользователями&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;группами через WebUI:     │
 │      http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;192.168.1.150:&lt;span class=&quot;nu0&quot;&gt;5000&lt;/span&gt;                           │
 └──────────────────────────────────────────────────────────┘&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 25 May 2026 19:50:01 +0000</pubDate>
        </item>
        <item>
            <title>arch_linux</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:linux_server:arch_linux:arch_linux&amp;rev=1779699668</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;arch_linux&quot;&gt;Arch Linux&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.archlinux.org/title/Arch_Linux_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Arch_Linux_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; rel=&quot;ugc nofollow&quot;&gt;Arch Linux&lt;/a&gt; — это независимый дистрибутив Linux с принципом «сделай сам» (DIY). Он не навязывает лишних программ и предлагает пустую базовую среду, которую пользователь собирает под себя. ОС использует модель обновлений rolling release: система ставится один раз, а программы постоянно обновляются до свежих версий
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Arch Linux&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;arch_linux&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-665&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;ключевые_принципы_устройства&quot;&gt;Ключевые принципы устройства&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Модульность: Вы начинаете с минимального окружения и добавляете только то, что нужно (графическую оболочку, браузер, системные утилиты).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Arch Build System (ABS): Инструментарий для сборки пакетов из исходных кодов с помощью сценариев сборки.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Arch User Repository (AUR): Огромный каталог скриптов, поддерживаемый сообществом, который позволяет установить практически любую программу, существующую для Linux.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435_\u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b_\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;666-1442&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;основные_компоненты_системы&quot;&gt;Основные компоненты системы&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
КомпонентНазначение
&lt;/p&gt;
&lt;div class=&quot;table sectionedit4&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;pacman&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Собственный пакетный менеджер. Отвечает за установку, обновление и удаление программ.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;ABS и makepkg&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Система портов, скрипты (PKGBUILD) для автоматической компиляции и создания установочных пакетов.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;systemd&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Система инициализации и управления службами, запускающая сервисы при старте системы.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Официальные репозитории&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Строго проверенные базовые программы и компоненты ядра, поддерживаемые разработчиками Arch.&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1543-2284&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435_\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b_\u0441\u0438\u0441\u0442\u0435\u043c\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1443-2284&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;плюсы_и_минусы&quot;&gt;Плюсы и минусы&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;преимущества&quot;&gt;Преимущества:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Контроль: Вы точно знаете, что и почему установлено в вашей системе.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Свежий софт: Благодаря роллинг-релизу обновления ядра и ПО приходят сразу после их выхода от разработчиков.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Великолепная документация:Официальная энциклопедия ArchWiki считается одной из самых полных и полезных в мире Linux.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;недостатки&quot;&gt;Недостатки:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Порог вхождения: Требует базового понимания архитектуры Linux и готовности использовать командную строку.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Обслуживание: Поскольку обновления выходят непрерывно, иногда требуется вмешательство пользователя (например, для объединения конфигурационных файлов при обновлении)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043b\u044e\u0441\u044b \u0438 \u043c\u0438\u043d\u0443\u0441\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043b\u044e\u0441\u044b_\u0438_\u043c\u0438\u043d\u0443\u0441\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;2285-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 25 May 2026 09:01:08 +0000</pubDate>
        </item>
        <item>
            <title>building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;rev=1779679177</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;сборка_iso_image_arch_linux_из_рабочего_arch_linux&quot;&gt;сборка iso image arch linux из рабочего arch linux&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0441\u0431\u043e\u0440\u043a\u0430 iso image arch linux \u0438\u0437 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e arch linux&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0431\u043e\u0440\u043a\u0430_iso_image_arch_linux_\u0438\u0437_\u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e_arch_linux&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-81&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;вводные_данные_и_архитектура_стенда&quot;&gt;1. Вводные данные и Архитектура Стенда&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; tom_1 - ВМ в Hyper-V с доступом в интернет, с рабочим arch linux, на котором развернут Nginx (порт 5000) и работает SSH для PuTTY, созданы пользователи root и eva и им заданы пороли.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; arch-flash-3 - ВД в Hyper-V,  куда мы через rufus записываем, созданный нами ISO-образ с tom_1&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; tom_2 - ВМ в Hyper-V без доступа в интернет, куда мы подключим arch-flash-3 и развернем arch linux, на котором развернут Nginx (порт 5000) и работает SSH для PuTTY, созданы пользователи root и eva и им заданы пороли.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
реальный headless-сервер - без интернета и без монитора.(supermicro, 2 none-name (старый и новый) и старый HP) &lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;наша_цель&quot;&gt;Наша цель:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
собрать новый, полностью универсальный ISO-образ, который будет находить флешку не по жесткому UUID, а по глобальной метке тома (LABEL=ARCH_202605).&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1. \u0412\u0432\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0421\u0442\u0435\u043d\u0434\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0432\u043e\u0434\u043d\u044b\u0435_\u0434\u0430\u043d\u043d\u044b\u0435_\u0438_\u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430_\u0441\u0442\u0435\u043d\u0434\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;82-1378&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;🛠_этап_0_выравнивание_версий_и_подготовка_окружения_на_tom_1&quot;&gt;🛠 Этап 0. Выравнивание версий и подготовка окружения на tom_1&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Чтобы предотвратить конфликт драйверов и панику модуля ZRAM на ранних секундах загрузки флешки, ядро загрузчика и модули внутри SquashFS-слепка должны совпадать символ в символ.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;шаг_21_тотальное_обновление_и_фиксация_ядра_хоста&quot;&gt;Шаг 2.1. Тотальное обновление и фиксация ядра хоста&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Зайдите на чистый tom_1 по SSH под пользователем eva и обновите индекс пакетов и само ядро хоста:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-Syu&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_95.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_95.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_95.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;фиксируем_эталонную_версию_ядра&quot;&gt;Фиксируем эталонную версию ядра&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Посмотрите на строчку генерации образа виртуального диска:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;=⇒ Starting build: &amp;#039;7.0.9-arch2-1&amp;#039;&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Наша новая зафиксированная версия ядра: 7.0.9-arch2-1.&lt;br/&gt;

Обратите внимание, как утилита mkinitcpio автоматически пересобрала не просто обычный виртуальный диск, а создала единый объединенный образ:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Creating unified kernel image: &amp;#039;/boot/EFI/Linux/arch-linux.efi&amp;#039;&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Это означает, что на tom_1 теперь развернута абсолютно чистая, монолитная, современная база ядра. Конфликт версий официально предотвращен еще на этапе фундамента.&lt;br/&gt;

Поскольку в процессе этого тотального обновления pacman физически заменил старые файлы ядра в каталоге /boot/ на новые, текущее запущенное в оперативной памяти tom_1 ядро всё еще имеет старый индекс, а на диске уже лежат файлы версии 7.0.9-arch2-1.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;перезагрузка_системы&quot;&gt;Перезагрузка системы&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Чтобы система tom_1 полностью приняла новое ядро и зафиксировала его в оперативной памяти, нам нужно отправить виртуалку в чистую перезагрузку.&lt;br/&gt;

Прямо в консоли PuTTY выполните команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; reboot&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_98.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_98.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_98.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Подождите около 20–30 секунд, пока ВМ tom_1 сделает круг перезапуска в Hyper-V.&lt;br/&gt;

Подключитесь к tom_1 заново через PuTTY под пользователем eva
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;загрузка_и_проверка&quot;&gt;Загрузка и проверка&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Как только зайдете обратно, выполните команду сверки
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=2&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;uname&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_99.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_99.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_99.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Убедимся, что в ОЗУ хоста теперь честно светится 7.0.9-arch2-1, и только после этого медленно и аккуратно двинемся дальше по нашему новому руководству.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0 \u042d\u0442\u0430\u043f 0. \u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0439 \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043d\u0430 tom_1&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0_\u044d\u0442\u0430\u043f_0_\u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435_\u0432\u0435\u0440\u0441\u0438\u0439_\u0438_\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430_\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f_\u043d\u0430_tom_1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1379-4889&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;статический_ip_адрес_хоста&quot;&gt;Статический IP адрес хоста&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Вместо автоматического DHCP мы жестко (статически) пропишем адрес к примеру 192.168.1.72 в файле конфигурации. Это гарантирует, что хост tom_1 больше никогда не сменит свой IP, а сетевой диск в Windows не отвалится.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 IP \u0430\u0434\u0440\u0435\u0441 \u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439_ip_\u0430\u0434\u0440\u0435\u0441_\u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;4890-5312&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;узнаем_точное_имя_network_файла&quot;&gt;Узнаем точное имя .network файла&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=3&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_129.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_129.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_129.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Имя файла определено: 20-wired.network.)&lt;/em&gt;
&lt;br/&gt;

Перед тем как вносить изменения, мы обязаны посмотреть его полную структуру, чтобы увидеть секцию [Match] (которая привязывает этот конфиг к конкретной сетевой карте eth0 или enx…).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;структура_файла_20-wirednetwork&quot;&gt;Структура файла 20-wired.network&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=4&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_130.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_130.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_130.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Секция [Match] перехватывает все интерфейсы, начинающиеся на en* и eth*.)&lt;/em&gt;
&lt;br/&gt;
 Теперь мы готовы переписать этот файл, заменив красивый адрес 192.168.1.150 на ваш более статический 192.168.1.72. Остальные параметры (маску /24, шлюз и &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;) оставляем без изменений.
&lt;em&gt;(а адрес 192.168.1.150 мы оставим для нашей флешки с iso образом для обнаружения в сети)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;перезапись_файла_20-wirednetwork_на_ip_192168172&quot;&gt;Перезапись файла 20-wired.network на IP 192.168.1.72&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Мы используем монолитную команду cat « &amp;#039;&lt;abbr title=&quot;End of file&quot;&gt;EOF&lt;/abbr&gt;&amp;#039;, которая полностью затрёт старый конфиг и запишет новый чистый текст. Это исключает ошибки ручного ввода в редакторах.&lt;br/&gt;

Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=5&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;tee&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Match&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=en&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; eth&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Network&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Address&lt;/span&gt;=192.168.1.72&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Gateway&lt;/span&gt;=192.168.1.1
&lt;span class=&quot;re2&quot;&gt;DNS&lt;/span&gt;=1.1.1.1
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_132.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_132.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_132.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Перед тем как перезапустить сеть, мы обязаны сделать шаг контроля и убедиться, что файл перезаписался именно так, как нам нужно.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_измененного_файла_20-wirednetwork&quot;&gt;Проверка измененного файла 20-wired.network&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=6&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_133.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_133.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_133.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Внутри прописан наш целевой статический адрес 192.168.1.72.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;применение_настроек_сети&quot;&gt;Применение настроек сети&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Чтобы система сбросила старый адрес 192.168.1.150 и применила новый, нам необходимо полностью перезапустить сетевую службу systemd-networkd.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=7&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl restart systemd-networkd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Важно: Как только вы выполните эту команду, текущая SSH-сессия PuTTY сразу же прервётся (окно зависнет), так как IP-адрес машины мгновенно изменится на 192.168.1.72.  
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_134.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_134.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_134.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверка_нового_адреса&quot;&gt;Проверка нового адреса&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Откройте новое окно PuTTY и подключитесь к tom_1 по его новому постоянному адресу: 192.168.1.72
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=8&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ip&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-br&lt;/span&gt; address show scope global &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $3}&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cut&lt;/span&gt; -d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-f1&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Система отобразила наш новый постоянный IP-адрес 192.168.1.72)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;драйверы_сетевой_карты_реального_сервера&quot;&gt;Драйверы сетевой карты реального сервера&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В виртуалке Hyper-V используется виртуальный сетевой адаптер (обычно dec21140 или синтетический от Microsoft). На реальном сервере будет стоять физический чип (Intel, Realtek, Broadcom).
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;что_проверить&quot;&gt;Что проверить:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
 Убедитесь, что в вашей системе tom_1 установлен пакет linux-firmware.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;команда_для_проверки&quot;&gt;Команда для проверки&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=9&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Q&lt;/span&gt; linux-firmware&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Если его нет, обязательно накатите (sudo pacman -S linux-firmware), иначе реальный сервер после загрузки с ISO просто не увидит свою физическую сетевую карту.&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_106.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_106.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_106.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
расклад по железу понятен (1 Supermicro, 1 старый HP и два ноунейм-самосбора разных поколений), то универсальность сетевого конфига становится задачей номер один. На таком «зоопарке» железа дефолтные предсказуемые имена интерфейсов от systemd гарантированно разъедутся в разные стороны:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; На Supermicro это, скорее всего, будут имена вида eno1 (onboard) или пути вроде enp3s0f0.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; На старом HP интерфейсы могут обозваться как eno49, ens1 или упасть в классический eth0.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; На ноунеймах (самосборах) всё зависит от логики материнской платы (чисто по PCI-пути — например, enp2s0).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Поэтому зашивать маску Name=en* eth* в конфиг systemd-networkd — это единственное спасение, чтобы один и тот же ISO-образ молча поднял сеть на любой из этих плат.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0437\u043d\u0430\u0435\u043c \u0442\u043e\u0447\u043d\u043e\u0435 \u0438\u043c\u044f .network \u0444\u0430\u0439\u043b\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0437\u043d\u0430\u0435\u043c_\u0442\u043e\u0447\u043d\u043e\u0435_\u0438\u043c\u044f_network_\u0444\u0430\u0439\u043b\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;5313-11545&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;создаем_универсальный_конфиг_сети&quot;&gt;Создаем универсальный конфиг сети&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Чтобы не гадать, как система назовет сетевую карту на разном железе (eno1, enp3s0, eth0), мы заставим systemd-networkd применять настройки к любому проводному интерфейсу.&lt;br/&gt;

Выполните команду на tom_1 для создания конфигурационного файла:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=10&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Вставьте в него следующие строки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=11&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;ini&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Match&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=en&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; eth&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Network&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Address&lt;/span&gt;=192.168.1.150&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Gateway&lt;/span&gt;=192.168.1.1
&lt;span class=&quot;re2&quot;&gt;DNS&lt;/span&gt;=1.1.1.1&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Примечание: Если в вашей локальной Windows-сети используется другой поддиапазон (например, 192.168.0.X), измените IP-адрес Address и шлюз Gateway под свою рабочую сеть.&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_2.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_2.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_2.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;разбор_конфига_на_скриншоте&quot;&gt;Разбор конфига на скриншоте&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Всё в точности, как надо:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Name=en* eth* — заматчит любую сетевуху.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Address=192.168.1.150/24 — статический IP, который мы будем пинговать на новом сервере.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Gateway=192.168.1.1 — шлюз.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;=1.1.1.1 — &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;-сервер.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
В правом верхнем углу горит надпись Modified. Это значит, что изменения внесены, но файл еще не сохранен на диск.
&lt;em&gt; Примечание: CTRL+O для записи файла Enter для подтверждения имени файла CTRL+X для выхода из редактора nano&lt;/em&gt;
Как только выйдете из редактора, нам нужно убедиться, что systemd-networkd вообще включен и подхватит этот конфиг при старте образа.&lt;br/&gt;

Выполните команду в консоли:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=12&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled systemd-networkd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_3.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_3.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_3.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Примечание: в нашем случае служба systemd-networkd отключена (disabled)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;включаем_сетевую_службу&quot;&gt;Включаем сетевую службу&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните команду, чтобы активировать автозапуск сети:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=13&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; systemd-networkd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_4.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_4.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_4.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте чётко видно, что система создала все необходимые привязки для systemd-networkd.&lt;br/&gt;

Теперь переходим к проверке &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;-резолвера и удаленного доступа по SSH. Без этого сервер не сможет преобразовывать имена сайтов, а мы не сможем зайти на него удаленно.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;включаем_dns_и_проверяем_ssh&quot;&gt;Включаем DNS и проверяем SSH&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале по очереди следующие две команды:
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;включаем_службу_резолвинга_имён_dns&quot;&gt;Включаем службу резолвинга имён (DNS):&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=14&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; systemd-resolved&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_5.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_5.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_5.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверяем_включен_ли_автозапуск_службы_ssh&quot;&gt;Проверяем, включен ли автозапуск службы SSH:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=15&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled sshd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_6.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_6.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_6.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; включен, SSH в статусе enabled. Это значит, что доступ к консоли по сети у нас будет сразу после старта «вслепую».&lt;br/&gt;

Теперь проверяем последний критически важный сервис — веб-сервер Nginx, ради которого всё и затевается. Нам нужно убедиться, что он тоже поднимется сам.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверяем_nginx&quot;&gt;Проверяем Nginx&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните команду в терминале:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=16&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_8.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_8.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_8.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверяем_слушает_ли_nginx_порт_5000&quot;&gt;Проверяем, слушает ли Nginx порт 5000&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что в конфигах нет синтаксических ошибок и порт 5000 реально прописан. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Выполните команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=17&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; nginx &lt;span class=&quot;re5&quot;&gt;-t&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;5000&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_9.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_9.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_9.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Nginx проверен, тут полный порядок! Тест конфигурации успешный (syntax is ok, test is successful), и порт 5000 чётко прописан в основном файле /etc/nginx/nginx.conf. Варнинг про types_hash — это стандартная безобидная ругань Nginx на мелкий дефолтный размер хэш-таблицы типов файлов в Arch, на работу веб-сервера он никак не повлияет.&lt;br/&gt;

Теперь проверяем вторую половину вашей задумки — пароли пользователей. Это критически важно, так как без паролей SSH-сервер нас просто отошьёт.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;выводим_хэши_паролей_root_и_eva&quot;&gt;Выводим хэши паролей root и eva&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выводим хэши паролей root и eva
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=18&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;getent&lt;/span&gt; shadow root eva &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cut&lt;/span&gt; -d: -f1,&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_10.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_10.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_10.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте мы видим современные, надежные хэши паролей yescrypt (начинаются с $y$) как для root, так и для пользователя eva. Пароли заданы железно, а значит, SSH-сервер без проблем пустит вас в консоль на реальной машине. Полноценный аудит пройден, все критические точки проверены.Время переходить к финальной фазе сборки нашего автономного ISO. Погнали по шагам, аккуратно работаем с таблицей разделов.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433 \u0441\u0435\u0442\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u0435\u043c_\u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439_\u043a\u043e\u043d\u0444\u0438\u0433_\u0441\u0435\u0442\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:10,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;11546-18290&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;ошибка_в_загрузку_флешки&quot;&gt;Ошибка в загрузку флешки&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_107.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_107.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_107.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0444\u043b\u0435\u0448\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0448\u0438\u0431\u043a\u0430_\u0432_\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443_\u0444\u043b\u0435\u0448\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:19,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;18291-18443&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;проверяем_наличие_zram&quot;&gt;Проверяем наличие ZRAM&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;strong&gt;ZRAM&lt;/strong&gt; в Arch Linux (и других дистрибутивах) — это модуль ядра Linux, который создает виртуальный диск в оперативной памяти и сжимает данные на лету.
Давайте посмотрим, активен ли этот модуль ядра на вашей чистой, только что обновленной системе tom_1.&lt;br/&gt;

Выполните в консоли tom_1 две диагностические команды:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=19&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# 1. Проверяем, загружен ли сам модуль ядра в память прямо сейчас&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;lsmod&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; zram&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_100.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_100.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_100.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверка_параметров_активных_дисков_zram&quot;&gt;Проверка параметров активных дисков ZRAM&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале tom_1 ровно одну команду, чтобы увидеть физический размер и алгоритм сжатия созданного диска подкачки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=20&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# 1. Проверяем, загружен ли сам модуль ядра в память прямо сейчас&lt;/span&gt;
zramctl&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_101.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_101.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_101.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 ZRAM&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c_\u043d\u0430\u043b\u0438\u0447\u0438\u0435_zram&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:19,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;18444-19839&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;установка_инструментов_сжатия_и_генератора_zram&quot;&gt;Установка инструментов сжатия и генератора ZRAM&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;ставим_инструменты_squashfs&quot;&gt;Ставим инструменты SquashFS&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Пакет &lt;strong&gt;squashfs-tools&lt;/strong&gt; в Arch Linux — это набор консольных утилит для создания, распаковки и модификации сжатых файловых систем SquashFS.&lt;br/&gt;

Установим пакет squashfs-tools, в который и входит нужная команда. &lt;br/&gt;

Выполняйте:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=21&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; squashfs-tools&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Флаги -S (Синхронизация / Установка) и –noconfirm (Без подтверждения)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_109.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_109.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_109.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;ставим_инструменты_zram-generator&quot;&gt;Ставим инструменты zram-generator&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
zram-generator в Arch Linux — это утилита, которая автоматически создает и настраивает диски zram (сжатая оперативная память) для использования в качестве очень быстрого раздела подкачки (swap).&lt;br/&gt;

Установим пакет squashfs-tools, в который и входит нужная команда. &lt;br/&gt;

Выполняйте:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=22&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; zram-generator&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Флаги -S (Синхронизация / Установка) и –noconfirm (Без подтверждения)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_110.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_110.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_110.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_установки_пакетов&quot;&gt;Проверка установки пакетов&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=23&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Q&lt;/span&gt; squashfs-tools zram-generator&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_111.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_111.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_111.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
(&lt;em&gt;Если пакеты установлены, терминал выведет их версии, иначе, вы получите ошибку (например, error: package &amp;#039;squashfs-tools&amp;#039; was not found).&lt;/em&gt;)
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u0436\u0430\u0442\u0438\u044f \u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 ZRAM&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432_\u0441\u0436\u0430\u0442\u0438\u044f_\u0438_\u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430_zram&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:21,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;19840-21884&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;установка_php-fpm_для_будущего_веб-инсталлятора&quot;&gt;Установка PHP-FPM для будущего веб-инсталлятора&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;strong&gt;PHP-FPM (FastCGI Process Manager)&lt;/strong&gt; в Arch Linux — это продвинутый менеджер процессов PHP. Он выступает в роли отдельного сервера, который принимает запросы от веб-сервера (например, Nginx или Apache), обрабатывает PHP-код и возвращает готовый результат. &lt;br/&gt;

Установим пакет php-fpm. &lt;br/&gt;

Выполняйте:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=24&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Флаги -S (Синхронизация / Установка) и –noconfirm (Без подтверждения)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_112.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_112.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_112.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_установки_пакета&quot;&gt;Проверка установки пакета&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=25&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Q&lt;/span&gt; php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_113.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_113.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_113.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
(&lt;em&gt;Если пакеты установлены, терминал выведет их версии, иначе, вы получите ошибку (например, error: package &amp;#039;squashfs-tools&amp;#039; was not found).&lt;/em&gt;)
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_автозапуск_службы_php-fpm&quot;&gt;Проверяем автозапуск службы php-fpm&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что служба PHP-FPM активирована в автозапуске, чтобы при старте флешки в ОЗУ она запустилась сама вместе с Nginx.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=26&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_114.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_114.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_114.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Примечание: статус disabled - выключена)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;включаем_службу_php-fpm_в_автозапуск&quot;&gt;Включаем службу php-fpm в автозапуск&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Включим службу PHP-FPM в автозапуске, чтобы при старте флешки в ОЗУ она запустилась сама вместе с Nginx.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=27&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_115.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_115.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_115.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Примечание: созданы системные симлинки)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_статус_автозапуска_службы_php-fpm&quot;&gt;Проверяем статус автозапуска службы php-fpm&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что служба PHP-FPM активирована в автозапуске, чтобы при старте флешки в ОЗУ она запустилась сама вместе с Nginx. Убедимся, что система теперь рапортует правильный статус.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=28&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_116.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_116.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_116.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Примечание: статус enabled - включена)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 PHP-FPM \u0434\u043b\u044f \u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e \u0432\u0435\u0431-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_php-fpm_\u0434\u043b\u044f_\u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e_\u0432\u0435\u0431-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:24,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;21885-24764&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;создание_структуры_каталогов_для_конструктора_iso&quot;&gt;Создание структуры каталогов для конструктора ISO&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Перед тем как запустить утилиту сжатия, нам необходимо подготовить чистое рабочее дерево папок в домашней директории пользователя eva, куда мы позже разложим ядро и файлы загрузчика&lt;br/&gt;

Выполните в терминале:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=29&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_117.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_117.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_117.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Флаг -p заставит систему создать всю цепочку папок за один раз).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_созданной_структуры&quot;&gt;Проверка созданной структуры&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале команду, которая покажет полный путь и содержимое созданной папки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=30&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-laR&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_118.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_118.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_118.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;&lt;pre class=&quot;code&quot;&gt;* //Система должна показать, что внутри custom_iso есть папка arch, а внутри неё — папка x86_64.//
* //Все они должны быть пустыми (внутри только точки . и ..), готовыми принять наш живой корень.//&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0434\u043b\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 ISO&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b_\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432_\u0434\u043b\u044f_\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:29,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;24765-26222&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;разработка_веб-фронтенда&quot;&gt;Разработка Веб-Фронтенда&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверяем_состояние_samba-сервера_на_tom_1&quot;&gt;Проверяем состояние Samba-сервера на tom_1&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Нам нужно узнать, запущен ли демон Samba (smb), чтобы понять, сможем ли мы сразу подключить сетевой диск в Windows.&lt;br/&gt;

Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=31&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl status smb&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_119.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_119.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_119.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Служба Samba (smb.service) отсутствует в системе tom_1 (пакет не установлен).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_пакета_samba&quot;&gt;Установка пакета Samba&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Установим сам сервер Samba.&lt;br/&gt;

 Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=32&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; samba &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_120.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_120.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_120.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_установки&quot;&gt;Проверка установки&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Нам нужно убедиться, что бинарные файлы утилиты встали в систему без ошибок.&lt;br/&gt;

Выполните в терминале команду проверки установленной версии:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=33&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;smbd &lt;span class=&quot;re5&quot;&gt;--version&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_121.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_121.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_121.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;создание_конфигурационного_файла_smbconf&quot;&gt;Создание конфигурационного файла smb.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Создадим конфигурационный файл в редакторе nano. &lt;br/&gt;

Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=34&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;samba&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;smb.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Файл пустой и готов к заполнению. Вставьте в него следующий минимальный рабочий конфиг, чтобы открыть доступ к директории Nginx (/usr/share/nginx/html) с правами на запись для всех:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=35&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;ini&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;global&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    workgroup = WORKGROUP
    server string = Arch Linux Tom1
    security = user
    map to guest = Bad User
    log &lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;log&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;samba&lt;span class=&quot;sy0&quot;&gt;/%&lt;/span&gt;m.log
    max log &lt;span class=&quot;kw2&quot;&gt;size&lt;/span&gt; = &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;nginx_html&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    path = &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html
    writable = &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
    guest ok = &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
    guest only = &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
    force user = root
    create mask = 0777
    directory mask = 0777&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_122.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_122.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_122.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Файл изменен. Нажмите последовательно:CTRL + O, затем клавишу Enter (для записи файла).CTRL + X (для выхода из редактора nano)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_синтаксиса&quot;&gt;Проверка синтаксиса&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
выполните встроенную команду Samba для проверки синтаксиса файла конфигурации:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=36&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;testparm &lt;span class=&quot;re5&quot;&gt;-s&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_123.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_123.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_123.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Тест синтаксиса пройден успешно (Loaded services file OK). Ошибок в файле smb.conf нет. Сетевая папка nginx_html определена верно.&lt;br/&gt;

Следующий шаг — запуск и добавление службы Samba в автозагрузку.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=37&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--now&lt;/span&gt; smb&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_124.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_124.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_124.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Симлинк успешно создан, служба добавлена в автозапуск.)&lt;/em&gt;
&lt;br/&gt;
 Следующий шаг — обязательная проверка статуса запущенного демона Samba.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_статуса&quot;&gt;Проверка статуса&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=38&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl status smb&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_125.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_125.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_125.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Служба smb работает в режиме active (running) и полностью готова принимать сетевые подключения.)&lt;/em&gt;
&lt;br/&gt;

Службы настроены. Теперь нам нужно выдать права Linux на целевую папку, чтобы гостевой пользователь Samba (nobody / root) и веб-сервер Nginx (http) могли без ограничений читать, создавать и изменять файлы внутри.&lt;br/&gt;

Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=39&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-R&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;777&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_126.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_126.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_126.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Права 777 назначены успешно.)&lt;/em&gt;
&lt;br/&gt;

Следующий обязательный шаг по нашему плану — проверка того, как система применила эти права к содержимому каталога.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=40&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_127.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_127.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_127.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Проверка прав прошла успешно. Строки drwxrwxrwx для текущей папки (.) и -rwxrwxrwx для файлов index.html и 50x.html подтверждают, что доступ полностью открыт на чтение, запись и исполнение для всех пользователей системы.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;подключение_сетевой_папки_в_windows&quot;&gt;Подключение сетевой папки в Windows&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h5 id=&quot;получим_точный_текущий_ip-адрес_сервера_tom_1&quot;&gt;Получим точный текущий IP-адрес сервера tom_1&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=41&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ip&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-br&lt;/span&gt; address show scope global &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $3}&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cut&lt;/span&gt; -d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-f1&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Теперь папка готова к подключению в качестве сетевого диска в среде Windows, чтобы вы могли открыть её через Notepad++.
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Откройте Проводник (Этот компьютер) на вашей Windows-машине.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В верхнем меню нажмите кнопку «Подключить сетевой диск» (или нажмите правой кнопкой мыши по «Этот компьютер» → «Подключить сетевой диск»).&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_137.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_137.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_137.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В поле «Папка» введите сетевой путь, используя IP-адрес вашего сервера tom_1 (из логов PuTTY: 192.168.1.72 или через кнопку обзор)&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_139.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_139.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_139.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Введите сетевые учетные данные
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_140.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_140.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_140.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Зайдите через проводник
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_141.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_141.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_141.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0412\u0435\u0431-\u0424\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430_\u0432\u0435\u0431-\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:31,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;26223-33368&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit13&quot; id=&quot;веб-интерфейс_в_windows_через_notepad&quot;&gt;Веб-интерфейс (в Windows через Notepad++)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 (\u0432 Windows \u0447\u0435\u0440\u0435\u0437 Notepad++)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441_\u0432_windows_\u0447\u0435\u0440\u0435\u0437_notepad&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:42,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;33369-33440&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit14&quot; id=&quot;настройка_nginx_на_обработку_php&quot;&gt;Настройка Nginx на обработку PHP&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Nginx \u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 PHP&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_nginx_\u043d\u0430_\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443_php&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:42,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;33441-33503&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit15&quot; id=&quot;файл_nginxconf&quot;&gt;Файл nginx.conf&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Мы перепишем конфигурационный файл nginx.conf, добавив правильный блок location ~ \.php$, работающий через UNIX-сокет.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=42&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;tee&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx.conf &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null
worker_processes  &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;;
&amp;nbsp;
events &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    worker_connections  &lt;span class=&quot;nu0&quot;&gt;1024&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
http &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    include       mime.types;
    default_type  application&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;octet-stream;
    sendfile        on;
    keepalive_timeout  &lt;span class=&quot;nu0&quot;&gt;65&lt;/span&gt;;
&amp;nbsp;
    server &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        listen       &lt;span class=&quot;nu0&quot;&gt;5000&lt;/span&gt;;
        server_name  localhost;
        root         &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html;
        index        index.html index.htm index.php;
&amp;nbsp;
        location &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            try_files &lt;span class=&quot;re1&quot;&gt;$uri&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$uri&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; =&lt;span class=&quot;nu0&quot;&gt;404&lt;/span&gt;;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        location ~ \.php$ &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            include        fastcgi.conf;
            fastcgi_pass   unix:&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;php-fpm&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;php-fpm.sock;
            fastcgi_index  index.php;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_149.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_149.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_149.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;тестирование_синтаксиса_nginxconf&quot;&gt;Тестирование синтаксиса nginx.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Нам нужно протестировать синтаксис Nginx, чтобы убедиться, что все скобки закрыты и сокет прописан без ошибок.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=43&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; nginx &lt;span class=&quot;re5&quot;&gt;-t&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_150.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_150.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_150.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Тест пройден успешно (syntax is ok, test is successful). Предупреждение о types_hash — это стандартный информационный ворнинг, на работу он не влияет.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_содержимого_файла_nginxconf&quot;&gt;Проверка содержимого файла nginx.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=44&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-n&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_151.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_151.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_151.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;перезапуск_веб-сервера&quot;&gt;Перезапуск веб-сервера&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=45&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl restart nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_153.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_153.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_153.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверка_статуса_службы&quot;&gt;Проверка статуса службы&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=46&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl status nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_155.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_155.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_155.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0424\u0430\u0439\u043b nginx.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u0430\u0439\u043b_nginxconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:42,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;33504-35799&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit16&quot; id=&quot;системный_пользователь_http&quot;&gt;Системный пользователь http&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Пользователь http в Arch Linux — это встроенный системный пользователь, от имени которого по умолчанию работают веб-серверы (например, Apache или Nginx) и сопутствующие им службы.
&lt;br/&gt;
 Он создается автоматически при установке этих программ для изоляции процессов и обеспечения безопасности.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;назначение&quot;&gt;Назначение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Безопасность: Веб-серверы не должны работать под правами суперпользователя (root). Если злоумышленник найдет уязвимость в вашем сайте, он получит доступ только к файлам с правами пользователя http, что убережет остальную систему от взлома.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Права на файлы: Этот пользователь владеет файлами и папками, к которым сервер имеет доступ (обычно они расположены в директории /srv/http/).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Группа http: Для удобства существует одноименная группа http, в которую могут входить другие пользователи, чтобы иметь возможность редактировать файлы сайта без изменения прав доступа к ним через sudo&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;применение&quot;&gt;Применение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Размещение сайтов: При настройке Nginx, Apache или PHP-FPM часто требуется указывать, что процесс должен запускаться от имени http.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Настройка разрешений (Permissions): Если сайт выдает ошибку доступа (например, 403 Forbidden), обычно это означает, что у пользователя http нет прав на чтение нужных файлов или папок.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Безопасность каталогов: Если скриптам на сайте нужно загружать файлы на сервер, папке загрузки необходимо выдать права (владельца) для пользователя http&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;вывод_строк_пользователей_системы&quot;&gt;Вывод строк пользователей системы&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выводим строки трех нами известных пользователей из базы данных.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=47&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;^(root|eva|http):&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;shadow&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_169.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_169.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_169.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;root:$y$j9T$…:20594:::::&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Второе поле — длинный хэш $y$…. Это зашифрованный пароль суперпользователя.Число 20594 — дата последнего изменения пароля (в днях от 1970 года).В конце строки — пустые поля. Это значит, что для root нет никаких ограничений.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;strong&gt;eva:$y$j9T$…:20594:0:99999:7:::&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Тоже видим хэш личного пароля.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Параметры 0:99999:7 означают стандартные правила пользователя: пароль можно менять сразу (0), он действует 99999 дней, а за 7 дней до истечения система начнет предупреждать. Восьмое поле пустое — аккаунт не блокируется.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;strong&gt;http:!*:20594::::::1:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Второе поле содержит !*. Это маркер того, что пароль заблокирован (вход по паролю невозможен, учетка техническая).Внимание в самый конец строки: ::::::1:&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; На предпоследней позиции (8-е поле) стоит цифра 1. В системе Linux это означает, что учетная запись принудительно заблокирована подсистемой безопасности PAM через 1 день после начала эпохи Unix (то есть 2 января 1970 года). &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;изменяем_параметры_пользователя_http&quot;&gt;Изменяем параметры пользователя http&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Уберем эту единицу из конца строки, чтобы сделать учетную запись бессрочной.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=48&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; chage &lt;span class=&quot;re5&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-1&lt;/span&gt; http&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_170.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_170.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_170.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_изменений_в_файле_etc_shadow&quot;&gt;Проверка изменений в файле /etc/shadow&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=49&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;^http:&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;shadow&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_171.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_171.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_171.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Строка завершается чистыми двоеточиями (::::::), что означает: блокировка PAM полностью снята, аккаунт http стал бессрочным)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c http&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c_http&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:47,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;35800-41068&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit17&quot; id=&quot;проверим_директорию&quot;&gt;Проверим директорию&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Чтобы не запутаться в структуре бэкенда и фронтенда, давайте сначала проверим, что сейчас вообще находится внутри корневой папки Nginx на tom_1.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=50&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_142.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_142.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_142.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(В корне /usr/share/nginx/html/ только файлы 50x.html и index.html. Полные права 777)&lt;/em&gt;
&lt;br/&gt;

Разворачиваем структуру каталогов для нашего веб-интерфейса. Создадим стандартные папки для стилей, скриптов и серверной логики.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c_\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:50,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;41069-41889&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit18&quot; id=&quot;создание_директорий&quot;&gt;Создание директорий&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Выполните в терминале PuTTY одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=51&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;css,js,api,assets&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_143.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_143.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_143.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Папки созданы. Теперь обязательный шаг контроля: проверяем, какие права доступа и владельцы назначены для новых директорий, чтобы Windows-пользователь Samba и веб-сервер Nginx могли с ними работать.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;контроль_папок&quot;&gt;Контроль папок&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=52&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_144.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_144.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_144.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Папки создались под пользователем eva, но у них стоят ограниченные права drwxr-xr-x. Из-за этого Windows через Samba не сможет создавать или изменять файлы внутри этих подкаталогов.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;права_доступа_к_папкам&quot;&gt;Права доступа к папкам&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=53&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-R&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;777&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_145.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_145.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_145.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_назначения_прав_пользователя&quot;&gt;Проверка назначения прав пользователя&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=54&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_146.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_146.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_146.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Права drwxrwxrwx (777) успешно применились ко всем новым директориям (api, assets, css, js), они подсвечены зеленым. Теперь пользователи eva и системный пользователь http, и Samba имеют полный доступ.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;предоставления_прав_на_выполнение&quot;&gt;Предоставления прав на выполнение&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Для того чтобы веб-скрипт (install.php) мог безопасно выполнять системные команды от имени суперпользователя (root), вам нужно точечно настроить системную утилиту sudo. По умолчанию операционная система блокирует любые попытки веб-сервера использовать sudo, так как у него нет пароля и текстового терминала (TTY).
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;узнайте_имя_пользователя_веб-сервера&quot;&gt;Узнайте имя пользователя веб-сервера&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Вам нужно определить, от какого именно пользователя работает ваш PHP/Nginx.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=55&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ps&lt;/span&gt; aux &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;(nginx|apache|php-fpm)&#039;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_172.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_172.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_172.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;файл_конфигурации_sudoers&quot;&gt;Файл конфигурации sudoers&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
&lt;strong&gt;Никогда не редактируйте файл /etc/sudoers обычным текстовым редактором. Если допустить там синтаксическую ошибку, утилита sudo сломается для всей системы, и вы потеряете root-доступ.&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
Используйте специальную безопасную команду visudo для открытия в редакторе nano:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=56&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;EDITOR&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; visudo&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; С помощью стрелочек на клавиатуре спуститесь в самый низ файла.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Вставьте с новой строки правило:&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=57&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# Разрешаем запуск конкретного теста и любого скрипта из папки api через bash&lt;/span&gt;
http &lt;span class=&quot;re2&quot;&gt;ALL&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ALL&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; NOPASSWD: &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;bash&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;api&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;installer.sh, &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;bash&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;api&lt;span class=&quot;sy0&quot;&gt;/*&lt;/span&gt;.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_177.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_177.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_177.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Нажмите комбинацию клавиш Ctrl + O, затем Enter (для сохранения изменений).Нажмите Ctrl + X (для выхода из редактора).)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_синтаксиса1&quot;&gt;Проверка синтаксиса&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=58&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; visudo &lt;span class=&quot;re5&quot;&gt;-c&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-f&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sudoers.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;web-installer&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_178.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_178.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_178.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Синтаксис проверен, система подтвердила: parsed OK. Это значит, что само правило написано без ошибок.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_содержимого&quot;&gt;Проверка содержимого&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
проверяем, что именно у нас записалось внутри этого файла, чтобы убедиться в правильности путей и пользователя.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=59&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sudoers.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;web-installer&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_179.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_179.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_179.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Пользователь http указан верно, беспарольный флаг NOPASSWD на месте, путь к исполняемому bash-скрипту ведет строго в папку api/)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;смена_владельца_файла_на_root_и_установка_прав&quot;&gt;Смена владельца файла на root и установка прав&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выставим права 0440 и владельца root.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=60&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chown&lt;/span&gt; root:root &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sudoers.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;web-installer&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_165.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_165.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_165.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
задаём жесткие права 0440 (только чтение для владельца и группы). Это полностью исключит любые предупреждения безопасности со стороны sudo
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=61&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; 0440 &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sudoers.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;web-installer&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_166.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_166.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_166.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_права_и_владельца&quot;&gt;Проверка права и владельца&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Проверяем, как именно система применила владельца и маску прав к нашему файлу правил sudoers.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=62&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sudoers.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;web-installer&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_167.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_167.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_167.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(права строго -r–r—– (0440), владелец root root, размер файла 64 байта.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создание_интерфейса_indexhtml&quot;&gt;Создание интерфейса (index.html)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Откройте Notepad++ на Windows.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Откройте файл index.html с сетевого диска \\192.168.1.72\nginx_html.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Полностью замените его содержимое на этот простой тестовый код:&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=63&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_html&quot;&gt;index.html&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code html4strict&quot;&gt;&lt;span class=&quot;sc0&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;html&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;lang&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;ru&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/head.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;head&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/meta.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;meta&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;charset&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/title.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;title&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Тест инсталлятора&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/title.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;title&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/head.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;head&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/body.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;body&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/h1.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;h1&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Тест на порт 5000&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/h1.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;h1&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;installBtn&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;Установить&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
        document.getElementById(&#039;installBtn&#039;).addEventListener(&#039;click&#039;, function() {
            fetch(&#039;api/install.php&#039;)
                .then(response =&amp;gt; response.text())
                .then(data =&amp;gt; alert(&#039;Ответ от сервера:\n&#039; + data))
                .catch(err =&amp;gt; alert(&#039;Ошибка запроса: &#039; + err));
        });
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/body.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;body&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;html&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:51,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;41890-49382&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit19&quot; id=&quot;создание_серверного_скрипта_installphp&quot;&gt;Создание серверного скрипта (install.php)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Этот файл будет принимать запрос от браузера и вызывать системный bash-скрипт от имени суперпользователя.
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В Notepad++ создайте новую вкладку (CTRL + N).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Вставьте в неё следующий код, который будет дёргать будущий bash-скрипт инсталлятора через утилиту sudo:&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=64&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;install.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;a href=&quot;http://www.php.net/header&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;header&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;Content-Type: text/plain; charset=utf-8&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// Вызываем тестовый bash-скрипт из папки api и ловим текстовый вывод&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/shell_exec&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;shell_exec&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/usr/bin/sudo /bin/bash /usr/share/nginx/html/api/installer.sh 2&amp;gt;&amp;amp;1&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Ошибка: Не удалось запустить скрипт.&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Нажмите CTRL + S и сохраните файл на сетевой диск в подпапку api под именем install.php (полный сетевой путь: \\192.168.1.72\nginx_html\api\install.php).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0430 (install.php)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e_\u0441\u043a\u0440\u0438\u043f\u0442\u0430_installphp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:64,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;49383-50572&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit20&quot; id=&quot;создание_тестового_bash-скрипта_api_installersh&quot;&gt;Создание тестового bash-скрипта (api/installer.sh)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Этот скрипт не выполняет никаких деструктивных действий. Его задача — подтвердить, что PHP смог вызвать системный скрипт с правами root.
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В Notepad++ создайте новую вкладку (CTRL + N).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Вставьте в неё следующий тестовый код&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=65&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== СИГНАЛ ПОЛУЧЕН ===&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Скрипт успешно запущен от имени пользователя: &lt;span class=&quot;es4&quot;&gt;$(whoami)&lt;/span&gt;&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;======================&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Нажмите CTRL + S и сохраните этот файл на сетевой диск в подпапку api под именем installer.sh (полный сетевой путь: \\192.168.1.72\nginx_html\api\installer.sh).
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;права_на_исполнение_скрипта&quot;&gt;Права на исполнение скрипта&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Поскольку этот файл был создан из-под Windows через Samba, у него сейчас отсутствуют флаги исполняемого файла в среде Linux (права по умолчанию не позволяют системе его запустить).&lt;br/&gt;

Предоставьте пользователю http права на запуск самого файла installer.sh.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=66&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chown&lt;/span&gt; http:http &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;api&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;installer.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=67&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;755&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;api&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;installer.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_174.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_174.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_174.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;контроль_прав_на_выполнение&quot;&gt;Контроль прав на выполнение&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Чтобы проверить, что права и владелец для файла выставились корректно, выполните команду ls -l с полным путем к файлу:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=68&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;api&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;installer.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_175.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_175.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_175.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(-rwxr-xr-x — файл является исполняемым. Пользователь http имеет полные права на чтение, запись и запуск (rwx), а остальные пользователи системы — на чтение и запуск (r-x).)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;тестирование_веб-страницы_в_браузере&quot;&gt;Тестирование веб-страницы в браузере&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Откройте любой браузер на вашей Windows-машине (Chrome, Edge, Firefox).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Введите в адресную строку &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;-адрес сервера tom_1: &lt;a href=&quot;http://192.168.1.72:5000&quot; class=&quot;urlextern&quot; title=&quot;http://192.168.1.72:5000&quot; rel=&quot;ugc nofollow&quot;&gt;http://192.168.1.72:5000&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Нажмите Enter.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Вы должны увидеть заголовок «Это тест на порт 5000» и кнопку «Установить». При нажатии на кнопку должно появиться всплывающее окно alert с текстом ошибки (так как самого скрипта installer.sh на сервере ещё физически нет).
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_157.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_157.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_157.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;контрольная_проверка_в_браузере&quot;&gt;Контрольная проверка в браузере&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Откройте ваш браузер на Windows.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Введите (или обновите через CTRL + F5) адрес: &lt;a href=&quot;http://192.168.1.72:5000&quot; class=&quot;urlextern&quot; title=&quot;http://192.168.1.72:5000&quot; rel=&quot;ugc nofollow&quot;&gt;http://192.168.1.72:5000&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Нажмите на кнопку «Установить»&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_180.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_180.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_180.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Пункт выше на правке!
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e bash-\u0441\u043a\u0440\u0438\u043f\u0442\u0430 (api\/installer.sh)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e_bash-\u0441\u043a\u0440\u0438\u043f\u0442\u0430_api_installersh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:65,&amp;quot;secid&amp;quot;:20,&amp;quot;range&amp;quot;:&amp;quot;50573-54237&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit21&quot; id=&quot;мы_тут&quot;&gt;!!!!!!!!!!!!МЫ ТУТ!!!!!!!!!!!!!!!!!&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Следующим пуктом  Сменить статический IP адрес на 192.168.1.150 на время записи слепка, а после назад!!!
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;!!!!!!!!!!!!\u041c\u042b \u0422\u0423\u0422!!!!!!!!!!!!!!!!!&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043c\u044b_\u0442\u0443\u0442&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:69,&amp;quot;secid&amp;quot;:21,&amp;quot;range&amp;quot;:&amp;quot;54238-54474&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit22&quot; id=&quot;временное_обнуление_fstab&quot;&gt;Временное обнуление fstab&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;о_файле&quot;&gt;О файле&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Файл /etc/&lt;strong&gt;fstab&lt;/strong&gt; (от File Systems Table) — это конфигурационный файл, который хранит информацию о разделах диска, флешках и сетевых хранилищах, и указывает системе, как именно и куда их нужно монтировать при запуске.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;предназначение&quot;&gt;Предназначение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Автозагрузка: Без него операционная система не поймет, где искать корневой раздел / и другие важные системные диски, и просто не сможет загрузиться.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Параметры монтирования: Он определяет права доступа (например, можно ли запускать исполняемые файлы с конкретного диска) и режим работы (чтение или чтение и запись).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Организация: Позволяет привязать жесткие диски, SSD или разделы для файлов подкачки (swap) к нужным папкам.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
В других дистрибутивах Linux этот файл создается автоматически при установке. В Arch Linux процесс установки выполняется вручную, поэтому там его чаще всего генерируют с помощью специальной команды: genfstab -U /mnt » /mnt/etc/fstab.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;структура_файла&quot;&gt;Структура файла&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Файл состоит из строк, разделенных пробелами или табуляцией. Каждая строка описывает одно устройство и состоит из 6 колонок:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Устройство (Block device): Обычно здесь указывается уникальный идентификатор диска (UUID), чтобы система не запуталась, если вы поменяете порты подключения (например, UUID=1234-abcd).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Точка монтирования (Mount point): Папка в системе, куда «подключается» диск (например, /, /home или /mnt/games).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Файловая система (FSType): Тип файловой системы (например, ext4, btrfs, xfs или vfat).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Параметры (Mount options): Инструкции по работе с диском (например, defaults, noatime, ro — только для чтения).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Резервная копия (Dump): Флаг для утилиты резервного копирования (обычно 0).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Проверка диска (Pass): Очередность проверки диска утилитой fsck при загрузке (корень — 1, остальные диски — 2, отключено — 0).&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Подробное руководство по редактированию и настройке параметров можно изучить на официальной &lt;a href=&quot;https://wiki.archlinux.org/title/Fstab_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Fstab_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; rel=&quot;ugc nofollow&quot;&gt;ArchWiki: fstab.&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;безопасность_операции_с_fstab&quot;&gt;Безопасность операции с fstab&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Сначала сделаем бэкап, проверим его и fstab на tom_1, чтобы живой образ загружался целиком в оперативную память и не пытался монтировать несуществующие диски.&lt;br/&gt;

Выполните по очереди эти три команды:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=69&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_11.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_11.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_11.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверяем_наличие_резервной_копии_fstab&quot;&gt;Проверяем наличие резервной копии fstab&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=70&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_108.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_108.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_108.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;очищаем_оригинальный_файл_fstab&quot;&gt;Очищаем оригинальный файл fstab&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;strong&gt;Внимание:  после использования утилиты сжатая файловой система SquashFS и копирования слепка, не забываем  вернуть конфигурационный файл fstab из бекапа &lt;/strong&gt;
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=71&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; truncate &lt;span class=&quot;re5&quot;&gt;-s&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_12.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_12.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_12.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;контрольная_проверка_очищения_fstab&quot;&gt;Контрольная проверка очищения fstab&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Фиксируем, что вывод чтения оригинального файла пуст
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=72&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_13.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_13.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_13.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Контроль: Команда cat должна вернуть абсолютно пустую строку.&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u043e\u0431\u043d\u0443\u043b\u0435\u043d\u0438\u0435 fstab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435_\u043e\u0431\u043d\u0443\u043b\u0435\u043d\u0438\u0435_fstab&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:69,&amp;quot;secid&amp;quot;:22,&amp;quot;range&amp;quot;:&amp;quot;54475-59537&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit23&quot; id=&quot;создание_airootfssfs&quot;&gt;Создание airootfs.sfs&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 airootfs.sfs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_airootfssfs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:73,&amp;quot;secid&amp;quot;:23,&amp;quot;range&amp;quot;:&amp;quot;59538-59578&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit24&quot; id=&quot;утилита_mksquashfs&quot;&gt;Утилита mksquashfs&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
mksquashfs — это консольная утилита в Arch Linux, предназначенная для создания сжатых файловых систем SquashFS, которые работают только для чтения. Она является частью пакета squashfs-tools и чаще всего используется для создания Live USB, архивации системы и упаковки портативного софта
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;применение1&quot;&gt;Применение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Резервные копии: Позволяет упаковать всю систему или отдельные директории в один компактный образ без изменения прав доступа и символических ссылок.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создание Live-образов: С помощью mksquashfs создаются загрузочные модули (например, для archiso или сборок на его базе), которые можно распаковывать и запускать в ОЗУ.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Портативные приложения (AppImage): Формат AppImage по своей сути является упакованным образом SquashFS&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;преимущества&quot;&gt;Преимущества&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Высокая степень сжатия: Поддерживает современные алгоритмы, включая xz, gzip, lz4 и zstd (по умолчанию).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Прямой доступ: ОС может монтировать этот файл как диск и читать данные на лету без предварительной полной распаковки всего архива.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;запаковываем_систему_в_squashfs&quot;&gt;Запаковываем систему в SquashFS&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Теперь запускаем самую ресурсоемкую команду, которая заморозит систему со всеми нашими универсальными сетевыми конфигами, паролями и Nginx. Она проигнорирует саму себя, бэкапы и виртуальный мусор.&lt;br/&gt;

Скопируйте и вставьте в терминал:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=73&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; mksquashfs &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs \
&lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;proc &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;media &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lost+found ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archlinux-x86_64.iso ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso \
&lt;span class=&quot;re5&quot;&gt;-comp&lt;/span&gt; zstd &lt;span class=&quot;re5&quot;&gt;-b&lt;/span&gt; 1M&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_20.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_20.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_20.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Процесс займет несколько минут. Пока он идёт, терминал будет занят. &lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_21.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_21.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_21.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Ждём полного завершения, пока не появится строка [eva@tom1 ~]$).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;немедленно_возвращаем_fstab_на_место&quot;&gt;Немедленно возвращаем fstab на место&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Как только команда mksquashfs полностью отработает и вернет вам управление, немедленно и без пауз выполните команду восстановления оригинальной таблицы разделов:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=74&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_22.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_22.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_22.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;контрольная_проверка_fstab&quot;&gt;Контрольная проверка fstab&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что файл вернулся и внутри него снова прописаны диски текущей виртуалки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=75&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Вы должны увидеть строчки с монтированием ваших UUID или разделов для /, /boot и т.д. Если текст появился — tom_1 в полной безопасности, можно выдохнуть).&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_23.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_23.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_23.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте чётко видно, что все btrfs-субтома (/@, /@home, /@pkg, /@log) и UEFI-раздел /boot вернулись на свои места. Теперь система гарантированно перезагрузится без сбоев.&lt;br/&gt;

Смена владельца файла слепка мы тоже сделали (sudo chown eva:eva …).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🔥_следующая_проблемаскелет_загрузчика_uefi&quot;&gt;🔥 Следующая проблема: Скелет загрузчика UEFI&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Переходим к самой важной части «слепого» взлёта — подготовке загрузчика. Чтобы материнские платы Supermicro, HP и ноунеймы поняли, как запускать наш кастомный образ, внутри папки ~/custom_iso/ должна лежать строгая структура файлов UEFI-загрузчика systemd-boot.&lt;br/&gt;

Сейчас у нас в ~/custom_iso/ есть только папка arch/x86_64/airootfs.sfs. Если запустить сборку ISO прямо сейчас, образ получится пустым и не загрузится ни на одном сервере.&lt;br/&gt;

Нам нужно скопировать бинарники загрузчика и конфиги из живой системы tom_1 прямо в наш конструктор.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;создаем_структуру_папок_для_uefi_и_конфигурации&quot;&gt;Создаем структуру папок для UEFI и конфигурации&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните команду одной строкой:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=76&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOT&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_24.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_24.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_24.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_структуры_uefi&quot;&gt;Проверка структуры UEFI&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=77&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-laR&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_25.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_25.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_25.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;на_что_смотрим_в_выводе&quot;&gt;На что смотрим в выводе:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Система должна показать пустую папку ~/custom_iso/EFI/BOOT&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; И пустую папку ~/custom_iso/loader/entries&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Структура каталогов EFI/BOOT и loader/entries создана без единой ошибки, права на месте. Скелет готов принимать файлы.&lt;br/&gt;

Теперь переходим к заполнению этих папок «жизненно важными органами» системы: загрузчиком UEFI, ядром Linux и виртуальным диском.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;копируем_файлы_загрузки&quot;&gt;Копируем файлы загрузки&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале строго по очереди следующие три команды:
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;копируем_сам_загрузчик_uefi&quot;&gt;Копируем сам загрузчик UEFI:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=78&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOT&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOTX64.EFI ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOT&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOTX64.EFI&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_26.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_26.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_26.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;копируем_ядро_linux&quot;&gt;Копируем ядро Linux:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=79&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_27.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_27.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_27.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверяем_содержимое_каталога_boot&quot;&gt;Проверяем содержимое каталога /boot&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=80&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_29.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_29.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_29.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;что-то_проебали_и_остановились_тут&quot;&gt;Что-то проебали и Остановились тут&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0442\u0438\u043b\u0438\u0442\u0430 mksquashfs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0442\u0438\u043b\u0438\u0442\u0430_mksquashfs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:73,&amp;quot;secid&amp;quot;:24,&amp;quot;range&amp;quot;:&amp;quot;59579-67154&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit25&quot; id=&quot;скачиваем_чистый_iso&quot;&gt;Скачиваем чистый ISO&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Поскольку сеть на tom_1 у нас работает, первым делом вытягиваем актуальную ссылку на зеркало Яндекса и скачиваем официальный образ Arch Linux. Из него мы и заберём правильные файлы загрузчика&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;скачиваем_чистый_iso_arch_linux&quot;&gt;Скачиваем чистый ISO Arch Linux&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните эти две команды, чтобы вытащить актуальную ссылку на зеркало Яндекса и скачать чистый Arch Linux:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=81&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;MIRROR_URL&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-m&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;mirror.yandex.ru&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mirrorlist &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $3}&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;s/\$repo\/os\/\$arch//&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
curl &lt;span class=&quot;re5&quot;&gt;-L&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-O&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es3&quot;&gt;${MIRROR_URL}&lt;/span&gt;iso/latest/archlinux-x86_64.iso&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_30.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_30.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_30.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(В консоли побегут проценты скачивания файла размером около 1.1–1.5 ГБ).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;контрольная_проверка_скачанного_файла&quot;&gt;Контрольная проверка скачанного файла&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Как только закачка полностью завершится, мы обязаны убедиться, что файл лёг в корень домашней директории и не является «нулевым»
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;выполните_команду_проверки&quot;&gt;Выполните команду проверки&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=82&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; archlinux-x86_64.iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_31.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_31.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_31.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Нам нужно смонтировать этот ISO во временную директорию и вытащить оттуда оригинальные папки EFI и loader. Папку arch копировать НЕ будем, чтобы случайно не затереть наш кастомный airootfs.sfs, который мы так долго собирали.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;монтирование_и_копирование_загрузчика&quot;&gt;Монтирование и копирование загрузчика&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале по очереди эти три команды:
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;создаем_точку_монтирования&quot;&gt;Создаем точку монтирования&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=83&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_32.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_32.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_32.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;убеждаемся_что_папка_создана&quot;&gt;Убеждаемся, что папка создана&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу же проверяем, что каталог физически появился в системе и готов к работе. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=84&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-ld&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_33.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_33.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_33.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте чётко видно: каталог /tmp/iso_mount успешно создан, владелец eva, права drwxr-xr-x. Фундамент заложен без ошибок.&lt;br/&gt;

Переходим к следующему микрошагу — монтированию скачанного официального диска в эту папку.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;монтируем_чистый_iso&quot;&gt;Монтируем чистый ISO&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале ровно одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=85&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; loop ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archlinux-x86_64.iso &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_34.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_34.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_34.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Примечание: Система обязана написать на английском, что диск смонтирован в режиме только для чтения (mount: /tmp/iso_mount: WARNING: source write-protected, mounted read-only.).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_что_внутри_диска&quot;&gt;Проверяем, что внутри диска&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу же после выполнения монтирования смотрим, появились ли там файлы оригинального диска.&lt;br/&gt;
  Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=86&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_35.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_35.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_35.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте видна эталонная структура официального образа Arch Linux: каталоги arch, boot, EFI, loader и файл оболочки shellx64.efi&lt;br/&gt;

Теперь переходим к этапу копирования нужных нам каталогов загрузчика в наш конструктор ~/custom_iso/. Начнем строго с каталога EFI
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;копируем_каталог_efi&quot;&gt;Копируем каталог EFI&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале только одну команду
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=87&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_36.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_36.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_36.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;убеждаемся_что_efi_скопировался_правильно&quot;&gt;Убеждаемся, что EFI скопировался правильно&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Проверяем, что каталог скопировался со всем его содержимым в нашу рабочую папку. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=88&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-laR&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_37.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_37.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_37.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте видно, что в папке EFI/BOOT теперь лежат три файла: BOOTIA32.EFI, BOOTx64.EFI и старый подсвеченный зеленым BOOTX64.EFI (который мы копировали ранее из живой системы). Они не конфликтуют, официальные загрузчики встали ровно.&lt;br/&gt;

Переходим к копированию второго важнейшего каталога — loader, в котором хранятся настройки пунктов загрузки
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;копируем_каталог_loader&quot;&gt;Копируем каталог loader&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале ровно одну команду
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=89&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_38.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_38.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_38.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;смотрим_что_скопировалось&quot;&gt;Смотрим, что скопировалось&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу же проверяем структуру и файлы внутри скопированного каталога loader. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=90&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-laR&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_39.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_39.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_39.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте видна вся заводская структура официального образа: глобальный конфиг loader.conf и три дефолтных пункта меню загрузки в папке entries.&lt;br/&gt;

Теперь нам нужно скопировать оригинальные файлы ядра и виртуального диска (initramfs) из смонтированного чистого образа, чтобы не зависеть от специфики локального ядра вашей виртуалки. Они лежат в папке /tmp/iso_mount/boot/
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;копируем_ядро_и_initramfs_из_донорского_iso&quot;&gt;Копируем ядро и initramfs из донорского ISO&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В официальном ISO-образе Arch Linux пути к ядру могут слегка отличаться в зависимости от версии. Чтобы не гадать по памяти и не плодить ошибки, давайте прямо сейчас заглянем внутрь смонтированного диска в папку boot и посмотрим, где конкретно авторы релиза спрятали ядро и initramfs
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;ищем_ядро_внутри_донорского_iso&quot;&gt;Ищем ядро внутри донорского ISO&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале только одну команду, чтобы вывести структуру папки boot смонтированного образа
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=91&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-laR&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_40.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_40.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_40.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
и окончание вывода
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_41.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_41.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_41.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Ищем мы два главных файла — само ядро Linux и виртуальный диск. На официальном ISO-образе Arch Linux они обычно называются vmlinuz-linux и initramfs-linux.img&lt;br/&gt;

На нашем скриншоте видно, что в папке /tmp/iso_mount/boot лежат только каталоги старых загрузчиков (grub, syslinux), утилита теста памяти (memtest86+) и файл-метка с датой релиза. Ядра здесь нет.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_наличие_ядра_в_корневом_каталоге_arch&quot;&gt;Проверяем наличие ядра в корневом каталоге arch&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале только одну команду
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=92&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_42.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_42.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_42.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Здесь лежит только оригинальный airootfs.sfs и его подписи. Ядра и виртуального диска тут тоже нет.&lt;br/&gt;

Разработчики Arch Linux переработали структуру официального ISO. Давайте найдем, где лежат vmlinuz-linux и initramfs-linux.img на этом диске, чтобы забрать их.&lt;br/&gt;

Поскольку на первом скриншоте вывода ls -laR /tmp/iso_mount/boot мы видели каталог /tmp/iso_mount/boot/grub, проверим оставшуюся часть папки /tmp/iso_mount/boot.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;поиск_ядра_в_корне_каталога_boot&quot;&gt;Поиск ядра в корне каталога boot&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выведем список файлов в самой папке boot без ухода в подкаталоги, чтобы увидеть скрытые файлы.&lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=93&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_43.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_43.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_43.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
и тут не нашли&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Выполните в терминале ровно одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=94&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_44.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_44.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_44.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка&quot;&gt;Проверка&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу убедимся, что путь создался успешно и параллельно нашему слепку. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=95&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_45.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_45.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_45.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
В выводе мы должны увидеть две папки: старую x86_64 (где лежит слепок) и новую boot (куда мы сейчас положим ядро).&lt;br/&gt;

Папки boot и x86_64 легли рядышком, права принадлежат пользователю eva, магия сработала. Теперь у нас полностью изолированы друг от друга и готовый настроенный слепок системы, и будущее донорское ядро.&lt;br/&gt;

Переходим к следующему микрошагу — забираем ядро и виртуальный диск напрямую из правильного каталога смонтированного донорского образа.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;копируем_ядро_и_initramfs_из_донора&quot;&gt;Копируем ядро и initramfs из донора&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале ровно одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=96&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;initramfs-linux.img ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_46.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_46.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_46.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверяем_наличие_скопированных_файлов&quot;&gt;Проверяем наличие скопированных файлов&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу же после выполнения смотрим, долетели ли файлы и какой у них размер. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=97&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
vmlinuz-linux весит законные 16 МБ, а виртуальный диск initramfs-linux.img — полноценные 228 МБ. Владелец — пользователь eva. Теперь загрузчик на реальном сервере гарантированно увидит эти файлы по прописанным путям.&lt;br/&gt;

Поскольку донорский диск нам больше не нужен, параноидально зачистим за собой временные ресурсы, чтобы они не болтались в оперативной памяти виртуалки tom_1.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;размонтируем_официальный_iso&quot;&gt;Размонтируем официальный ISO&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=98&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;umount&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_48.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_48.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_48.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;убеждаемся_что_папка_опустела&quot;&gt;Убеждаемся, что папка опустела&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Проверим, что точка монтирования теперь полностью пуста:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=99&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Если там остались только стандартные точки . и .., значит диск успешно отмонтирован.&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_49.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_49.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_49.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Теперь переходим к шагу, ради которого вся эта схема и затевалась — записи кастомного загрузочного конфига.&lt;br/&gt;

Нам нужно заставить systemd-boot искать наш носитель по жестко прописанной глобальной метке ARCH_202605, а также (помня про отсутствие монитора) — сразу активировать вывод консоли в последовательный COM-порт для аварийного подключения.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;даем_права_на_запись_01-archiso-linuxconf&quot;&gt;Даем права на запись 01-archiso-linux.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале одну команду
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=100&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +&lt;span class=&quot;kw2&quot;&gt;w&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_52.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_52.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_52.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_прав_на_файл_конфига&quot;&gt;Проверка прав на файл конфига&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале строго одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=101&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_53.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_53.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_53.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;на_что_смотрим_в_выводе1&quot;&gt;На что смотрим в выводе:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Владелец и группа: Должно быть написано eva eva.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Флаги прав (самое начало строки): Если там написано -r–r–r–, то файл заблокирован на запись (read-only). Если после нашей команды sudo chmod +w там появилось -rw-r–r–, значит, флаг записи (w) успешно пробился, и пользователь eva может его менять.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;перезаписываем_конфигурацию_загрузчика&quot;&gt;Перезаписываем конфигурацию загрузчика&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Скопируйте этот блок текста целиком и вставьте в терминал tom_1:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=102&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf
title Arch Linux &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; medium &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;x86_64, UEFI&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
linux &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux
initrd &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;initramfs-linux.img
options &lt;span class=&quot;re2&quot;&gt;archisobasedir&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;archisolabel&lt;/span&gt;=ARCH_202605 &lt;span class=&quot;re2&quot;&gt;console&lt;/span&gt;=tty0 &lt;span class=&quot;re2&quot;&gt;console&lt;/span&gt;=ttyS0,&lt;span class=&quot;nu0&quot;&gt;115200&lt;/span&gt;
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_54.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_54.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_54.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверяем_результат_записи&quot;&gt;Проверяем результат записи&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся параноидально, что старые параметры с UUID стёрлись, а новые сели ровно. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=103&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_55.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_55.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_55.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Все параметры на месте: пути ведут к ядру и initramfs внутри arch/boot/x86_64/, жесткий UUID стерт, зашита метка тома archisolabel=ARCH_202605 и активирован вывод в COM-порт console=ttyS0,115200 &lt;br/&gt;

Вся структура нашего конструктора ~/custom_iso полностью готова к финальной упаковке. Нам остался последний рывок — запустить утилиту xorriso, чтобы собрать всё это добро в готовый файл arch_custom.iso&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;устанавливаем_xorriso&quot;&gt;Устанавливаем xorriso&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале строго одну команду
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=104&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; xorriso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_56.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_56.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_56.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Система запросит подтверждение установки, нажмите Y и Enter).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;убеждаемся_что_пакет_встал&quot;&gt;Убеждаемся, что пакет встал&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу после установки проверяем версию заново
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=105&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;xorriso &lt;span class=&quot;re5&quot;&gt;--version&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_57.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_57.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_57.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Теперь у системы есть всё необходимое, чтобы сшить папки, ядро и наш настроенный слепок в один готовый ISO-файл&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Выходим на финишную прямую сборки диска. Команда большая, в ней мы жёстко привязываем имя тома к нашей метке ARCH_202605 (чтобы загрузчик на реальном сервере не потерял флешку), а также прописываем UEFI-загрузчик
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0447\u0438\u0441\u0442\u044b\u0439 ISO&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c_\u0447\u0438\u0441\u0442\u044b\u0439_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:81,&amp;quot;secid&amp;quot;:25,&amp;quot;range&amp;quot;:&amp;quot;67155-85487&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit26&quot; id=&quot;💣_как_взрывается_мина_1_при_установке&quot;&gt;💣 Как взрывается Мина №1 при установке?&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;запуск_финальной_сборки_iso&quot;&gt;Запуск финальной сборки ISO&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Скопируйте этот блок полностью и запустите в терминале от пользователя eva
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=106&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;xorriso &lt;span class=&quot;re5&quot;&gt;-as&lt;/span&gt; mkisofs \
&lt;span class=&quot;re5&quot;&gt;-iso-level&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-full-iso9660-filenames&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-volid&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ARCH_202605&amp;quot;&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-eltorito-alt-boot&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;EFI/BOOT/BOOTx64.EFI&amp;quot;&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-no-emul-boot&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-isohybrid-gpt-basdat&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-output&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso \
~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_58.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_58.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_58.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;контрольная_проверка_созданного_файла&quot;&gt;Контрольная проверка созданного файла&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Как только утилита отработает и вернет приглашение командной строки, параноидально проверяем, что файл лег на диск и имеет правильный вес (в районе 1.6–1.8 ГБ). &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=107&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_59.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_59.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_59.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Файл arch_custom.iso весит честные 1.7 ГБ, права принадлежат пользователю eva, дата и время свежие.
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;определяем_ip-адрес_tom_1&quot;&gt;Определяем IP-адрес tom_1&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Перед тем как лезть в PowerShell на хостовой Windows, нам нужно точно знать текущий сетевой адрес вашей рабочей виртуалки, чтобы указать его в команде скачивания.&lt;br/&gt;

Выполните в терминале tom_1 одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=108&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ip route&lt;/span&gt; get 1.1.1.1 &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $7}&#039;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_60.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_60.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_60.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Она выведет ровно один ваш актуальный IP, например 192.168.1.72 или аналогичный).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;забираем_iso_через_powershell&quot;&gt;Забираем ISO через PowerShell&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Открывайте PowerShell на вашей Windows-машине и вставляйте следующую команду (в неё нужно зашить ваш реальный IP):
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=109&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;powershell&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;scp&lt;/span&gt; eva&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;192.168.1.72:~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso &lt;span class=&quot;re1&quot;&gt;$home&lt;/span&gt;\Downloads\arch_custom.iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;PowerShell выдаст предупреждение о неизвестном хосте (The authenticity of host… can&amp;#039;t be established). Напишите yes и нажмите Enter.&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;После этого система потребует пароль пользователя eva (тот самый, хэш которого мы параноидально проверяли). Вводите его (символы при вводе отображаться не будут) и жмите Enter.&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_62.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_62.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_62.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Образ arch_custom.iso весом 1700 МБ успешно скачался в вашу папку «Загрузки» хостовой Windows всего за одну минуту на скорости 28.5 МБ/с. Связь между виндой и tom_1 отработала как часы.&lt;br/&gt;

Теперь переходим к следующему ответственному этапу — подготовке виртуальной флешки arch-flash-3 через Rufus. Делаем строго по нашей параноидальной схеме.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;подключаем_виртуальный_диск&quot;&gt;Подключаем виртуальный диск&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h5 id=&quot;присоединяем_vhd_vhdx&quot;&gt;Присоединяем VHD/VHDX:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Откройте в Windows «Управление дисками» (Win + X → Управление дисками). Сверху нажмите Действие → Присоединить виртуальный жесткий диск 
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_63.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_63.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_63.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
и выберите файл вашей виртуальной флешки arch-flash-3. 
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_64.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_64.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_64.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Убедитесь, что диск появился в списке снизу.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_65.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_65.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_65.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;запишем_наш_образ_через_rufus&quot;&gt;Запишем наш образ через Rufus&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_66.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_66.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_66.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Схема раздела — GPT, Целевая система — UEFI (не-CSM), а метка тома встала строго как ARCH_202605&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🔥_шаг_1_правильное_отвязывание_диска_от_windows&quot;&gt;🔥 Шаг 1. Правильное отвязывание диска от Windows&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Действуем строго через системную утилиту, которую видно у вас на заднем плане:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Вернитесь в окно «Управление дисками» (Disk Management).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Найдите снизу в списке Диск 2 (это наша флешка ARCH_202605 (G:) весом 14.00 ГБ).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Нажмите правой кнопкой мыши строго по серому квадрату с надписью «Диск 2 / Базовый / 14,00 ГБ / В сети» (нажимать нужно именно на левую серую плашку, а не на сам синий раздел диска G:).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В появившемся контекстном меню выберите пункт «Взаимодействие» → «Отсоединить виртуальный жесткий диск» (Detach VHD).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Система выдаст окошко с подтверждением пути к файлу, нажмите ОК.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_68.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_68.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_68.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(После этого строка Диск 2 должна полностью исчезнуть из нижнего списка, а диск G: — пропасть из «Проводника»).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;монтируем_флешку_в_настройки_tom_2&quot;&gt;Монтируем флешку в настройки tom_2&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Откройте Диспетчер Hyper-V.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Нажмите правой кнопкой мыши по виртуалке tom_2 → Параметры (Settings).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Перейдите в раздел SCSI-контроллер → выберите Жесткий диск → нажмите Добавить.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В появившемся окне нажмите кнопку Обзор и укажите путь к файлу нашей виртуальной флешки arch-flash-3.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Перейдите во вкладку Встроенное ПО (Firmware) в самом верху настроек. Убедитесь, что этот новый жесткий диск (наша флешка) стоит на первом месте в списке загрузки (выше основного пустого диска).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Перейдите во вкладку Безопасность (Security) и железно проверьте, что галочка «Включить безопасную загрузку» (Secure Boot) снята.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_69.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_69.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_69.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udca3 \u041a\u0430\u043a \u0432\u0437\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u041c\u0438\u043d\u0430 \u21161 \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udca3_\u043a\u0430\u043a_\u0432\u0437\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f_\u043c\u0438\u043d\u0430_1_\u043f\u0440\u0438_\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:106,&amp;quot;secid&amp;quot;:26,&amp;quot;range&amp;quot;:&amp;quot;85488-92803&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit27&quot; id=&quot;🕵️_♂️_разбор_проёбаоткуда_взялся_zram-generator&quot;&gt;🕵️‍♂️ Разбор проёба: откуда взялся zram-generator?&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_71.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_71.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_71.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_72.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_72.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_72.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;br/&gt;

Ошибка zram-generator означает, что подсистема инициализации systemd пытается создать сжатый подкачивающий диск (swap) в оперативной памяти, но падает с ошибкой. На чистом официальном ISO Arch Linux этот генератор работает без проблем.&lt;br/&gt;

Но почему он упал у нас?
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Файловая система airootfs.sfs — это слепок вашей виртуалки tom_1. На tom_1 в ядре настроена полноценная работа с дисками (btrfs, файлы подкачки и т.д.).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; А вот ядро (vmlinuz-linux) и виртуальный диск (initramfs-linux.img) мы ювелирно скопировали из чистого официального ISO (донора), чтобы обойти проблему путей.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Произошел жесткий конфликт версий и модулей (Mismatch): Донором для ядра стал чистый официальный образ Arch. Но на живой машине tom_1 система уже обновлялась (linux-firmware от мая 2026 года, обновленные пакеты systemd).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Когда официальное донорское ядро пытается подгрузить модули и генераторы из нашего слепка airootfs.sfs, версии systemd и модулей ядра банально не совпадают. zram-generator падает, и systemd намертво блокирует дальнейшую загрузку служб, включая сеть и консоль.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
По старому руководству вы брали ядро и initramfs от той же самой системы tom_1 (хоть мы и запутались в путях), поэтому там версии совпадали, и ядро проходило дальше, пока не упиралось в UUID дисков.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🛠️_что_делаем_дальше_у_нас_есть_два_пути&quot;&gt;🛠️ Что делаем дальше? У нас есть два пути:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Поскольку мы договорились проверять всё пошагово и возвращаться к зафиксированным точкам, у нас два варианта:
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;путь_1_вернуться_на_tom_1_и_взять_его_родные_ядро_и_initramfs&quot;&gt;Путь 1. Вернуться на tom_1 и взять ЕГО родные ядро и initramfs&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Мы теперь точно знаем, что ядро и initramfs загрузчик ищет строго по пути arch/boot/x86_64/.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Мы можем зайти на tom_1, сгенерировать там чистый, родной initramfs-linux.img с помощью утилиты mkinitcpio (чтобы он точно содержал в себе модули для btrfs/ext4 и сетевых карт).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Скопировать их в ~/custom_iso/arch/boot/x86_64/, затерев донорские файлы.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Пересобрать ISO через xorriso. Версии совпадут, система продвинется дальше и упрется в UUID, как в старой доке, и мы сможем продолжить чистый эксперимент.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h5 id=&quot;путь_2_попробовать_дождаться_вдруг_отпустит&quot;&gt;Путь 2. Попробовать дождаться (вдруг отпустит?)&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Иногда при падении генераторов systemd ждет таймаут (около 90 секунд) и пробует продолжить загрузку остальных служб в аварийном режиме. &lt;br/&gt;

Если подождать пару минут, экран меняется или висит намертво на этой строчке?Если висит наглухо — переходим к Пути 1, чтобы выровнять версии ядра и слепка системы.
&lt;br/&gt;

В Linux-системах у systemd на запуск каждого генератора или службы по умолчанию заложен жесткий лимит времени (обычно 90 секунд). Если за это время капризный zram-generator не оклемается, ядро должно плюнуть на него, выдать статус [DEPEND] (ошибка зависимости) и попробовать запустить критически важные для нас вещи — текстовую консоль и службы логина.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_73.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_73.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_73.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udd75\ufe0f\u200d\u2642\ufe0f \u0420\u0430\u0437\u0431\u043e\u0440 \u043f\u0440\u043e\u0451\u0431\u0430: \u043e\u0442\u043a\u0443\u0434\u0430 \u0432\u0437\u044f\u043b\u0441\u044f zram-generator?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udd75\ufe0f_\u2642\ufe0f_\u0440\u0430\u0437\u0431\u043e\u0440_\u043f\u0440\u043e\u0451\u0431\u0430\u043e\u0442\u043a\u0443\u0434\u0430_\u0432\u0437\u044f\u043b\u0441\u044f_zram-generator&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:110,&amp;quot;secid&amp;quot;:27,&amp;quot;range&amp;quot;:&amp;quot;92804-97762&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit28&quot; id=&quot;📋_итоговый_чек-листхроники_ручной_сборки_headless_arch_iso&quot;&gt;📋 Итоговый чек-лист: Хроники ручной сборки Headless Arch ISO&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udccb \u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0447\u0435\u043a-\u043b\u0438\u0441\u0442: \u0425\u0440\u043e\u043d\u0438\u043a\u0438 \u0440\u0443\u0447\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438 Headless Arch ISO&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udccb_\u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439_\u0447\u0435\u043a-\u043b\u0438\u0441\u0442\u0445\u0440\u043e\u043d\u0438\u043a\u0438_\u0440\u0443\u0447\u043d\u043e\u0439_\u0441\u0431\u043e\u0440\u043a\u0438_headless_arch_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:110,&amp;quot;secid&amp;quot;:28,&amp;quot;range&amp;quot;:&amp;quot;97763-97872&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit29&quot; id=&quot;🕵️_♂️_часть_1_хроника_аудита_подопытной_флешки_вм_tom_2&quot;&gt;🕵️‍♂️ ЧАСТЬ 1. ХРОНИКА АУДИТА ПОДОПЫТНОЙ ФЛЕШКИ (ВМ tom_2)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Сессия началась с препарирования «вживую» запущенной в ОЗУ флешки №101 на изолированной машине tom_2. Нам требовалось понять причины двух проблем: почему ядро сыплет аппаратными ошибками прерываний (NMI) и почему система не записывается на пустой диск sda.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udd75\ufe0f\u200d\u2642\ufe0f \u0427\u0410\u0421\u0422\u042c 1. \u0425\u0420\u041e\u041d\u0418\u041a\u0410 \u0410\u0423\u0414\u0418\u0422\u0410 \u041f\u041e\u0414\u041e\u041f\u042b\u0422\u041d\u041e\u0419 \u0424\u041b\u0415\u0428\u041a\u0418 (\u0412\u041c tom_2)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udd75\ufe0f_\u2642\ufe0f_\u0447\u0430\u0441\u0442\u044c_1_\u0445\u0440\u043e\u043d\u0438\u043a\u0430_\u0430\u0443\u0434\u0438\u0442\u0430_\u043f\u043e\u0434\u043e\u043f\u044b\u0442\u043d\u043e\u0439_\u0444\u043b\u0435\u0448\u043a\u0438_\u0432\u043c_tom_2&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:110,&amp;quot;secid&amp;quot;:29,&amp;quot;range&amp;quot;:&amp;quot;97873-98449&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit30&quot; id=&quot;🔍_ключевые_улики_и_факты_добытые_по_ssh&quot;&gt;🔍 Ключевые улики и факты, добытые по SSH:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Сетевой стек и VLAN ID (Решено в один клик):Изначально Windows хост выдавал «Заданный узел недоступен» при пинге 192.168.1.150. Аудит свойств виртуального коммутатора Hyper-V Lan_without_internet показал активную галочку VLAN ID = 2. Хостовая Windows тегировала трафик, а Live-сессия Arch на eth0 ждала нетегированный (Native) поток. После сброса галочки VLAN ID сетевой мост мгновенно ожил, пошел чистый пинг, открылся SSH по PuTTY и отобразилась веб-страница.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Триумф SquashFS-слепка:Опровергнута теория о «затирании» кастомного корня донорскими файлами. Наличие активного статического IP 192.168.1.150, успешная авторизация под созданным пользователем eva, валидные Yescrypt-хэши ($y$) паролей в /etc/shadow и работающий Nginx на порту 5000 железно доказали: слепок airootfs.sfs жив, цел и развернулся в ОЗУ в штатном режиме. На скриншоте отобразилась дефолтная страница «Welcome to nginx!», так как контент инсталлятора в папку /usr/share/nginx/html/ еще не внедрялся.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Загадка и разгадка ZRAM (Причина сбоя на 2-й секунде):&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; На 2-й секунде загрузки флешки ядро выплевывало ошибку zram-generator failed with exit status 1.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Аудит в ОЗУ флешки (zramctl и lsmod | grep zram) выдал абсолютную тишину — модуль не загружен, устройства подкачки в памяти нет.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Поиск блокировок в /etc/modprobe.d/ вернул пустоту.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Глубинная причина: Локальный pacman -Q linux внутри слепка показал версию пакета модулей 7.0.9, а утилита uname -r запущенного ядра выдала донорскую версию 7.0.3. Произошел жесткий «мисматч» версий (Франкенштейн). Донорское ядро 7.0.3 из скачанного ISO не нашло своих модулей в слепке (там всё под 7.0.9), из-за чего отвалились драйверы, упал zram-generator, а виртуальный процессор Hyper-V начал засыпать консоль аппаратными ошибками прерываний NMI received for unknown reason 00.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Почему система не записалась на диск:Команда lsblk показала пустой жесткий диск sda (12G) без разделов. Аудит каталогов автозапуска systemd (/etc/systemd/system/multi-user.target.wants/), shell-профилей (.bash_profile, .bashrc) у eva и у root (у которого профиля вообще не было ввиду пустоты /etc/skel при базовой установке) доказал: в системе физически отсутствовали инструкции и скрипты для работы с дисками. Флешка вела себя как честный, чистый Live-CD.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udd0d \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0443\u043b\u0438\u043a\u0438 \u0438 \u0444\u0430\u043a\u0442\u044b, \u0434\u043e\u0431\u044b\u0442\u044b\u0435 \u043f\u043e SSH:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udd0d_\u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435_\u0443\u043b\u0438\u043a\u0438_\u0438_\u0444\u0430\u043a\u0442\u044b_\u0434\u043e\u0431\u044b\u0442\u044b\u0435_\u043f\u043e_ssh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:110,&amp;quot;secid&amp;quot;:30,&amp;quot;range&amp;quot;:&amp;quot;98450-102203&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit31&quot; id=&quot;часть_2_внесенные_изменения_в_руководство_на_сайте&quot;&gt;ЧАСТЬ 2. ВНЕСЕННЫЕ ИЗМЕНЕНИЯ В РУКОВОДСТВО НА САЙТЕ&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Осознав ценность 11-дневного труда, мы отказались от идеи «костылить» флешку на лету. Мы вернулись на tom_1 и начали пересобирать проект абсолютно с нуля. По ходу выполнения мы открыли ваше оригинальное руководство на сайте и сразу внесли в него фундаментальные архитектурные правки:
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0427\u0410\u0421\u0422\u042c 2. \u0412\u041d\u0415\u0421\u0415\u041d\u041d\u042b\u0415 \u0418\u0417\u041c\u0415\u041d\u0415\u041d\u0418\u042f \u0412 \u0420\u0423\u041a\u041e\u0412\u041e\u0414\u0421\u0422\u0412\u041e \u041d\u0410 \u0421\u0410\u0419\u0422\u0415&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0447\u0430\u0441\u0442\u044c_2_\u0432\u043d\u0435\u0441\u0435\u043d\u043d\u044b\u0435_\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f_\u0432_\u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e_\u043d\u0430_\u0441\u0430\u0439\u0442\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:110,&amp;quot;secid&amp;quot;:31,&amp;quot;range&amp;quot;:&amp;quot;102204-102822&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit32&quot; id=&quot;🛠_этап_0_выравнивание_и_контроль_версий&quot;&gt;🛠 Этап 0. Выравнивание и контроль версий&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;как_было&quot;&gt;Как было:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В середине процесса скачивался донорский ISO, и файлы vmlinuz-linux и initramfs-linux.img механически забирались из него.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0.1. Актуализация пакетов на tom_1: Запустить полное обновление системы (pacman -Syu), чтобы зафиксировать стабильный срез ядра и утилит на хосте.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0.2. Смена источника ядра: Полностью отказаться от копирования файлов vmlinuz-linux и initramfs-linux.img из скачанных донорских ISO-образов.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0.3. Прямая подстановка: Копировать файлы ядра и initramfs в структуру ISO (~/custom_iso/arch/boot/x86_64/) строго из родной папки /boot/ обновленной системы tom_1.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0.4. Сквозная проверка (Запрет сборки): Перед запуском упаковщика программно или визуально сверять версии:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Пакет: pacman -Q linux&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Файл на хосте: file /boot/vmlinuz-linux&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Файл в ISO: file ~/custom_iso/arch/boot/x86_64/vmlinuz-linuxВерсии должны совпадать символ в символ (например, строго 7.0.9-arch1-1).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;️_корректировка_1выравнивание_ядер_этап_0&quot;&gt;✏️ Корректировка №1: Выравнивание ядер (Этап 0)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;как_стало&quot;&gt;Как стало:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
 Мы ввели «Правило Нулевого Шага». Перед любой консервацией система tom_1 принудительно обновляется из зеркал (pacman -Syu), фиксируя эталонное свежее ядро (в нашем кейсе — 7.0.9-arch2-1). Копирование файлов ядра и initramfs в структуру конструктора теперь производится строго из родного каталога /boot/ самой обновленной tom_1. Это гарантирует 100% совпадение версий со слепком и навсегда убирает ошибку NMI и панику ZRAM.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;️_корректировка_2идеальное_место_для_интеграции_zram&quot;&gt;✏️ Корректировка №2: Идеальное место для интеграции ZRAM&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;как_было1&quot;&gt;Как было:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Текстовый конфиг zram-generator.conf лежал в системе, но утилита падала, так как бинарника не было в ОЗУ.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;как_стало1&quot;&gt;Как стало:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
 Мы нашли ювелирную точку на сайте. В подразделе «Установка инструментов сжатия и генератора ZRAM», строго после безопасной очистки fstab через truncate и перед непосредственным запуском команды mksquashfs, мы прописали совместную установку пакетов:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=110&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;bashsudo pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; squashfs-tools zram-generator&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Это гарантирует, что бинарник и службы ZRAM попадут внутрь слепка за секунду до упаковки, а на этапе ранней эксплуатации tom_1 система не будет замусорена.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0 \u042d\u0442\u0430\u043f 0. \u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0432\u0435\u0440\u0441\u0438\u0439&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0_\u044d\u0442\u0430\u043f_0_\u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435_\u0438_\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c_\u0432\u0435\u0440\u0441\u0438\u0439&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:110,&amp;quot;secid&amp;quot;:32,&amp;quot;range&amp;quot;:&amp;quot;102823-106311&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit33&quot; id=&quot;🛠_часть_3_подготовка_файловой_системы_слепка&quot;&gt;🛠 ЧАСТЬ 3. Подготовка файловой системы слепка&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0 \u0427\u0410\u0421\u0422\u042c 3. \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441\u043b\u0435\u043f\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0_\u0447\u0430\u0441\u0442\u044c_3_\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430_\u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439_\u0441\u0438\u0441\u0442\u0435\u043c\u044b_\u0441\u043b\u0435\u043f\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:111,&amp;quot;secid&amp;quot;:33,&amp;quot;range&amp;quot;:&amp;quot;106312-106406&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit34&quot; id=&quot;🧹_этап_1_статус_выполненных_шагов_на_свежей_вм_tom_1&quot;&gt;🧹 Этап 1. СТАТУС ВЫПОЛНЕННЫХ ШАГОВ НА СВЕЖЕЙ ВМ tom_1&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Продвигаясь мелкими шажками, строго по одной изолированной команде с мгновенным скриншот-контролем, мы успешно реализовали стартовый блок нового руководства на чистой tom_1:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.1. Запустили полное обновление системы (sudo pacman -Syu –noconfirm).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.2. Отправили ВМ в чистый ребут (sudo reboot), зашли обратно и зафиксировали в памяти ОЗУ эталонное родное ядро 7.0.9-arch2-1.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.3. Проверили пакет физического микрокода (pacman -Q linux-firmware) — версия 20260519-1 на месте, реальные сетевухи Intel/Broadcom заведутся.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.4. Ювелирно создали и сохранили на диск универсальный сетевой конфиг /etc/systemd/network/20-wired.network с маской Name=en* eth* и статикой 192.168.1.150/24.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.5. Перевели сетевую службу в автозапуск: sudo systemctl enable systemd-networkd (симлинки созданы).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.6. Включили &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;-резолвер: sudo systemctl enable systemd-resolved.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.7. Убедились, что удаленный доступ активен: systemctl is-enabled sshd рапортует enabled.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.8. Проверили автозапуск веб-сервера: systemctl is-enabled nginx выдает enabled.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.9. Прогнали синтаксический тест Nginx (sudo nginx -t) — успешно, порт 5000 жестко привязан в nginx.conf.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.10. Проверили хэши безопасности пользователей (sudo getent shadow root eva) — современный Yescrypt ($y$) на месте, учетки активны. Прямой вход под root через su - root проверен и защищен вашим личным паролем.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.11. Вывели параметры ZRAM на хосте (lsmod и zramctl) — модуль в ядре активен, swap на 4 ГБ функционирует штатно.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.12. Сделали резервную копию рабочей таблицы разделов: sudo cp /etc/fstab /etc/fstab.bak [1.9].&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.13. Обнулили оригинал: sudo truncate -s 0 /etc/fstab [1.9]. Контрольный cat /etc/fstab вернул идеальную пустую строку (оригинальная Btrfs-структура субтомов хоста надежно заперта в бэкапе .bak весом 837 байт) [1.4, 1.9].&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.14. Отработали нашу новую эдит-запись: одной чистой командой доставили инструменты сжатия и генератор ZRAM (sudo pacman -S –noconfirm squashfs-tools zram-generator) [1.4]. Раздельная проверка подтвердила их наличие в системе [1.4].&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.15. Доставили программную основу нашего будущего веб-инсталлятора: sudo pacman -S –noconfirm php-fpm [1.4].&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.16–0.18. Поймали «выключенный» статус PHP-FPM через is-enabled и принудительно перевели его в автозапуск (sudo systemctl enable php-fpm), добившись жесткого статуса enabled [1.4].&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83e\uddf9 \u042d\u0442\u0430\u043f 1. \u0421\u0422\u0410\u0422\u0423\u0421 \u0412\u042b\u041f\u041e\u041b\u041d\u0415\u041d\u041d\u042b\u0425 \u0428\u0410\u0413\u041e\u0412 \u041d\u0410 \u0421\u0412\u0415\u0416\u0415\u0419 \u0412\u041c tom_1&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83e\uddf9_\u044d\u0442\u0430\u043f_1_\u0441\u0442\u0430\u0442\u0443\u0441_\u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0445_\u0448\u0430\u0433\u043e\u0432_\u043d\u0430_\u0441\u0432\u0435\u0436\u0435\u0439_\u0432\u043c_tom_1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:111,&amp;quot;secid&amp;quot;:34,&amp;quot;range&amp;quot;:&amp;quot;106407-110211&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit35&quot; id=&quot;🚀_часть_4_что_предстоит_сделать_веб-инсталлятор&quot;&gt;🚀 ЧАСТЬ 4. ЧТО ПРЕДСТОИТ СДЕЛАТЬ (ВЕБ-ИНСТАЛЛЯТОР)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Мы остановились ровно перед разделом «Создание структуры каталогов для конструктора ISO». Мы полностью утвердили новую изящную концепцию: наша флешка будет не просто Live-CD, а полноценным WebUI-автономным сервером установки. Окно SSH нам нужно только для контроля, а сама установка на tom_2 будет происходить по клику кнопки из браузера на веб-странице 192.168.1.150:5000!
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\ude80 \u0427\u0410\u0421\u0422\u042c 4. \u0427\u0422\u041e \u041f\u0420\u0415\u0414\u0421\u0422\u041e\u0418\u0422 \u0421\u0414\u0415\u041b\u0410\u0422\u042c (\u0412\u0415\u0411-\u0418\u041d\u0421\u0422\u0410\u041b\u041b\u042f\u0422\u041e\u0420)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\ude80_\u0447\u0430\u0441\u0442\u044c_4_\u0447\u0442\u043e_\u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442_\u0441\u0434\u0435\u043b\u0430\u0442\u044c_\u0432\u0435\u0431-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:111,&amp;quot;secid&amp;quot;:35,&amp;quot;range&amp;quot;:&amp;quot;110212-110961&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit36&quot; id=&quot;🗺_предстоящие_шаги_доработки_руководства_на_tom_1&quot;&gt;🗺 Предстоящие шаги доработки руководства на tom_1:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создание_структуры_каталогов_конструктора&quot;&gt;1. Создание структуры каталогов конструктора:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Мы создадим папку под слепок системы mkdir -p ~/custom_iso/arch/x86_64/. Проверим систему tom_2 и официальный iso образ на необходимость создания директори изолированного пути для ядра загрузчика, которого ранее в доноре возможно не было:&lt;br/&gt;

и если его не было,то создадим 
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=111&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
и проверим создание.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;разработка_веб-фронтенда_и_бэкенда_html_css_js_php&quot;&gt;2. Разработка Веб-Фронтенда и Бэкенда (HTML / CSS / JS / PHP):&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В каталоге /usr/share/nginx/html/ мы заменим стандартную заглушку Nginx на пульт управления:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; index.html + style.css: красивый интерфейс с большой кнопкой «Начать установку системы на tom_2».&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; script.js: обработчик клика, который через асинхронный fetch() пингует бэкенд и выводит логи установки в реальном времени.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; install.php: скрипт, принимающий запрос от JS и инициирующий системный вызов через shell_exec(&amp;#039;sudo /usr/share/nginx/html/installer.sh sda 2&amp;gt;&amp;amp;1&amp;#039;);. &lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;

&lt;h4 id=&quot;обход_мины_с_правами_доступа_http_пользователь&quot;&gt;3. Обход мины с правами доступа (http пользователь):&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Поскольку PHP-FPM в Arch работает от имени пользователя http, мы создадим изолированный файл прав /etc/sudoers.d/web-installer внутри конструктора ISO и пропишем туда строго одну строчку беспарольного доступа к скрипту:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=112&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;http &lt;span class=&quot;re2&quot;&gt;ALL&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ALL:ALL&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; NOPASSWD: &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;installer.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
http ALL=(ALL:ALL) NOPASSWD: /usr/share/nginx/html/installer.sh
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создание_скрипта_разметки_по_логике_label_полный_отказ_от_uuid&quot;&gt;4. Создание скрипта разметки по логике LABEL (Полный отказ от UUID):&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Мы напишем installer.sh, который примет диск sda, занулит его через sgdisk –zap-all и наречет разделы жесткими глобальными метками: EFI раздел → LABEL=«ARCH_BOOT» (FAT32), Root раздел → LABEL=«ARCH_&lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt;» (Btrfs). Скрипт создаст ваши btrfs-субтома (/@, /@home, /@pkg, /@log), скопирует систему из ОЗУ и подкинет универсальный статический /etc/fstab, полностью завязанный на метки LABEL=.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;запуск_заморозки_системы&quot;&gt;5. Запуск заморозки системы:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполним команду mksquashfs / ~/custom_iso/arch/x86_64/airootfs.sfs …. Внутри этого слепка теперь гарантированно окажутся и модули ядра 7.0.9, и php-fpm, и zram-generator. Сразу после этого вернем fstab хоста на место.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;сборка_через_xorriso&quot;&gt;6. Сборка через xorriso:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Мы соберем новый 102-й образ, жестко привязав имя диска к вашей метке тома -volid «ARCH_202605», пропишем флаг ядра unknown_nmi_panic=0 для защиты от прерываний Hyper-V
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;🔌_модификация_параметров_загрузчика_под_hyper-v&quot;&gt;🔌 Модификация параметров загрузчика под Hyper-V&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 6.1. Добавление флага ядра: При формировании конфигурационного файла ~/custom_iso/loader/entries/01-archiso-linux.conf в строку параметров ядра (options) дописать:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=113&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;textunknown_nmi_panic&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Это заблокирует ложные аппаратные прерывания виртуализации Hyper-V и предотвратит ступор консоли.&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\uddfa \u041f\u0440\u0435\u0434\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0448\u0430\u0433\u0438 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u043d\u0430 tom_1:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\uddfa_\u043f\u0440\u0435\u0434\u0441\u0442\u043e\u044f\u0449\u0438\u0435_\u0448\u0430\u0433\u0438_\u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438_\u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430_\u043d\u0430_tom_1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:111,&amp;quot;secid&amp;quot;:36,&amp;quot;range&amp;quot;:&amp;quot;110962-115135&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit37&quot; id=&quot;🌐_этап_3_развертывание_и_изоляция_веб-бэкенда_nginx_php&quot;&gt;🌐 Этап 3. Развертывание и изоляция веб-бэкенда (Nginx + PHP)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 3.1. Интеграция PHP: Установить пакет php-fpm внутри слепка системы и связать его с Nginx через сокет в nginx.conf.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 3.2. Настройка прав веб-пользователя: Создать изолированный файл правил прав доступа по пути /etc/sudoers.d/web-installer внутри конструктора ISO.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 3.3. Беспарольный доступ к Bash: Прописать в этот файл строго одну строчку:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=114&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;texthttp &lt;span class=&quot;re2&quot;&gt;ALL&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ALL:ALL&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; NOPASSWD: &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;installer.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 3.4. Маскировка прав: Перед заморозкой SquashFS жестко выставить права на этот файл, иначе sudo его проигнорирует:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=115&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;bashchown root:root &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sudoers.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;web-installer
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; 0440 &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sudoers.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;web-installer&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83c\udf10 \u042d\u0442\u0430\u043f 3. \u0420\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0438 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044f \u0432\u0435\u0431-\u0431\u044d\u043a\u0435\u043d\u0434\u0430 (Nginx + PHP)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83c\udf10_\u044d\u0442\u0430\u043f_3_\u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435_\u0438_\u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044f_\u0432\u0435\u0431-\u0431\u044d\u043a\u0435\u043d\u0434\u0430_nginx_php&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:114,&amp;quot;secid&amp;quot;:37,&amp;quot;range&amp;quot;:&amp;quot;115136-116215&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit38&quot; id=&quot;💽_этап_4_разработка_webui-инсталлятора_и_логики_label&quot;&gt;💽 Этап 4. Разработка WebUI-инсталлятора и логики LABEL&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 4.1. Внедрение Bash-исполнителя: Написать скрипт /usr/share/nginx/html/installer.sh, который:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Принимает имя целевого диска как аргумент (например, $1 → sda).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Стирает старую разметку через sgdisk –zap-all.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Размечает диск и присваивает разделам жесткие метки: Раздел 1 (FAT32) → ARCH_BOOT, Раздел 2 (Btrfs) → ARCH_&lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создает внутри ARCH_&lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt; копию вашей структуры субтомов (/@, /@home, /@pkg, /@log).Копирует файлы из текущего ОЗУ флешки на новые субтома без интернета.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 4.2. Полный отказ от UUID: Внедрить в устанавливаемую систему универсальный статический /etc/fstab, полностью завязанный на метки:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=116&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;LABEL&lt;/span&gt;=ARCH_OS   &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;       btrfs   rw,noatime,&lt;span class=&quot;re2&quot;&gt;compress&lt;/span&gt;=zstd,&lt;span class=&quot;re2&quot;&gt;subvol&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/@&lt;/span&gt;   &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LABEL&lt;/span&gt;=ARCH_BOOT &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot   vfat    rw,relatime,&lt;span class=&quot;re2&quot;&gt;fmask&lt;/span&gt;=0022,&lt;span class=&quot;re2&quot;&gt;dmask&lt;/span&gt;=0022     &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 4.3. Верстка интерфейса (Фронтенд): Заменить дефолтный index.html в папке Nginx на кастомный пульт управления с использованием &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;, &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt; и JavaScript.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 4.4. Кнопка «Старт»: Написать install.php, который по клику JS-кнопки из браузера безопасно вызывает:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=117&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;install.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;phpshell_exec&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;sudo /usr/share/nginx/html/installer.sh sda 2&amp;gt;&amp;amp;1&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udcbd \u042d\u0442\u0430\u043f 4. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 WebUI-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u0430 \u0438 \u043b\u043e\u0433\u0438\u043a\u0438 LABEL&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udcbd_\u044d\u0442\u0430\u043f_4_\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430_webui-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u0430_\u0438_\u043b\u043e\u0433\u0438\u043a\u0438_label&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:116,&amp;quot;secid&amp;quot;:38,&amp;quot;range&amp;quot;:&amp;quot;116216-117997&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit39&quot; id=&quot;конец&quot;&gt;Конец&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u043e\u043d\u0435\u0446&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043d\u0435\u0446&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:118,&amp;quot;secid&amp;quot;:39,&amp;quot;range&amp;quot;:&amp;quot;117998-118020&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit40&quot; id=&quot;дальше_читаем_только_если_230526_вы_собрали_флешку_но_она_не_запустилась&quot;&gt;Дальше читаем только если 23.05.26 вы собрали флешку, но она не запустилась!&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u0430\u043b\u044c\u0448\u0435 \u0447\u0438\u0442\u0430\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 23.05.26 \u0432\u044b \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u0444\u043b\u0435\u0448\u043a\u0443, \u043d\u043e \u043e\u043d\u0430 \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0430\u0441\u044c!&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u0430\u043b\u044c\u0448\u0435_\u0447\u0438\u0442\u0430\u0435\u043c_\u0442\u043e\u043b\u044c\u043a\u043e_\u0435\u0441\u043b\u0438_230526_\u0432\u044b_\u0441\u043e\u0431\u0440\u0430\u043b\u0438_\u0444\u043b\u0435\u0448\u043a\u0443_\u043d\u043e_\u043e\u043d\u0430_\u043d\u0435_\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0430\u0441\u044c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:118,&amp;quot;secid&amp;quot;:40,&amp;quot;range&amp;quot;:&amp;quot;118021-118162&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit41&quot; id=&quot;🎯_1_глобальная_цель_проекта&quot;&gt;🎯 1. Глобальная цель проекта&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Собрать кастомный, полностью автономный ISO-образ Arch Linux на базе живой системы tom_1 для офлайн-установки на «слепые» физические сервера (Supermicro, старый HP, два кастомных ноунейма) без интернета и мониторов. Доступ к серверам после старта с флешки — строго по SSH.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83c\udfaf 1. \u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0430\u044f \u0446\u0435\u043b\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83c\udfaf_1_\u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0430\u044f_\u0446\u0435\u043b\u044c_\u043f\u0440\u043e\u0435\u043a\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:118,&amp;quot;secid&amp;quot;:41,&amp;quot;range&amp;quot;:&amp;quot;118163-118701&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit42&quot; id=&quot;если_230526_года_до_2359_вам_не_хватит_ума_собрать_рабочую_флешку_только_тогда_для_анализа_читаем_рабочий_код_от_210526&quot;&gt;Если 23.05.26 года до 23:59 вам не хватит ума собрать рабочую флешку. Только тогда! Для Анализа читаем рабочий код от 21.05.26&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0415\u0441\u043b\u0438 23.05.26 \u0433\u043e\u0434\u0430 \u0434\u043e 23:59 \u0432\u0430\u043c \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u0442 \u0443\u043c\u0430 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0443\u044e \u0444\u043b\u0435\u0448\u043a\u0443. \u0422\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0433\u0434\u0430! \u0414\u043b\u044f \u0410\u043d\u0430\u043b\u0438\u0437\u0430 \u0447\u0438\u0442\u0430\u0435\u043c \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043a\u043e\u0434 \u043e\u0442 21.05.26&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0435\u0441\u043b\u0438_230526_\u0433\u043e\u0434\u0430_\u0434\u043e_2359_\u0432\u0430\u043c_\u043d\u0435_\u0445\u0432\u0430\u0442\u0438\u0442_\u0443\u043c\u0430_\u0441\u043e\u0431\u0440\u0430\u0442\u044c_\u0440\u0430\u0431\u043e\u0447\u0443\u044e_\u0444\u043b\u0435\u0448\u043a\u0443_\u0442\u043e\u043b\u044c\u043a\u043e_\u0442\u043e\u0433\u0434\u0430_\u0434\u043b\u044f_\u0430\u043d\u0430\u043b\u0438\u0437\u0430_\u0447\u0438\u0442\u0430\u0435\u043c_\u0440\u0430\u0431\u043e\u0447\u0438\u0439_\u043a\u043e\u0434_\u043e\u0442_210526&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:118,&amp;quot;secid&amp;quot;:42,&amp;quot;range&amp;quot;:&amp;quot;118702-118928&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit43&quot; id=&quot;остановились_тут&quot;&gt;Остановились тут&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создаем точки монтирования, монтируем ISO и копируем его структуру в наш рабочий каталог.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=118&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; loop ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archlinux-x86_64.iso &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;команда_для_проверки_результата&quot;&gt;Команда для проверки результата:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что папки теперь на месте в ~/custom_iso:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=119&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Монтирование прошло успешно (предупреждение о read-only для ISO — это норма). Теперь копируем структуру во временную папку.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;выполните_копирование&quot;&gt;Выполните копирование:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=120&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;даем_права_на_запись_во_всю_структуру_конструктора&quot;&gt;Даем права на запись во всю структуру конструктора&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сделаем все папки и файлы внутри ~/custom_iso доступными для изменения:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=121&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-R&lt;/span&gt; +&lt;span class=&quot;kw2&quot;&gt;w&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Чтобы лично убедиться, что права изменились и у пользователя eva теперь есть доступ на запись (w) ко всем папкам и файлам внутри конструктора, выполните две команды проверки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=122&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-R&lt;/span&gt; +&lt;span class=&quot;kw2&quot;&gt;w&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso
&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso
&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;на_что_смотрим_в_выводе_перед_тем_как_идти_дальше&quot;&gt;На что смотрим в выводе перед тем, как идти дальше:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В строках папок arch, EFI и loader права должны начинаться с drwxr-xr-x (главное — наличие буквы w в первой тройке символов).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Внутри папки entries файлы должны получить права -rw-r–r– (также с буквой w)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;записываем_универсальный_конфиг_в_правильный_файл&quot;&gt;Записываем универсальный конфиг в правильный файл&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=123&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf
title Arch Linux &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; medium &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;x86_64, UEFI&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
linux &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux
initrd &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;initramfs-linux.img
options &lt;span class=&quot;re2&quot;&gt;archisobasedir&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;archisolabel&lt;/span&gt;=ARCH_202605
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_результат_записи1&quot;&gt;Проверяем результат записи&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что файл 01-archiso-linux.conf обновился корректно:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=124&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_пройдена_идеально&quot;&gt;Проверка пройдена идеально.&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Конфигурационный файл 01-archiso-linux.conf успешно перезаписан. Параметр archisolabel=ARCH_202605 зафиксирован в системе. Теперь ядро при старте будет искать носитель строго по метке, и загрузка не упадет.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;делаем_fstab_чистым_через_бэкап&quot;&gt;Делаем fstab чистым (через бэкап)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
временно уберем строчки из fstab на tom_1, соберем слепок и вернем всё назад. На чистом tom_1 в fstab и так практически ничего нет, кроме корня.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_содержимое_оригинального_fstab&quot;&gt;Проверяем содержимое оригинального fstab&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=125&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;делаем_резервную_копию_вашего_рабочего_fstab&quot;&gt;Делаем резервную копию вашего рабочего fstab:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=126&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_его_наличие&quot;&gt;проверяем его наличие&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=127&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Мы должны увидеть два файла одинакового размера, и содержимое fstab.bak должно до символа совпадать с оригиналом.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;бэкап_проверен&quot;&gt;Бэкап проверен&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
всё на месте до единого символа. В оригинальном конфиге как раз жестко завязаны UUID разделов Btrfs (/, /home, /var/…) и vfat (/boot) диска sdb. Именно эти строки systemd отчаянно пытался найти в виртуалке, вызывая аварийный режим. Теперь, когда в основном файле пусто, система внутри ISO-образа больше не будет спотыкаться о локальную разметку tom_1.
Оригинальные данные в полной безопасности, переходим к упаковке.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;полностью_очищаем_fstab_перед_упаковкой&quot;&gt;Полностью очищаем fstab перед упаковкой:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=128&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; truncate &lt;span class=&quot;re5&quot;&gt;-s&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Базовая загрузочная структура полностью готова к упаковке новой системы. 
Переходим к установке утилит и заморозке чистого tom_1 на место удаленного файла ОС.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_squashfs-tools&quot;&gt;Установка squashfs-tools&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Поскольку система чистая, ставим пакет сжатия заново:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=129&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; squashfs-tools&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;замораживаем_и_упаковываем_живой_tom_1&quot;&gt;Замораживаем и упаковываем живой tom_1&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
После успешной установки пакета запускаем сборку слепка файловой системы:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=130&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; mksquashfs &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs \
&lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;proc &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;media &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lost+found ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archlinux-x86_64.iso ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso \
&lt;span class=&quot;re5&quot;&gt;-comp&lt;/span&gt; zstd &lt;span class=&quot;re5&quot;&gt;-b&lt;/span&gt; 1M&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Процесс займет несколько минут, на экране побегут упаковываемые файлы).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;команда_для_обязательной_проверки_результата&quot;&gt;Команда для обязательной проверки результата:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Как только утилита mksquashfs завершит работу и вернет терминал к строке [eva@tom1 ~]$, проверьте, что файл создался и посмотрите его вес:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=131&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;упаковка_squashfs_завершена_успешно&quot;&gt;Упаковка SquashFS завершена успешно.&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Файл airootfs.sfs весит 1.5 ГБ, статистика UID/GID на скриншоте подтверждает, что все пользователи (включая eva и http) корректно перенеслись внутрь слепка системы.&lt;br/&gt;

Поскольку утилита mksquashfs работала через sudo, владельцем созданного файла стал root. Проверяем и правим права, чтобы на этапе финальной сборки ISO у нас не возникло ошибок доступа.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;возвращаем_ваш_fstab_на_место_чтобы_tom_1_не_пострадал&quot;&gt;возвращаем ваш fstab на место, чтобы tom_1 не пострадал:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=132&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;меняем_владельца_файла&quot;&gt;Меняем владельца файла&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните команду смены владельца:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=133&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chown&lt;/span&gt; eva:eva ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;обязательная_проверка_результата&quot;&gt;Обязательная проверка результата&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что права обновились корректно:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=134&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;на_что_смотрим_в_выводе2&quot;&gt;На что смотрим в выводе:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Вместо root root в строке файла должно быть четко написано eva eva.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_прав_пройдена_успешно&quot;&gt;Проверка прав пройдена успешно.&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Владельцем файла airootfs.sfs теперь официально является eva eva.&lt;br/&gt;

Мы подошли к финальному этапу — сборке кастомного ISO-образа. Помня прошлую ошибку с регистром букв в имени загрузчика (BOOTx64.EFI), мы используем точную и проверенную команду сборки.&lt;br/&gt;

Поскольку система чистая, сначала установим xorriso, а затем соберем образ.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_xorriso&quot;&gt;Установка xorriso&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните команду установки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=135&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; xorriso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;финальная_сборка_универсального_iso&quot;&gt;Финальная сборка универсального ISO&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Запустите команду сборки (в ней прописана правильная маленькая буква x и наша метка тома ARCH_202605):
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=136&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;xorriso &lt;span class=&quot;re5&quot;&gt;-as&lt;/span&gt; mkisofs \
  &lt;span class=&quot;re5&quot;&gt;-iso-level&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-full-iso9660-filenames&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-volid&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ARCH_202605&amp;quot;&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-eltorito-alt-boot&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;EFI/BOOT/BOOTx64.EFI&amp;quot;&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-no-emul-boot&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-isohybrid-gpt-basdat&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-output&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso \
  ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;обязательная_проверка_результата1&quot;&gt;Обязательная проверка результата&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что файл arch_custom.iso успешно сгенерировался в вашей домашней директории, проверив его размер:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=137&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;сборка_нового_образа_завершена_идеально&quot;&gt;Сборка нового образа завершена идеально.&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Мы видим заветную строку Writing to &amp;#039;stdio…&amp;#039; completed successfully и готовый файл arch_custom.iso весом 1.7 ГБ.&lt;br/&gt;

В этот раз мы проверили каждый шаг, исправили права на папки и зашили универсальный параметр загрузки ядра по метке тома archisolabel=ARCH_202605.&lt;br/&gt;

Переходим к проверке на виртуальной машине tom_2. Вытаскиваем готовый ISO-образ в Windows.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;скачиваем_новый_iso_в_windows&quot;&gt;Скачиваем новый ISO в Windows&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Эта команда без лишнего мусора и длинных списков выведет ровно одно значение — текущий IP-адрес, по которому tom_1 доступен в вашей сети.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=138&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ip route&lt;/span&gt; get &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $7}&#039;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Откройте PowerShell на вашем хостовом компьютере с Windows и запустите скачивание файла:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=139&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;cmd&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;scp&lt;/span&gt; eva&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;192.168.1.72:&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;eva&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso C:\Users\Public\Downloads\arch_custom.iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(При запросе введите пароль пользователя eva).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;выполнен_успешно&quot;&gt;выполнен успешно!&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Новый универсальный образ arch_custom.iso размером 1.7 ГБ полностью скачан в Windows. Дата изменения — свежая (14:01).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;открываем_папку_с_файлом_на_windows&quot;&gt;Открываем папку с файлом на Windows&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Нажмите на клавиатуре комбинацию клавиш Win + R (откроется окошко «Выполнить»), вставьте туда вот этот путь и нажмите Enter:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_25.05.26&amp;amp;codeblock=140&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;txt&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code sql&quot;&gt;C:\Users\Public\Downloads&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;дважды_щелкнуть_мышкой_по_диску&quot;&gt;дважды щелкнуть мышкой по диску&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
и записать руфусом
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;извлекаем_диск_из_windows&quot;&gt;Извлекаем диск из Windows&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Даже если вы нажимали «Извлечь», Rufus или Проводник могли оставить фоновый процесс.
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Откройте «Управление дисками» (Disk Management) в Windows.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Найдите внизу списка наш Диск 2 (виртуальный).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Нажмите правой кнопкой мыши по серой зоне с надписью «Диск 2» и выберите «Отсоединить виртуальный жесткий диск». Если его там уже нет — отлично.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u0442\u0443\u0442&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c_\u0442\u0443\u0442&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:118,&amp;quot;secid&amp;quot;:43,&amp;quot;range&amp;quot;:&amp;quot;118929-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 25 May 2026 03:19:37 +0000</pubDate>
        </item>
        <item>
            <title>building_an_arch_linux_iso_image_from_a_modified_arch_linux_времка</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;rev=1780157440</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;сборка_headless_arch_iso_с_webui-инсталлятором_и_управлением&quot;&gt;Сборка Headless Arch ISO с WebUI-инсталлятором и управлением&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0431\u043e\u0440\u043a\u0430 Headless Arch ISO \u0441 WebUI-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u043e\u043c \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0431\u043e\u0440\u043a\u0430_headless_arch_iso_\u0441_webui-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u043e\u043c_\u0438_\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-107&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;вводные_данные_и_архитектура_стенда&quot;&gt;1. Вводные данные и Архитектура Стенда&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1. \u0412\u0432\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0421\u0442\u0435\u043d\u0434\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0432\u043e\u0434\u043d\u044b\u0435_\u0434\u0430\u043d\u043d\u044b\u0435_\u0438_\u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430_\u0441\u0442\u0435\u043d\u0434\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;108-189&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;термины_и_определения&quot;&gt;Термины и определения&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Ubuntu Server&lt;/strong&gt; — это специализированная операционная система с открытым исходным кодом от компании Canonical, разработанная для работы на серверах, в облаках и центрах обработки данных. В отличие от версии для ПК, по умолчанию она не имеет графического интерфейса и полностью управляется через командную строку.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Arch (Arch Linux)&lt;/strong&gt; — это популярный, легковесный дистрибутив Linux, созданный для опытных пользователей. Он предлагает «чистую» систему без предустановленного лишнего ПО, предоставляя полный контроль над настройками, и использует модель обновлений rolling release (постоянные обновления вместо редких глобальных версий).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Headless Arch ISO&lt;/strong&gt; — это модифицированный образ установочного диска Arch Linux, который автоматически запускает SSH-сервер и разрешает удаленное подключение без физического монитора и клавиатуры. Это позволяет устанавливать ОС на сервер или виртуальную машину полностью по сети с другого компьютера.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Hyper-V&lt;/strong&gt; — это встроенная система аппаратной виртуализации от Microsoft. Она позволяет создавать изолированные виртуальные машины (ВМ) на одном компьютере. &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;ISO-образ&lt;/strong&gt; (файл с расширением .iso) — это цифровой архив, представляющий собой точную, побайтовую копию («слепок») диска (CD, DVD или Blu-Ray).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;UUID&lt;/strong&gt; (Universally Unique Identifier) — это универсальный 128-битный уникальный идентификатор, который файловая система автоматически присваивает диску или разделу при форматировании. &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;LABEL&lt;/strong&gt; (global volume label) — это понятное человеку имя, присвоенное разделу жесткого диска или логическому тому.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Sudo&lt;/strong&gt; (Superuser Do) — это утилита, позволяющая обычному пользователю выполнять команды с правами администратора (root).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Pacman&lt;/strong&gt; (Package Manager) — это официальный консольный менеджер пакетов, разработанный специально для Arch Linux. Он выполняет роль главного «инструментария» для установки, удаления, обновления и отслеживания программ в системе.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;sda&lt;/strong&gt; / &lt;strong&gt;sdb&lt;/strong&gt; (SCSI Disk) — это системные имена для ваших физических накопителей,где a, b, c — латинские буквы, обозначающие порядок, в котором система обнаружила диски.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0422\u0435\u0440\u043c\u0438\u043d\u044b \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0442\u0435\u0440\u043c\u0438\u043d\u044b_\u0438_\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;190-3858&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;назначение_headless_arch_iso-images&quot;&gt;1.1. Назначение Headless Arch ISO-images&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
 цели создания автономного Headless-образа для серверов «вслепую» without Internet.
реальный headless-сервер - без интернета и без монитора.(supermicro, 2 none-name (старый и новый) и старый HP) &lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;наша_цель&quot;&gt;Наша цель:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
собрать новый, полностью универсальный ISO-образ, который будет находить флешку не по жесткому UUID, а по глобальной метке тома (LABEL=ARCH_202605).&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1.1. \u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 Headless Arch ISO-images&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435_headless_arch_iso-images&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3859-4502&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;конфигурация_и_минимальные_требования_к_оборудованию&quot;&gt;1.2. Конфигурация и минимальные требования к оборудованию&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;рабочая_станция_desktop&quot;&gt;1.2.1. Рабочая станция (DeskTop)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;div class=&quot;table sectionedit6&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;CPU&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://www.amd.com/en/support/downloads/drivers.html/processors/ryzen/ryzen-3000-series/amd-ryzen-7-3700x.html&quot; class=&quot;urlextern&quot; title=&quot;https://www.amd.com/en/support/downloads/drivers.html/processors/ryzen/ryzen-3000-series/amd-ryzen-7-3700x.html&quot; rel=&quot;ugc nofollow&quot;&gt;AMD Ryzen 7 3700X 8-Core Processor (3.59GHz)&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;RAM DDR4 48.0 &lt;abbr title=&quot;Gigabyte&quot;&gt;GB&lt;/abbr&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;AMD Radeon R7 2x8GB 2666 &lt;abbr title=&quot;Megahertz&quot;&gt;MHz&lt;/abbr&gt; (&lt;a href=&quot;https://amd-memory.com/shop/r748g2606u2s-u/&quot; class=&quot;urlextern&quot; title=&quot;https://amd-memory.com/shop/r748g2606u2s-u/&quot; rel=&quot;ugc nofollow&quot;&gt;R748G2606U2S-U&lt;/a&gt;) &lt;br/&gt;
 AMD Radeon R7 2x16GB 2666 &lt;abbr title=&quot;Megahertz&quot;&gt;MHz&lt;/abbr&gt; (&lt;a href=&quot;https://amd-memory.com/shop/r7416g2606u2s-uo/&quot; class=&quot;urlextern&quot; title=&quot;https://amd-memory.com/shop/r7416g2606u2s-uo/&quot; rel=&quot;ugc nofollow&quot;&gt;R7416G2606U2S-U&lt;/a&gt;)&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Motherboard&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://www.aorus.com/motherboards/b550-aorus-elite-v2-rev-10-11/Specification&quot; class=&quot;urlextern&quot; title=&quot;https://www.aorus.com/motherboards/b550-aorus-elite-v2-rev-10-11/Specification&quot; rel=&quot;ugc nofollow&quot;&gt;GIGABYTE B550 AORUS ELITE V2&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Solid state drive&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Gigabyte Aorus Gen4 5000E M.2 5000/3800MB/s(R/W) (&lt;a href=&quot;https://www.gigabyte.com/SSD/AORUS-Gen4-5000E-SSD-500GB&quot; class=&quot;urlextern&quot; title=&quot;https://www.gigabyte.com/SSD/AORUS-Gen4-5000E-SSD-500GB&quot; rel=&quot;ugc nofollow&quot;&gt;AG450E500G-G&lt;/a&gt;)&lt;br/&gt;
 Gigabyte Gen4 4000E M.2 3600/3000MB/s(R/W) (&lt;a href=&quot;https://www.gigabyte.com/SSD/GIGABYTE-Gen4-4000E-SSD-500GB&quot; class=&quot;urlextern&quot; title=&quot;https://www.gigabyte.com/SSD/GIGABYTE-Gen4-4000E-SSD-500GB&quot; rel=&quot;ugc nofollow&quot;&gt;G440E500G&lt;/a&gt;)&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Flash drive&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Smartbuy Crown 8 ГБ USB 3.1 (&lt;a href=&quot;https://smartbuy-russia.ru/catalog/nositeli_informatsii/flesh_nakopiteli_usb/usb_3_0_3_1_nakopitel_smartbuy_008_gb_seriya_crown_tyemno_siniy_sb8gbcrw_bl/&quot; class=&quot;urlextern&quot; title=&quot;https://smartbuy-russia.ru/catalog/nositeli_informatsii/flesh_nakopiteli_usb/usb_3_0_3_1_nakopitel_smartbuy_008_gb_seriya_crown_tyemno_siniy_sb8gbcrw_bl/&quot; rel=&quot;ugc nofollow&quot;&gt;SB8GBCRW-BL&lt;/a&gt;) &lt;br/&gt;
 Smartbuy Crown 16 ГБ USB 2.0 (&lt;a href=&quot;https://smartbuy-russia.ru/catalog/nositeli_informatsii/flesh_nakopiteli_usb/usb_2_0_nakopitel_smartbuy_016_gb_seriya_crown_belyy_sb16gbcrw_w/&quot; class=&quot;urlextern&quot; title=&quot;https://smartbuy-russia.ru/catalog/nositeli_informatsii/flesh_nakopiteli_usb/usb_2_0_nakopitel_smartbuy_016_gb_seriya_crown_belyy_sb16gbcrw_w/&quot; rel=&quot;ugc nofollow&quot;&gt;SB16GBCRW-W&lt;/a&gt;)&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Operating system&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://ru.wikipedia.org/wiki/Windows_10&quot; class=&quot;urlextern&quot; title=&quot;https://ru.wikipedia.org/wiki/Windows_10&quot; rel=&quot;ugc nofollow&quot;&gt;Microsoft Windows 10&lt;/a&gt; Pro 1909 (19H2) Build 18363.476 x64&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Virtual machine&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Microsoft &lt;a href=&quot;https://ru.wikipedia.org/wiki/Hyper-V&quot; class=&quot;urlextern&quot; title=&quot;https://ru.wikipedia.org/wiki/Hyper-V&quot; rel=&quot;ugc nofollow&quot;&gt;Hyper-V&lt;/a&gt; Manager 10.0.18362.1]&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Remote ssh client&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://putty.org.ru/&quot; class=&quot;urlextern&quot; title=&quot;https://putty.org.ru/&quot; rel=&quot;ugc nofollow&quot;&gt;PuTTY&lt;/a&gt; 64bit 0.84 not portable&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Dev environment&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://archlinux.org/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/&quot; rel=&quot;ugc nofollow&quot;&gt;Arch linux x86_64 2026.05.01&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Code editor&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://notepad-plus-plus.org/&quot; class=&quot;urlextern&quot; title=&quot;https://notepad-plus-plus.org/&quot; rel=&quot;ugc nofollow&quot;&gt;Notepad++ v8.9.6.1&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Web browser&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://www.google.com/chrome/&quot; class=&quot;urlextern&quot; title=&quot;https://www.google.com/chrome/&quot; rel=&quot;ugc nofollow&quot;&gt;Google Chrome&lt;/a&gt; 148.0.7778.179 64 bit / &lt;a href=&quot;https://www.firefox.com/&quot; class=&quot;urlextern&quot; title=&quot;https://www.firefox.com/&quot; rel=&quot;ugc nofollow&quot;&gt;Mozilla Firefox&lt;/a&gt; 151.0.2 64-bit / Opera One  131.0.5877.74&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Wiki system&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://www.dokuwiki.org/&quot; class=&quot;urlextern&quot; title=&quot;https://www.dokuwiki.org/&quot; rel=&quot;ugc nofollow&quot;&gt;Dokuwiki&lt;/a&gt; Librarian 2025-05-14b&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;4675-6548&amp;quot;} --&gt;
&lt;/div&gt;

&lt;h4 id=&quot;рекомендуемая_рабочая_станция&quot;&gt;1.2.3. Рекомендуемая рабочая станция&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Конфигурация вашего оборудавания будет соответственно отличаться, но это так-же будет работать, заняв больше времени при установке и рендере карт на устройстве с минимальными параметрами:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Motherboard &amp;gt; virtualization support  &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CPU &amp;gt; 4 ядер&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RAM &amp;gt; 4Gb&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HDD &amp;gt; 300Mb&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt; &amp;gt; Windows 10 (Pro) c Hyper-V&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;тестовые_сервера&quot;&gt;1.2.4. Тестовые сервера&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В данном руководстве установка программного обеспечения производиться на оборудование следующей конфигурации: 
&lt;/p&gt;
&lt;div class=&quot;table sectionedit7&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;CPU&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=hardware:cpu_amd_epyc_7551p_oem&quot; class=&quot;wikilink1&quot; title=&quot;hardware:cpu_amd_epyc_7551p_oem&quot; data-wiki-id=&quot;hardware:cpu_amd_epyc_7551p_oem&quot;&gt;AMD EPYC™ 7551P OEM&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Motherboard&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=hardware:motherboard_supermicro_h11ssl-i&quot; class=&quot;wikilink1&quot; title=&quot;hardware:motherboard_supermicro_h11ssl-i&quot; data-wiki-id=&quot;hardware:motherboard_supermicro_h11ssl-i&quot;&gt;Supermicro MBD-H11SSL-I&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Solid state drive&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=hardware:m2_ssd_samsung_970_evo_plus&quot; class=&quot;wikilink1&quot; title=&quot;hardware:m2_ssd_samsung_970_evo_plus&quot; data-wiki-id=&quot;hardware:m2_ssd_samsung_970_evo_plus&quot;&gt;Raid5 1tb M.2 Samsung 970 EVO Plus&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;RAM 512.0 &lt;abbr title=&quot;Gigabyte&quot;&gt;GB&lt;/abbr&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=hardware:ddr4_ecc_reg_64gb&quot; class=&quot;wikilink1&quot; title=&quot;hardware:ddr4_ecc_reg_64gb&quot; data-wiki-id=&quot;hardware:ddr4_ecc_reg_64gb&quot;&gt;DDR4 3200MHz DIMM ECC Reg Micron&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;7359-7680&amp;quot;} --&gt;
&lt;/div&gt;

&lt;h4 id=&quot;рекомендуемая_сервер&quot;&gt;1.2.5. Рекомендуемая сервер&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Конфигурация вашего оборудавания будет соответственно отличаться, но это так-же будет работать, заняв больше времени при установке и рендере карт на устройстве с минимальными параметрами:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Motherboard &amp;gt; virtualization support  &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CPU &amp;gt; 2 ядер (x86_64 VT-x/AMD-V)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RAM &amp;gt; 4Gb&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HDD &amp;gt; 30Gb&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1.2. \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f_\u0438_\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435_\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f_\u043a_\u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;4503-8198&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;схема_распределения_тестовой_среды&quot;&gt;1.3. Схема распределения тестовой среды&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;распределение_ролей_при_работе_в_hyper-v_virtual_machine&quot;&gt;1.3.1. Распределение ролей при работе в Hyper-V (Virtual Machine)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;tom_1&lt;/strong&gt; - эталонный хост, основная тестовая ВМ в Hyper-V для сборки iso образа, с доступом в интернет, с рабочим arch linux, на котором разверачивается Nginx (порт 7000) и работает SSH для PuTTY, созданы пользователи root и eva и им заданы пороли.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;arch-flash&lt;/strong&gt; - виртуальный диск ы Hyper-V (носитель с записанным iso образом), куда мы через rufus записываем, созданный нами ISO-образ на tom_1&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;tom_2&lt;/strong&gt; - изолированный виртуальный хост, ВМ в Hyper-V без доступа в интернет, куда мы подключим arch-flash и развернем arch linux, на котором развернут Nginx (порт 7000) и работает SSH для PuTTY, созданы пользователи root и eva и им заданы пороли.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Добавление ролей при работе c физическим железом&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;usb-arch-server&lt;/strong&gt; - физический usb носитель&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;arch-server&lt;/strong&gt; - физический сервер (supermicro/hp/no-name)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;администраторы_сервера&quot;&gt;1.3.2. Администраторы сервера&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; root - по умолчанию в Arch linux&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; eva - из установленного Arch linux&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; admin - новый создаваемый администратор (замена eva)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1.3. \u0421\u0445\u0435\u043c\u0430 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u0441\u0440\u0435\u0434\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0445\u0435\u043c\u0430_\u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f_\u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439_\u0441\u0440\u0435\u0434\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;8199-9921&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;выравнивание_версий_и_подготовка_окружения_на_tom_1&quot;&gt;2. Выравнивание версий и подготовка окружения на tom_1&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Чтобы предотвратить конфликт драйверов и панику модуля ZRAM на ранних секундах загрузки флешки, ядро загрузчика и модули внутри SquashFS-слепка должны совпадать символ в символ.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2. \u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0439 \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043d\u0430 tom_1&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435_\u0432\u0435\u0440\u0441\u0438\u0439_\u0438_\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430_\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f_\u043d\u0430_tom_1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;9922-10345&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;тотальное_обновление_и_фиксация_ядра_хоста&quot;&gt;2.1. Тотальное обновление и фиксация ядра хоста&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;обновление_ядра_хоста&quot;&gt;2.1.1. Обновление  ядра хоста&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Зайдите на чистый tom_1 по SSH под пользователем eva и обновите индекс пакетов и само ядро хоста:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-Syu&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_186.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_186.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_186.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;фиксация_эталонной_версии_ядра&quot;&gt;2.1.2. Фиксация эталонной версии ядра&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Посмотрите на строчку генерации образа виртуального диска:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;=⇒ Starting build: &amp;#039;7.0.10-arch1-1&amp;#039;&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Наша новая зафиксированная версия ядра: 7.0.10-arch1-1.&lt;br/&gt;

Обратите внимание, как утилита mkinitcpio автоматически пересобрала не просто обычный виртуальный диск, а создала единый объединенный образ:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Creating unified kernel image: &amp;#039;/boot/EFI/Linux/arch-linux.efi&amp;#039;&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_187.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_187.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_187.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Это означает, что на tom_1 теперь развернута абсолютно чистая, монолитная, современная база ядра. Конфликт версий официально предотвращен еще на этапе фундамента.&lt;br/&gt;

Поскольку в процессе этого тотального обновления pacman физически заменил старые файлы ядра в каталоге /boot/ на новые, текущее запущенное в оперативной памяти tom_1 ядро всё еще имеет старый индекс, а на диске уже лежат файлы версии 7.0.9-arch2-1.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;перезагрузка_системы&quot;&gt;2.1.2.1. Перезагрузка системы&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Чтобы система tom_1 полностью приняла новое ядро и зафиксировала его в оперативной памяти, нам нужно отправить виртуалку в чистую перезагрузку.&lt;br/&gt;

Прямо в консоли PuTTY выполните команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; reboot&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_98.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_98.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_98.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Подождите около 20–30 секунд, пока ВМ tom_1 сделает круг перезапуска в Hyper-V.&lt;br/&gt;

Подключитесь к tom_1 заново через PuTTY под пользователем eva
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;загрузка_и_проверка&quot;&gt;2.1.3. Загрузка и проверка&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Как только зайдете обратно, выполните команду сверки
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=2&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;uname&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_188.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_188.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_188.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Убедимся, что в ОЗУ хоста теперь честно светится 7.0.10-arch1-1, и только после этого медленно и аккуратно двинемся дальше по нашему новому руководству.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2.1. \u0422\u043e\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u0444\u0438\u043a\u0441\u0430\u0446\u0438\u044f \u044f\u0434\u0440\u0430 \u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0442\u043e\u0442\u0430\u043b\u044c\u043d\u043e\u0435_\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435_\u0438_\u0444\u0438\u043a\u0441\u0430\u0446\u0438\u044f_\u044f\u0434\u0440\u0430_\u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;10346-13602&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;проверка_и_установка_по&quot;&gt;3. Проверка и установка ПО&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u041f\u041e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430_\u0438_\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_\u043f\u043e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;13603-13660&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;проверка_по&quot;&gt;3.1. Проверка ПО&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/core/x86_64/linux/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/core/x86_64/linux/&quot; rel=&quot;ugc nofollow&quot;&gt;linux&lt;/a&gt;: ядро операционной системы.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/core/any/linux-firmware/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/core/any/linux-firmware/&quot; rel=&quot;ugc nofollow&quot;&gt;linux-firmware&lt;/a&gt;: набор микропрограмм (драйверов) для компьютерного железа.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wiki.archlinux.org/title/Systemd-boot/systemd-boot&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Systemd-boot/systemd-boot&quot; rel=&quot;ugc nofollow&quot;&gt;https://wiki.archlinux.org/title/Systemd-boot/systemd-boot&lt;/a&gt;: простой и быстрый загрузчик, встроенный в системную среду systemd&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://archlinux.org/packages/core/x86_64/grub/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/core/x86_64/grub/&quot; rel=&quot;ugc nofollow&quot;&gt;grub&lt;/a&gt;: популярный универсальный загрузчик&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_linux&quot;&gt;3.1.1. Проверка пакета linux&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=3&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qi&lt;/span&gt; linux&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_189.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_189.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_189.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(В выводе отобразилась подробная информация об уже установленном в системе пакете ядра linux, его версию (7.0.10.arch1-1), архитектуру (x86_64) и т.д.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_linux-firmware&quot;&gt;3.1.2. Проверка пакета linux-firmware&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=4&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qi&lt;/span&gt; linux-firmware&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_190.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_190.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_190.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(В выводе отобразилась подробная информация об уже установленном пакете прошивок linux-firmware, в частности информацию о файлах встроенного программного обеспечения (микрокод/прошивки) для работы различного оборудования — например, Wi-Fi адаптеров, видеокарт, звуковых плат и Bluetooth-модулей.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3.1. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u041f\u041e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430_\u043f\u043e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;13661-15498&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;проверка_загрузчика&quot;&gt;3.1.3. Проверка загрузчика&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Мы можем проверить это за с помощью утилиты bootctl
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=5&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;bootctl status&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_191.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_191.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_191.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;Если вы увидите детальную информацию с текстом вроде «Features: ✓ boot-info» и версиями в строках «Product: systemd-boot», значит, ваша система использует systemd-boot.&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;Если команда выдаст ошибку или укажет, что система загружена не в режиме UEFI (например, «System is not booted with EFI»), то у вас используется классический BIOS/MBR загрузчик, либо другой менеджер загрузки.&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;em&gt;(Для выхода CTRL+C)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_grub_в_var_cache_pacman_pkg&quot;&gt;Проверка пакета grub в  /var/cache/pacman/pkg/&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Проверить наличие кэшированных файлов пакета grub можно с помощью стандартных команд терминала для поиска файлов. pacman хранит в этом каталоге скачанные архивные файлы с расширением .pkg.tar.zst (или .pkg.tar.xz).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=6&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; grub&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_193.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_193.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_193.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(выведет список всех файлов в кэше, в имени которых содержится слово «grub». Если пакет там есть, вы увидите файлы вида grub-2.12-1-x86_64.pkg.tar.zst, иначе пустой вывод)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;скачивание_пакета_в_кэш&quot;&gt;Скачивание пакета в кэш&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Для загрузки пакета без установки используйте ключ -Sw. Также сразу скачать сопутствующие пакеты, которые понадобятся для настройки GRUB:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=7&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-Sw&lt;/span&gt; grub efibootmgr os-prober&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_194.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_194.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_194.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверка_загруженного_пакета_grub_с_зависимостями&quot;&gt;Проверка загруженного пакета grub с зависимостями&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Чтобы проверить наличие всех трех пакетов в кэше одной командой, используйте расширенный grep (grep -E) и вертикальную черту | в качестве разделителя «ИЛИ»
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=8&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;grub|efibootmgr|os-prober&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_195.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_195.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_195.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3.1.3. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430_\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;15499-18348&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit14&quot; id=&quot;установка_необходимых_пакетов&quot;&gt;4. Установка необходимых пакетов&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445_\u043f\u0430\u043a\u0435\u0442\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;18349-18421&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit15&quot; id=&quot;пакет_редактора_nano&quot;&gt;4.1. Пакет редактора nano&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Пакет nano в Arch Linux — это официальный пакет, который содержит одноимённый консольный текстовый редактор &lt;a href=&quot;https://wiki.archlinux.org/title/Nano_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Nano_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; rel=&quot;ugc nofollow&quot;&gt;nano&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_nano_в_системе&quot;&gt;4.1.1. Проверка пакета nano в системе&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=9&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qi&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_196.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_196.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_196.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(В выводе отобразилась подробная информация об уже установленном пакете редактора nano.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_nano_в_var_cache_pacman_pkg&quot;&gt;4.1.2. Проверка пакета nano в  /var/cache/pacman/pkg/&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Проверить наличие кэшированных файлов пакета nano можно с помощью стандартных команд терминала для поиска файлов. pacman хранит в этом каталоге скачанные архивные файлы с расширением .pkg.tar.zst (или .pkg.tar.xz).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=10&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_197.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_197.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_197.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что в кэше вашего пакетного менеджера успешно найдены файлы текстового редактора nano версии 9.0-1.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4.1. \u041f\u0430\u043a\u0435\u0442 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430 nano&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0430\u043a\u0435\u0442_\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430_nano&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;18422-19951&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit16&quot; id=&quot;пакет_openssh&quot;&gt;4.2. Пакет OpenSSH&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Пакет &lt;a href=&quot;https://wiki.archlinux.org/title/OpenSSH_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/OpenSSH_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; rel=&quot;ugc nofollow&quot;&gt;OpenSSH&lt;/a&gt; в Arch Linux — это набор программ для безопасного удаленного доступа и управления компьютером по сети (через протокол SSH). 
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_openssh_в_системе&quot;&gt;4.2.1. Проверка пакета openssh в системе&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=11&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qi&lt;/span&gt; openssh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_198.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_198.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_198.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(В выводе отобразилась подробная информация об уже установленном пакете openssh.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_openssh_в_var_cache_pacman_pkg&quot;&gt;4.2.2. Проверка пакета openssh в  /var/cache/pacman/pkg/&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Проверить наличие кэшированных файлов пакета nano можно с помощью стандартных команд терминала для поиска файлов. pacman хранит в этом каталоге скачанные архивные файлы с расширением .pkg.tar.zst (или .pkg.tar.xz).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=12&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; openssh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_199.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_199.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_199.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что в кэше вашего пакетного менеджера успешно найдены файлы пакета openssh версии 10.3p1-1-x86_64.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4.2. \u041f\u0430\u043a\u0435\u0442 OpenSSH&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0430\u043a\u0435\u0442_openssh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:11,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;19952-21492&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit17&quot; id=&quot;пакет_samba&quot;&gt;4.3. Пакет Samba&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Пакет &lt;a href=&quot;https://wiki.archlinux.org/title/Samba&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Samba&quot; rel=&quot;ugc nofollow&quot;&gt;samba&lt;/a&gt; в Arch Linux — это реализация сетевого протокола SMB/CIFS. Он позволяет обмениваться файлами и принтерами между операционными системами Linux, Windows и macOS. 
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_samba_в_системе&quot;&gt;4.3.1. Проверка пакета samba в системе&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=13&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qi&lt;/span&gt; samba&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_200.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_200.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_200.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что пакет samba в данный момент не установлен в вашей системе.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_пакета_samba&quot;&gt;4.3.2. Установка пакета samba&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Скачивание и интеграция пакета в систему с автоматическим подтверждением (флаг –noconfirm) и пропуском уже установленных актуальных версий (–needed).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=14&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--needed&lt;/span&gt; samba&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_201.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_201.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_201.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверка_установки_пакета_samba&quot;&gt;4.3.3. Проверка установки пакета samba&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Верификация целостности установленных файлов пакета и их наличия в системе.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=15&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qk&lt;/span&gt; samba&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_202.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_202.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_202.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что пакет samba успешно установлен в системе, а все его файлы находятся на своих местах и не повреждены.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;разбор_строки_вывода&quot;&gt;Разбор строки вывода:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;1195 total files&lt;/strong&gt; — пакет Samba содержит в себе ровно 1195 файлов.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;0 missing files&lt;/strong&gt; — утерянных или отсутствующих файлов нет. Все 1195 компонентов успешно найдены в системе.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_samba_в_var_cache_pacman_pkg&quot;&gt;4.3.4. Проверка пакета samba в  /var/cache/pacman/pkg/&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Проверить наличие кэшированных файлов пакета nano можно с помощью стандартных команд терминала для поиска файлов. pacman хранит в этом каталоге скачанные архивные файлы с расширением .pkg.tar.zst (или .pkg.tar.xz).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=16&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; samba&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_203.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_203.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_203.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что в локальном кэше вашего пакетного менеджера успешно сохранен установочный архив пакета samba версии 4.24.2-1.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4.3. \u041f\u0430\u043a\u0435\u0442 Samba&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0430\u043a\u0435\u0442_samba&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:13,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;21493-24466&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit18&quot; id=&quot;пакет_nginx&quot;&gt;4.4. Пакет nginx&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Пакет &lt;a href=&quot;https://wiki.archlinux.org/title/Nginx_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Nginx_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; rel=&quot;ugc nofollow&quot;&gt;nginx&lt;/a&gt; в Arch Linux — это стандартный пакет, содержащий популярный высокопроизводительный веб-сервер и обратный прокси-сервер. Он используется для обработки HTTP-запросов, раздачи статических файлов, кэширования и перенаправления трафика.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_nginx_в_системе&quot;&gt;4.4.1. Проверка пакета nginx в системе&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=17&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qi&lt;/span&gt; nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_204.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_204.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_204.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод содержит подробные метаданные об уже установленном в вашей системе веб-сервере nginx)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_установки_пакета_nginx&quot;&gt;4.4.2.Проверка установки пакета nginx&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Верификация целостности установленных файлов пакета и их наличия в системе.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=18&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qk&lt;/span&gt; nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_205.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_205.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_205.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что пакет nginx успешно установлен в системе, а все его файлы находятся на своих местах и не повреждены.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;разбор_строки_вывода1&quot;&gt;Разбор строки вывода:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;47 total files&lt;/strong&gt; — пакет nginx содержит в себе ровно 47 файлов.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;0 missing files&lt;/strong&gt; — утерянных или отсутствующих файлов нет. Все 47 компонентов успешно найдены в системе.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_nginx_в_var_cache_pacman_pkg&quot;&gt;4.4.3. Проверка пакета nginx в  /var/cache/pacman/pkg/&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Проверить наличие кэшированных файлов пакета nginx можно с помощью стандартных команд терминала для поиска файлов. pacman хранит в этом каталоге скачанные архивные файлы с расширением .pkg.tar.zst (или .pkg.tar.xz).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=19&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_206.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_206.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_206.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что в кэше сохранены установочные файлы для двух разных версий веб-сервера nginx. Предыдущая версия (1.30.1). Текущая установленная версия (1.30.2))&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4.4. \u041f\u0430\u043a\u0435\u0442 nginx&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0430\u043a\u0435\u0442_nginx&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:17,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;24467-27327&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit19&quot; id=&quot;пакет_php-fpm&quot;&gt;4.5. Пакет php-fpm&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
В Arch Linux пакет &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/php-fpm/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/php-fpm/&quot; rel=&quot;ugc nofollow&quot;&gt;php-fpm&lt;/a&gt; (FastCGI Process Manager) — это официальный компонент, который отвечает за обработку PHP-кода на сервере. По сути, это независимый менеджер фоновых процессов, который принимает запросы от веб-сервера (например, Nginx или Apache), выполняет PHP-скрипты и возвращает готовые страницы.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_php-fpm_в_системе&quot;&gt;4.5.1. Проверка пакета php-fpm в системе&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=20&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qi&lt;/span&gt; php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_207.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_207.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_207.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что пакет php-fpm в данный момент не установлен в вашей системе.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_пакета_php-fpm&quot;&gt;4.5.2. Установка пакета php-fpm&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Скачивание и интеграция пакета в систему с автоматическим подтверждением (флаг –noconfirm) и пропуском уже установленных актуальных версий (–needed).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=21&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--needed&lt;/span&gt; php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_208.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_208.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_208.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверка_установки_пакета_php-fpm&quot;&gt;4.5.3. Проверка установки пакета php-fpm&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Верификация целостности установленных файлов пакета и их наличия в системе.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=22&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qk&lt;/span&gt; php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_209.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_209.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_209.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что пакет php-fpm успешно установлен в системе, а все его файлы находятся на своих местах и не повреждены.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;разбор_строки_вывода2&quot;&gt;Разбор строки вывода:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;21 total files&lt;/strong&gt; — пакет php-fpm содержит в себе ровно 21 файлов.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;0 missing files&lt;/strong&gt; — утерянных или отсутствующих файлов нет. Все 21 компонентов успешно найдены в системе.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_php-fpm_в_var_cache_pacman_pkg&quot;&gt;4.5.4. Проверка пакета php-fpm в  /var/cache/pacman/pkg/&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Проверить наличие кэшированных файлов пакета php-fpm можно с помощью стандартных команд терминала для поиска файлов. pacman хранит в этом каталоге скачанные архивные файлы с расширением .pkg.tar.zst (или .pkg.tar.xz).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=23&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_210.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_210.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_210.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что в кэше пакетов сохранен готовый к установке архив php-fpm версии 8.5.6-1.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4.5. \u041f\u0430\u043a\u0435\u0442 php-fpm&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0430\u043a\u0435\u0442_php-fpm&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:20,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;27328-30597&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit20&quot; id=&quot;пакет_squashfs-tools&quot;&gt;4.6. Пакет squashfs-tools&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Пакет &lt;a href=&quot;https://archlinux.org/packages/extra/x86_64/squashfs-tools/&quot; class=&quot;urlextern&quot; title=&quot;https://archlinux.org/packages/extra/x86_64/squashfs-tools/&quot; rel=&quot;ugc nofollow&quot;&gt;squashfs-tools&lt;/a&gt; в Arch Linux — это набор утилит командной строки для создания, распаковки и модификации сжатых файловых систем SquashFS.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_squashfs-tools_в_системе&quot;&gt;4.6.1. Проверка пакета squashfs-tools в системе&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=24&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qi&lt;/span&gt; squashfs-tools&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_211.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_211.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_211.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что пакет squashfs-tools в данный момент не установлен в вашей системе.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_пакета_squashfs-tools&quot;&gt;4.6.2. Установка пакета squashfs-tools&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Скачивание и интеграция пакета в систему с автоматическим подтверждением (флаг –noconfirm) и пропуском уже установленных актуальных версий (–needed).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=25&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--needed&lt;/span&gt; squashfs-tools&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_212.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_212.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_212.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверка_установки_пакета_squashfs-tools&quot;&gt;4.6.3. Проверка установки пакета squashfs-tools&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Верификация целостности установленных файлов пакета и их наличия в системе.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=26&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qk&lt;/span&gt; squashfs-tools&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_213.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_213.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_213.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что пакет squashfs-tools успешно установлен в системе, а все его файлы находятся на своих местах и не повреждены.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;разбор_строки_вывода3&quot;&gt;Разбор строки вывода:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;31 total files&lt;/strong&gt; — пакет squashfs-tools содержит в себе ровно 31 файлов.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;0 missing files&lt;/strong&gt; — утерянных или отсутствующих файлов нет. Все 31 компонентов успешно найдены в системе.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_squashfs-tools_в_var_cache_pacman_pkg&quot;&gt;4.6.4. Проверка пакета squashfs-tools в  /var/cache/pacman/pkg/&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Проверить наличие кэшированных файлов пакета squashfs-tools можно с помощью стандартных команд терминала для поиска файлов. pacman хранит в этом каталоге скачанные архивные файлы с расширением .pkg.tar.zst (или .pkg.tar.xz).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=27&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; squashfs-tools&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_214.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_214.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_214.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что в локальном кэше вашего пакетного менеджера сохранен установочный архив пакета squashfs-tools версии 4.7.5-1.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4.6. \u041f\u0430\u043a\u0435\u0442 squashfs-tools&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0430\u043a\u0435\u0442_squashfs-tools&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:24,&amp;quot;secid&amp;quot;:20,&amp;quot;range&amp;quot;:&amp;quot;30598-33748&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit21&quot; id=&quot;пакет_zram-generator&quot;&gt;4.7. Пакет zram-generator&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.archlinux.org/title/Zram_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Zram_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; rel=&quot;ugc nofollow&quot;&gt;zram-generator&lt;/a&gt; в Arch Linux — это компонент, который автоматически создает сжатые блочные устройства в оперативной памяти (RAM) и настраивает их в качестве пространства подкачки (swap) с помощью системного менеджера systemd.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_zram-generator_в_системе&quot;&gt;4.7.1. Проверка пакета zram-generator в системе&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=28&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qi&lt;/span&gt; zram-generator&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_215.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_215.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_215.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод содержит подробные метаданные об уже установленном в вашей системе пакете zram-generator версии 1.2.1-1.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_установки_пакета_zram-generator&quot;&gt;4.7.2. Проверка установки пакета zram-generator&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Верификация целостности установленных файлов пакета и их наличия в системе.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=29&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qk&lt;/span&gt; zram-generator&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_216.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_216.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_216.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что пакет zram-generator полностью целостен и все его компоненты находятся на своих местах в операционной системе.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;разбор_строки_вывода4&quot;&gt;Разбор строки вывода:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;19 total files&lt;/strong&gt; — пакет содержит в себе ровно 19 файлов (исполняемые файлы, файлы конфигурации systemd, документация).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;0 missing files&lt;/strong&gt; — утерянных, поврежденных или случайно удаленных файлов не обнаружено. Все 19 компонентов успешно найдены в системе.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_zram-generator_в_var_cache_pacman_pkg&quot;&gt;4.7.3. Проверка пакета zram-generator в  /var/cache/pacman/pkg/&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Проверить наличие кэшированных файлов пакета zram-generator можно с помощью стандартных команд терминала для поиска файлов. pacman хранит в этом каталоге скачанные архивные файлы с расширением .pkg.tar.zst (или .pkg.tar.xz).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=30&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; zram-generator&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_217.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_217.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_217.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что в локальном кэше пакетов сохранен установочный архив версии пакета zram-generator, которая сейчас установлена у вас в системе.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4.7. \u041f\u0430\u043a\u0435\u0442 zram-generator&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0430\u043a\u0435\u0442_zram-generator&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:28,&amp;quot;secid&amp;quot;:21,&amp;quot;range&amp;quot;:&amp;quot;33749-36790&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit22&quot; id=&quot;утилита_xorriso&quot;&gt;4.8. Утилита xorriso&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Утилита &lt;a href=&quot;https://man.archlinux.org/man/xorriso.1.en&quot; class=&quot;urlextern&quot; title=&quot;https://man.archlinux.org/man/xorriso.1.en&quot; rel=&quot;ugc nofollow&quot;&gt;xorriso&lt;/a&gt; в Arch Linux — это мощная консольная программа для создания, изменения и извлечения ISO-образов (файловых систем ISO 9660 с расширениями Rock Ridge), а также для записи данных и образов на оптические диски (CD, DVD, Blu-ray).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_утилиты_xorriso_в_системе&quot;&gt;4.8.1. Проверка утилиты xorriso в системе&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=31&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qi&lt;/span&gt; xorriso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_218.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_218.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_218.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что утилита xorriso в данный момент не установлена в вашей системе.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_утилиты_xorriso&quot;&gt;4.8.2. Установка утилиты xorriso&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=32&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; xorriso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Система запросит подтверждение установки, нажмите Y и Enter).&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_219.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_219.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_219.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что вы успешно установили зависимости утилиты xorriso, являющтхся её основой)&lt;/em&gt;
&lt;br/&gt;

Менеджер пакетов pacman перед установкой xorriso установил необходимые для его работы библиотеки (libburn, libisofs, libisoburn).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_установки_утилиты_xorriso&quot;&gt;4.8.3. Проверка установки утилиты xorriso&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Верификация целостности установленных файлов пакета и их наличия в системе.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=33&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Qk&lt;/span&gt; xorriso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_221.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_221.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_221.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод наглядно подтверждает, что утилита xorriso физически находится внутри пакета libisoburn, и все её файлы полностью целы.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;разбор_строки_вывода5&quot;&gt;Разбор строки вывода:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;libisoburn: 32 total files&lt;/strong&gt; — pacman автоматически перенаправил запрос на реальный пакет libisoburn, так как именно он отвечает за эту программу в Arch Linux.).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;0 missing files&lt;/strong&gt; — все 32 файла (включая саму команду xorriso) успешно найдены на вашем жестком диске. Ни один компонент не утерян и не.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_пакета_xorriso_в_var_cache_pacman_pkg&quot;&gt;4.8.4. Проверка пакета xorriso в  /var/cache/pacman/pkg/&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Проверить наличие кэшированных файлов пакета xorriso можно с помощью стандартных команд терминала для поиска файлов. pacman хранит в этом каталоге скачанные архивные файлы с расширением .pkg.tar.zst (или .pkg.tar.xz).
&lt;br/&gt;

Т.к. реальное имя пакета в системе — libisoburn, чтобы правильно проверить наличие установочных файлов в кэше, выполните поиск по ключевому слову isoburn:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=34&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; isoburn&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_222.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_222.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_222.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что в локальном кэше вашего пакетного менеджера успешно сохранен установочный архив пакета libisoburn (который и содержит в себе утилиту xorriso).)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверяем_версию_установленной_утилиты_xorriso&quot;&gt;4.8.5. Проверяем версию установленной утилиты xorriso&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=35&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;xorriso &lt;span class=&quot;re5&quot;&gt;--version&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_223.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_223.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_223.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что утилита xorriso успешно запущена, полностью исправна и готова к работе.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4.8. \u0423\u0442\u0438\u043b\u0438\u0442\u0430 xorriso&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0442\u0438\u043b\u0438\u0442\u0430_xorriso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:31,&amp;quot;secid&amp;quot;:22,&amp;quot;range&amp;quot;:&amp;quot;36791-41169&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit23&quot; id=&quot;установка_дополнительных_пакетов&quot;&gt;5. Установка дополнительных пакетов&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В предыдущей главе, мы проверили и установили все основные пакеты и утилиты, необходимые нам для сборки кастомного iso образа сервера Arch linux, который будут собран и записан на физический USB - флеш накопитель, для установки системы на локальном сервере (Offline mode) в изолированной сети (air-gapped network).
&lt;br/&gt;

&lt;br/&gt;

Так как цель данного руководства - сборка полностью автомомного сервера с web-приложением для настройки сервера под любые задачи, мы загрузим в кэш pacman (/var/cache/pacman/pkg/) дополнительные пакеты, перечень которых вы можите изменить по своему усмотрению.  (&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:linux_server:arch_linux:arch_linux_installing_core_packages&quot; class=&quot;wikilink1&quot; title=&quot;software:linux_server:arch_linux:arch_linux_installing_core_packages&quot; data-wiki-id=&quot;software:linux_server:arch_linux:arch_linux_installing_core_packages&quot;&gt;см. список всех пакетов устанавливаемых при выполнении этого пункта&lt;/a&gt;).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;сохранение_в_кэш_дополнительного_по&quot;&gt;5.1. Сохранение в кэш дополнительного ПО&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Использум для этой цели скрипт, обернутый в subo cat « &amp;#039;&lt;abbr title=&quot;End of file&quot;&gt;EOF&lt;/abbr&gt;&amp;#039; для загрузки дополнительный пакетов с зависимостями в  arch linux в /var/cache/pacman/pkg/ с автоподтверждением и проверкой целосности каждого пакета, без установки в систему, с выводом в конце списка загруженных пакетов 
&lt;br/&gt;

Чтобы запустить весь этот процесс напрямую в консоли, скопируйте весь блок кода ниже, вставьте его в свой терминал и нажмите Enter. Команда сразу запросит пароль администратора и начнет выполнение:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=36&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;bash&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;&amp;lt;&amp;lt; &#039;EOF&#039;
# Полный список ваших пакетов
PACKAGES=(
    btrfs-progs e2fsprogs mdadm lvm2 snapper inxi man-pages texinfo
    networkmanager dnsmasq
    pam libpam-google-authenticator qrencode ufw fail2ban certbot clamav
    apache php-apache mariadb phpmyadmin php
    nfs-utils bftpd rsync
    dokuwiki wordpress gitea
    minidlna mpd immich-go radicale opensmtpd
    code python feh libreoffice-fresh
    docker qemu-system-x86 kcron fzy
)
&amp;nbsp;
CACHE_DIR=&amp;quot;/var/cache/pacman/pkg&amp;quot;
&amp;nbsp;
echo &amp;quot;=== 1. Синхронизация баз данных пакетов ===&amp;quot;
pacman -Sy --noconfirm
&amp;nbsp;
echo -e &amp;quot;\n=== 2. Загрузка пакетов и их зависимостей (без установки) ===&amp;quot;
pacman -Sw --noconfirm --needed &amp;quot;${PACKAGES[@]}&amp;quot;
# -S: установка/загрузка
# -w: только скачивание (без установки)
# --noconfirm: автоподтверждение всех запросов
# --needed: не скачивать заново то, что уже есть актуального в кэше/системе
&amp;nbsp;
echo -e &amp;quot;\n=== 3. Проверка целостности архивов и сбор версий ===&amp;quot;
echo &amp;quot;----------------------------------------------------------------------&amp;quot;
printf &amp;quot;%-30s %-20s %s\n&amp;quot; &amp;quot;ПАКЕТ&amp;quot; &amp;quot;ВЕРСИЯ&amp;quot; &amp;quot;СТАТУС КЭША&amp;quot;
echo &amp;quot;----------------------------------------------------------------------&amp;quot;
&amp;nbsp;
ERRORS=0
&amp;nbsp;
for pkg in &amp;quot;${PACKAGES[@]}&amp;quot;; do
    # Получаем версию пакета из базы данных pacman
    VERSION=$(pacman -Si &amp;quot;$pkg&amp;quot; | awk -F&#039;: &#039; &#039;/^Version/ {print $2}&#039; | xargs)
&amp;nbsp;
    if [ -z &amp;quot;$VERSION&amp;quot; ]; then
        printf &amp;quot;%-30s %-20s %s\n&amp;quot; &amp;quot;$pkg&amp;quot; &amp;quot;---&amp;quot; &amp;quot;[НЕ НАЙДЕН В РЕПО]&amp;quot;
        ((ERRORS++))
        continue
    fi
&amp;nbsp;
    # Очищаем версию от эпохи (двоеточия) для сопоставления с именем файла
    CLEAN_VER=$(echo &amp;quot;$VERSION&amp;quot; | sed &#039;s/^[0-9]://&#039;)
&amp;nbsp;
    # Поиск архива в кэше загрузок
    PKG_FILE=$(ls &amp;quot;$CACHE_DIR&amp;quot; 2&amp;gt;/dev/null | grep -E &amp;quot;^${pkg}-${CLEAN_VER}-(x86_64|any)\.pkg\.tar\.zst$&amp;quot;)
&amp;nbsp;
    if [ -n &amp;quot;$PKG_FILE&amp;quot; ]; then
        # Проверка целостности структуры сжатого архива утилитой zstd
        if zstd -t &amp;quot;$CACHE_DIR/$PKG_FILE&amp;quot; &amp;amp;&amp;gt;/dev/null; then
            STATUS=&amp;quot;[OK] Архив цел&amp;quot;
        else
            STATUS=&amp;quot;[ОШИБКА] Поврежден&amp;quot;
            ((ERRORS++))
        fi
    else
        STATUS=&amp;quot;[ОТСУТСТВУЕТ]&amp;quot;
        ((ERRORS++))
    fi
&amp;nbsp;
    printf &amp;quot;%-30s %-20s %s\n&amp;quot; &amp;quot;$pkg&amp;quot; &amp;quot;$VERSION&amp;quot; &amp;quot;$STATUS&amp;quot;
done
&amp;nbsp;
echo &amp;quot;----------------------------------------------------------------------&amp;quot;
echo &amp;quot;Процесс завершен. Проблемных пакетов: $ERRORS&amp;quot;
EOF&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_224.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_224.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_224.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
В окне терминала пойдет загрузка перечня загружаемых пакетом, с выводом пакета, версии и проверкой целосности пакета
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_225.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_225.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_225.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что ваш скрипт успешно отработал и 95% запрошенных пакетов были успешно загружены и проверены в кэше.)&lt;/em&gt;
&lt;br/&gt;

Однако два пакета (docker и immich-go) не смогли скачаться, из-за чего в самом низу лога вывелось сообщение: «Процесс завершен. Проблемных пакетов: 2».
&lt;br/&gt;

При этом прокрутив ползунок кансоли, мы убеждаемся, что пакет docker загружен в кэш.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_228.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_228.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_228.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверка_docker_и_immich-go_в_кэш&quot;&gt;5.2. Проверка docker и immich-go в кэш&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=37&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;docker|immich-go&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_229.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_229.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_229.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что пакеты docker и immich-go успешно скачаны и находятся в локальном кэше вашего менеджера пакетов.)&lt;/em&gt;
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;5. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445_\u043f\u0430\u043a\u0435\u0442\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:36,&amp;quot;secid&amp;quot;:23,&amp;quot;range&amp;quot;:&amp;quot;41170-47831&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit24&quot; id=&quot;обновление_баз_кэша_и_системы&quot;&gt;6. Обновление баз, кэша и системы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;6. \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0431\u0430\u0437, \u043a\u044d\u0448\u0430 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435_\u0431\u0430\u0437_\u043a\u044d\u0448\u0430_\u0438_\u0441\u0438\u0441\u0442\u0435\u043c\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:38,&amp;quot;secid&amp;quot;:24,&amp;quot;range&amp;quot;:&amp;quot;47832-47902&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit25&quot; id=&quot;обновление_баз_и_загрузка_всех_зависимостей_в_кэш&quot;&gt;6.1. Обновление баз и загрузка всех зависимостей в кэш&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Эта команда берет список всех файлов из вашей папки /var/cache/pacman/pkg/, сверяет их с сервером и скачивает их новые версии в кэш (в систему ничего не ставится), а так же автоматически скачивает абсолютно все необходимые зависимости:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=38&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-Syww&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pacman -Qq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--neede&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Использование флагов -S (синхронизация), -y (обновление баз данных репозиториев) и -w (только скачивание))&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_230.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_230.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_230.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Вывод на скрине ниже означает, что команда отработала идеально и ваш кэш уже находится в максимально актуальном состоянии.)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_231.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_231.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_231.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;получение_общего_размера_кэша_на_диске&quot;&gt;6.1.1. Получение общего размера кэша на диске:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=39&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;du&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sh&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cache&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_232.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_232.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_232.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;6.1. \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0431\u0430\u0437 \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0432\u0441\u0435\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u043a\u044d\u0448&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435_\u0431\u0430\u0437_\u0438_\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430_\u0432\u0441\u0435\u0445_\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439_\u0432_\u043a\u044d\u0448&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:38,&amp;quot;secid&amp;quot;:25,&amp;quot;range&amp;quot;:&amp;quot;47903-49350&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit26&quot; id=&quot;обновление_установленных_пакетов_и_зависимостей_в_системе&quot;&gt;6.2. Обновление установленных пакетов и зависимостей в системе&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Чтобы обновить абсолютно все установленные пакеты в системе вместе с их зависимостями и при этом автоматически подтверждать все запросы (чтобы команда не останавливалась и не задавала вопросов), выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=40&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-Syu&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(&lt;strong&gt;-Syu&lt;/strong&gt; — синхронизирует базы данных репозиториев (&lt;strong&gt;-y&lt;/strong&gt;) и запускает полный апгрейд всех устаревших пакетов в системе (&lt;strong&gt;-u&lt;/strong&gt;) вместе с их зависимостями. &lt;strong&gt;–noconfirm&lt;/strong&gt; — главный флаг автоматизации. Он отключает все всплывающие вопросы вида «Хотите продолжить установку? [Y/n]» и автоматически выбирает вариант Да (Yes).)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_233.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_233.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_233.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что ваша система уже полностью обновлена, и устанавливать ничего не нужно.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;6.2. \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435_\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445_\u043f\u0430\u043a\u0435\u0442\u043e\u0432_\u0438_\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439_\u0432_\u0441\u0438\u0441\u0442\u0435\u043c\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:40,&amp;quot;secid&amp;quot;:26,&amp;quot;range&amp;quot;:&amp;quot;49351-50860&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit27&quot; id=&quot;статический_ip_адрес_хоста&quot;&gt;7. Статический IP адрес хоста&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Вместо автоматического DHCP мы жестко (статически) пропишем адрес к примеру 192.168.1.72 в файле конфигурации. Это гарантирует, что хост tom_1 больше никогда не сменит свой IP, а сетевой диск в Windows не отвалится.
&lt;br/&gt;

Чтобы настроить статический IP-адрес в Arch Linux через systemd-networkd, нам нужно создать или отредактировать имеющийся файл конфигурационный файл с расширением .network
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;7. \u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 IP \u0430\u0434\u0440\u0435\u0441 \u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439_ip_\u0430\u0434\u0440\u0435\u0441_\u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:41,&amp;quot;secid&amp;quot;:27,&amp;quot;range&amp;quot;:&amp;quot;50861-51578&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit28&quot; id=&quot;проверка_директории_etc_systemd_network&quot;&gt;7.1. Проверка директории /etc/systemd/network/&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=41&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_181.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_181.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_181.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Если в выводе будут только строки . и .., значит, папка полностью пуста.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;если_конфигурационного_файла_network_нет&quot;&gt;7.2. Если конфигурационного файла .network нет&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Создайте файл с расширением .network. Имя файла может быть любым, но оно должно начинаться с цифр (чтобы задать приоритет).
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=42&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;tee&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Match&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=eth0
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=en&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=eth&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Network&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Address&lt;/span&gt;=192.168.1.150&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Gateway&lt;/span&gt;=192.168.1.1
&lt;span class=&quot;re2&quot;&gt;DNS&lt;/span&gt;=8.8.8.8
&lt;span class=&quot;re2&quot;&gt;DNS&lt;/span&gt;=1.1.1.1
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_183.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_183.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_183.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;если_конфигурационный_файл_network_есть&quot;&gt;7.3. Если конфигурационный файл .network есть&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=43&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_184.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_184.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_184.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Имя файла определено: 20-wired.network.)&lt;/em&gt;
&lt;br/&gt;

Перед тем как вносить изменения, мы обязаны посмотреть его полную структуру, чтобы увидеть секцию [Match] (которая привязывает этот конфиг к конкретной сетевой карте eth0 или enx…).
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;структура_файла_20-wirednetwork&quot;&gt;7.3.1. Структура файла 20-wired.network&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=44&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_185.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_185.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_185.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Секция [Match] перехватывает все интерфейсы, начинающиеся на en* и eth*.)&lt;/em&gt;
&lt;br/&gt;
 Теперь мы готовы переписать этот файл, заменив красивый адрес 192.168.1.150 на ваш более статический 192.168.1.72. Остальные параметры (маску /24, шлюз и &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;) оставляем без изменений.
&lt;em&gt;(а адрес 192.168.1.150 мы оставим для нашей флешки с iso образом для обнаружения в сети)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;перезапись_файла_20-wirednetwork_на_ip_192168172&quot;&gt;7.3.2. Перезапись файла 20-wired.network на IP 192.168.1.72&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Мы используем монолитную команду cat « &amp;#039;&lt;abbr title=&quot;End of file&quot;&gt;EOF&lt;/abbr&gt;&amp;#039;, которая полностью затрёт старый конфиг и запишет новый чистый текст. Это исключает ошибки ручного ввода в редакторах.&lt;br/&gt;

Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=45&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;tee&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Match&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=eth0
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=en&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=eth&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Network&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Address&lt;/span&gt;=192.168.1.72&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Gateway&lt;/span&gt;=192.168.1.1
&lt;span class=&quot;re2&quot;&gt;DNS&lt;/span&gt;=8.8.8.8
&lt;span class=&quot;re2&quot;&gt;DNS&lt;/span&gt;=1.1.1.1
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_132.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_132.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_132.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Перед тем как перезапустить сеть, мы обязаны сделать шаг контроля и убедиться, что файл перезаписался именно так, как нам нужно.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_измененного_файла_20-wirednetwork&quot;&gt;7.3.3. Проверка измененного файла 20-wired.network&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=46&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_133.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_133.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_133.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Внутри прописан наш целевой статический адрес 192.168.1.72.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;применение_настроек_сети&quot;&gt;7.3.4. Применение настроек сети&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Чтобы система сбросила старый адрес 192.168.1.150 и применила новый, нам необходимо полностью перезапустить сетевую службу systemd-networkd.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=47&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl restart systemd-networkd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Важно: Как только вы выполните эту команду, текущая SSH-сессия PuTTY сразу же прервётся (окно зависнет), так как IP-адрес машины мгновенно изменится на 192.168.1.72.  
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_134.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_134.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_134.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_нового_адреса&quot;&gt;7.3.5. Проверка нового адреса&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Откройте новое окно PuTTY и подключитесь к tom_1 по его новому постоянному адресу: 192.168.1.72
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=48&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ip&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-br&lt;/span&gt; address show scope global &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $3}&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cut&lt;/span&gt; -d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-f1&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Система отобразила наш новый постоянный IP-адрес 192.168.1.72)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;7.1. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \/etc\/systemd\/network\/&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430_\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438_etc_systemd_network&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:41,&amp;quot;secid&amp;quot;:28,&amp;quot;range&amp;quot;:&amp;quot;51579-56686&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit29&quot; id=&quot;развертывание_и_настройка_копоненонтов_по_webui&quot;&gt;8. Развертывание и настройка копоненонтов по WebUI&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
На нашем будущем сервере будет постоянно запущен веб-сервер Nginx. Он предоставит пользователю возможность управлять системой через веб-приложение в окне браузера по временному порту 7000. Если пользователь захочет использовать собственный веб-сервер, в приложении ему будет доступен веб-сервер Apache2 с поддержкой PHP. Службы OpenSSH и Samba, автозапуск которых настраивается для создания веб-приложения, также будут по умолчанию отключены с возможностью их постоянного включения через панель управления.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;8. \u0420\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043a\u043e\u043f\u043e\u043d\u0435\u043d\u043e\u043d\u0442\u043e\u0432 \u043f\u043e WebUI&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435_\u0438_\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u043a\u043e\u043f\u043e\u043d\u0435\u043d\u043e\u043d\u0442\u043e\u0432_\u043f\u043e_webui&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:49,&amp;quot;secid&amp;quot;:29,&amp;quot;range&amp;quot;:&amp;quot;56687-57698&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit30&quot; id=&quot;настройка_nginx_на_обработку_php&quot;&gt;8.1. Настройка Nginx на обработку PHP&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;файл_nginxconf&quot;&gt;8.1.1. Файл nginx.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Мы перепишем конфигурационный файл nginx.conf, добавив правильный блок location ~ \.php$, работающий через UNIX-сокет.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=49&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;tee&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx.conf &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null
worker_processes  &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;;
&amp;nbsp;
events &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    worker_connections  &lt;span class=&quot;nu0&quot;&gt;1024&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
http &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    include       mime.types;
    default_type  application&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;octet-stream;
    sendfile        on;
    keepalive_timeout  &lt;span class=&quot;nu0&quot;&gt;65&lt;/span&gt;;
&amp;nbsp;
    server &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        listen       &lt;span class=&quot;nu0&quot;&gt;7000&lt;/span&gt;;
        server_name  localhost;
        root         &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html;
        index        index.html index.htm index.php;
&amp;nbsp;
        location &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            try_files &lt;span class=&quot;re1&quot;&gt;$uri&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$uri&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; =&lt;span class=&quot;nu0&quot;&gt;404&lt;/span&gt;;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        location ~ \.php$ &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            include        fastcgi.conf;
            fastcgi_pass   unix:&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;php-fpm&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;php-fpm.sock;
            fastcgi_index  index.php;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_237.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_237.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_237.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;тестирование_синтаксиса_nginxconf&quot;&gt;8.1.2. Тестирование синтаксиса nginx.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Нам нужно протестировать синтаксис Nginx, чтобы убедиться, что все скобки закрыты и сокет прописан без ошибок.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=50&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; nginx &lt;span class=&quot;re5&quot;&gt;-t&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_150.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_150.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_150.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Тест пройден успешно (syntax is ok, test is successful). Предупреждение о types_hash — это стандартный информационный ворнинг, на работу он не влияет.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_содержимого_файла_nginxconf&quot;&gt;8.1.3. Проверка содержимого файла nginx.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=51&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-n&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_238.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_238.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_238.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;перезапуск_веб-сервера&quot;&gt;8.1.4. Перезапуск веб-сервера&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=52&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl restart nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_153.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_153.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_153.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверка_статуса_службы&quot;&gt;8.1.5. Проверка статуса службы&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=53&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl status nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_155.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_155.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_155.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверим_директорию&quot;&gt;8.1.6. Проверим директорию&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Чтобы не запутаться в структуре бэкенда и фронтенда, давайте сначала проверим, что сейчас вообще находится внутри корневой папки Nginx на tom_1.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=54&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_142.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_142.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_142.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Проверим запуск и работу веб-сервера на порту 7000 в браузере на странице &lt;a href=&quot;http://192.168.1.72:7000/&quot; class=&quot;urlextern&quot; title=&quot;http://192.168.1.72:7000/&quot; rel=&quot;ugc nofollow&quot;&gt;http://192.168.1.72:7000/&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_239.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_239.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_239.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;8.1. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Nginx \u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 PHP&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_nginx_\u043d\u0430_\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443_php&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:49,&amp;quot;secid&amp;quot;:30,&amp;quot;range&amp;quot;:&amp;quot;57699-60917&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit31&quot; id=&quot;проверяем_автозапуск_службы_php-fpm&quot;&gt;8.2. Проверяем автозапуск службы php-fpm&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Убедимся, что служба PHP-FPM активирована в автозапуске, чтобы при старте флешки в ОЗУ она запустилась сама вместе с Nginx.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=55&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_114.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_114.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_114.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Примечание: статус disabled - выключена)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;включаем_службу_php-fpm_в_автозапуск&quot;&gt;8.2.1. Включаем службу php-fpm в автозапуск&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Включим службу PHP-FPM в автозапуске, чтобы при старте флешки в ОЗУ она запустилась сама вместе с Nginx.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=56&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_115.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_115.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_115.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Примечание: созданы системные симлинки)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_статус_автозапуска_службы_php-fpm&quot;&gt;8.2.1.1. Проверяем статус автозапуска службы php-fpm&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что служба PHP-FPM активирована в автозапуске, чтобы при старте флешки в ОЗУ она запустилась сама вместе с Nginx. Убедимся, что система теперь рапортует правильный статус.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=57&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_116.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_116.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_116.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Примечание: статус enabled - включена)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;снятие_системной_изоляции_с_php&quot;&gt;8.2.2. Снятие системной изоляции с PHP&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В Arch Linux служба &lt;code&gt;php-fpm&lt;/code&gt; по умолчанию заперта (ProtectSystem=full). Из-за этого PHP видит системные файлы пользователей как Read-Only. Снимем это ограничение.
&lt;/p&gt;

&lt;p&gt;
Откройте переопределение настроек службы:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=58&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl edit php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Вставте свои строки строго между первой и второй строками комментариев (обычно там есть явная подсказка ### Lines below this comment will be discarded или аналогичная).:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=59&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;ini&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code text&quot;&gt;[Service]
ProtectSystem=false
ProtectHome=false&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_240.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_240.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_240.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Ctrl+O для сохранения, затем Enter и Ctrl+X для выхода)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_241.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_241.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_241.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Вывод означает правильно отредактированную конфигурацию, и systemd успешно создал конфигурационный файл (drop-in файл) с вашими настройками по пути /etc/systemd/system/php-fpm.service.d/override.conf)&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Перезапустите службу:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo systemctl restart php-fpm&lt;/pre&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_242.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_242.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_242.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;8.2. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a \u0441\u043b\u0443\u0436\u0431\u044b php-fpm&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c_\u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a_\u0441\u043b\u0443\u0436\u0431\u044b_php-fpm&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:55,&amp;quot;secid&amp;quot;:31,&amp;quot;range&amp;quot;:&amp;quot;60918-64238&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit32&quot; id=&quot;настройка_samba-сервера&quot;&gt;8.3. Настройка Samba-сервера&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверяем_состояние_samba-сервера_на_tom_1&quot;&gt;8.3.1. Проверяем состояние Samba-сервера на tom_1&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Нам нужно узнать, запущен ли демон Samba (smb), чтобы понять, сможем ли мы сразу подключить сетевой диск в Windows.&lt;br/&gt;

Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=61&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl status smb&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_243.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_243.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_243.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Этот вывод означает, что служба установлена в системе, но её автозапуск отключен и в данный момент служба не запущена (остановлена))&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создание_конфигурационного_файла_smbconf&quot;&gt;8.3.2. Создание конфигурационного файла smb.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Создадим конфигурационный файл в редакторе nano. &lt;br/&gt;

Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=62&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;samba&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;smb.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Файл пустой и готов к заполнению. Вставьте в него следующий минимальный рабочий конфиг, чтобы открыть доступ к директории Nginx (/usr/share/nginx/html) с автоматическим наследованием безопасных прав доступа (775 для папок и 664 для файлов):
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=63&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;ini&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;global&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    workgroup = WORKGROUP
    server string = Arch Linux Tom1
    security = user
    map to guest = Bad User
    log &lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;log&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;samba&lt;span class=&quot;sy0&quot;&gt;/%&lt;/span&gt;m.log
    max log &lt;span class=&quot;kw2&quot;&gt;size&lt;/span&gt; = &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;nginx_html&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    path = &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html
    writable = &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
    guest ok = &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
    guest only = &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
    force user = http
    create mask = 0664
    directory mask = 0775&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_246.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_246.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_246.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Файл изменен. Нажмите последовательно:CTRL + O, затем клавишу Enter (для записи файла).CTRL + X (для выхода из редактора nano)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_синтаксиса&quot;&gt;8.3.2.1. Проверка синтаксиса&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
выполните встроенную команду Samba для проверки синтаксиса файла конфигурации:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=64&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;testparm &lt;span class=&quot;re5&quot;&gt;-s&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_247.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_247.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_247.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Тест синтаксиса пройден успешно (Loaded services file OK). Ошибок в файле smb.conf нет. Сетевая папка nginx_html определена верно.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;запуск_и_автозагрузка&quot;&gt;8.3.2.2. Запуск и автозагрузка&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Следующий шаг — запуск и добавление службы Samba в автозагрузку.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=65&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--now&lt;/span&gt; smb&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_124.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_124.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_124.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Симлинк успешно создан, служба добавлена в автозапуск.)&lt;/em&gt;
&lt;br/&gt;
 Следующий шаг — обязательная проверка статуса запущенного демона Samba.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_статуса&quot;&gt;8.3.2.3.  Проверка статуса&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=66&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl status smb&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_125.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_125.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_125.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Служба smb работает в режиме active (running) и полностью готова принимать сетевые подключения.)&lt;/em&gt;
&lt;br/&gt;

Службы настроены. 
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;владение_корневым_каталогом_сайта&quot;&gt;8.3.3. Владение корневым каталогом сайта&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Передаем владение корневым каталогом сайта встроенному веб-пользователю http. Задаем права 775 для всех папок (чтобы Samba и Nginx могли создавать файлы) и 664 для файлов (только чтение и запись, без флагов исполнения):.&lt;br/&gt;

Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=67&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chown&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-R&lt;/span&gt; http:http &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;find&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-type&lt;/span&gt; d &lt;span class=&quot;re5&quot;&gt;-exec&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;775&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; +
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;find&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-type&lt;/span&gt; f &lt;span class=&quot;re5&quot;&gt;-exec&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;664&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; +&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_248.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_248.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_248.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Права 777/664 назначены успешно.)&lt;/em&gt;
&lt;br/&gt;

Следующий обязательный шаг по нашему плану — проверка того, как система применила эти права к содержимому каталога.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=68&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_249.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_249.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_249.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Проверка прав прошла успешно. Строки drwxrwxr-x для текущей папки (.) и -rw-rw-r– для файлов index.html и 50x.html подтверждают, что доступ полностью открыт на чтение, запись для пользователей системы.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;подключение_сетевой_папки_в_windows&quot;&gt;8.3.3. Подключение сетевой папки в Windows&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h5 id=&quot;получим_точный_текущий_ip-адрес_сервера_tom_1&quot;&gt;8.3.3.1. Получим точный текущий IP-адрес сервера tom_1&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=69&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ip&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-br&lt;/span&gt; address show scope global &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $3}&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cut&lt;/span&gt; -d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-f1&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Теперь папка готова к подключению в качестве сетевого диска в среде Windows, чтобы вы могли открыть её через Notepad++.
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Откройте Проводник (Этот компьютер) на вашей Windows-машине.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В верхнем меню нажмите кнопку «Подключить сетевой диск» (или нажмите правой кнопкой мыши по «Этот компьютер» → «Подключить сетевой диск»).&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_137.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_137.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_137.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В поле «Папка» введите сетевой путь, используя IP-адрес вашего сервера tom_1 (из логов PuTTY: 192.168.1.72 или через кнопку обзор)&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_139.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_139.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_139.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Введите сетевые учетные данные
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_140.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_140.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_140.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Зайдите через проводник
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_141.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_141.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_141.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(В корне /usr/share/nginx/html/ только файлы 50x.html и index.html.)&lt;/em&gt;
&lt;br/&gt;

Разворачиваем структуру каталогов для нашего веб-интерфейса. Создадим стандартные папки для стилей, скриптов и серверной логики.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;8.3. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Samba-\u0441\u0435\u0440\u0432\u0435\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_samba-\u0441\u0435\u0440\u0432\u0435\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:61,&amp;quot;secid&amp;quot;:32,&amp;quot;range&amp;quot;:&amp;quot;64239-71552&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit33&quot; id=&quot;системный_пользователь_http&quot;&gt;8.4. Системный пользователь http&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Пользователь http в Arch Linux — это встроенный системный пользователь, от имени которого по умолчанию работают веб-серверы (например, Apache или Nginx) и сопутствующие им службы.
&lt;br/&gt;
 Он создается автоматически при установке этих программ для изоляции процессов и обеспечения безопасности.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;назначение&quot;&gt;Назначение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Безопасность: Веб-серверы не должны работать под правами суперпользователя (root). Если злоумышленник найдет уязвимость в вашем сайте, он получит доступ только к файлам с правами пользователя http, что убережет остальную систему от взлома.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Права на файлы: Этот пользователь владеет файлами и папками, к которым сервер имеет доступ (обычно они расположены в директории /srv/http/).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Группа http: Для удобства существует одноименная группа http, в которую могут входить другие пользователи, чтобы иметь возможность редактировать файлы сайта без изменения прав доступа к ним через sudo&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;применение&quot;&gt;Применение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Размещение сайтов: При настройке Nginx, Apache или PHP-FPM часто требуется указывать, что процесс должен запускаться от имени http.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Настройка разрешений (Permissions): Если сайт выдает ошибку доступа (например, 403 Forbidden), обычно это означает, что у пользователя http нет прав на чтение нужных файлов или папок.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Безопасность каталогов: Если скриптам на сайте нужно загружать файлы на сервер, папке загрузки необходимо выдать права (владельца) для пользователя http&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;вывод_строк_пользователей_системы&quot;&gt;Вывод строк пользователей системы&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выводим строки трех нами известных пользователей из базы данных.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=70&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;^(root|eva|http):&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;shadow&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_169.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_169.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_169.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;root:$y$j9T$…:20594:::::&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Второе поле — длинный хэш $y$…. Это зашифрованный пароль суперпользователя.Число 20594 — дата последнего изменения пароля (в днях от 1970 года).В конце строки — пустые поля. Это значит, что для root нет никаких ограничений.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;strong&gt;eva:$y$j9T$…:20594:0:99999:7:::&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Тоже видим хэш личного пароля.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Параметры 0:99999:7 означают стандартные правила пользователя: пароль можно менять сразу (0), он действует 99999 дней, а за 7 дней до истечения система начнет предупреждать. Восьмое поле пустое — аккаунт не блокируется.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;strong&gt;http:!*:20594::::::1:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Второе поле содержит !*. Это маркер того, что пароль заблокирован (вход по паролю невозможен, учетка техническая).Внимание в самый конец строки: ::::::1:&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; На предпоследней позиции (8-е поле) стоит цифра 1. В системе Linux это означает, что учетная запись принудительно заблокирована подсистемой безопасности PAM через 1 день после начала эпохи Unix (то есть 2 января 1970 года). &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;изменяем_параметры_пользователя_http&quot;&gt;Изменяем параметры пользователя http&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Уберем эту единицу из конца строки, чтобы сделать учетную запись бессрочной.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=71&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; chage &lt;span class=&quot;re5&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-1&lt;/span&gt; http&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_170.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_170.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_170.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_изменений_в_файле_etc_shadow&quot;&gt;Проверка изменений в файле /etc/shadow&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=72&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;^http:&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;shadow&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_171.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_171.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_171.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Строка завершается чистыми двоеточиями (::::::), что означает: блокировка PAM полностью снята, аккаунт http стал бессрочным)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;8.4. \u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c http&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c_http&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:70,&amp;quot;secid&amp;quot;:33,&amp;quot;range&amp;quot;:&amp;quot;71553-76827&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit34&quot; id=&quot;настройка_беспарольного_доступа_в_sudoers&quot;&gt;8.5. Настройка беспарольного доступа в sudoers&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Чтобы PHP-скрипты могли вызывать утилиты управления аккаунтами без ввода пароля и без наличия текстового экрана (TTY), настроим правила безопасности. Команды будут пробрасываться во внешнюю систему через утилиту &lt;code&gt;systemd-run&lt;/code&gt; для обхода ограничений безопасности PHP.
&lt;/p&gt;

&lt;p&gt;
Откройте конфигурационный файл строго через visudo:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=73&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;EDITOR&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; visudo&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_244.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_244.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_244.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
В самый конец файла добавьте следующие строки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=74&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;Defaults:http &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;requiretty
http &lt;span class=&quot;re2&quot;&gt;ALL&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ALL&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; NOPASSWD: &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd-run &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;, &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;bash&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_253.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_253.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_253.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;обновление_контекста_php-fpm&quot;&gt;Обновление контекста PHP-FPM&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Так как PHP кэширует права сессий для вызова exec(), обязательно примените изменения через перезапуск служб, поочередно введя 3 команды:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=75&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl daemon-reload
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl restart php-fpm
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl restart nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_254.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_254.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_254.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;структура_web_приложения&quot;&gt;Структура web приложения&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Папка веб-сервера nginx_html находится по пути /usr/share/nginx/html/ и имеет следующую структуру файлов бэкенда (PHP) и фронтенда (JS/&lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;/usr/share/nginx/html/               # Корневая директория веб-сервера Nginx
├── index.html                       # Главный интерфейс панели (вкладки, таблицы, модальные окна)
├── css/
│   └── style.css                    # Стили оформления интерфейса панели управления
├── js/
│   └── app.js                       # Клиентская логика (асинхронные Fetch-запросы к API, фильтры)
└── api/
    ├── users.php                    # Серверный обработчик для системных пользователей (/etc/passwd)
    └── groups.php                   # Серверный обработчик для системных групп (/etc/group)&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создание_директорий&quot;&gt;Создание директорий&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Временно изменим права для работы в консоли
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=77&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chown&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-R&lt;/span&gt; http:http &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;find&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-type&lt;/span&gt; d &lt;span class=&quot;re5&quot;&gt;-exec&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;775&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; +&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_250.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_250.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_250.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Выполните в терминале PuTTY одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=78&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;css,js,api,assets&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_143.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_143.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_143.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Папки созданы. Теперь обязательный шаг контроля: проверяем, какие права доступа и владельцы назначены для новых директорий, чтобы Windows-пользователь Samba и веб-сервер Nginx могли с ними работать.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;контроль_папок&quot;&gt;Контроль папок&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=79&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_144.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_144.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_144.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Папки создались под пользователем eva, но у них стоят ограниченные права drwxr-xr-x. Из-за этого Windows через Samba не сможет создавать или изменять файлы внутри этих подкаталогов.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;права_доступа_к_файлам&quot;&gt;Права доступа к файлам&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=80&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;find&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-type&lt;/span&gt; f &lt;span class=&quot;re5&quot;&gt;-exec&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;664&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; +&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_назначения_прав_пользователя&quot;&gt;Проверка назначения прав пользователя&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=81&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_251.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_251.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_251.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Права drwxrwxr-x (775) успешно применились ко всем новым директориям (api, assets, css, js) - подсвечены синим, и -rw-rw-r– к файлам они подсвечены белым. Теперь пользователи eva и системный пользователь http, и Samba имеют полный доступ.)&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Прверим создание папок в Проводнике виндовс и откроем его в редакторе notepad++
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_252.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_252.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_252.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;8.5. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0431\u0435\u0441\u043f\u0430\u0440\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0432 sudoers&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u0431\u0435\u0441\u043f\u0430\u0440\u043e\u043b\u044c\u043d\u043e\u0433\u043e_\u0434\u043e\u0441\u0442\u0443\u043f\u0430_\u0432_sudoers&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:73,&amp;quot;secid&amp;quot;:34,&amp;quot;range&amp;quot;:&amp;quot;76828-82238&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit35&quot; id=&quot;исходный_код_компонентов_webui-инсталлятора&quot;&gt;9. Исходный код компонентов WebUI-инсталлятора&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;9. \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 WebUI-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439_\u043a\u043e\u0434_\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432_webui-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:82,&amp;quot;secid&amp;quot;:35,&amp;quot;range&amp;quot;:&amp;quot;82239-82332&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit36&quot; id=&quot;главный_интерфейс_панели_indexhtml&quot;&gt;9.1.  Главный интерфейс панели (index.html)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Сейчас мы с вами создадим тестовое приложение для нашего сервера, которое подтвердить правильность наших действий по настройке беспарольного доступа в sudoers и отключение системной изоляции PHP-FPM, а так же настройки сервера и прав на папки и файлы.
&lt;br/&gt;

Сейчас мы не будем разбирать html, php и javascript тестового приложения, т.к. наша главная задача собрать iso - образ и при установке с флешки на сервер, убедиться в том, что все настройки сохранились и приложение взаимодействует с сервером, а написание всего web-приложения нас ждет позже,  после тестирования iso-образа.
&lt;br/&gt;

Отредактируйте файл index.html в редакторе. Целиком замените дефолтный код файла на приведенный ниже. Он формирует окно панели управления, вкладки переключения, таблицы и скрытые модальные формы:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=82&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_html&quot;&gt;index.html&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code html4strict&quot;&gt;&lt;span class=&quot;sc0&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;html&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;lang&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;ru&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/head.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;head&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/meta.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;meta&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;charset&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/meta.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;meta&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;viewport&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/title.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;title&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Control Panel&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/title.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;title&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/link.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;rel&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;css/style.css&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/head.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;head&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/body.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;body&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;window&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sc2&quot;&gt;&amp;lt;header &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;window-header&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/span.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;span&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;title&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;Control Panel&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/span.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;span&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;window-controls&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;win-btn&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;?&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;win-btn&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;—&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;win-btn&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;⬜&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;win-btn close&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;×&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;header&amp;gt;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;window-body&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sc2&quot;&gt;&amp;lt;aside &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;sidebar&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;search-box&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/input.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;input&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text&amp;quot;&lt;/span&gt; placeholder&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;🔍 Search&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sc2&quot;&gt;&amp;lt;nav &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;menu&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;menu-group&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;^ File Sharing&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;#&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;menu-item&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;📁 Shared Folder&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;#&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;menu-item&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;⇆ File Services&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;#&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;menu-item active&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;👤 User &lt;span class=&quot;sc1&quot;&gt;&amp;amp; Group&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;menu-item&amp;quot;&amp;gt;🆔 Domain/LDAP&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;div class=&amp;quot;menu-group&amp;quot;&amp;gt;^ Connectivity&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;menu-item&amp;quot;&amp;gt;🌐 External Access&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;menu-item&amp;quot;&amp;gt;🏠 Network&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;menu-item&amp;quot;&amp;gt;🛡️ Security&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;menu-item&amp;quot;&amp;gt;🐚 Terminal &amp;amp; SNMP&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/nav&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;/aside&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;main class=&amp;quot;main-content&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;tabs&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;button class=&amp;quot;tab active&amp;quot; id=&amp;quot;tab-user&amp;quot;&amp;gt;User&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;					&amp;lt;button class=&amp;quot;tab&amp;quot; id=&amp;quot;tab-group&amp;quot;&amp;gt;Group&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;button class=&amp;quot;tab&amp;quot;&amp;gt;Advanced&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;toolbar&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;div class=&amp;quot;actions&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;button class=&amp;quot;btn primary&amp;quot; id=&amp;quot;btn-create&amp;quot;&amp;gt;Create&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;button class=&amp;quot;btn&amp;quot; id=&amp;quot;btn-edit&amp;quot; disabled&amp;gt;Edit&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;button class=&amp;quot;btn&amp;quot; id=&amp;quot;btn-delete&amp;quot; disabled&amp;gt;Delete&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;button class=&amp;quot;btn&amp;quot;&amp;gt;Export ▾&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;button class=&amp;quot;btn&amp;quot;&amp;gt;Delegate ▾&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;div class=&amp;quot;filter&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;table-filter&amp;quot; placeholder=&amp;quot;∇ Filter&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;table-container&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;table id=&amp;quot;users-table&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;thead&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                            &amp;lt;tr&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                                &amp;lt;th&amp;gt;Name ▴&amp;lt;/th&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                                &amp;lt;th&amp;gt;Email&amp;lt;/th&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                                &amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                                &amp;lt;th&amp;gt;2FA Status&amp;lt;/th&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                                &amp;lt;th&amp;gt;Status&amp;lt;/th&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                            &amp;lt;/tr&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;/thead&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;tbody&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                            &amp;lt;!-- Данные загружаются через JS --&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                        &amp;lt;/tbody&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;/table&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;footer class=&amp;quot;table-footer&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;span id=&amp;quot;items-count&amp;quot;&amp;gt;0 items&amp;lt;/span&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;button id=&amp;quot;refresh-btn&amp;quot; class=&amp;quot;btn&amp;quot;&amp;gt;↻&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/footer&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;/main&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;        &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;/div&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;!-- Модальное окно Создания / Редактирования --&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;div class=&amp;quot;modal&amp;quot; id=&amp;quot;user-modal&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;        &amp;lt;div class=&amp;quot;modal-content&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;h3 id=&amp;quot;modal-title&amp;quot;&amp;gt;Create User&amp;lt;/h3&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;form id=&amp;quot;user-form&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;form-action&amp;quot; value=&amp;quot;create&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;old-username&amp;quot;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;form-group&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;label for=&amp;quot;username&amp;quot;&amp;gt;Имя пользователя:&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;username&amp;quot; required pattern=&amp;quot;^[a-z_][a-z0-9_-]*$&amp;quot; title=&amp;quot;Маленькие латинские буквы и цифры&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;form-group&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;label for=&amp;quot;description&amp;quot;&amp;gt;Описание (GECOS):&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;description&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;form-group&amp;quot; id=&amp;quot;password-group&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;label for=&amp;quot;password&amp;quot;&amp;gt;Пароль:&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;input type=&amp;quot;password&amp;quot; id=&amp;quot;password&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;div class=&amp;quot;form-buttons&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;button type=&amp;quot;button&amp;quot; class=&amp;quot;btn&amp;quot; id=&amp;quot;btn-modal-cancel&amp;quot;&amp;gt;Cancel&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                    &amp;lt;button type=&amp;quot;submit&amp;quot; class=&amp;quot;btn primary&amp;quot;&amp;gt;Save&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;                &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;            &amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;        &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;/div&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;	&amp;lt;!-- Модальное окно Групп --&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;	&amp;lt;div class=&amp;quot;modal&amp;quot; id=&amp;quot;group-modal&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;		&amp;lt;div class=&amp;quot;modal-content&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;			&amp;lt;h3&amp;gt;Create Group&amp;lt;/h3&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;			&amp;lt;form id=&amp;quot;group-form&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;				&amp;lt;div class=&amp;quot;form-group&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;					&amp;lt;label for=&amp;quot;group-name&amp;quot;&amp;gt;Имя группы:&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;					&amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;group-name&amp;quot; required pattern=&amp;quot;^[a-z_][a-z0-9_-]*$&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;				&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;				&amp;lt;div class=&amp;quot;form-buttons&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;					&amp;lt;button type=&amp;quot;button&amp;quot; class=&amp;quot;btn&amp;quot; id=&amp;quot;btn-group-cancel&amp;quot;&amp;gt;Cancel&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;					&amp;lt;button type=&amp;quot;submit&amp;quot; class=&amp;quot;btn primary&amp;quot;&amp;gt;Save&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;				&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;			&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;		&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;	&amp;lt;/div&amp;gt;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;sc1&quot;&gt;    &amp;lt;script src=&amp;quot;js/app.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;9.1.  \u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u0430\u043d\u0435\u043b\u0438 (index.html)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0433\u043b\u0430\u0432\u043d\u044b\u0439_\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441_\u043f\u0430\u043d\u0435\u043b\u0438_indexhtml&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:82,&amp;quot;secid&amp;quot;:36,&amp;quot;range&amp;quot;:&amp;quot;82333-89336&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit37&quot; id=&quot;стили_оформления_интерфейса_css_stylecss&quot;&gt;9.2. Стили оформления интерфейса (css/style.css)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создайте файл css/style.css в подпапке css/. Код задает внешний вид окна приложения, таблиц данных, кнопок управления и всплывающих модальных окон:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=83&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_css&quot;&gt;style.css&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code css&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;box-sizing&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;border-box&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-family&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; -apple-system&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; BlinkMacSystemFont&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Segoe UI&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; Roboto&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sans-serif&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
body &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background-color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f0f2f5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;align-items&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100vh&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.window&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1000px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;550px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#fff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;box-shadow&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;5px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;25px&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;rgba&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;flex-direction&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;overflow&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;hidden&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#dcdcdc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.window-header&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#fff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; space-between&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;align-items&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e2e8f0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.window-header&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;.title&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;14px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#2d3748&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.window-controls&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;.win-btn&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;8px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;pointer&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#718096&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.window-body&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;flex&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;overflow&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;hidden&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;coMULTI&quot;&gt;/* Навигация */&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.sidebar&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;230px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f7fafc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-right&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e2e8f0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.search-box&lt;/span&gt; input &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#cbd5e0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.menu-group&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;11px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;text-transform&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;uppercase&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#a0aec0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;600&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.menu-item&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;block&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;8px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#4a5568&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;text-decoration&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.menu-item&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.active&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#ebf8ff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#2b6cb0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;600&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;coMULTI&quot;&gt;/* Основная рабочая область */&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.main-content&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;flex&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;flex-direction&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;20px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.tabs&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e2e8f0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin-top&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.tab&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;20px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;pointer&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;14px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#718096&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.tab&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.active&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#3182ce&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;2px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#3182ce&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;600&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.toolbar&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; space-between&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.btn&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;14px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#cbd5e0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#fff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;pointer&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#4a5568&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.btn&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f7fafc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#a0aec0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; not-allowed&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e2e8f0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.btn&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;hover&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;not&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;disabled&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f7fafc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.btn&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.primary&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#3182ce&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#fff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#3182ce&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.btn&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.primary&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;hover&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#2b6cb0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.filter&lt;/span&gt; input &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#cbd5e0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;coMULTI&quot;&gt;/* Таблица */&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.table-container&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;flex&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;overflow-y&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;auto&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e2e8f0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;table&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-collapse&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;collapse&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
th&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; td &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;text-align&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;left&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#edf2f7&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    user-select&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
th &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f7fafc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#4a5568&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;600&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;position&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;top&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
tbody tr &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;pointer&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
tbody tr&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;hover&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#f7fafc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
tr&lt;span class=&quot;re1&quot;&gt;.selected-user&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e8f0fe&lt;/span&gt; !important&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.status-deactivated&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#e53e3e&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.status-normal&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#38a169&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.table-footer&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex-end&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;align-items&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    gap&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#718096&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;coMULTI&quot;&gt;/* Модальные окна */&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.modal&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;position&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;fixed&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;top&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;left&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;rgba&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;align-items&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;z-index&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.modal&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;.open&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.modal-content&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#fff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;20px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;400px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;box-shadow&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;rgba&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.modal-content&lt;/span&gt; h3 &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;15px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#2d3748&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.form-group&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.form-group&lt;/span&gt; label &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;block&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;12px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#4a5568&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.form-group&lt;/span&gt; input &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;8px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#cbd5e0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.form-buttons&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; flex-end&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    gap&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;margin-top&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;18px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;9.2. \u0421\u0442\u0438\u043b\u0438 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 (css\/style.css)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0442\u0438\u043b\u0438_\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f_\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430_css_stylecss&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:83,&amp;quot;secid&amp;quot;:37,&amp;quot;range&amp;quot;:&amp;quot;89337-94219&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit38&quot; id=&quot;серверный_обработчик_пользователей_api_usersphp&quot;&gt;9.3. Серверный обработчик пользователей (api/users.php)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создайте файл &lt;code&gt;api/users.php&lt;/code&gt; в подпапке &lt;code&gt;api/&lt;/code&gt;. Скрипт обрабатывает GET-запросы для вывода учетных записей (исключая технического &lt;code&gt;nobody&lt;/code&gt;) и POST-запросы для выполнения атомарных операций через &lt;code&gt;systemd-run&lt;/code&gt; в обход изоляции:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=84&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;users.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;a href=&quot;http://www.php.net/header&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;header&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;Content-Type: application/json; charset=utf-8&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// Обработка получения списка (GET)&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$_SERVER&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;REQUEST_METHOD&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;GET&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$usersList&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/is_readable&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;is_readable&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/etc/passwd&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;re0&quot;&gt;$lines&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/file&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/etc/passwd&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FILE_IGNORE_NEW_LINES &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; FILE_SKIP_EMPTY_LINES&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$lines&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/explode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;explode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;:&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/count&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;count&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$uid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;int&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$description&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;co1&quot;&gt;// Выводим root (UID 0), системных и обычных пользователей (UID &amp;gt;= 1000)&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$uid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$uid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!==&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;nobody&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;guest&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;admin&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
                    &lt;span class=&quot;co1&quot;&gt;// Сопоставление статуса активности учетной записи&lt;/span&gt;
                    &lt;span class=&quot;re0&quot;&gt;$status&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Normal&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;guest&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                        &lt;span class=&quot;re0&quot;&gt;$status&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Deactivated&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
                    &lt;span class=&quot;re0&quot;&gt;$usersList&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;
                        &lt;span class=&quot;st_h&quot;&gt;&#039;name&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                        &lt;span class=&quot;st_h&quot;&gt;&#039;email&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                        &lt;span class=&quot;st_h&quot;&gt;&#039;desc&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$description&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                        &lt;span class=&quot;st_h&quot;&gt;&#039;tfa&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Disabled&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                        &lt;span class=&quot;st_h&quot;&gt;&#039;status&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$status&lt;/span&gt;
                    &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$usersList&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; JSON_UNESCAPED_UNICODE&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// Обработка действий создания/изменения/удаления (POST)&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$_SERVER&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;REQUEST_METHOD&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;POST&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_decode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_decode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/file_get_contents&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file_get_contents&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;php://input&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;a href=&quot;http://www.php.net/isset&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;isset&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Отсутствует действие&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;re0&quot;&gt;$action&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/preg_replace&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;preg_replace&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/[^a-z0-9_-]/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$description&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/escapeshellarg&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;escapeshellarg&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;description&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$password&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;password&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Некорректное имя пользователя&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;switch&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$action&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;create&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Некорректное имя пользователя&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Генерируем хэш пароля&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$salt&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;$1$&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/substr&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;substr&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/md5&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;md5&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/uniqid&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;uniqid&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/rand&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;rand&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;$&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$hashed_password&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/crypt&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;crypt&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$password&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$salt&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$uid_gid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/rand&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;rand&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1100&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1900&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; 
&amp;nbsp;
            &lt;span class=&quot;re0&quot;&gt;$passwd_line&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;:x:&lt;span class=&quot;es4&quot;&gt;{$uid_gid}&lt;/span&gt;:&lt;span class=&quot;es4&quot;&gt;{$uid_gid}&lt;/span&gt;:&lt;span class=&quot;es4&quot;&gt;{$description}&lt;/span&gt;:/home/&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;:/bin/bash&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$shadow_line&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;:&lt;span class=&quot;es4&quot;&gt;{$hashed_password}&lt;/span&gt;:19500:0:99999:7:::&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$group_line&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;:x:&lt;span class=&quot;es4&quot;&gt;{$uid_gid}&lt;/span&gt;:&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Собираем все команды в одну строку для запуска через bash&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$system_cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;echo &#039;&lt;span class=&quot;es4&quot;&gt;{$passwd_line}&lt;/span&gt;&#039; &amp;gt;&amp;gt; /etc/passwd &amp;amp;&amp;amp; &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
                          &lt;span class=&quot;st0&quot;&gt;&amp;quot;echo &#039;&lt;span class=&quot;es4&quot;&gt;{$shadow_line}&lt;/span&gt;&#039; &amp;gt;&amp;gt; /etc/shadow &amp;amp;&amp;amp; &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
                          &lt;span class=&quot;st0&quot;&gt;&amp;quot;echo &#039;&lt;span class=&quot;es4&quot;&gt;{$group_line}&lt;/span&gt;&#039; &amp;gt;&amp;gt; /etc/group &amp;amp;&amp;amp; &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
                          &lt;span class=&quot;st0&quot;&gt;&amp;quot;mkdir -p /home/&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt; &amp;amp;&amp;amp; &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
                          &lt;span class=&quot;st0&quot;&gt;&amp;quot;chown -R &lt;span class=&quot;es4&quot;&gt;{$uid_gid}&lt;/span&gt;:&lt;span class=&quot;es4&quot;&gt;{$uid_gid}&lt;/span&gt; /home/&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Вызываем встроенную службу systemd-run. Флаг -G заставляет её отработать от root наружу.&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sudo /usr/bin/systemd-run -G /usr/bin/bash -c &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/escapeshellarg&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;escapeshellarg&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$system_cmd&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; 2&amp;gt;&amp;amp;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;a href=&quot;http://www.php.net/exec&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!==&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$err&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/implode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;implode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039; &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Ошибка запуска: &lt;span class=&quot;es4&quot;&gt;{$err}&lt;/span&gt; (Код: &lt;span class=&quot;es4&quot;&gt;{$return_var}&lt;/span&gt;)&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;update&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;// Читаем параметры из JSON-запроса от браузера&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$old_username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/preg_replace&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;preg_replace&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/[^a-z0-9_-]/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;old_username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$new_description&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;description&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$new_password&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;password&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$old_username&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Не указан пользователь для редактирования&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Экранируем описание, чтобы оно не сломало синтаксис команды sed&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$clean_desc&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/str_replace&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;str_replace&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;\/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$new_description&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// 1. Команда для обновления описания (GECOS) в /etc/passwd&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$update_cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sed -i -E &#039;s/^(&lt;span class=&quot;es4&quot;&gt;{$old_username}&lt;/span&gt;:[^:]*:[^:]*:[^:]*):[^:]*(:.*)/&lt;span class=&quot;es1&quot;&gt;\\&lt;/span&gt;1:&lt;span class=&quot;es4&quot;&gt;{$clean_desc}&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\\&lt;/span&gt;2/&#039; /etc/passwd&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// 2. Если в форму ввели новый пароль — добавляем команду обновления хэша в /etc/shadow&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$new_password&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$salt&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;$1$&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/substr&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;substr&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/md5&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;md5&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/uniqid&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;uniqid&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/rand&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;rand&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;$&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$hashed_password&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/crypt&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;crypt&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$new_password&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$salt&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$clean_hash&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/str_replace&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;str_replace&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;\/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$hashed_password&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;re0&quot;&gt;$update_cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;amp;&amp;amp; sed -i -E &#039;s/^(&lt;span class=&quot;es4&quot;&gt;{$old_username}&lt;/span&gt;:)[^:]*(:.*)/&lt;span class=&quot;es1&quot;&gt;\\&lt;/span&gt;1&lt;span class=&quot;es4&quot;&gt;{$clean_hash}&lt;/span&gt;&lt;span class=&quot;es1&quot;&gt;\\&lt;/span&gt;2/&#039; /etc/shadow&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Вызываем итоговую команду через systemd-run наружу от root&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sudo /usr/bin/systemd-run -G /usr/bin/bash -c &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/escapeshellarg&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;escapeshellarg&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$update_cmd&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; 2&amp;gt;&amp;amp;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;a href=&quot;http://www.php.net/exec&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$err&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/implode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;implode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039; &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Ошибка обновления: &lt;span class=&quot;es4&quot;&gt;{$err}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;delete&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;root&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Удаление root запрещено&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Формируем команды для полной очистки записей из passwd, shadow, group и удаления папки&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$delete_cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sed -i &#039;/^&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;:/d&#039; /etc/passwd &amp;amp;&amp;amp; &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
                          &lt;span class=&quot;st0&quot;&gt;&amp;quot;sed -i &#039;/^&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;:/d&#039; /etc/shadow &amp;amp;&amp;amp; &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
                          &lt;span class=&quot;st0&quot;&gt;&amp;quot;sed -i &#039;/^&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;:/d&#039; /etc/group &amp;amp;&amp;amp; &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
                          &lt;span class=&quot;st0&quot;&gt;&amp;quot;rm -rf /home/&lt;span class=&quot;es4&quot;&gt;{$username}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Вызываем команду через systemd-run наружу от имени root&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sudo /usr/bin/systemd-run -G /usr/bin/bash -c &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/escapeshellarg&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;escapeshellarg&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$delete_cmd&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; 2&amp;gt;&amp;amp;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;a href=&quot;http://www.php.net/exec&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$err&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/implode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;implode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039; &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Ошибка удаления: &lt;span class=&quot;es4&quot;&gt;{$err}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Неизвестная операция&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;9.3. \u0421\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 (api\/users.php)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439_\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439_api_usersphp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:84,&amp;quot;secid&amp;quot;:38,&amp;quot;range&amp;quot;:&amp;quot;94220-102358&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit39&quot; id=&quot;серверный_обработчик_групп_api_groupsphp&quot;&gt;9.4. Серверный обработчик групп (api/groups.php)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создайте файл &lt;code&gt;api/groups.php&lt;/code&gt; в подпапке &lt;code&gt;api/&lt;/code&gt;. Скрипт парсит системный файл &lt;code&gt;/etc/group&lt;/code&gt;, выстраивает связи участников и нативно создаёт/удаляет группы в ОС через &lt;code&gt;systemd-run&lt;/code&gt;:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=85&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;groups.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;a href=&quot;http://www.php.net/header&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;header&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;Content-Type: application/json; charset=utf-8&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_decode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_decode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/file_get_contents&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file_get_contents&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;php://input&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$action&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;re0&quot;&gt;$_SERVER&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;REQUEST_METHOD&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// --- ОБРАБОТКА ПОЛУЧЕНИЯ СПИСКА ГРУПП (GET) ---&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$action&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;GET&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$groupsList&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/is_readable&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;is_readable&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/etc/group&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;re0&quot;&gt;$lines&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/file&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/etc/group&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FILE_IGNORE_NEW_LINES &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; FILE_SKIP_EMPTY_LINES&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$lines&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;// Формат /etc/group: имя_группы:пароль:GID:список_пользователей&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/explode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;explode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;:&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/count&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;count&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$group_name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$gid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;int&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$users&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$parts&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// Пользователи через запятую&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;co1&quot;&gt;// Фильтруем системные группы, оставляем root (GID 0), wheel и кастомные (GID &amp;gt;= 1000)&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$gid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$gid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;998&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$gid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    &lt;span class=&quot;co1&quot;&gt;// Исключаем технического nobody&lt;/span&gt;
                    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$group_name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!==&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;nobody&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                        &lt;span class=&quot;re0&quot;&gt;$groupsList&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;
                            &lt;span class=&quot;st_h&quot;&gt;&#039;name&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$group_name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                            &lt;span class=&quot;st_h&quot;&gt;&#039;gid&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$gid&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                            &lt;span class=&quot;st_h&quot;&gt;&#039;users&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$users&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; ? &lt;span class=&quot;st_h&quot;&gt;&#039;—&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;a href=&quot;http://www.php.net/str_replace&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;str_replace&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;,&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;, &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$users&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                            &lt;span class=&quot;st_h&quot;&gt;&#039;status&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Normal&#039;&lt;/span&gt;
                        &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$groupsList&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; JSON_UNESCAPED_UNICODE&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// --- ОБРАБОТКА ИЗМЕНЕНИЙ (POST) ---&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$_SERVER&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;REQUEST_METHOD&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;POST&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$group_name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/preg_replace&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;preg_replace&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/[^a-z0-9_-]/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;group_name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ?? &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$group_name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Некорректное имя группы&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;switch&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;create&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;// Создание группы через systemd-run наружу от root&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sudo /usr/bin/systemd-run -G /usr/bin/bash -c &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/escapeshellarg&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;escapeshellarg&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;groupadd &lt;span class=&quot;es4&quot;&gt;{$group_name}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; 2&amp;gt;&amp;amp;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;a href=&quot;http://www.php.net/exec&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$err&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/implode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;implode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039; &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Ошибка создания группы: &lt;span class=&quot;es4&quot;&gt;{$err}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;delete&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$group_name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;root&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$group_name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;wheel&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Удаление системных групп запрещено&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;// Удаление группы&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sudo /usr/bin/systemd-run -G /usr/bin/bash -c &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;a href=&quot;http://www.php.net/escapeshellarg&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;escapeshellarg&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;groupdel &lt;span class=&quot;es4&quot;&gt;{$group_name}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; 2&amp;gt;&amp;amp;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;a href=&quot;http://www.php.net/exec&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$return_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$err&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/implode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;implode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039; &#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Ошибка удаления группы: &lt;span class=&quot;es4&quot;&gt;{$err}&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;success&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;error&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Неизвестная операция&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;a href=&quot;http://www.php.net/exit&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;9.4. \u0421\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0433\u0440\u0443\u043f\u043f (api\/groups.php)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439_\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a_\u0433\u0440\u0443\u043f\u043f_api_groupsphp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:85,&amp;quot;secid&amp;quot;:39,&amp;quot;range&amp;quot;:&amp;quot;102359-106338&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit40&quot; id=&quot;клиентские_скрипты_логики_js_appjs&quot;&gt;9.5. Клиентские скрипты логики (js/app.js)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создайте файл &lt;code&gt;js/app.js&lt;/code&gt; в подпапке &lt;code&gt;js/&lt;/code&gt;. Скрипт управляет асинхронным обновлением таблиц (fetch), переключением контекста вкладок, фильтрацией на лету и валидацией полей ввода:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=86&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;app.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code javascript&quot;&gt;document.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;DOMContentLoaded&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; tableBody &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;querySelector&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;#users-table tbody&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; itemsCount &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;items-count&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; refreshBtn &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;refresh-btn&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; filterInput &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;table-filter&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Кнопки управления&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; btnCreate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;btn-create&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; btnEdit &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;btn-edit&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; btnDelete &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;btn-delete&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Элементы модального окна&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; userModal &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;user-modal&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; userForm &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;user-form&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; modalTitle &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;modal-title&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; btnModalCancel &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;btn-modal-cancel&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    let selectedUsername &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    let selectedUserRow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Загрузка данных&lt;/span&gt;
    async &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; loadUsers&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; response &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await fetch&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;api/users.php&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;response.&lt;span class=&quot;me1&quot;&gt;ok&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;throw&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;new&lt;/span&gt; Error&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Ошибка сервера&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await response.&lt;span class=&quot;me1&quot;&gt;json&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            renderTable&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            resetSelection&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            alert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Не удалось обновить список пользователей&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; renderTable&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;users&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        tableBody.&lt;span class=&quot;me1&quot;&gt;innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        users.&lt;span class=&quot;me1&quot;&gt;forEach&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; tr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;createElement&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;tr&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            tr.&lt;span class=&quot;me1&quot;&gt;dataset&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;username&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; user.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            tr.&lt;span class=&quot;me1&quot;&gt;dataset&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;desc&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; user.&lt;span class=&quot;me1&quot;&gt;desc&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; statusClass &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; user.&lt;span class=&quot;me1&quot;&gt;status&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Normal&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;status-normal&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;status-deactivated&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            tr.&lt;span class=&quot;me1&quot;&gt;innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;b&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;b&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user.&lt;span class=&quot;me1&quot;&gt;email&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user.&lt;span class=&quot;me1&quot;&gt;desc&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user.&lt;span class=&quot;me1&quot;&gt;tfa&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td &lt;span class=&quot;kw5&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;${statusClass}&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user.&lt;span class=&quot;me1&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            `&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;co1&quot;&gt;// Логика выбора строки кликом&lt;/span&gt;
            tr.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;selectedUserRow&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; selectedUserRow.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;selected-user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;selectedUsername &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; user.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    resetSelection&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    selectedUsername &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; user.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    selectedUserRow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tr&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    tr.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;selected-user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    btnEdit.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    &lt;span class=&quot;co1&quot;&gt;// Запрещаем удалять root-пользователя напрямую из UI ради безопасности&lt;/span&gt;
                    btnDelete.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;user.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;root&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            tableBody.&lt;span class=&quot;me1&quot;&gt;appendChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        itemsCount.&lt;span class=&quot;me1&quot;&gt;textContent&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;users.&lt;span class=&quot;me1&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; items`&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; resetSelection&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        selectedUsername &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        selectedUserRow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        btnEdit.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        btnDelete.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Фильтрация таблицы&lt;/span&gt;
    filterInput.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;input&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;e&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; value &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; e.&lt;span class=&quot;me1&quot;&gt;target&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;toLowerCase&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw4&quot;&gt;Array&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tableBody.&lt;span class=&quot;me1&quot;&gt;querySelectorAll&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;tr&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;forEach&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tr &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; match &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tr.&lt;span class=&quot;me1&quot;&gt;textContent&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;toLowerCase&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;includes&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;value&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            tr.&lt;span class=&quot;me1&quot;&gt;style&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;display&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; match &lt;span class=&quot;sy0&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;none&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Открытие модального окна создания&lt;/span&gt;
    btnCreate.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        userForm.&lt;span class=&quot;me1&quot;&gt;reset&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;form-action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;create&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;password-group&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;style&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;display&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;block&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        modalTitle.&lt;span class=&quot;me1&quot;&gt;textContent&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Create User&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        userModal.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Открытие модального окна редактирования&lt;/span&gt;
    btnEdit.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;selectedUsername&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        userForm.&lt;span class=&quot;me1&quot;&gt;reset&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;form-action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;update&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;old-username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; selectedUsername&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; usernameInput &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        usernameInput.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; selectedUsername&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        usernameInput.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// Имя пользователя в Linux менять через useradd напрямую нельзя&lt;/span&gt;
&amp;nbsp;
        document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;description&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; selectedUserRow.&lt;span class=&quot;me1&quot;&gt;dataset&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;desc&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;password-group&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;style&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;display&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;block&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// Пароль заполнять по желанию&lt;/span&gt;
&amp;nbsp;
        modalTitle.&lt;span class=&quot;me1&quot;&gt;textContent&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Edit User&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        userModal.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Обработка кнопки удаления&lt;/span&gt;
    btnDelete.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; async &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;selectedUsername&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;confirm&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;`Вы уверены&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; что хотите удалить пользователя $&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;selectedUsername&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; вместе с домашней директорией&lt;span class=&quot;sy0&quot;&gt;?&lt;/span&gt;`&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            await sendAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; action&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;delete&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; username&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; selectedUsername &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Закрытие модального окна&lt;/span&gt;
    btnModalCancel.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; userModal.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Отправка формы (Создание / Изменение)&lt;/span&gt;
    userForm.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;submit&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; async &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;e&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        e.&lt;span class=&quot;me1&quot;&gt;preventDefault&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; action &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;form-action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; payload &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            action&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; action&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            username&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            description&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;description&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            password&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;password&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            old_username&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;old-username&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
        await sendAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;payload&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        userModal.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    async &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; sendAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; response &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await fetch&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;api/users.php&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                method&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;POST&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                headers&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Content-Type&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;application/json&#039;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                body&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; JSON.&lt;span class=&quot;me1&quot;&gt;stringify&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await response.&lt;span class=&quot;me1&quot;&gt;json&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;result.&lt;span class=&quot;me1&quot;&gt;success&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                loadUsers&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                alert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Ошибка: &#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; result.&lt;span class=&quot;me1&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            alert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Ошибка сети при отправке запроса&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; text.&lt;span class=&quot;me1&quot;&gt;toString&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;/&amp;amp;/g&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;amp;amp;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;/&amp;lt;/g&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;amp;lt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;/&amp;gt;/g&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;amp;gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    refreshBtn.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; loadUsers&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    loadUsers&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// --- ЛОГИКА ВКЛАДКИ GROUP ---&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; tabUser &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;tab-user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; tabGroup &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;tab-group&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; tableHeader &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;querySelector&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;#users-table thead tr&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; groupModal &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;group-modal&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; groupForm &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;group-form&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; btnGroupCancel &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;btn-group-cancel&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    let currentTab &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;user&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// Храним активную вкладку (&#039;user&#039; или &#039;group&#039;)&lt;/span&gt;
    let selectedGroupName &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Переключение на вкладку User&lt;/span&gt;
    tabUser.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        tabGroup.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;active&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        tabUser.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;active&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        currentTab &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;user&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        tableHeader.&lt;span class=&quot;me1&quot;&gt;innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Name ▴&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Email&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Description&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;2FA Status&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Status&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
        `&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        resetSelection&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        loadUsers&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// Вызываем старую функцию загрузки пользователей&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Переключение на вкладку Group&lt;/span&gt;
    tabGroup.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        tabUser.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;active&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        tabGroup.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;active&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        currentTab &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;group&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        tableHeader.&lt;span class=&quot;me1&quot;&gt;innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Group Name ▴&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;GID&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Members &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Users&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Status&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;th&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
        `&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        resetSelection&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        loadGroups&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Загрузка групп с бэкенда&lt;/span&gt;
    async &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; loadGroups&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; response &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await fetch&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;api/groups.php&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; groups &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await response.&lt;span class=&quot;me1&quot;&gt;json&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            renderGroupsTable&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;groups&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            alert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Ошибка загрузки групп&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; renderGroupsTable&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;groups&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        tableBody.&lt;span class=&quot;me1&quot;&gt;innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        groups.&lt;span class=&quot;me1&quot;&gt;forEach&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;group &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; tr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;createElement&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;tr&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            tr.&lt;span class=&quot;me1&quot;&gt;innerHTML&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;b&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;group.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;b&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;group.&lt;span class=&quot;me1&quot;&gt;gid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;escapeHtml&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;group.&lt;span class=&quot;me1&quot;&gt;users&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;td &lt;span class=&quot;kw5&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;status-normal&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;group.&lt;span class=&quot;me1&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;td&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
            `&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
            tr.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;selectedUserRow&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; selectedUserRow.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;selected-user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;selectedGroupName &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; group.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    selectedGroupName &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    selectedUserRow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    btnDelete.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    selectedGroupName &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; group.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    selectedUserRow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tr&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    tr.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;selected-user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                    btnEdit.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// Для групп редактирование отключим&lt;/span&gt;
                    btnDelete.&lt;span class=&quot;me1&quot;&gt;disabled&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;group.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;root&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; group.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;wheel&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            tableBody.&lt;span class=&quot;me1&quot;&gt;appendChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        itemsCount.&lt;span class=&quot;me1&quot;&gt;textContent&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; `$&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;groups.&lt;span class=&quot;me1&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; items`&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Модифицируем общие кнопки под контекст активной вкладки&lt;/span&gt;
    btnCreate.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;e&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;currentTab &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;group&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            e.&lt;span class=&quot;me1&quot;&gt;stopPropagation&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// Останавливаем открытие модалки пользователей&lt;/span&gt;
            groupForm.&lt;span class=&quot;me1&quot;&gt;reset&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            groupModal.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    btnDelete.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; async &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;currentTab &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;group&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; selectedGroupName&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;confirm&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;`Удалить группу $&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;selectedGroupName&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;?&lt;/span&gt;`&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                await sendGroupAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; action&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;delete&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; group_name&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; selectedGroupName &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    btnGroupCancel.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; groupModal.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    groupForm.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;submit&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; async &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;e&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        e.&lt;span class=&quot;me1&quot;&gt;preventDefault&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        await sendGroupAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            action&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;create&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            group_name&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; document.&lt;span class=&quot;me1&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;group-name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;value&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        groupModal.&lt;span class=&quot;me1&quot;&gt;classList&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;open&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    async &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; sendGroupAction&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; response &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await fetch&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;api/groups.php&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                method&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;POST&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                headers&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;Content-Type&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;application/json&#039;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                body&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; JSON.&lt;span class=&quot;me1&quot;&gt;stringify&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;const&lt;/span&gt; result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; await response.&lt;span class=&quot;me1&quot;&gt;json&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;result.&lt;span class=&quot;me1&quot;&gt;success&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                loadGroups&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                alert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Ошибка: &#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; result.&lt;span class=&quot;me1&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            alert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Ошибка сети при обработке группы&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Модифицируем круглую кнопку обновления (↻)&lt;/span&gt;
    refreshBtn.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;currentTab &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;group&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; loadGroups&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Сохраним файлы и проверим в окне браузера, перейдя по ссылке &lt;a href=&quot;http://192.168.1.72:7000/&quot; class=&quot;urlextern&quot; title=&quot;http://192.168.1.72:7000/&quot; rel=&quot;ugc nofollow&quot;&gt;http://192.168.1.72:7000/&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_255.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_255.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_255.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
мы видим вывод в таблице наших пользователей root и eva, проверим работу web-страницы на предмет добавления пользователя irina с описанием new user и alisa / admin
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_256.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_256.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_256.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Проверим новых пользователей в консоли 
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=87&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;^root|^eva|^irina|^alisa|:[0-9]{4}:&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;passwd&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_257.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_257.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_257.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Внимание! Пользователей root и eva не удаляем, иначе консоль отключиться и мы с вами больше не попадем в управление сервером, а без пользователей с правами суперпользователей система нас просто не пустит. &lt;br/&gt;

Удалим строго только новых пользователей в веб-приложении.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_258.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_258.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_258.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
И снова проверим консоль
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=88&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;^root|^eva|^irina|^alisa|:[0-9]{4}:&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;passwd&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_259.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_259.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_259.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:nginx_html.rar&quot; class=&quot;media mediafile mf_rar&quot; title=&quot;software:linux_server:arch_linux:nginx_html.rar (10 KB)&quot;&gt; Скачать файлы тестового web-приложения&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;9.5. \u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u043b\u043e\u0433\u0438\u043a\u0438 (js\/app.js)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435_\u0441\u043a\u0440\u0438\u043f\u0442\u044b_\u043b\u043e\u0433\u0438\u043a\u0438_js_appjs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:86,&amp;quot;secid&amp;quot;:40,&amp;quot;range&amp;quot;:&amp;quot;106339-120665&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit41&quot; id=&quot;пункт_10а_временно_не_выполняем&quot;&gt;!!!!!!!!!!!! Пункт 10А Временно не выполняем !!!!!!!!!!!!&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;!!!!!!!!!!!! \u041f\u0443\u043d\u043a\u0442 10\u0410 \u0412\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c !!!!!!!!!!!!&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0443\u043d\u043a\u0442_10\u0430_\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e_\u043d\u0435_\u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:89,&amp;quot;secid&amp;quot;:41,&amp;quot;range&amp;quot;:&amp;quot;120666-120831&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit42&quot; id=&quot;a_сокращение_времени_выбора_загрузки&quot;&gt;10_A. Сокращение времени выбора загрузки&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
10_A.1 Сокращение времени выбора systemd-boot
Чтобы сократить время выбора операционной системы и ускорить загрузку в systemd-boot, вам нужно изменить параметр timeout в главном конфигурационном файле загрузчика.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;редактирование_файла_timeout&quot;&gt;20.1.2. Редактирование файла timeout&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Откройте файл конфигурации загрузчика в текстовом редакторе (например, nano) с правами суперпользователя:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=89&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;efi&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;если_у_вас_раздел_efi_примонтирован_по_стандартному_пути_boot_используйте&quot;&gt;20.1.1. Если у вас раздел EFI примонтирован по стандартному пути /boot, используйте&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=90&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_времени_загрузки&quot;&gt;20.1.2. Установка времени загрузки&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Найдите строку с параметром timeout и установите желаемое время в секундах. Например, чтобы установить задержку всего в 1 секунду, укажите: 
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=91&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;timeout &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
(Если вы хотите скрыть меню загрузчика и сразу загружать ОС по умолчанию, установите timeout 0).
&lt;br/&gt;

Сохраните изменения (в nano нажмите Ctrl+O, затем Enter) и закройте файл (Ctrl+X).
&lt;br/&gt;

Если вам понадобится зайти в меню загрузчика во время загрузки системы, просто удерживайте нажатой или периодически нажимайте клавишу &lt;strong&gt;Пробел (Space)&lt;/strong&gt; сразу после включения компьютера.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10_A. \u0421\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u0431\u043e\u0440\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;a_\u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435_\u0432\u0440\u0435\u043c\u0435\u043d\u0438_\u0432\u044b\u0431\u043e\u0440\u0430_\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:89,&amp;quot;secid&amp;quot;:42,&amp;quot;range&amp;quot;:&amp;quot;120832-122798&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit43&quot; id=&quot;a2_сокращение_времени_выбора_grub&quot;&gt;10_A.2. Сокращение времени выбора grub&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Чтобы сократить время ожидания меню GRUB в Arch Linux, измените значение тайм-аута в основном файле конфигурации и обновите загрузчик.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;редактирование_файла_timeout1&quot;&gt;20.2.1. Редактирование файла timeout&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Откройте файл конфигурации в текстовом редакторе (например, nano):
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=92&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;default&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;grub&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_времени&quot;&gt;20.2.2. Установка времени&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Найдите параметр GRUB_TIMEOUT и задайте желаемое время в секундах (например, 2):  
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=93&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;GRUB_TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;сохранение_изменений&quot;&gt;20.2.2.1. Сохранение изменений&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Сохраните изменения и обновите файл конфигурации GRUB:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=94&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; grub-mkconfig &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;grub&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;grub.cfg&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;пропуск_показа_меню&quot;&gt;20.2.3. Пропуск показа меню&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Дополнительно можно включить пропуск показа меню при единственной ОС:
&lt;/p&gt;

&lt;p&gt;
Раскомментируйте или добавьте строку:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=95&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;GRUB_HIDDEN_TIMEOUT_QUIET&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Снова выполните команду обновления:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=96&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; grub-mkconfig &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;grub&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;grub.cfg&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;пропуск_задержки&quot;&gt;20.2.3. Пропуск задержки&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Если вы хотите полностью убрать задержку, установите 
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=97&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;GRUB_TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;. &lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
В таком случае, чтобы открыть меню GRUB при следующей загрузке, зажмите и удерживайте клавишу &lt;strong&gt;Shift (в режиме BIOS)&lt;/strong&gt; или &lt;strong&gt;Esc (в режиме UEFI)&lt;/strong&gt; сразу после включения компьютера
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10_A.2. \u0421\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u0431\u043e\u0440\u0430 grub&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;a2_\u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435_\u0432\u0440\u0435\u043c\u0435\u043d\u0438_\u0432\u044b\u0431\u043e\u0440\u0430_grub&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:92,&amp;quot;secid&amp;quot;:43,&amp;quot;range&amp;quot;:&amp;quot;122799-124811&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit44&quot; id=&quot;пункт_10b_временно_не_выполняем&quot;&gt;!!!!!!!!!!!! Пункт 10B Временно не выполняем !!!!!!!!!!!!&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;!!!!!!!!!!!! \u041f\u0443\u043d\u043a\u0442 10B \u0412\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c !!!!!!!!!!!!&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0443\u043d\u043a\u0442_10b_\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e_\u043d\u0435_\u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:98,&amp;quot;secid&amp;quot;:44,&amp;quot;range&amp;quot;:&amp;quot;124812-124909&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit45&quot; id=&quot;b_создание_arch_linux_recovery&quot;&gt;10B. Создание Arch Linux Recovery&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Для создания изолированного раздела восстановления в Arch Linux проще всего использовать связку из отдельного раздела на диске, образа Arch Linux ISO и загрузчика GRUB. Это позволит загружаться в полноценную среду восстановления прямо с диска, даже если основная система перестала работать.Ниже приведена пошаговая инструкция для реализации этого решения.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10B. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 Arch Linux Recovery&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;b_\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_arch_linux_recovery&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:98,&amp;quot;secid&amp;quot;:45,&amp;quot;range&amp;quot;:&amp;quot;124910-125599&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit46&quot; id=&quot;b1_подготовка_раздела&quot;&gt;10B.1. Подготовка раздела&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;b11откройте_терминал_и_запустите_утилиту_для_разметки_диска_fdisk_указав_нужный_диск&quot;&gt;10B.1.1.Откройте терминал и запустите утилиту для разметки диска fdisk , указав нужный диск:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=98&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;fdisk&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nvme0n1 &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;или &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sda&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;b12_создайте_новый_раздел_размером_от_15_до_3_гб_достаточный_для_размещения_iso-образа&quot;&gt;10B.1.2. Создайте новый раздел размером от 1.5 до 3 ГБ (достаточный для размещения ISO-образа).&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;b13_измените_его_тип_код_на_стандартный_раздел_данных_linux&quot;&gt;10B.1.3. Измените его тип (код) на стандартный раздел данных Linux.&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;b14_отформатируйте_раздел_в_файловую_систему_ext4&quot;&gt;10B.1.4. Отформатируйте раздел в файловую систему ext4:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=99&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; mkfs.ext4 &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nvme0n1pX &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;укажите номер вашего раздела&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10B.1. \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;b1_\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430_\u0440\u0430\u0437\u0434\u0435\u043b\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:98,&amp;quot;secid&amp;quot;:46,&amp;quot;range&amp;quot;:&amp;quot;125600-126389&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit47&quot; id=&quot;b2_загрузка_и_перенос_iso-образа&quot;&gt;10B.2. Загрузка и перенос ISO-образа&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;b21_смонтируйте_созданный_раздел&quot;&gt;10B.2.1. Смонтируйте созданный раздел:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=100&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nvme0n1pX &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
=== 10B.2.2. Перейдите на Arch Linux Downloads и скопируйте прямую ссылку на актуальный archlinux-x86_64.iso (или используйте wget). 
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;b23_скачайте_образ_прямо_в_корень_смонтированного_раздела&quot;&gt;10B.2.3. Скачайте образ прямо в корень смонтированного раздела:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=101&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;wget&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-O&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch-recovery.iso ССЫЛКА_НА_ОФИЦИАЛЬНЫЙ_ISO&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10B.2. \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0438 \u043f\u0435\u0440\u0435\u043d\u043e\u0441 ISO-\u043e\u0431\u0440\u0430\u0437\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;b2_\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430_\u0438_\u043f\u0435\u0440\u0435\u043d\u043e\u0441_iso-\u043e\u0431\u0440\u0430\u0437\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:100,&amp;quot;secid&amp;quot;:47,&amp;quot;range&amp;quot;:&amp;quot;126390-127013&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit48&quot; id=&quot;b3_настройка_загрузчика_grub&quot;&gt;10B.3. Настройка загрузчика (GRUB)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Для того чтобы GRUB видел образ и мог в него загрузиться, нужно добавить специальный пункт в конфигурацию.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;b31_установите_пакет_grub-imageboot_если_он_есть_в_репозитории_или_добавьте_параметры_вручную&quot;&gt;10B.3.1. Установите пакет grub-imageboot, если он есть в репозитории (или добавьте параметры вручную).&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;b32_отредактируйте_файл_etc_grubd_40_custom&quot;&gt;10B.3.2. Отредактируйте файл /etc/grub.d/40_custom:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=102&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;grub.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;40&lt;/span&gt;_custom&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;b33_добавьте_следующий_блок_конфигурации_в_конец_файла_замените_uuid_на_uuid_вашего_раздела_с_iso-образом_узнать_его_можно_командой_lsblk_-f&quot;&gt;10B.3.3. Добавьте следующий блок конфигурации в конец файла (замените UUID на UUID вашего раздела с ISO-образом, узнать его можно командой lsblk -f):&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=103&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;menuentry &lt;span class=&quot;st0&quot;&gt;&amp;quot;Arch Linux Recovery&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
insmod ext2
insmod loopback
insmod iso9660
&lt;span class=&quot;co0&quot;&gt;# Указываем UUID раздела восстановления&lt;/span&gt;
search &lt;span class=&quot;re5&quot;&gt;--no-floppy&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--fs-uuid&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--set&lt;/span&gt;=root ВАШ_UUID_РАЗДЕЛА
loopback loop &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch-recovery.iso
linux &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;loop&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux &lt;span class=&quot;re2&quot;&gt;img_dev&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;disk&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;by-uuid&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
ВАШ_UUID_РАЗДЕЛА &lt;span class=&quot;re2&quot;&gt;img_loop&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch-recovery.iso 
&lt;span class=&quot;re2&quot;&gt;archisobasedir&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;cow_space_size&lt;/span&gt;=256M &lt;span class=&quot;re2&quot;&gt;earlymodules&lt;/span&gt;=loop
initrd &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;loop&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;initramfs-linux.img
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10B.3. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 (GRUB)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;b3_\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430_grub&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:102,&amp;quot;secid&amp;quot;:48,&amp;quot;range&amp;quot;:&amp;quot;127014-128350&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit49&quot; id=&quot;b_обновите_конфигурацию_grub_чтобы_изменения_вступили_в_силу&quot;&gt;0.10B. Обновите конфигурацию GRUB, чтобы изменения вступили в силу:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
sudo grub-mkconfig -o /boot/grub/grub.cfg
&amp;lt;/code&amp;gt;
Теперь при перезагрузке компьютера вы сможете выбрать пункт «Arch Linux Recovery» в меню GRUB, который запустит Live-окружение для восстановления основной системы.
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
!!!!!!!!!!!  РЕДАКТИРОВАТЬ В ЭТОТ ПУНК !!!!!!!!!!!!!!!
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;0.10B. \u041e\u0431\u043d\u043e\u0432\u0438\u0442\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e GRUB, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432\u0441\u0442\u0443\u043f\u0438\u043b\u0438 \u0432 \u0441\u0438\u043b\u0443:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;b_\u043e\u0431\u043d\u043e\u0432\u0438\u0442\u0435_\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e_grub_\u0447\u0442\u043e\u0431\u044b_\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f_\u0432\u0441\u0442\u0443\u043f\u0438\u043b\u0438_\u0432_\u0441\u0438\u043b\u0443&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:104,&amp;quot;secid&amp;quot;:49,&amp;quot;range&amp;quot;:&amp;quot;128351-128967&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit50&quot; id=&quot;пункт_в_работе&quot;&gt;Пункт в работе&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Для создания собственного Headless Arch ISO (без графического интерфейса, для серверов или восстановления) с использованием squashfs-tools, zram-generator (для оптимизации работы в ОЗУ) и xorriso (для сборки образа), вам нужно выполнить пять основных шагов. В качестве базовой основы проще всего модифицировать официальный Arch ISO.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0443\u043d\u043a\u0442 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0443\u043d\u043a\u0442_\u0432_\u0440\u0430\u0431\u043e\u0442\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:104,&amp;quot;secid&amp;quot;:50,&amp;quot;range&amp;quot;:&amp;quot;128968-129563&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit51&quot; id=&quot;ниже_1-5_пункты_после_выполнения_запихивания_нашего_образа_и_внутрь&quot;&gt;!!!!!!!!! Ниже 1-5 пункты после выполнения запихивания нашего образа и внутрь&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
отлично и в скопированных файлах ее точно не должно быть«Все верно, вы абсолютно правы! В самой папке /mnt/new_iso/ файла airootfs.sfs быть не должно, когда вы начнете сборку новой системы.Вы очень точно подметили этот архитектурный нюанс. Вот почему все делается именно так:Почему его исключили из копированияОн будет переписан заново: Старый (оригинальный) файл airootfs.sfs вам не нужен внутри нового ISO, ведь ваша цель — внести изменения (установить программы, поменять настройки).Процесс сборки:Вы распаковываете оригинал в рабочую папку (/mnt/new_iso/squashfs).Меняете там всё, что хотите, через chroot.Специальная утилита сборщика (например, mksquashfs) берет вашу измененную папку squashfs и с нуля упаковывает её в совершенно новый файл airootfs.sfs.Этот новый файл утилита сама положит в arch/x86_64/ прямо перед созданием финального .iso образа.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;!!!!!!!!! \u041d\u0438\u0436\u0435 1-5 \u043f\u0443\u043d\u043a\u0442\u044b \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0438\u0445\u0438\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430 \u0438 \u0432\u043d\u0443\u0442\u0440\u044c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0438\u0436\u0435_1-5_\u043f\u0443\u043d\u043a\u0442\u044b_\u043f\u043e\u0441\u043b\u0435_\u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0437\u0430\u043f\u0438\u0445\u0438\u0432\u0430\u043d\u0438\u044f_\u043d\u0430\u0448\u0435\u0433\u043e_\u043e\u0431\u0440\u0430\u0437\u0430_\u0438_\u0432\u043d\u0443\u0442\u0440\u044c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:104,&amp;quot;secid&amp;quot;:51,&amp;quot;range&amp;quot;:&amp;quot;129564-131171&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit52&quot; id=&quot;подготовка_и_распаковка&quot;&gt;1. Подготовка и распаковка&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создайте рабочую директорию и структуру будущего ISO:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=104&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;iso_root,arch_root&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Установите необходимые инструменты на хост-системе:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=105&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; squashfs-tools xorriso arch-install-scripts&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Скачайте актуальный образ с официального сайта и подготовьте директории:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=106&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso
&lt;span class=&quot;co0&quot;&gt;# Монтируем оригинальный ISO&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; loop archlinux-xxxx.xx.xx-x86_64.iso &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso
&lt;span class=&quot;co0&quot;&gt;# Копируем содержимое (кроме squashfs, который находится в папке arch)&lt;/span&gt;
rsync &lt;span class=&quot;re5&quot;&gt;-a&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--exclude&lt;/span&gt;=airootfs.sfs &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1. \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430_\u0438_\u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:104,&amp;quot;secid&amp;quot;:52,&amp;quot;range&amp;quot;:&amp;quot;131172-132052&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit53&quot; id=&quot;настройка_squashfs_образа&quot;&gt;2. Настройка SquashFS образа&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Распакуйте оригинальный файловый архив в отдельную временную папку, чтобы добавить zram-generator и убрать лишнее:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=107&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;official_iso
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; loop archlinux-XXXX.XX.XX-x86_64.iso &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;official_iso
unsquashfs &lt;span class=&quot;re5&quot;&gt;-d&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_root &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;official_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;umount&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;official_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Используйте код с осторожностью.Переключитесь в окружение (chroot) для установки нужных пакетов и настройки zram-generator:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=108&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-t&lt;/span&gt; proc &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;proc &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;squashfs&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;proc
&lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--rbind&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;squashfs&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys
&lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--rbind&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;squashfs&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev
&lt;span class=&quot;kw2&quot;&gt;chroot&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;squashfs&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 SquashFS \u043e\u0431\u0440\u0430\u0437\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_squashfs_\u043e\u0431\u0440\u0430\u0437\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:107,&amp;quot;secid&amp;quot;:53,&amp;quot;range&amp;quot;:&amp;quot;132053-132911&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit54&quot; id=&quot;настройка_zram-generator_и_отключение_ntp&quot;&gt;3. Настройка zram-generator и отключение NTP&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;вход_в_окружение_chroot&quot;&gt;3.1 Вход в окружение (Chroot):&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=109&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; arch-chroot ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_root&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;установите_пакет&quot;&gt;3.1.1. установите пакет:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=110&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; zram-generator&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создайте_конфигурационный_файл_для_автоматического_создания_сжатого_раздела_подкачки_в_оперативной_памяти&quot;&gt;3.1.2. Создайте конфигурационный файл для автоматического создания сжатого раздела подкачки в оперативной памяти:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=111&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;EOF &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;zram-generator.conf
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;zram0&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
zram-size = ram &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
compression-algorithm = zstd
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;включите_службу&quot;&gt;3.1.3. Включите службу:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=112&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; systemd-zram-setup&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;zram0&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;настройте_headless_безголовый_доступ&quot;&gt;3.1.4. Настройте Headless (безголовый) доступ:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h5 id=&quot;настройте_сеть_например_через_systemd-networkd_и_sshd&quot;&gt;3.1.4.1. настройте сеть (например, через systemd-networkd и sshd).&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;/div&gt;

&lt;h5 id=&quot;включите_автозапуск_ssh&quot;&gt;3.1.4.2. Включите автозапуск SSH:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=113&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; sshd.
&lt;span class=&quot;co0&quot;&gt;# Разрешите вход root по SSH (опционально, для теста)&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;PermitRootLogin yes&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ssh&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sshd_config&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;отключение_ntp&quot;&gt;3.2. Отключение NTP:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Для полной независимости от сети отключите службу синхронизации времени.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=114&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl disable systemd-timesyncd.service
timedatectl set-ntp &lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;выйдите_из_окружения&quot;&gt;3.3. Выйдите из окружения:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=115&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;exit.&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 zram-generator \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 NTP&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_zram-generator_\u0438_\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435_ntp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:109,&amp;quot;secid&amp;quot;:54,&amp;quot;range&amp;quot;:&amp;quot;132912-134466&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit55&quot; id=&quot;упаковка_squashfs&quot;&gt;4. Упаковка SquashFS&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Упакуйте измененную систему обратно в сжатый образ squashfs. Использование многопоточности ускорит процесс.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=116&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_root&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; mksquashfs ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_root ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_root&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs &lt;span class=&quot;re5&quot;&gt;-comp&lt;/span&gt; zstd &lt;span class=&quot;re5&quot;&gt;-b&lt;/span&gt; 1M&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4. \u0423\u043f\u0430\u043a\u043e\u0432\u043a\u0430 SquashFS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0430_squashfs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:116,&amp;quot;secid&amp;quot;:55,&amp;quot;range&amp;quot;:&amp;quot;134467-134874&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit56&quot; id=&quot;сборка_iso_через_xorriso&quot;&gt;5. Сборка ISO через xorriso&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Скопируйте загрузочные файлы (ядро, initramfs, syslinux/grub конфигурацию) из оригинального ISO в ~/custom_iso/iso_root/. После этого соберите гибридный ISO-образ, готовый к записи на флешку:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=117&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;xorriso &lt;span class=&quot;re5&quot;&gt;-as&lt;/span&gt; mkisofs \
  &lt;span class=&quot;re5&quot;&gt;-iso-level&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-full-iso9660-filenames&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-volid&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ARCH_CUSTOM&amp;quot;&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-eltorito-boot&lt;/span&gt; isolinux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;isolinux.bin \
  &lt;span class=&quot;re5&quot;&gt;-eltorito-catalog&lt;/span&gt; isolinux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot.cat \
  &lt;span class=&quot;re5&quot;&gt;-no-emul-boot&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-boot-load-size&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-boot-info-table&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-isohybrid-mbr&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_root&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;isolinux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;isohdpfx.bin \
  &lt;span class=&quot;re5&quot;&gt;-eltorito-alt-boot&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; efi&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archiso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;efiboot.img \
  &lt;span class=&quot;re5&quot;&gt;-no-emul-boot&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-isohybrid-gpt-basdat&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-output&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archlinux-headless.iso \
  ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_root&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;5. \u0421\u0431\u043e\u0440\u043a\u0430 ISO \u0447\u0435\u0440\u0435\u0437 xorriso&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0431\u043e\u0440\u043a\u0430_iso_\u0447\u0435\u0440\u0435\u0437_xorriso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:117,&amp;quot;secid&amp;quot;:56,&amp;quot;range&amp;quot;:&amp;quot;134875-135817&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit57&quot; id=&quot;консервация_операционной_системы_в_squashfs&quot;&gt;10. Консервация операционной системы в SquashFS&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10. \u041a\u043e\u043d\u0441\u0435\u0440\u0432\u0430\u0446\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432 SquashFS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043d\u0441\u0435\u0440\u0432\u0430\u0446\u0438\u044f_\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439_\u0441\u0438\u0441\u0442\u0435\u043c\u044b_\u0432_squashfs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:118,&amp;quot;secid&amp;quot;:57,&amp;quot;range&amp;quot;:&amp;quot;135818-135908&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit58&quot; id=&quot;изоляция_дисковой_разметки_хоста&quot;&gt;10.1. Изоляция дисковой разметки хоста&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
 создание бэкапа и полное обнуление файла /etc/fstab во избежание конфликта UUID при live-загрузке.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.1. \u0418\u0437\u043e\u043b\u044f\u0446\u0438\u044f \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044f_\u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0439_\u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438_\u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:118,&amp;quot;secid&amp;quot;:58,&amp;quot;range&amp;quot;:&amp;quot;135909-136153&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit59&quot; id=&quot;проверка_перед&quot;&gt;10.2. Проверка перед&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0435\u0440\u0435\u0434&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430_\u043f\u0435\u0440\u0435\u0434&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:118,&amp;quot;secid&amp;quot;:59,&amp;quot;range&amp;quot;:&amp;quot;136154-136200&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit60&quot; id=&quot;отключение_службы_сетевого_времени&quot;&gt;10.2.1. Отключение службы сетевого времени&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
При установке без интернета в среде archiso (установочной флешке) службы синхронизации времени могут выдавать предупреждения. Чтобы полностью отключить автоматическое обновление времени и предотвратить попытки системы подключиться к сети:
&lt;br/&gt;

Проверить таймзону (часовой пояс) в Arch Linux можно за пару секунд. Самый быстрый и современный способ — использовать утилиту timedatectl, которая сразу покажет текущее время и настройки
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;быстрая_проверка&quot;&gt;10.2.1.1. Быстрая проверка&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Откройте терминал и выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=118&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;timedatectl&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
В выводе найдите строки:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Time zone: — ваш текущий часовой пояс (например, Europe/Moscow).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; NTC service: — статус автоматической синхронизации времени&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;быстрая_проверка1&quot;&gt;10.2.1.1.1. Быстрая проверка&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=119&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;date&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Она выведет текущую дату, время и аббревиатуру часового пояса (например, MSK).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.1. \u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u043b\u0443\u0436\u0431\u044b \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435_\u0441\u043b\u0443\u0436\u0431\u044b_\u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e_\u0432\u0440\u0435\u043c\u0435\u043d\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:118,&amp;quot;secid&amp;quot;:60,&amp;quot;range&amp;quot;:&amp;quot;136201-137675&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit61&quot; id=&quot;ручная_установка&quot;&gt;10.2.1.2. Ручная установка&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Посмотрите список доступных часовых поясов:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=120&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;timedatectl list-timezones&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.1.2. \u0420\u0443\u0447\u043d\u0430\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0443\u0447\u043d\u0430\u044f_\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:120,&amp;quot;secid&amp;quot;:61,&amp;quot;range&amp;quot;:&amp;quot;137676-137863&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit62&quot; id=&quot;установите_нужный_пояс&quot;&gt;10.2.1.2.1. Установите нужный пояс&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Установите нужный часовой пояс вручную. Напрямую настройте время, 
чтобы избежать «скачков» 
&lt;a href=&quot;https://wiki.archlinux.org/title/System_time_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/System_time_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; rel=&quot;ugc nofollow&quot;&gt;System time&lt;/a&gt;.
&lt;br/&gt;

(замените Europe/Moscow на ваш регион)
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=121&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; timedatectl set-timezone Europe&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Moscow&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.1.2.1. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043d\u0443\u0436\u043d\u044b\u0439 \u043f\u043e\u044f\u0441&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435_\u043d\u0443\u0436\u043d\u044b\u0439_\u043f\u043e\u044f\u0441&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:121,&amp;quot;secid&amp;quot;:62,&amp;quot;range&amp;quot;:&amp;quot;137864-138341&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit63&quot; id=&quot;отключение_ntp1&quot;&gt;10.2.1.3. Отключение NTP&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Отключите службы сетевого времени, выполнив команду &lt;a href=&quot;https://man.archlinux.org/man/timedatectl.1.en&quot; class=&quot;urlextern&quot; title=&quot;https://man.archlinux.org/man/timedatectl.1.en&quot; rel=&quot;ugc nofollow&quot;&gt;timedatectl&lt;/a&gt;:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=122&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;timedatectl set-ntp &lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.1.3. \u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 NTP&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435_ntp1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:122,&amp;quot;secid&amp;quot;:63,&amp;quot;range&amp;quot;:&amp;quot;138342-138601&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit64&quot; id=&quot;отключение_службы_systemd-timesyncd&quot;&gt;10.2.1.4. Отключение службы systemd-timesyncd&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Если вы на этапе после pacstrap и уже вошли в систему через arch-chroot, дополнительно отключите службу &lt;a href=&quot;https://wiki.archlinux.org/title/Systemd-timesyncd&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Systemd-timesyncd&quot; rel=&quot;ugc nofollow&quot;&gt;systemd-timesyncd&lt;/a&gt;:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=123&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl disable systemd-timesyncd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Проверить версии linux&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.1.4. \u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u043b\u0443\u0436\u0431\u044b systemd-timesyncd&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435_\u0441\u043b\u0443\u0436\u0431\u044b_systemd-timesyncd&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:123,&amp;quot;secid&amp;quot;:64,&amp;quot;range&amp;quot;:&amp;quot;138602-139114&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit65&quot; id=&quot;проверить_версии_linux_хоста&quot;&gt;???? Проверить версии linux хоста&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Драйверы сетевой карты реального сервера&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;???? \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u0438 linux \u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c_\u0432\u0435\u0440\u0441\u0438\u0438_linux_\u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:124,&amp;quot;secid&amp;quot;:65,&amp;quot;range&amp;quot;:&amp;quot;139115-139438&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit66&quot; id=&quot;проверка_драйверов_сетевой_карты_реального_сервера&quot;&gt;10.2.2. Проверка Драйверов сетевой карты реального сервера&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
В виртуальной машине Hyper-V используется виртуальный сетевой адаптер (обычно dec21140 или синтетический от Microsoft). На реальном сервере будет стоять физический чип (Intel, Realtek или Broadcom и т.д.).
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;что_проверить&quot;&gt;Что проверить:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
 Убедитесь, что в вашей системе tom_1 установлен пакет linux-firmware.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;команда_для_проверки&quot;&gt;Команда для проверки&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=124&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Q&lt;/span&gt; linux-firmware&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Если его нет, обязательно установите (sudo pacman -S linux-firmware), иначе реальный сервер после загрузки с ISO просто не увидит свою физическую сетевую карту.&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_106.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_106.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_106.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Данные для проверки по железу серверов (1 Supermicro, 1 старый HP и два ноунейм-самосбора разных поколений), а значит универсальность сетевого конфига становится задачей номер один. На таком железа дефолтные предсказуемые имена интерфейсов от systemd гарантированно разъедутся в разные стороны:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; На Supermicro это, скорее всего, будут имена вида eno1 (onboard) или пути вроде enp3s0f0.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; На старом HP интерфейсы могут обозваться как eno49, ens1 или упасть в классический eth0.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; На ноунеймах (самосборах) всё зависит от логики материнской платы (чисто по PCI-пути — например, enp2s0).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Поэтому зашивать маску Name=en* eth* в конфиг systemd-networkd — это единственное спасение, чтобы один и тот же ISO-образ молча поднял сеть на любой из этих плат.
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Изменить временно на 192.168.1.150&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.2. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0414\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430_\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432_\u0441\u0435\u0442\u0435\u0432\u043e\u0439_\u043a\u0430\u0440\u0442\u044b_\u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e_\u0441\u0435\u0440\u0432\u0435\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:124,&amp;quot;secid&amp;quot;:66,&amp;quot;range&amp;quot;:&amp;quot;139439-141984&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit67&quot; id=&quot;создаем_конфигурацию_сети_сети_будущего_сервера&quot;&gt;10.2.3. Создаем конфигурацию сети сети будущего сервера&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Чтобы не гадать, как система назовет сетевую карту на разном железе (eno1, enp3s0, eth0), мы заставим systemd-networkd применять настройки к любому проводному интерфейсу.&lt;br/&gt;

Выполните команду на tom_1 для создания конфигурационного файла:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=125&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Вставьте в него следующие строки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=126&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;ini&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Match&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=eth0
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=en&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=eth&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Network&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Address&lt;/span&gt;=192.168.1.150&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Gateway&lt;/span&gt;=192.168.1.1
&lt;span class=&quot;re2&quot;&gt;DNS&lt;/span&gt;=8.8.8.8
&lt;span class=&quot;re2&quot;&gt;DNS&lt;/span&gt;=1.1.1.1&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Примечание: Если в вашей локальной Windows-сети используется другой поддиапазон (например, 192.168.0.X), измените IP-адрес Address и шлюз Gateway под свою рабочую сеть.&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_2.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_2.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_2.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;разбор_конфига_на_скриншоте&quot;&gt;Разбор конфига на скриншоте&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Всё в точности, как надо:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Name=en* eth* — заматчит любую сетевуху.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Address=192.168.1.150/24 — статический IP, который мы будем пинговать на новом сервере.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Gateway=192.168.1.1 — шлюз.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;=1.1.1.1 — &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;-сервер.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
В правом верхнем углу горит надпись Modified. Это значит, что изменения внесены, но файл еще не сохранен на диск.
&lt;em&gt; Примечание: CTRL+O для записи файла Enter для подтверждения имени файла CTRL+X для выхода из редактора nano&lt;/em&gt;
Как только выйдете из редактора, нам нужно убедиться, что systemd-networkd вообще включен и подхватит этот конфиг при старте образа.&lt;br/&gt;

Выполните команду в консоли:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=127&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled systemd-networkd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_3.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_3.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_3.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Примечание: в нашем случае служба systemd-networkd отключена (disabled)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.3. \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0441\u0435\u0442\u0438 \u0441\u0435\u0442\u0438 \u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u0435\u043c_\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e_\u0441\u0435\u0442\u0438_\u0441\u0435\u0442\u0438_\u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e_\u0441\u0435\u0440\u0432\u0435\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:125,&amp;quot;secid&amp;quot;:67,&amp;quot;range&amp;quot;:&amp;quot;141985-144470&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit68&quot; id=&quot;включаем_сетевую_службу&quot;&gt;10.2.3.1 Включаем сетевую службу&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Выполните команду, чтобы активировать автозапуск сети:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=128&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; systemd-networkd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_4.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_4.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_4.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте чётко видно, что система создала все необходимые привязки для systemd-networkd.&lt;br/&gt;

Теперь переходим к проверке &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;-резолвера и удаленного доступа по SSH. Без этого сервер не сможет преобразовывать имена сайтов, а мы не сможем зайти на него удаленно.
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Проверить автозыпуск ssh&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.3.1 \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u0441\u043b\u0443\u0436\u0431\u0443&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c_\u0441\u0435\u0442\u0435\u0432\u0443\u044e_\u0441\u043b\u0443\u0436\u0431\u0443&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:128,&amp;quot;secid&amp;quot;:68,&amp;quot;range&amp;quot;:&amp;quot;144471-145481&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit69&quot; id=&quot;проверяем_включен_ли_автозапуск_службы_ssh&quot;&gt;10.2.4. Проверяем, включен ли автозапуск службы SSH:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=129&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled sshd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_6.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_6.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_6.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; включен, SSH в статусе enabled. Это значит, что доступ к консоли по сети у нас будет сразу после старта «вслепую».&lt;br/&gt;

Теперь проверяем последний критически важный сервис — веб-сервер Nginx, ради которого всё и затевается. Нам нужно убедиться, что он тоже поднимется сам.
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Проверить автозапуск nginx&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.4. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u043b\u0438 \u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a \u0441\u043b\u0443\u0436\u0431\u044b SSH:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c_\u0432\u043a\u043b\u044e\u0447\u0435\u043d_\u043b\u0438_\u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a_\u0441\u043b\u0443\u0436\u0431\u044b_ssh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:129,&amp;quot;secid&amp;quot;:69,&amp;quot;range&amp;quot;:&amp;quot;145482-146434&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit70&quot; id=&quot;проверка_nginx&quot;&gt;10.2.5. Проверка Nginx&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Выполните команду в терминале:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=130&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_8.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_8.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_8.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.5. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 Nginx&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430_nginx&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:130,&amp;quot;secid&amp;quot;:70,&amp;quot;range&amp;quot;:&amp;quot;146435-146680&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit71&quot; id=&quot;проверяем_слушает_ли_nginx_порт_7000&quot;&gt;10.2.5.1. Проверяем, слушает ли Nginx порт 7000&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Убедимся, что в конфигах нет синтаксических ошибок и порт 5000 реально прописан. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Выполните команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=131&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; nginx &lt;span class=&quot;re5&quot;&gt;-t&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;7000&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_9.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_9.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_9.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Nginx проверен, тут полный порядок! Тест конфигурации успешный (syntax is ok, test is successful), и порт 5000 чётко прописан в основном файле /etc/nginx/nginx.conf. Варнинг про types_hash — это стандартная безобидная ругань Nginx на мелкий дефолтный размер хэш-таблицы типов файлов в Arch, на работу веб-сервера он никак не повлияет.&lt;br/&gt;

Теперь проверяем вторую половину вашей задумки — пароли пользователей. Это критически важно, так как без паролей SSH-сервер нас просто отошьёт.
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Проверить автозапуск PHP-FPM&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.5.1. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0441\u043b\u0443\u0448\u0430\u0435\u0442 \u043b\u0438 Nginx \u043f\u043e\u0440\u0442 7000&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c_\u0441\u043b\u0443\u0448\u0430\u0435\u0442_\u043b\u0438_nginx_\u043f\u043e\u0440\u0442_7000&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:131,&amp;quot;secid&amp;quot;:71,&amp;quot;range&amp;quot;:&amp;quot;146681-148145&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit72&quot; id=&quot;проверяем_статус_автозапуска_службы_php-fpm1&quot;&gt;10.2.6. Проверяем статус автозапуска службы php-fpm&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Убедимся, что служба PHP-FPM активирована в автозапуске, чтобы при старте флешки в ОЗУ она запустилась сама вместе с Nginx. Убедимся, что система теперь рапортует правильный статус.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=132&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_116.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_116.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_116.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Примечание: статус enabled - включена)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Выводим хэши паролей root и eva&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.6. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0441\u0442\u0430\u0442\u0443\u0441 \u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u043b\u0443\u0436\u0431\u044b php-fpm&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c_\u0441\u0442\u0430\u0442\u0443\u0441_\u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a\u0430_\u0441\u043b\u0443\u0436\u0431\u044b_php-fpm1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:132,&amp;quot;secid&amp;quot;:72,&amp;quot;range&amp;quot;:&amp;quot;148146-149020&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit73&quot; id=&quot;выводим_хэши_паролей_root_и_eva&quot;&gt;10.2.7. Выводим хэши паролей root и eva&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Выводим хэши паролей root и eva
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=133&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;getent&lt;/span&gt; shadow root eva &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cut&lt;/span&gt; -d: -f1,&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_10.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_10.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_10.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте мы видим современные, надежные хэши паролей yescrypt (начинаются с $y$) как для root, так и для пользователя eva. Пароли заданы железно, а значит, SSH-сервер без проблем пустит вас в консоль на реальной машине. Полноценный аудит пройден, все критические точки проверены.Время переходить к финальной фазе сборки нашего автономного ISO. Погнали по шагам, аккуратно работаем с таблицей разделов.
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Проверка zram-generator&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.7. \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0445\u044d\u0448\u0438 \u043f\u0430\u0440\u043e\u043b\u0435\u0439 root \u0438 eva&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u044b\u0432\u043e\u0434\u0438\u043c_\u0445\u044d\u0448\u0438_\u043f\u0430\u0440\u043e\u043b\u0435\u0439_root_\u0438_eva&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:133,&amp;quot;secid&amp;quot;:73,&amp;quot;range&amp;quot;:&amp;quot;149021-150237&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit74&quot; id=&quot;проверяем_наличие_zram&quot;&gt;10.2.8. Проверяем наличие ZRAM&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;strong&gt;ZRAM&lt;/strong&gt; в Arch Linux (и других дистрибутивах) — это модуль ядра Linux, который создает виртуальный диск в оперативной памяти и сжимает данные на лету.
Давайте посмотрим, активен ли этот модуль ядра на вашей чистой, только что обновленной системе tom_1.&lt;br/&gt;

Выполните в консоли tom_1 две диагностические команды:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=134&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# 1. Проверяем, загружен ли сам модуль ядра в память прямо сейчас&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;lsmod&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; zram&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_100.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_100.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_100.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.8. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 ZRAM&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c_\u043d\u0430\u043b\u0438\u0447\u0438\u0435_zram&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:134,&amp;quot;secid&amp;quot;:74,&amp;quot;range&amp;quot;:&amp;quot;150238-151086&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit75&quot; id=&quot;проверяем_наличие_zram1&quot;&gt;10.2.8.1. Проверяем наличие ZRAM&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Выполните в терминале tom_1 ровно одну команду, чтобы увидеть физический размер и алгоритм сжатия созданного диска подкачки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=135&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# 1. Проверяем, загружен ли сам модуль ядра в память прямо сейчас&lt;/span&gt;
zramctl&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_101.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_101.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_101.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.8.1. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 ZRAM&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c_\u043d\u0430\u043b\u0438\u0447\u0438\u0435_zram1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:135,&amp;quot;secid&amp;quot;:75,&amp;quot;range&amp;quot;:&amp;quot;151087-151616&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit76&quot; id=&quot;установка_генератора_zram&quot;&gt;10.2.8.2 Установка генератора ZRAM&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;ставим_инструменты_zram-generator&quot;&gt;Ставим инструменты zram-generator&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
zram-generator в Arch Linux — это утилита, которая автоматически создает и настраивает диски zram (сжатая оперативная память) для использования в качестве очень быстрого раздела подкачки (swap).&lt;br/&gt;

Установим пакет squashfs-tools, в который и входит нужная команда. &lt;br/&gt;

Выполняйте:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=136&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; zram-generator&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Флаги -S (Синхронизация / Установка) и –noconfirm (Без подтверждения)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_110.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_110.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_110.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_установки_пакетов&quot;&gt;Проверка установки пакетов&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=137&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Q&lt;/span&gt; zram-generator&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_111.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_111.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_111.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
(&lt;em&gt;Если пакеты установлены, терминал выведет их версии, иначе, вы получите ошибку (например, error: package &amp;#039;squashfs-tools&amp;#039; was not found).&lt;/em&gt;)
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; бекап sfid&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.8.2 \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 ZRAM&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_\u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430_zram&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:136,&amp;quot;secid&amp;quot;:76,&amp;quot;range&amp;quot;:&amp;quot;151617-153113&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit77&quot; id=&quot;временное_обнуление_fstab&quot;&gt;10.2.8. Временное обнуление fstab&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;о_файле&quot;&gt;О файле&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Файл /etc/&lt;strong&gt;fstab&lt;/strong&gt; (от File Systems Table) — это конфигурационный файл, который хранит информацию о разделах диска, флешках и сетевых хранилищах, и указывает системе, как именно и куда их нужно монтировать при запуске.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;предназначение&quot;&gt;Предназначение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Автозагрузка: Без него операционная система не поймет, где искать корневой раздел / и другие важные системные диски, и просто не сможет загрузиться.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Параметры монтирования: Он определяет права доступа (например, можно ли запускать исполняемые файлы с конкретного диска) и режим работы (чтение или чтение и запись).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Организация: Позволяет привязать жесткие диски, SSD или разделы для файлов подкачки (swap) к нужным папкам.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
В других дистрибутивах Linux этот файл создается автоматически при установке. В Arch Linux процесс установки выполняется вручную, поэтому там его чаще всего генерируют с помощью специальной команды: genfstab -U /mnt » /mnt/etc/fstab.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;структура_файла&quot;&gt;Структура файла&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Файл состоит из строк, разделенных пробелами или табуляцией. Каждая строка описывает одно устройство и состоит из 6 колонок:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Устройство (Block device): Обычно здесь указывается уникальный идентификатор диска (UUID), чтобы система не запуталась, если вы поменяете порты подключения (например, UUID=1234-abcd).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Точка монтирования (Mount point): Папка в системе, куда «подключается» диск (например, /, /home или /mnt/games).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Файловая система (FSType): Тип файловой системы (например, ext4, btrfs, xfs или vfat).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Параметры (Mount options): Инструкции по работе с диском (например, defaults, noatime, ro — только для чтения).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Резервная копия (Dump): Флаг для утилиты резервного копирования (обычно 0).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Проверка диска (Pass): Очередность проверки диска утилитой fsck при загрузке (корень — 1, остальные диски — 2, отключено — 0).&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Подробное руководство по редактированию и настройке параметров можно изучить на официальной &lt;a href=&quot;https://wiki.archlinux.org/title/Fstab_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Fstab_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; rel=&quot;ugc nofollow&quot;&gt;ArchWiki: fstab.&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.8. \u0412\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u043e\u0431\u043d\u0443\u043b\u0435\u043d\u0438\u0435 fstab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435_\u043e\u0431\u043d\u0443\u043b\u0435\u043d\u0438\u0435_fstab&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:138,&amp;quot;secid&amp;quot;:77,&amp;quot;range&amp;quot;:&amp;quot;153114-156473&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit78&quot; id=&quot;безопасность_операции_с_fstab&quot;&gt;10.2.8.1 Безопасность операции с fstab&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Сначала сделаем бэкап, проверим его и fstab на tom_1, чтобы живой образ загружался целиком в оперативную память и не пытался монтировать несуществующие диски.&lt;br/&gt;

Выполните по очереди эти три команды:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=138&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_11.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_11.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_11.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.8.1 \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 fstab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c_\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438_\u0441_fstab&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:138,&amp;quot;secid&amp;quot;:78,&amp;quot;range&amp;quot;:&amp;quot;156474-157053&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit79&quot; id=&quot;проверяем_наличие_резервной_копии_fstab&quot;&gt;10.2.8.2 Проверяем наличие резервной копии fstab&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=139&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_108.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_108.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_108.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Стереть sfid&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.8.2 \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 fstab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c_\u043d\u0430\u043b\u0438\u0447\u0438\u0435_\u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439_\u043a\u043e\u043f\u0438\u0438_fstab&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:139,&amp;quot;secid&amp;quot;:79,&amp;quot;range&amp;quot;:&amp;quot;157054-157500&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit80&quot; id=&quot;очищаем_оригинальный_файл_fstab&quot;&gt;10.2.8.3 Очищаем оригинальный файл fstab&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;strong&gt;Внимание:  после использования утилиты сжатая файловой система SquashFS и копирования слепка, не забываем  вернуть конфигурационный файл fstab из бекапа &lt;/strong&gt;
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=140&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; truncate &lt;span class=&quot;re5&quot;&gt;-s&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_12.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_12.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_12.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.8.3 \u041e\u0447\u0438\u0449\u0430\u0435\u043c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b fstab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0447\u0438\u0449\u0430\u0435\u043c_\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439_\u0444\u0430\u0439\u043b_fstab&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:140,&amp;quot;secid&amp;quot;:80,&amp;quot;range&amp;quot;:&amp;quot;157501-158000&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit81&quot; id=&quot;контрольная_проверка_очищения_fstab&quot;&gt;10.2.8.3 Контрольная проверка очищения fstab&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Фиксируем, что вывод чтения оригинального файла пуст
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=141&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_13.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_13.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_13.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Контроль: Команда cat должна вернуть абсолютно пустую строку.&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.2.8.3 \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043e\u0447\u0438\u0449\u0435\u043d\u0438\u044f fstab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0430\u044f_\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430_\u043e\u0447\u0438\u0449\u0435\u043d\u0438\u044f_fstab&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:141,&amp;quot;secid&amp;quot;:81,&amp;quot;range&amp;quot;:&amp;quot;158001-158520&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit82&quot; id=&quot;генерация_airootfssfs_squashfs-слепка&quot;&gt;10.3. Генерация airootfs.sfs SquashFS-слепка&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Создание airootfs.sfs (запаковка корневой системы) утилитой mksquashfs с исключениями виртуальных директорий.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.3. \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f airootfs.sfs SquashFS-\u0441\u043b\u0435\u043f\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f_airootfssfs_squashfs-\u0441\u043b\u0435\u043f\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:142,&amp;quot;secid&amp;quot;:82,&amp;quot;range&amp;quot;:&amp;quot;158521-158776&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit83&quot; id=&quot;утилита_mksquashfs&quot;&gt;10.3.1. Утилита mksquashfs&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
mksquashfs — это консольная утилита в Arch Linux, предназначенная для создания сжатых файловых систем SquashFS, которые работают только для чтения. Она является частью пакета squashfs-tools и чаще всего используется для создания Live USB, архивации системы и упаковки портативного софта
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;применение1&quot;&gt;Применение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Резервные копии: Позволяет упаковать всю систему или отдельные директории в один компактный образ без изменения прав доступа и символических ссылок.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создание Live-образов: С помощью mksquashfs создаются загрузочные модули (например, для archiso или сборок на его базе), которые можно распаковывать и запускать в ОЗУ.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Портативные приложения (AppImage): Формат AppImage по своей сути является упакованным образом SquashFS&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;преимущества&quot;&gt;Преимущества&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Высокая степень сжатия: Поддерживает современные алгоритмы, включая xz, gzip, lz4 и zstd (по умолчанию).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Прямой доступ: ОС может монтировать этот файл как диск и читать данные на лету без предварительной полной распаковки всего архива.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.3.1. \u0423\u0442\u0438\u043b\u0438\u0442\u0430 mksquashfs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0442\u0438\u043b\u0438\u0442\u0430_mksquashfs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:142,&amp;quot;secid&amp;quot;:83,&amp;quot;range&amp;quot;:&amp;quot;158777-160530&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit84&quot; id=&quot;запаковываем_систему_в_squashfs&quot;&gt;10.3.2. Запаковываем систему в SquashFS&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Теперь запускаем самую ресурсоемкую команду, которая заморозит систему со всеми нашими универсальными сетевыми конфигами, паролями и Nginx. Она проигнорирует саму себя, бэкапы и виртуальный мусор.&lt;br/&gt;

Скопируйте и вставьте в терминал:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=142&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; mksquashfs &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs \
&lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;proc &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;media &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lost+found ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archlinux-x86_64.iso ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso \
&lt;span class=&quot;re5&quot;&gt;-comp&lt;/span&gt; zstd &lt;span class=&quot;re5&quot;&gt;-b&lt;/span&gt; 1M&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_20.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_20.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_20.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Процесс займет несколько минут. Пока он идёт, терминал будет занят. &lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_21.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_21.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_21.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Ждём полного завершения, пока не появится строка [eva@tom1 ~]$).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.3.2. \u0417\u0430\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432 SquashFS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c_\u0441\u0438\u0441\u0442\u0435\u043c\u0443_\u0432_squashfs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:142,&amp;quot;secid&amp;quot;:84,&amp;quot;range&amp;quot;:&amp;quot;160531-161656&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit85&quot; id=&quot;немедленное_восстановление_хоста&quot;&gt;10.4. Немедленное восстановление хоста&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.4. \u041d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\u0435_\u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435_\u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:143,&amp;quot;secid&amp;quot;:85,&amp;quot;range&amp;quot;:&amp;quot;161657-161736&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit86&quot; id=&quot;немедленно_возвращаем_fstab_на_место&quot;&gt;10.4.1. Немедленно возвращаем fstab на место&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Как только команда mksquashfs полностью отработает и вернет вам управление, немедленно и без пауз выполните команду восстановления оригинальной таблицы разделов:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=143&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_22.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_22.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_22.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.4.1. \u041d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c fstab \u043d\u0430 \u043c\u0435\u0441\u0442\u043e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e_\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c_fstab_\u043d\u0430_\u043c\u0435\u0441\u0442\u043e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:143,&amp;quot;secid&amp;quot;:86,&amp;quot;range&amp;quot;:&amp;quot;161737-162266&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit87&quot; id=&quot;контрольная_проверка_fstab&quot;&gt;10.4.2. Контрольная проверка fstab&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Убедимся, что файл вернулся и внутри него снова прописаны диски текущей виртуалки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=144&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Вы должны увидеть строчки с монтированием ваших UUID или разделов для /, /boot и т.д. Если текст появился — tom_1 в полной безопасности, можно выдохнуть).&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_23.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_23.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_23.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте чётко видно, что все btrfs-субтома (/@, /@home, /@pkg, /@log) и UEFI-раздел /boot вернулись на свои места. Теперь система гарантированно перезагрузится без сбоев.&lt;br/&gt;

Смена владельца файла слепка мы тоже сделали (sudo chown eva:eva …).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.4.2. \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 fstab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0430\u044f_\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430_fstab&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:144,&amp;quot;secid&amp;quot;:87,&amp;quot;range&amp;quot;:&amp;quot;162267-163291&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit88&quot; id=&quot;возвращение_предыдущего_ip_хосту&quot;&gt;10.5. Возвращение предыдущего IP хосту&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.5. \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e IP \u0445\u043e\u0441\u0442\u0443&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435_\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e_ip_\u0445\u043e\u0441\u0442\u0443&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:145,&amp;quot;secid&amp;quot;:88,&amp;quot;range&amp;quot;:&amp;quot;163292-163372&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit89&quot; id=&quot;перезапись_файла_20-wirednetwork_на_ip_1921681721&quot;&gt;10.5.1. Перезапись файла 20-wired.network на IP 192.168.1.72&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Мы используем монолитную команду cat « &amp;#039;&lt;abbr title=&quot;End of file&quot;&gt;EOF&lt;/abbr&gt;&amp;#039;, которая полностью затрёт старый конфиг и запишет новый чистый текст. Это исключает ошибки ручного ввода в редакторах.&lt;br/&gt;

Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=145&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;tee&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Match&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=eth0
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=en&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=eth&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Network&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Address&lt;/span&gt;=192.168.1.150&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Gateway&lt;/span&gt;=192.168.1.1
&lt;span class=&quot;re2&quot;&gt;DNS&lt;/span&gt;=8.8.8.8
&lt;span class=&quot;re2&quot;&gt;DNS&lt;/span&gt;=1.1.1.1
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_132.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_132.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_132.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Перед тем как перезапустить сеть, мы обязаны сделать шаг контроля и убедиться, что файл перезаписался именно так, как нам нужно.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.5.1. \u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044c \u0444\u0430\u0439\u043b\u0430 20-wired.network \u043d\u0430 IP 192.168.1.72&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044c_\u0444\u0430\u0439\u043b\u0430_20-wirednetwork_\u043d\u0430_ip_1921681721&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:145,&amp;quot;secid&amp;quot;:89,&amp;quot;range&amp;quot;:&amp;quot;163373-164367&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit90&quot; id=&quot;проверка_измененного_файла_20-wirednetwork1&quot;&gt;10.5.2. Проверка измененного файла 20-wired.network&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=146&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_133.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_133.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_133.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Внутри прописан наш целевой статический адрес 192.168.1.72.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.5.2. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 20-wired.network&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430_\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043d\u043e\u0433\u043e_\u0444\u0430\u0439\u043b\u0430_20-wirednetwork1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:146,&amp;quot;secid&amp;quot;:90,&amp;quot;range&amp;quot;:&amp;quot;164368-164724&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit91&quot; id=&quot;применение_настроек_сети1&quot;&gt;10.5.3. Применение настроек сети&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Чтобы система сбросила старый адрес 192.168.1.150 и применила новый, нам необходимо полностью перезапустить сетевую службу systemd-networkd.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=147&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl restart systemd-networkd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Важно: Как только вы выполните эту команду, текущая SSH-сессия PuTTY сразу же прервётся (окно зависнет), так как IP-адрес машины мгновенно изменится на 192.168.1.72.  
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_134.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_134.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_134.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.5.3. \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0441\u0435\u0442\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435_\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a_\u0441\u0435\u0442\u04381&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:147,&amp;quot;secid&amp;quot;:91,&amp;quot;range&amp;quot;:&amp;quot;164725-165468&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit92&quot; id=&quot;проверка_нового_адреса1&quot;&gt;10.5.4. Проверка нового адреса&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Откройте новое окно PuTTY и подключитесь к tom_1 по его новому постоянному адресу: 192.168.1.72
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=148&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ip&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-br&lt;/span&gt; address show scope global &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $3}&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cut&lt;/span&gt; -d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-f1&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Система отобразила наш новый постоянный IP-адрес 192.168.1.72)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10.5.4. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430_\u043d\u043e\u0432\u043e\u0433\u043e_\u0430\u0434\u0440\u0435\u0441\u04301&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:148,&amp;quot;secid&amp;quot;:92,&amp;quot;range&amp;quot;:&amp;quot;165469-165985&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit93&quot; id=&quot;формирование_структуры_iso_и_uefi-загрузчика&quot;&gt;11. Формирование структуры ISO и UEFI-загрузчика&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;11. \u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b ISO \u0438 UEFI-\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b_iso_\u0438_uefi-\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:149,&amp;quot;secid&amp;quot;:93,&amp;quot;range&amp;quot;:&amp;quot;165986-166078&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit94&quot; id=&quot;создание_дерева_каталогов_загрузчика&quot;&gt;11.1. Создание дерева каталогов загрузчика&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
развертывание путей EFI внутри директории конструктора.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;11.1. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0434\u0435\u0440\u0435\u0432\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0434\u0435\u0440\u0435\u0432\u0430_\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432_\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:149,&amp;quot;secid&amp;quot;:94,&amp;quot;range&amp;quot;:&amp;quot;166079-166267&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit95&quot; id=&quot;импорт_оригинальных_файлов_загрузки&quot;&gt;11.2. Импорт оригинальных файлов загрузки&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
 перенос бинарника BOOTX64.EFI, ядра и initramfs из хост-системы.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;11.2. \u0418\u043c\u043f\u043e\u0440\u0442 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u043c\u043f\u043e\u0440\u0442_\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0445_\u0444\u0430\u0439\u043b\u043e\u0432_\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:149,&amp;quot;secid&amp;quot;:95,&amp;quot;range&amp;quot;:&amp;quot;166268-166451&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit96&quot; id=&quot;конфигурация_загрузчика_systemd-boot&quot;&gt;11.3. Конфигурация загрузчика systemd-boot&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
 привязка загрузки к глобальной метке archisolabel=ARCH_202605, активация вывода в COM-порт и отключение прерываний Hyper-V.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;11.3. \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 systemd-boot&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f_\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430_systemd-boot&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:149,&amp;quot;secid&amp;quot;:96,&amp;quot;range&amp;quot;:&amp;quot;166452-166724&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit97&quot; id=&quot;финальная_сборка_перенос_и_тестирование_образа&quot;&gt;12. Финальная сборка, перенос и тестирование образа&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;12. \u0424\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0431\u043e\u0440\u043a\u0430, \u043f\u0435\u0440\u0435\u043d\u043e\u0441 \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f_\u0441\u0431\u043e\u0440\u043a\u0430_\u043f\u0435\u0440\u0435\u043d\u043e\u0441_\u0438_\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u043e\u0431\u0440\u0430\u0437\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:149,&amp;quot;secid&amp;quot;:97,&amp;quot;range&amp;quot;:&amp;quot;166725-166829&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit98&quot; id=&quot;компиляция_универсального_iso&quot;&gt;12.1. Компиляция универсального ISO&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
 упаковка папки конструктора через xorriso с флагами гибридной разметки и жестким указанием -volid.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;12.1. \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0433\u043e ISO&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f_\u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0433\u043e_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:149,&amp;quot;secid&amp;quot;:98,&amp;quot;range&amp;quot;:&amp;quot;166830-167071&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit99&quot; id=&quot;экспорт_iso-образа_в_windows&quot;&gt;12.2. Экспорт ISO-образа в Windows&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
 скачивание готового файла на рабочую станцию средствами PowerShell-команды scp.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;12.2. \u042d\u043a\u0441\u043f\u043e\u0440\u0442 ISO-\u043e\u0431\u0440\u0430\u0437\u0430 \u0432 Windows&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u044d\u043a\u0441\u043f\u043e\u0440\u0442_iso-\u043e\u0431\u0440\u0430\u0437\u0430_\u0432_windows&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:149,&amp;quot;secid&amp;quot;:99,&amp;quot;range&amp;quot;:&amp;quot;167072-167267&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit100&quot; id=&quot;💣_как_взрывается_мина_1_при_установке&quot;&gt;💣 Как взрывается Мина №1 при установке?&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;запуск_финальной_сборки_iso&quot;&gt;Запуск финальной сборки ISO&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Скопируйте этот блок полностью и запустите в терминале от пользователя eva
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=149&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;xorriso &lt;span class=&quot;re5&quot;&gt;-as&lt;/span&gt; mkisofs \
&lt;span class=&quot;re5&quot;&gt;-iso-level&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-full-iso9660-filenames&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-volid&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ARCH_202605&amp;quot;&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-eltorito-alt-boot&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;EFI/BOOT/BOOTx64.EFI&amp;quot;&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-no-emul-boot&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-isohybrid-gpt-basdat&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-output&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso \
~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_58.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_58.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_58.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;контрольная_проверка_созданного_файла&quot;&gt;Контрольная проверка созданного файла&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Как только утилита отработает и вернет приглашение командной строки, параноидально проверяем, что файл лег на диск и имеет правильный вес (в районе 1.6–1.8 ГБ). &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=150&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_59.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_59.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_59.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Файл arch_custom.iso весит честные 1.7 ГБ, права принадлежат пользователю eva, дата и время свежие.
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udca3 \u041a\u0430\u043a \u0432\u0437\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u041c\u0438\u043d\u0430 \u21161 \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udca3_\u043a\u0430\u043a_\u0432\u0437\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f_\u043c\u0438\u043d\u0430_1_\u043f\u0440\u0438_\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:149,&amp;quot;secid&amp;quot;:100,&amp;quot;range&amp;quot;:&amp;quot;167268-168587&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit101&quot; id=&quot;экспорт_iso-образа_в_windows1&quot;&gt;12.2. Экспорт ISO-образа в Windows&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;определяем_ip-адрес_tom_1&quot;&gt;Определяем IP-адрес tom_1&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Перед тем как лезть в PowerShell на хостовой Windows, нам нужно точно знать текущий сетевой адрес вашей рабочей виртуалки, чтобы указать его в команде скачивания.&lt;br/&gt;

Выполните в терминале tom_1 одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=151&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ip route&lt;/span&gt; get 1.1.1.1 &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $7}&#039;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_60.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_60.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_60.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Она выведет ровно один ваш актуальный IP, например 192.168.1.72 или аналогичный).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;12.2. \u042d\u043a\u0441\u043f\u043e\u0440\u0442 ISO-\u043e\u0431\u0440\u0430\u0437\u0430 \u0432 Windows&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u044d\u043a\u0441\u043f\u043e\u0440\u0442_iso-\u043e\u0431\u0440\u0430\u0437\u0430_\u0432_windows1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:151,&amp;quot;secid&amp;quot;:101,&amp;quot;range&amp;quot;:&amp;quot;168588-169352&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit102&quot; id=&quot;экспорт_iso-образа_в_windows2&quot;&gt;12.2.1 Экспорт ISO-образа в Windows&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Открывайте PowerShell на вашей Windows-машине и вставляйте следующую команду (в неё нужно зашить ваш реальный IP):
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=152&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;powershell&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;scp&lt;/span&gt; eva&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;192.168.1.72:~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso &lt;span class=&quot;re1&quot;&gt;$home&lt;/span&gt;\Downloads\arch_custom.iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;PowerShell выдаст предупреждение о неизвестном хосте (The authenticity of host… can&amp;#039;t be established). Напишите yes и нажмите Enter.&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;После этого система потребует пароль пользователя eva (тот самый, хэш которого мы параноидально проверяли). Вводите его (символы при вводе отображаться не будут) и жмите Enter.&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_62.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_62.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_62.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Образ arch_custom.iso весом 1700 МБ успешно скачался в вашу папку «Загрузки» хостовой Windows всего за одну минуту на скорости 28.5 МБ/с. Связь между виндой и tom_1 отработала как часы.&lt;br/&gt;

Теперь переходим к следующему ответственному этапу — подготовке виртуальной флешки arch-flash-3 через Rufus. Делаем строго по нашей параноидальной схеме.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;12.2.1 \u042d\u043a\u0441\u043f\u043e\u0440\u0442 ISO-\u043e\u0431\u0440\u0430\u0437\u0430 \u0432 Windows&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u044d\u043a\u0441\u043f\u043e\u0440\u0442_iso-\u043e\u0431\u0440\u0430\u0437\u0430_\u0432_windows2&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:152,&amp;quot;secid&amp;quot;:102,&amp;quot;range&amp;quot;:&amp;quot;169353-170897&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit103&quot; id=&quot;подключаем_виртуальный_диск&quot;&gt;Подключаем виртуальный диск&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;присоединяем_vhd_vhdx&quot;&gt;Присоединяем VHD/VHDX:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Откройте в Windows «Управление дисками» (Win + X → Управление дисками). Сверху нажмите Действие → Присоединить виртуальный жесткий диск 
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_63.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_63.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_63.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
и выберите файл вашей виртуальной флешки arch-flash-3. 
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_64.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_64.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_64.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Убедитесь, что диск появился в списке снизу.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_65.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_65.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_65.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0438\u0441\u043a&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c_\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439_\u0434\u0438\u0441\u043a&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:153,&amp;quot;secid&amp;quot;:103,&amp;quot;range&amp;quot;:&amp;quot;170898-171699&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit104&quot; id=&quot;запись_на_физический_носитель_через_rufus&quot;&gt;12.3. Запись на физический носитель через Rufus&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
инструкция по прожигу флешки в Rufus (GPT/UEFI)
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_66.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_66.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_66.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Схема раздела — GPT, Целевая система — UEFI (не-CSM), а метка тома встала строго как ARCH_202605&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;12.3. \u0417\u0430\u043f\u0438\u0441\u044c \u043d\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c \u0447\u0435\u0440\u0435\u0437 Rufus&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u043f\u0438\u0441\u044c_\u043d\u0430_\u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439_\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c_\u0447\u0435\u0440\u0435\u0437_rufus&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:153,&amp;quot;secid&amp;quot;:104,&amp;quot;range&amp;quot;:&amp;quot;171700-172116&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit105&quot; id=&quot;правильное_отвязывание_диска_от_windows&quot;&gt;12.4. Правильное отвязывание диска от Windows&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Действуем строго через системную утилиту, которую видно у вас на заднем плане:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Вернитесь в окно «Управление дисками» (Disk Management).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Найдите снизу в списке Диск 2 (это наша флешка ARCH_202605 (G:) весом 14.00 ГБ).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Нажмите правой кнопкой мыши строго по серому квадрату с надписью «Диск 2 / Базовый / 14,00 ГБ / В сети» (нажимать нужно именно на левую серую плашку, а не на сам синий раздел диска G:).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В появившемся контекстном меню выберите пункт «Взаимодействие» → «Отсоединить виртуальный жесткий диск» (Detach VHD).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Система выдаст окошко с подтверждением пути к файлу, нажмите ОК.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_68.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_68.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_68.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(После этого строка Диск 2 должна полностью исчезнуть из нижнего списка, а диск G: — пропасть из «Проводника»).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;12.4. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u043e\u0442\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u0434\u0438\u0441\u043a\u0430 \u043e\u0442 Windows&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435_\u043e\u0442\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435_\u0434\u0438\u0441\u043a\u0430_\u043e\u0442_windows&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:153,&amp;quot;secid&amp;quot;:105,&amp;quot;range&amp;quot;:&amp;quot;172117-173530&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit106&quot; id=&quot;развертывание_в_hyper-v&quot;&gt;12.5. Развертывание в Hyper-V&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;и запуску на изолированной виртуальной машине tom_2.  &lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;монтируем_флешку_в_настройки_tom_2&quot;&gt;Монтируем флешку в настройки tom_2&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Откройте Диспетчер Hyper-V.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Нажмите правой кнопкой мыши по виртуалке tom_2 → Параметры (Settings).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Перейдите в раздел SCSI-контроллер → выберите Жесткий диск → нажмите Добавить.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В появившемся окне нажмите кнопку Обзор и укажите путь к файлу нашей виртуальной флешки arch-flash-3.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Перейдите во вкладку Встроенное ПО (Firmware) в самом верху настроек. Убедитесь, что этот новый жесткий диск (наша флешка) стоит на первом месте в списке загрузки (выше основного пустого диска).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Перейдите во вкладку Безопасность (Security) и железно проверьте, что галочка «Включить безопасную загрузку» (Secure Boot) снята.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_69.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_69.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_69.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;12.5. \u0420\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0432 Hyper-V&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435_\u0432_hyper-v&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:153,&amp;quot;secid&amp;quot;:106,&amp;quot;range&amp;quot;:&amp;quot;173531-174912&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit107&quot; id=&quot;переходим_к_iso&quot;&gt;!!!!!!!!!!!! переходим к iso !!!!!!!!!!!!&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;!!!!!!!!!!!! \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a iso !!!!!!!!!!!!&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c_\u043a_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:153,&amp;quot;secid&amp;quot;:107,&amp;quot;range&amp;quot;:&amp;quot;174913-175081&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit108&quot; id=&quot;создание_структуры_каталогов_для_конструктора_iso&quot;&gt;Создание структуры каталогов для конструктора ISO&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Перед тем как запустить утилиту сжатия, нам необходимо подготовить чистое рабочее дерево папок в домашней директории пользователя eva, куда мы позже разложим ядро и файлы загрузчика&lt;br/&gt;

Выполните в терминале:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=153&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_117.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_117.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_117.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Флаг -p заставит систему создать всю цепочку папок за один раз).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_созданной_структуры&quot;&gt;Проверка созданной структуры&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале команду, которая покажет полный путь и содержимое созданной папки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=154&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-laR&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_118.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_118.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_118.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;&lt;pre class=&quot;code&quot;&gt;* //Система должна показать, что внутри custom_iso есть папка arch, а внутри неё — папка x86_64.//
* //Все они должны быть пустыми (внутри только точки . и ..), готовыми принять наш живой корень.//&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0434\u043b\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 ISO&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b_\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432_\u0434\u043b\u044f_\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:153,&amp;quot;secid&amp;quot;:108,&amp;quot;range&amp;quot;:&amp;quot;175082-176541&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit109&quot; id=&quot;мы_тут&quot;&gt;!!!!!!!!!!!!МЫ ТУТ!!!!!!!!!!!!!!!!!&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Следующим пуктом  Сменить статический IP адрес на 192.168.1.150 на время записи слепка, а после назад!!!
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;!!!!!!!!!!!!\u041c\u042b \u0422\u0423\u0422!!!!!!!!!!!!!!!!!&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043c\u044b_\u0442\u0443\u0442&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:155,&amp;quot;secid&amp;quot;:109,&amp;quot;range&amp;quot;:&amp;quot;176542-176778&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit110&quot; id=&quot;временное_обнуление_fstab1&quot;&gt;Временное обнуление fstab&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;о_файле1&quot;&gt;О файле&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Файл /etc/&lt;strong&gt;fstab&lt;/strong&gt; (от File Systems Table) — это конфигурационный файл, который хранит информацию о разделах диска, флешках и сетевых хранилищах, и указывает системе, как именно и куда их нужно монтировать при запуске.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;предназначение1&quot;&gt;Предназначение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Автозагрузка: Без него операционная система не поймет, где искать корневой раздел / и другие важные системные диски, и просто не сможет загрузиться.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Параметры монтирования: Он определяет права доступа (например, можно ли запускать исполняемые файлы с конкретного диска) и режим работы (чтение или чтение и запись).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Организация: Позволяет привязать жесткие диски, SSD или разделы для файлов подкачки (swap) к нужным папкам.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
В других дистрибутивах Linux этот файл создается автоматически при установке. В Arch Linux процесс установки выполняется вручную, поэтому там его чаще всего генерируют с помощью специальной команды: genfstab -U /mnt » /mnt/etc/fstab.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;структура_файла1&quot;&gt;Структура файла&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Файл состоит из строк, разделенных пробелами или табуляцией. Каждая строка описывает одно устройство и состоит из 6 колонок:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Устройство (Block device): Обычно здесь указывается уникальный идентификатор диска (UUID), чтобы система не запуталась, если вы поменяете порты подключения (например, UUID=1234-abcd).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Точка монтирования (Mount point): Папка в системе, куда «подключается» диск (например, /, /home или /mnt/games).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Файловая система (FSType): Тип файловой системы (например, ext4, btrfs, xfs или vfat).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Параметры (Mount options): Инструкции по работе с диском (например, defaults, noatime, ro — только для чтения).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Резервная копия (Dump): Флаг для утилиты резервного копирования (обычно 0).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Проверка диска (Pass): Очередность проверки диска утилитой fsck при загрузке (корень — 1, остальные диски — 2, отключено — 0).&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Подробное руководство по редактированию и настройке параметров можно изучить на официальной &lt;a href=&quot;https://wiki.archlinux.org/title/Fstab_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Fstab_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; rel=&quot;ugc nofollow&quot;&gt;ArchWiki: fstab.&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u043e\u0431\u043d\u0443\u043b\u0435\u043d\u0438\u0435 fstab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435_\u043e\u0431\u043d\u0443\u043b\u0435\u043d\u0438\u0435_fstab1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:155,&amp;quot;secid&amp;quot;:110,&amp;quot;range&amp;quot;:&amp;quot;176779-180132&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit111&quot; id=&quot;безопасность_операции_с_fstab1&quot;&gt;Безопасность операции с fstab&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Сначала сделаем бэкап, проверим его и fstab на tom_1, чтобы живой образ загружался целиком в оперативную память и не пытался монтировать несуществующие диски.&lt;br/&gt;

Выполните по очереди эти три команды:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=155&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_11.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_11.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_11.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 fstab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c_\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438_\u0441_fstab1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:155,&amp;quot;secid&amp;quot;:111,&amp;quot;range&amp;quot;:&amp;quot;180133-180703&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit112&quot; id=&quot;проверяем_наличие_резервной_копии_fstab1&quot;&gt;Проверяем наличие резервной копии fstab&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=156&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_108.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_108.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_108.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 fstab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c_\u043d\u0430\u043b\u0438\u0447\u0438\u0435_\u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439_\u043a\u043e\u043f\u0438\u0438_fstab1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:156,&amp;quot;secid&amp;quot;:112,&amp;quot;range&amp;quot;:&amp;quot;180704-180938&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit113&quot; id=&quot;очищаем_оригинальный_файл_fstab1&quot;&gt;Очищаем оригинальный файл fstab&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;strong&gt;Внимание:  после использования утилиты сжатая файловой система SquashFS и копирования слепка, не забываем  вернуть конфигурационный файл fstab из бекапа &lt;/strong&gt;
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=157&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; truncate &lt;span class=&quot;re5&quot;&gt;-s&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_12.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_12.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_12.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;контрольная_проверка_очищения_fstab1&quot;&gt;Контрольная проверка очищения fstab&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Фиксируем, что вывод чтения оригинального файла пуст
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=158&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_13.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_13.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_13.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Контроль: Команда cat должна вернуть абсолютно пустую строку.&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0447\u0438\u0449\u0430\u0435\u043c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b fstab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0447\u0438\u0449\u0430\u0435\u043c_\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439_\u0444\u0430\u0439\u043b_fstab1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:157,&amp;quot;secid&amp;quot;:113,&amp;quot;range&amp;quot;:&amp;quot;180939-181851&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit114&quot; id=&quot;создание_airootfssfs&quot;&gt;Создание airootfs.sfs&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 airootfs.sfs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_airootfssfs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:159,&amp;quot;secid&amp;quot;:114,&amp;quot;range&amp;quot;:&amp;quot;181852-181892&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit115&quot; id=&quot;утилита_mksquashfs1&quot;&gt;Утилита mksquashfs&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
mksquashfs — это консольная утилита в Arch Linux, предназначенная для создания сжатых файловых систем SquashFS, которые работают только для чтения. Она является частью пакета squashfs-tools и чаще всего используется для создания Live USB, архивации системы и упаковки портативного софта
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;применение2&quot;&gt;Применение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Резервные копии: Позволяет упаковать всю систему или отдельные директории в один компактный образ без изменения прав доступа и символических ссылок.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создание Live-образов: С помощью mksquashfs создаются загрузочные модули (например, для archiso или сборок на его базе), которые можно распаковывать и запускать в ОЗУ.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Портативные приложения (AppImage): Формат AppImage по своей сути является упакованным образом SquashFS&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;преимущества1&quot;&gt;Преимущества&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Высокая степень сжатия: Поддерживает современные алгоритмы, включая xz, gzip, lz4 и zstd (по умолчанию).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Прямой доступ: ОС может монтировать этот файл как диск и читать данные на лету без предварительной полной распаковки всего архива.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;запаковываем_систему_в_squashfs1&quot;&gt;Запаковываем систему в SquashFS&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Теперь запускаем самую ресурсоемкую команду, которая заморозит систему со всеми нашими универсальными сетевыми конфигами, паролями и Nginx. Она проигнорирует саму себя, бэкапы и виртуальный мусор.&lt;br/&gt;

Скопируйте и вставьте в терминал:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=159&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; mksquashfs &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs \
&lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;proc &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;media &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lost+found ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archlinux-x86_64.iso ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso \
&lt;span class=&quot;re5&quot;&gt;-comp&lt;/span&gt; zstd &lt;span class=&quot;re5&quot;&gt;-b&lt;/span&gt; 1M&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_20.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_20.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_20.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Процесс займет несколько минут. Пока он идёт, терминал будет занят. &lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_21.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_21.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_21.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Ждём полного завершения, пока не появится строка [eva@tom1 ~]$).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;немедленно_возвращаем_fstab_на_место1&quot;&gt;Немедленно возвращаем fstab на место&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Как только команда mksquashfs полностью отработает и вернет вам управление, немедленно и без пауз выполните команду восстановления оригинальной таблицы разделов:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=160&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_22.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_22.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_22.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;контрольная_проверка_fstab1&quot;&gt;Контрольная проверка fstab&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что файл вернулся и внутри него снова прописаны диски текущей виртуалки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=161&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Вы должны увидеть строчки с монтированием ваших UUID или разделов для /, /boot и т.д. Если текст появился — tom_1 в полной безопасности, можно выдохнуть).&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_23.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_23.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_23.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте чётко видно, что все btrfs-субтома (/@, /@home, /@pkg, /@log) и UEFI-раздел /boot вернулись на свои места. Теперь система гарантированно перезагрузится без сбоев.&lt;br/&gt;

Смена владельца файла слепка мы тоже сделали (sudo chown eva:eva …).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🔥_следующая_проблемаскелет_загрузчика_uefi&quot;&gt;🔥 Следующая проблема: Скелет загрузчика UEFI&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Переходим к самой важной части «слепого» взлёта — подготовке загрузчика. Чтобы материнские платы Supermicro, HP и ноунеймы поняли, как запускать наш кастомный образ, внутри папки ~/custom_iso/ должна лежать строгая структура файлов UEFI-загрузчика systemd-boot.&lt;br/&gt;

Сейчас у нас в ~/custom_iso/ есть только папка arch/x86_64/airootfs.sfs. Если запустить сборку ISO прямо сейчас, образ получится пустым и не загрузится ни на одном сервере.&lt;br/&gt;

Нам нужно скопировать бинарники загрузчика и конфиги из живой системы tom_1 прямо в наш конструктор.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;создаем_структуру_папок_для_uefi_и_конфигурации&quot;&gt;Создаем структуру папок для UEFI и конфигурации&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните команду одной строкой:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=162&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOT&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_24.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_24.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_24.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_структуры_uefi&quot;&gt;Проверка структуры UEFI&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=163&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-laR&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_25.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_25.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_25.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;на_что_смотрим_в_выводе&quot;&gt;На что смотрим в выводе:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Система должна показать пустую папку ~/custom_iso/EFI/BOOT&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; И пустую папку ~/custom_iso/loader/entries&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Структура каталогов EFI/BOOT и loader/entries создана без единой ошибки, права на месте. Скелет готов принимать файлы.&lt;br/&gt;

Теперь переходим к заполнению этих папок «жизненно важными органами» системы: загрузчиком UEFI, ядром Linux и виртуальным диском.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;копируем_файлы_загрузки&quot;&gt;Копируем файлы загрузки&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале строго по очереди следующие три команды:
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;копируем_сам_загрузчик_uefi&quot;&gt;Копируем сам загрузчик UEFI:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=164&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOT&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOTX64.EFI ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOT&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOTX64.EFI&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_26.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_26.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_26.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;копируем_ядро_linux&quot;&gt;Копируем ядро Linux:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=165&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_27.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_27.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_27.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверяем_содержимое_каталога_boot&quot;&gt;Проверяем содержимое каталога /boot&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=166&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_29.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_29.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_29.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;что-то_проебали_и_остановились_тут&quot;&gt;Что-то проебали и Остановились тут&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0442\u0438\u043b\u0438\u0442\u0430 mksquashfs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0442\u0438\u043b\u0438\u0442\u0430_mksquashfs1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:159,&amp;quot;secid&amp;quot;:115,&amp;quot;range&amp;quot;:&amp;quot;181893-189459&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit116&quot; id=&quot;скачиваем_чистый_iso&quot;&gt;Скачиваем чистый ISO&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Поскольку сеть на tom_1 у нас работает, первым делом вытягиваем актуальную ссылку на зеркало Яндекса и скачиваем официальный образ Arch Linux. Из него мы и заберём правильные файлы загрузчика&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;скачиваем_чистый_iso_arch_linux&quot;&gt;Скачиваем чистый ISO Arch Linux&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните эти две команды, чтобы вытащить актуальную ссылку на зеркало Яндекса и скачать чистый Arch Linux:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=167&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;MIRROR_URL&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-m&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;mirror.yandex.ru&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mirrorlist &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $3}&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;s/\$repo\/os\/\$arch//&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
curl &lt;span class=&quot;re5&quot;&gt;-L&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-O&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es3&quot;&gt;${MIRROR_URL}&lt;/span&gt;iso/latest/archlinux-x86_64.iso&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_30.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_30.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_30.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(В консоли побегут проценты скачивания файла размером около 1.1–1.5 ГБ).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;контрольная_проверка_скачанного_файла&quot;&gt;Контрольная проверка скачанного файла&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Как только закачка полностью завершится, мы обязаны убедиться, что файл лёг в корень домашней директории и не является «нулевым»
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;выполните_команду_проверки&quot;&gt;Выполните команду проверки&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=168&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; archlinux-x86_64.iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_31.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_31.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_31.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Нам нужно смонтировать этот ISO во временную директорию и вытащить оттуда оригинальные папки EFI и loader. Папку arch копировать НЕ будем, чтобы случайно не затереть наш кастомный airootfs.sfs, который мы так долго собирали.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;монтирование_и_копирование_загрузчика&quot;&gt;Монтирование и копирование загрузчика&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале по очереди эти три команды:
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;создаем_точку_монтирования&quot;&gt;Создаем точку монтирования&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=169&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_32.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_32.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_32.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;убеждаемся_что_папка_создана&quot;&gt;Убеждаемся, что папка создана&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу же проверяем, что каталог физически появился в системе и готов к работе. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=170&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-ld&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_33.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_33.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_33.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте чётко видно: каталог /tmp/iso_mount успешно создан, владелец eva, права drwxr-xr-x. Фундамент заложен без ошибок.&lt;br/&gt;

Переходим к следующему микрошагу — монтированию скачанного официального диска в эту папку.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;монтируем_чистый_iso&quot;&gt;Монтируем чистый ISO&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале ровно одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=171&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; loop ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archlinux-x86_64.iso &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_34.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_34.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_34.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Примечание: Система обязана написать на английском, что диск смонтирован в режиме только для чтения (mount: /tmp/iso_mount: WARNING: source write-protected, mounted read-only.).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_что_внутри_диска&quot;&gt;Проверяем, что внутри диска&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу же после выполнения монтирования смотрим, появились ли там файлы оригинального диска.&lt;br/&gt;
  Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=172&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_35.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_35.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_35.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте видна эталонная структура официального образа Arch Linux: каталоги arch, boot, EFI, loader и файл оболочки shellx64.efi&lt;br/&gt;

Теперь переходим к этапу копирования нужных нам каталогов загрузчика в наш конструктор ~/custom_iso/. Начнем строго с каталога EFI
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;копируем_каталог_efi&quot;&gt;Копируем каталог EFI&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале только одну команду
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=173&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_36.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_36.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_36.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;убеждаемся_что_efi_скопировался_правильно&quot;&gt;Убеждаемся, что EFI скопировался правильно&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Проверяем, что каталог скопировался со всем его содержимым в нашу рабочую папку. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=174&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-laR&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_37.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_37.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_37.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте видно, что в папке EFI/BOOT теперь лежат три файла: BOOTIA32.EFI, BOOTx64.EFI и старый подсвеченный зеленым BOOTX64.EFI (который мы копировали ранее из живой системы). Они не конфликтуют, официальные загрузчики встали ровно.&lt;br/&gt;

Переходим к копированию второго важнейшего каталога — loader, в котором хранятся настройки пунктов загрузки
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;копируем_каталог_loader&quot;&gt;Копируем каталог loader&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале ровно одну команду
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=175&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_38.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_38.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_38.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;смотрим_что_скопировалось&quot;&gt;Смотрим, что скопировалось&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу же проверяем структуру и файлы внутри скопированного каталога loader. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=176&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-laR&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_39.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_39.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_39.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте видна вся заводская структура официального образа: глобальный конфиг loader.conf и три дефолтных пункта меню загрузки в папке entries.&lt;br/&gt;

Теперь нам нужно скопировать оригинальные файлы ядра и виртуального диска (initramfs) из смонтированного чистого образа, чтобы не зависеть от специфики локального ядра вашей виртуалки. Они лежат в папке /tmp/iso_mount/boot/
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;копируем_ядро_и_initramfs_из_донорского_iso&quot;&gt;Копируем ядро и initramfs из донорского ISO&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В официальном ISO-образе Arch Linux пути к ядру могут слегка отличаться в зависимости от версии. Чтобы не гадать по памяти и не плодить ошибки, давайте прямо сейчас заглянем внутрь смонтированного диска в папку boot и посмотрим, где конкретно авторы релиза спрятали ядро и initramfs
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;ищем_ядро_внутри_донорского_iso&quot;&gt;Ищем ядро внутри донорского ISO&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале только одну команду, чтобы вывести структуру папки boot смонтированного образа
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=177&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-laR&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_40.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_40.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_40.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
и окончание вывода
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_41.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_41.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_41.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Ищем мы два главных файла — само ядро Linux и виртуальный диск. На официальном ISO-образе Arch Linux они обычно называются vmlinuz-linux и initramfs-linux.img&lt;br/&gt;

На нашем скриншоте видно, что в папке /tmp/iso_mount/boot лежат только каталоги старых загрузчиков (grub, syslinux), утилита теста памяти (memtest86+) и файл-метка с датой релиза. Ядра здесь нет.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_наличие_ядра_в_корневом_каталоге_arch&quot;&gt;Проверяем наличие ядра в корневом каталоге arch&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале только одну команду
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=178&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_42.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_42.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_42.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Здесь лежит только оригинальный airootfs.sfs и его подписи. Ядра и виртуального диска тут тоже нет.&lt;br/&gt;

Разработчики Arch Linux переработали структуру официального ISO. Давайте найдем, где лежат vmlinuz-linux и initramfs-linux.img на этом диске, чтобы забрать их.&lt;br/&gt;

Поскольку на первом скриншоте вывода ls -laR /tmp/iso_mount/boot мы видели каталог /tmp/iso_mount/boot/grub, проверим оставшуюся часть папки /tmp/iso_mount/boot.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;поиск_ядра_в_корне_каталога_boot&quot;&gt;Поиск ядра в корне каталога boot&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выведем список файлов в самой папке boot без ухода в подкаталоги, чтобы увидеть скрытые файлы.&lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=179&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_43.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_43.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_43.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
и тут не нашли&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Выполните в терминале ровно одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=180&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_44.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_44.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_44.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка&quot;&gt;Проверка&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу убедимся, что путь создался успешно и параллельно нашему слепку. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=181&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_45.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_45.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_45.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
В выводе мы должны увидеть две папки: старую x86_64 (где лежит слепок) и новую boot (куда мы сейчас положим ядро).&lt;br/&gt;

Папки boot и x86_64 легли рядышком, права принадлежат пользователю eva, магия сработала. Теперь у нас полностью изолированы друг от друга и готовый настроенный слепок системы, и будущее донорское ядро.&lt;br/&gt;

Переходим к следующему микрошагу — забираем ядро и виртуальный диск напрямую из правильного каталога смонтированного донорского образа.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;копируем_ядро_и_initramfs_из_донора&quot;&gt;Копируем ядро и initramfs из донора&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале ровно одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=182&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;initramfs-linux.img ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_46.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_46.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_46.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверяем_наличие_скопированных_файлов&quot;&gt;Проверяем наличие скопированных файлов&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу же после выполнения смотрим, долетели ли файлы и какой у них размер. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=183&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
vmlinuz-linux весит законные 16 МБ, а виртуальный диск initramfs-linux.img — полноценные 228 МБ. Владелец — пользователь eva. Теперь загрузчик на реальном сервере гарантированно увидит эти файлы по прописанным путям.&lt;br/&gt;

Поскольку донорский диск нам больше не нужен, параноидально зачистим за собой временные ресурсы, чтобы они не болтались в оперативной памяти виртуалки tom_1.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;размонтируем_официальный_iso&quot;&gt;Размонтируем официальный ISO&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=184&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;umount&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_48.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_48.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_48.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;убеждаемся_что_папка_опустела&quot;&gt;Убеждаемся, что папка опустела&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Проверим, что точка монтирования теперь полностью пуста:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=185&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Если там остались только стандартные точки . и .., значит диск успешно отмонтирован.&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_49.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_49.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_49.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Теперь переходим к шагу, ради которого вся эта схема и затевалась — записи кастомного загрузочного конфига.&lt;br/&gt;

Нам нужно заставить systemd-boot искать наш носитель по жестко прописанной глобальной метке ARCH_202605, а также (помня про отсутствие монитора) — сразу активировать вывод консоли в последовательный COM-порт для аварийного подключения.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;даем_права_на_запись_01-archiso-linuxconf&quot;&gt;Даем права на запись 01-archiso-linux.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале одну команду
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=186&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +&lt;span class=&quot;kw2&quot;&gt;w&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_52.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_52.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_52.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_прав_на_файл_конфига&quot;&gt;Проверка прав на файл конфига&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале строго одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=187&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_53.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_53.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_53.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;на_что_смотрим_в_выводе1&quot;&gt;На что смотрим в выводе:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Владелец и группа: Должно быть написано eva eva.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Флаги прав (самое начало строки): Если там написано -r–r–r–, то файл заблокирован на запись (read-only). Если после нашей команды sudo chmod +w там появилось -rw-r–r–, значит, флаг записи (w) успешно пробился, и пользователь eva может его менять.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;перезаписываем_конфигурацию_загрузчика&quot;&gt;Перезаписываем конфигурацию загрузчика&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Скопируйте этот блок текста целиком и вставьте в терминал tom_1:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=188&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf
title Arch Linux &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; medium &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;x86_64, UEFI&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
linux &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux
initrd &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;initramfs-linux.img
options &lt;span class=&quot;re2&quot;&gt;archisobasedir&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;archisolabel&lt;/span&gt;=ARCH_202605 &lt;span class=&quot;re2&quot;&gt;console&lt;/span&gt;=tty0 &lt;span class=&quot;re2&quot;&gt;console&lt;/span&gt;=ttyS0,&lt;span class=&quot;nu0&quot;&gt;115200&lt;/span&gt;
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_54.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_54.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_54.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверяем_результат_записи&quot;&gt;Проверяем результат записи&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся параноидально, что старые параметры с UUID стёрлись, а новые сели ровно. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=189&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_55.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_55.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_55.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Все параметры на месте: пути ведут к ядру и initramfs внутри arch/boot/x86_64/, жесткий UUID стерт, зашита метка тома archisolabel=ARCH_202605 и активирован вывод в COM-порт console=ttyS0,115200 &lt;br/&gt;

Вся структура нашего конструктора ~/custom_iso полностью готова к финальной упаковке. Нам остался последний рывок — запустить утилиту xorriso, чтобы собрать всё это добро в готовый файл arch_custom.iso&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;устанавливаем_xorriso&quot;&gt;Устанавливаем xorriso&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале строго одну команду
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=190&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; xorriso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_56.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_56.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_56.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Система запросит подтверждение установки, нажмите Y и Enter).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;убеждаемся_что_пакет_встал&quot;&gt;Убеждаемся, что пакет встал&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу после установки проверяем версию заново
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=191&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;xorriso &lt;span class=&quot;re5&quot;&gt;--version&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_57.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_57.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_57.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Теперь у системы есть всё необходимое, чтобы сшить папки, ядро и наш настроенный слепок в один готовый ISO-файл&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Выходим на финишную прямую сборки диска. Команда большая, в ней мы жёстко привязываем имя тома к нашей метке ARCH_202605 (чтобы загрузчик на реальном сервере не потерял флешку), а также прописываем UEFI-загрузчик
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0447\u0438\u0441\u0442\u044b\u0439 ISO&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c_\u0447\u0438\u0441\u0442\u044b\u0439_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:167,&amp;quot;secid&amp;quot;:116,&amp;quot;range&amp;quot;:&amp;quot;189460-207792&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit117&quot; id=&quot;💣_как_взрывается_мина_1_при_установке1&quot;&gt;💣 Как взрывается Мина №1 при установке?&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udca3 \u041a\u0430\u043a \u0432\u0437\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u041c\u0438\u043d\u0430 \u21161 \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udca3_\u043a\u0430\u043a_\u0432\u0437\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f_\u043c\u0438\u043d\u0430_1_\u043f\u0440\u0438_\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u04351&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:192,&amp;quot;secid&amp;quot;:117,&amp;quot;range&amp;quot;:&amp;quot;207793-207874&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit118&quot; id=&quot;🕵️_♂️_разбор_проёбаоткуда_взялся_zram-generator&quot;&gt;🕵️‍♂️ Разбор проёба: откуда взялся zram-generator?&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_71.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_71.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_71.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_72.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_72.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_72.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;br/&gt;

Ошибка zram-generator означает, что подсистема инициализации systemd пытается создать сжатый подкачивающий диск (swap) в оперативной памяти, но падает с ошибкой. На чистом официальном ISO Arch Linux этот генератор работает без проблем.&lt;br/&gt;

Но почему он упал у нас?
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Файловая система airootfs.sfs — это слепок вашей виртуалки tom_1. На tom_1 в ядре настроена полноценная работа с дисками (btrfs, файлы подкачки и т.д.).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; А вот ядро (vmlinuz-linux) и виртуальный диск (initramfs-linux.img) мы ювелирно скопировали из чистого официального ISO (донора), чтобы обойти проблему путей.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Произошел жесткий конфликт версий и модулей (Mismatch): Донором для ядра стал чистый официальный образ Arch. Но на живой машине tom_1 система уже обновлялась (linux-firmware от мая 2026 года, обновленные пакеты systemd).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Когда официальное донорское ядро пытается подгрузить модули и генераторы из нашего слепка airootfs.sfs, версии systemd и модулей ядра банально не совпадают. zram-generator падает, и systemd намертво блокирует дальнейшую загрузку служб, включая сеть и консоль.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
По старому руководству вы брали ядро и initramfs от той же самой системы tom_1 (хоть мы и запутались в путях), поэтому там версии совпадали, и ядро проходило дальше, пока не упиралось в UUID дисков.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🛠️_что_делаем_дальше_у_нас_есть_два_пути&quot;&gt;🛠️ Что делаем дальше? У нас есть два пути:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Поскольку мы договорились проверять всё пошагово и возвращаться к зафиксированным точкам, у нас два варианта:
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;путь_1_вернуться_на_tom_1_и_взять_его_родные_ядро_и_initramfs&quot;&gt;Путь 1. Вернуться на tom_1 и взять ЕГО родные ядро и initramfs&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Мы теперь точно знаем, что ядро и initramfs загрузчик ищет строго по пути arch/boot/x86_64/.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Мы можем зайти на tom_1, сгенерировать там чистый, родной initramfs-linux.img с помощью утилиты mkinitcpio (чтобы он точно содержал в себе модули для btrfs/ext4 и сетевых карт).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Скопировать их в ~/custom_iso/arch/boot/x86_64/, затерев донорские файлы.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Пересобрать ISO через xorriso. Версии совпадут, система продвинется дальше и упрется в UUID, как в старой доке, и мы сможем продолжить чистый эксперимент.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h5 id=&quot;путь_2_попробовать_дождаться_вдруг_отпустит&quot;&gt;Путь 2. Попробовать дождаться (вдруг отпустит?)&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Иногда при падении генераторов systemd ждет таймаут (около 90 секунд) и пробует продолжить загрузку остальных служб в аварийном режиме. &lt;br/&gt;

Если подождать пару минут, экран меняется или висит намертво на этой строчке?Если висит наглухо — переходим к Пути 1, чтобы выровнять версии ядра и слепка системы.
&lt;br/&gt;

В Linux-системах у systemd на запуск каждого генератора или службы по умолчанию заложен жесткий лимит времени (обычно 90 секунд). Если за это время капризный zram-generator не оклемается, ядро должно плюнуть на него, выдать статус [DEPEND] (ошибка зависимости) и попробовать запустить критически важные для нас вещи — текстовую консоль и службы логина.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_73.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_73.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_73.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udd75\ufe0f\u200d\u2642\ufe0f \u0420\u0430\u0437\u0431\u043e\u0440 \u043f\u0440\u043e\u0451\u0431\u0430: \u043e\u0442\u043a\u0443\u0434\u0430 \u0432\u0437\u044f\u043b\u0441\u044f zram-generator?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udd75\ufe0f_\u2642\ufe0f_\u0440\u0430\u0437\u0431\u043e\u0440_\u043f\u0440\u043e\u0451\u0431\u0430\u043e\u0442\u043a\u0443\u0434\u0430_\u0432\u0437\u044f\u043b\u0441\u044f_zram-generator&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:192,&amp;quot;secid&amp;quot;:118,&amp;quot;range&amp;quot;:&amp;quot;207875-212833&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit119&quot; id=&quot;📋_итоговый_чек-листхроники_ручной_сборки_headless_arch_iso&quot;&gt;📋 Итоговый чек-лист: Хроники ручной сборки Headless Arch ISO&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udccb \u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0447\u0435\u043a-\u043b\u0438\u0441\u0442: \u0425\u0440\u043e\u043d\u0438\u043a\u0438 \u0440\u0443\u0447\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438 Headless Arch ISO&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udccb_\u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439_\u0447\u0435\u043a-\u043b\u0438\u0441\u0442\u0445\u0440\u043e\u043d\u0438\u043a\u0438_\u0440\u0443\u0447\u043d\u043e\u0439_\u0441\u0431\u043e\u0440\u043a\u0438_headless_arch_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:192,&amp;quot;secid&amp;quot;:119,&amp;quot;range&amp;quot;:&amp;quot;212834-212943&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit120&quot; id=&quot;🕵️_♂️_часть_1_хроника_аудита_подопытной_флешки_вм_tom_2&quot;&gt;🕵️‍♂️ ЧАСТЬ 1. ХРОНИКА АУДИТА ПОДОПЫТНОЙ ФЛЕШКИ (ВМ tom_2)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Сессия началась с препарирования «вживую» запущенной в ОЗУ флешки №101 на изолированной машине tom_2. Нам требовалось понять причины двух проблем: почему ядро сыплет аппаратными ошибками прерываний (NMI) и почему система не записывается на пустой диск sda.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udd75\ufe0f\u200d\u2642\ufe0f \u0427\u0410\u0421\u0422\u042c 1. \u0425\u0420\u041e\u041d\u0418\u041a\u0410 \u0410\u0423\u0414\u0418\u0422\u0410 \u041f\u041e\u0414\u041e\u041f\u042b\u0422\u041d\u041e\u0419 \u0424\u041b\u0415\u0428\u041a\u0418 (\u0412\u041c tom_2)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udd75\ufe0f_\u2642\ufe0f_\u0447\u0430\u0441\u0442\u044c_1_\u0445\u0440\u043e\u043d\u0438\u043a\u0430_\u0430\u0443\u0434\u0438\u0442\u0430_\u043f\u043e\u0434\u043e\u043f\u044b\u0442\u043d\u043e\u0439_\u0444\u043b\u0435\u0448\u043a\u0438_\u0432\u043c_tom_2&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:192,&amp;quot;secid&amp;quot;:120,&amp;quot;range&amp;quot;:&amp;quot;212944-213520&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit121&quot; id=&quot;🔍_ключевые_улики_и_факты_добытые_по_ssh&quot;&gt;🔍 Ключевые улики и факты, добытые по SSH:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Сетевой стек и VLAN ID (Решено в один клик):Изначально Windows хост выдавал «Заданный узел недоступен» при пинге 192.168.1.150. Аудит свойств виртуального коммутатора Hyper-V Lan_without_internet показал активную галочку VLAN ID = 2. Хостовая Windows тегировала трафик, а Live-сессия Arch на eth0 ждала нетегированный (Native) поток. После сброса галочки VLAN ID сетевой мост мгновенно ожил, пошел чистый пинг, открылся SSH по PuTTY и отобразилась веб-страница.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Триумф SquashFS-слепка:Опровергнута теория о «затирании» кастомного корня донорскими файлами. Наличие активного статического IP 192.168.1.150, успешная авторизация под созданным пользователем eva, валидные Yescrypt-хэши ($y$) паролей в /etc/shadow и работающий Nginx на порту 5000 железно доказали: слепок airootfs.sfs жив, цел и развернулся в ОЗУ в штатном режиме. На скриншоте отобразилась дефолтная страница «Welcome to nginx!», так как контент инсталлятора в папку /usr/share/nginx/html/ еще не внедрялся.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Загадка и разгадка ZRAM (Причина сбоя на 2-й секунде):&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; На 2-й секунде загрузки флешки ядро выплевывало ошибку zram-generator failed with exit status 1.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Аудит в ОЗУ флешки (zramctl и lsmod | grep zram) выдал абсолютную тишину — модуль не загружен, устройства подкачки в памяти нет.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Поиск блокировок в /etc/modprobe.d/ вернул пустоту.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Глубинная причина: Локальный pacman -Q linux внутри слепка показал версию пакета модулей 7.0.9, а утилита uname -r запущенного ядра выдала донорскую версию 7.0.3. Произошел жесткий «мисматч» версий (Франкенштейн). Донорское ядро 7.0.3 из скачанного ISO не нашло своих модулей в слепке (там всё под 7.0.9), из-за чего отвалились драйверы, упал zram-generator, а виртуальный процессор Hyper-V начал засыпать консоль аппаратными ошибками прерываний NMI received for unknown reason 00.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Почему система не записалась на диск:Команда lsblk показала пустой жесткий диск sda (12G) без разделов. Аудит каталогов автозапуска systemd (/etc/systemd/system/multi-user.target.wants/), shell-профилей (.bash_profile, .bashrc) у eva и у root (у которого профиля вообще не было ввиду пустоты /etc/skel при базовой установке) доказал: в системе физически отсутствовали инструкции и скрипты для работы с дисками. Флешка вела себя как честный, чистый Live-CD.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udd0d \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0443\u043b\u0438\u043a\u0438 \u0438 \u0444\u0430\u043a\u0442\u044b, \u0434\u043e\u0431\u044b\u0442\u044b\u0435 \u043f\u043e SSH:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udd0d_\u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435_\u0443\u043b\u0438\u043a\u0438_\u0438_\u0444\u0430\u043a\u0442\u044b_\u0434\u043e\u0431\u044b\u0442\u044b\u0435_\u043f\u043e_ssh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:192,&amp;quot;secid&amp;quot;:121,&amp;quot;range&amp;quot;:&amp;quot;213521-217274&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit122&quot; id=&quot;часть_2_внесенные_изменения_в_руководство_на_сайте&quot;&gt;ЧАСТЬ 2. ВНЕСЕННЫЕ ИЗМЕНЕНИЯ В РУКОВОДСТВО НА САЙТЕ&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Осознав ценность 11-дневного труда, мы отказались от идеи «костылить» флешку на лету. Мы вернулись на tom_1 и начали пересобирать проект абсолютно с нуля. По ходу выполнения мы открыли ваше оригинальное руководство на сайте и сразу внесли в него фундаментальные архитектурные правки:
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0427\u0410\u0421\u0422\u042c 2. \u0412\u041d\u0415\u0421\u0415\u041d\u041d\u042b\u0415 \u0418\u0417\u041c\u0415\u041d\u0415\u041d\u0418\u042f \u0412 \u0420\u0423\u041a\u041e\u0412\u041e\u0414\u0421\u0422\u0412\u041e \u041d\u0410 \u0421\u0410\u0419\u0422\u0415&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0447\u0430\u0441\u0442\u044c_2_\u0432\u043d\u0435\u0441\u0435\u043d\u043d\u044b\u0435_\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f_\u0432_\u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e_\u043d\u0430_\u0441\u0430\u0439\u0442\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:192,&amp;quot;secid&amp;quot;:122,&amp;quot;range&amp;quot;:&amp;quot;217275-217893&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit123&quot; id=&quot;🛠_этап_0_выравнивание_и_контроль_версий&quot;&gt;🛠 Этап 0. Выравнивание и контроль версий&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;как_было&quot;&gt;Как было:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В середине процесса скачивался донорский ISO, и файлы vmlinuz-linux и initramfs-linux.img механически забирались из него.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0.1. Актуализация пакетов на tom_1: Запустить полное обновление системы (pacman -Syu), чтобы зафиксировать стабильный срез ядра и утилит на хосте.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0.2. Смена источника ядра: Полностью отказаться от копирования файлов vmlinuz-linux и initramfs-linux.img из скачанных донорских ISO-образов.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0.3. Прямая подстановка: Копировать файлы ядра и initramfs в структуру ISO (~/custom_iso/arch/boot/x86_64/) строго из родной папки /boot/ обновленной системы tom_1.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0.4. Сквозная проверка (Запрет сборки): Перед запуском упаковщика программно или визуально сверять версии:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Пакет: pacman -Q linux&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Файл на хосте: file /boot/vmlinuz-linux&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Файл в ISO: file ~/custom_iso/arch/boot/x86_64/vmlinuz-linuxВерсии должны совпадать символ в символ (например, строго 7.0.9-arch1-1).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;️_корректировка_1выравнивание_ядер_этап_0&quot;&gt;✏️ Корректировка №1: Выравнивание ядер (Этап 0)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;как_стало&quot;&gt;Как стало:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
 Мы ввели «Правило Нулевого Шага». Перед любой консервацией система tom_1 принудительно обновляется из зеркал (pacman -Syu), фиксируя эталонное свежее ядро (в нашем кейсе — 7.0.9-arch2-1). Копирование файлов ядра и initramfs в структуру конструктора теперь производится строго из родного каталога /boot/ самой обновленной tom_1. Это гарантирует 100% совпадение версий со слепком и навсегда убирает ошибку NMI и панику ZRAM.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;️_корректировка_2идеальное_место_для_интеграции_zram&quot;&gt;✏️ Корректировка №2: Идеальное место для интеграции ZRAM&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;как_было1&quot;&gt;Как было:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Текстовый конфиг zram-generator.conf лежал в системе, но утилита падала, так как бинарника не было в ОЗУ.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;как_стало1&quot;&gt;Как стало:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
 Мы нашли ювелирную точку на сайте. В подразделе «Установка инструментов сжатия и генератора ZRAM», строго после безопасной очистки fstab через truncate и перед непосредственным запуском команды mksquashfs, мы прописали совместную установку пакетов:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=192&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;bashsudo pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; squashfs-tools zram-generator&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Это гарантирует, что бинарник и службы ZRAM попадут внутрь слепка за секунду до упаковки, а на этапе ранней эксплуатации tom_1 система не будет замусорена.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0 \u042d\u0442\u0430\u043f 0. \u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0432\u0435\u0440\u0441\u0438\u0439&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0_\u044d\u0442\u0430\u043f_0_\u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435_\u0438_\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c_\u0432\u0435\u0440\u0441\u0438\u0439&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:192,&amp;quot;secid&amp;quot;:123,&amp;quot;range&amp;quot;:&amp;quot;217894-221382&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit124&quot; id=&quot;🛠_часть_3_подготовка_файловой_системы_слепка&quot;&gt;🛠 ЧАСТЬ 3. Подготовка файловой системы слепка&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0 \u0427\u0410\u0421\u0422\u042c 3. \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441\u043b\u0435\u043f\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0_\u0447\u0430\u0441\u0442\u044c_3_\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430_\u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439_\u0441\u0438\u0441\u0442\u0435\u043c\u044b_\u0441\u043b\u0435\u043f\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:193,&amp;quot;secid&amp;quot;:124,&amp;quot;range&amp;quot;:&amp;quot;221383-221477&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit125&quot; id=&quot;🧹_этап_1_статус_выполненных_шагов_на_свежей_вм_tom_1&quot;&gt;🧹 Этап 1. СТАТУС ВЫПОЛНЕННЫХ ШАГОВ НА СВЕЖЕЙ ВМ tom_1&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Продвигаясь мелкими шажками, строго по одной изолированной команде с мгновенным скриншот-контролем, мы успешно реализовали стартовый блок нового руководства на чистой tom_1:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.1. Запустили полное обновление системы (sudo pacman -Syu –noconfirm).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.2. Отправили ВМ в чистый ребут (sudo reboot), зашли обратно и зафиксировали в памяти ОЗУ эталонное родное ядро 7.0.9-arch2-1.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.3. Проверили пакет физического микрокода (pacman -Q linux-firmware) — версия 20260519-1 на месте, реальные сетевухи Intel/Broadcom заведутся.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.4. Ювелирно создали и сохранили на диск универсальный сетевой конфиг /etc/systemd/network/20-wired.network с маской Name=en* eth* и статикой 192.168.1.150/24.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.5. Перевели сетевую службу в автозапуск: sudo systemctl enable systemd-networkd (симлинки созданы).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.6. Включили &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;-резолвер: sudo systemctl enable systemd-resolved.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.7. Убедились, что удаленный доступ активен: systemctl is-enabled sshd рапортует enabled.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.8. Проверили автозапуск веб-сервера: systemctl is-enabled nginx выдает enabled.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.9. Прогнали синтаксический тест Nginx (sudo nginx -t) — успешно, порт 5000 жестко привязан в nginx.conf.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.10. Проверили хэши безопасности пользователей (sudo getent shadow root eva) — современный Yescrypt ($y$) на месте, учетки активны. Прямой вход под root через su - root проверен и защищен вашим личным паролем.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.11. Вывели параметры ZRAM на хосте (lsmod и zramctl) — модуль в ядре активен, swap на 4 ГБ функционирует штатно.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.12. Сделали резервную копию рабочей таблицы разделов: sudo cp /etc/fstab /etc/fstab.bak [1.9].&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.13. Обнулили оригинал: sudo truncate -s 0 /etc/fstab [1.9]. Контрольный cat /etc/fstab вернул идеальную пустую строку (оригинальная Btrfs-структура субтомов хоста надежно заперта в бэкапе .bak весом 837 байт) [1.4, 1.9].&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.14. Отработали нашу новую эдит-запись: одной чистой командой доставили инструменты сжатия и генератор ZRAM (sudo pacman -S –noconfirm squashfs-tools zram-generator) [1.4]. Раздельная проверка подтвердила их наличие в системе [1.4].&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.15. Доставили программную основу нашего будущего веб-инсталлятора: sudo pacman -S –noconfirm php-fpm [1.4].&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.16–0.18. Поймали «выключенный» статус PHP-FPM через is-enabled и принудительно перевели его в автозапуск (sudo systemctl enable php-fpm), добившись жесткого статуса enabled [1.4].&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83e\uddf9 \u042d\u0442\u0430\u043f 1. \u0421\u0422\u0410\u0422\u0423\u0421 \u0412\u042b\u041f\u041e\u041b\u041d\u0415\u041d\u041d\u042b\u0425 \u0428\u0410\u0413\u041e\u0412 \u041d\u0410 \u0421\u0412\u0415\u0416\u0415\u0419 \u0412\u041c tom_1&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83e\uddf9_\u044d\u0442\u0430\u043f_1_\u0441\u0442\u0430\u0442\u0443\u0441_\u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0445_\u0448\u0430\u0433\u043e\u0432_\u043d\u0430_\u0441\u0432\u0435\u0436\u0435\u0439_\u0432\u043c_tom_1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:193,&amp;quot;secid&amp;quot;:125,&amp;quot;range&amp;quot;:&amp;quot;221478-225282&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit126&quot; id=&quot;🚀_часть_4_что_предстоит_сделать_веб-инсталлятор&quot;&gt;🚀 ЧАСТЬ 4. ЧТО ПРЕДСТОИТ СДЕЛАТЬ (ВЕБ-ИНСТАЛЛЯТОР)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Мы остановились ровно перед разделом «Создание структуры каталогов для конструктора ISO». Мы полностью утвердили новую изящную концепцию: наша флешка будет не просто Live-CD, а полноценным WebUI-автономным сервером установки. Окно SSH нам нужно только для контроля, а сама установка на tom_2 будет происходить по клику кнопки из браузера на веб-странице 192.168.1.150:5000!
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\ude80 \u0427\u0410\u0421\u0422\u042c 4. \u0427\u0422\u041e \u041f\u0420\u0415\u0414\u0421\u0422\u041e\u0418\u0422 \u0421\u0414\u0415\u041b\u0410\u0422\u042c (\u0412\u0415\u0411-\u0418\u041d\u0421\u0422\u0410\u041b\u041b\u042f\u0422\u041e\u0420)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\ude80_\u0447\u0430\u0441\u0442\u044c_4_\u0447\u0442\u043e_\u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442_\u0441\u0434\u0435\u043b\u0430\u0442\u044c_\u0432\u0435\u0431-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:193,&amp;quot;secid&amp;quot;:126,&amp;quot;range&amp;quot;:&amp;quot;225283-226032&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit127&quot; id=&quot;🗺_предстоящие_шаги_доработки_руководства_на_tom_1&quot;&gt;🗺 Предстоящие шаги доработки руководства на tom_1:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создание_структуры_каталогов_конструктора&quot;&gt;1. Создание структуры каталогов конструктора:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Мы создадим папку под слепок системы mkdir -p ~/custom_iso/arch/x86_64/. Проверим систему tom_2 и официальный iso образ на необходимость создания директори изолированного пути для ядра загрузчика, которого ранее в доноре возможно не было:&lt;br/&gt;

и если его не было,то создадим 
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=193&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
и проверим создание.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;разработка_веб-фронтенда_и_бэкенда_html_css_js_php&quot;&gt;2. Разработка Веб-Фронтенда и Бэкенда (HTML / CSS / JS / PHP):&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В каталоге /usr/share/nginx/html/ мы заменим стандартную заглушку Nginx на пульт управления:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; index.html + style.css: красивый интерфейс с большой кнопкой «Начать установку системы на tom_2».&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; script.js: обработчик клика, который через асинхронный fetch() пингует бэкенд и выводит логи установки в реальном времени.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; install.php: скрипт, принимающий запрос от JS и инициирующий системный вызов через shell_exec(&amp;#039;sudo /usr/share/nginx/html/installer.sh sda 2&amp;gt;&amp;amp;1&amp;#039;);. &lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;

&lt;h4 id=&quot;обход_мины_с_правами_доступа_http_пользователь&quot;&gt;3. Обход мины с правами доступа (http пользователь):&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Поскольку PHP-FPM в Arch работает от имени пользователя http, мы создадим изолированный файл прав /etc/sudoers.d/web-installer внутри конструктора ISO и пропишем туда строго одну строчку беспарольного доступа к скрипту:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=194&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;http &lt;span class=&quot;re2&quot;&gt;ALL&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ALL:ALL&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; NOPASSWD: &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;installer.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
http ALL=(ALL:ALL) NOPASSWD: /usr/share/nginx/html/installer.sh
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создание_скрипта_разметки_по_логике_label_полный_отказ_от_uuid&quot;&gt;4. Создание скрипта разметки по логике LABEL (Полный отказ от UUID):&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Мы напишем installer.sh, который примет диск sda, занулит его через sgdisk –zap-all и наречет разделы жесткими глобальными метками: EFI раздел → LABEL=«ARCH_BOOT» (FAT32), Root раздел → LABEL=«ARCH_&lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt;» (Btrfs). Скрипт создаст ваши btrfs-субтома (/@, /@home, /@pkg, /@log), скопирует систему из ОЗУ и подкинет универсальный статический /etc/fstab, полностью завязанный на метки LABEL=.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;запуск_заморозки_системы&quot;&gt;5. Запуск заморозки системы:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполним команду mksquashfs / ~/custom_iso/arch/x86_64/airootfs.sfs …. Внутри этого слепка теперь гарантированно окажутся и модули ядра 7.0.9, и php-fpm, и zram-generator. Сразу после этого вернем fstab хоста на место.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;сборка_через_xorriso&quot;&gt;6. Сборка через xorriso:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Мы соберем новый 102-й образ, жестко привязав имя диска к вашей метке тома -volid «ARCH_202605», пропишем флаг ядра unknown_nmi_panic=0 для защиты от прерываний Hyper-V
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;🔌_модификация_параметров_загрузчика_под_hyper-v&quot;&gt;🔌 Модификация параметров загрузчика под Hyper-V&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 6.1. Добавление флага ядра: При формировании конфигурационного файла ~/custom_iso/loader/entries/01-archiso-linux.conf в строку параметров ядра (options) дописать:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=195&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;textunknown_nmi_panic&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Это заблокирует ложные аппаратные прерывания виртуализации Hyper-V и предотвратит ступор консоли.&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\uddfa \u041f\u0440\u0435\u0434\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0448\u0430\u0433\u0438 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u043d\u0430 tom_1:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\uddfa_\u043f\u0440\u0435\u0434\u0441\u0442\u043e\u044f\u0449\u0438\u0435_\u0448\u0430\u0433\u0438_\u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438_\u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430_\u043d\u0430_tom_1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:193,&amp;quot;secid&amp;quot;:127,&amp;quot;range&amp;quot;:&amp;quot;226033-230206&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit128&quot; id=&quot;🌐_этап_3_развертывание_и_изоляция_веб-бэкенда_nginx_php&quot;&gt;🌐 Этап 3. Развертывание и изоляция веб-бэкенда (Nginx + PHP)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 3.1. Интеграция PHP: Установить пакет php-fpm внутри слепка системы и связать его с Nginx через сокет в nginx.conf.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 3.2. Настройка прав веб-пользователя: Создать изолированный файл правил прав доступа по пути /etc/sudoers.d/web-installer внутри конструктора ISO.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 3.3. Беспарольный доступ к Bash: Прописать в этот файл строго одну строчку:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=196&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;texthttp &lt;span class=&quot;re2&quot;&gt;ALL&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ALL:ALL&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; NOPASSWD: &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;installer.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 3.4. Маскировка прав: Перед заморозкой SquashFS жестко выставить права на этот файл, иначе sudo его проигнорирует:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=197&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;bashchown root:root &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sudoers.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;web-installer
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; 0440 &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sudoers.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;web-installer&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83c\udf10 \u042d\u0442\u0430\u043f 3. \u0420\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0438 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044f \u0432\u0435\u0431-\u0431\u044d\u043a\u0435\u043d\u0434\u0430 (Nginx + PHP)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83c\udf10_\u044d\u0442\u0430\u043f_3_\u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435_\u0438_\u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044f_\u0432\u0435\u0431-\u0431\u044d\u043a\u0435\u043d\u0434\u0430_nginx_php&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:196,&amp;quot;secid&amp;quot;:128,&amp;quot;range&amp;quot;:&amp;quot;230207-231286&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit129&quot; id=&quot;💽_этап_4_разработка_webui-инсталлятора_и_логики_label&quot;&gt;💽 Этап 4. Разработка WebUI-инсталлятора и логики LABEL&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 4.1. Внедрение Bash-исполнителя: Написать скрипт /usr/share/nginx/html/installer.sh, который:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Принимает имя целевого диска как аргумент (например, $1 → sda).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Стирает старую разметку через sgdisk –zap-all.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Размечает диск и присваивает разделам жесткие метки: Раздел 1 (FAT32) → ARCH_BOOT, Раздел 2 (Btrfs) → ARCH_&lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создает внутри ARCH_&lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt; копию вашей структуры субтомов (/@, /@home, /@pkg, /@log).Копирует файлы из текущего ОЗУ флешки на новые субтома без интернета.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 4.2. Полный отказ от UUID: Внедрить в устанавливаемую систему универсальный статический /etc/fstab, полностью завязанный на метки:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=198&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;LABEL&lt;/span&gt;=ARCH_OS   &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;       btrfs   rw,noatime,&lt;span class=&quot;re2&quot;&gt;compress&lt;/span&gt;=zstd,&lt;span class=&quot;re2&quot;&gt;subvol&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/@&lt;/span&gt;   &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LABEL&lt;/span&gt;=ARCH_BOOT &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot   vfat    rw,relatime,&lt;span class=&quot;re2&quot;&gt;fmask&lt;/span&gt;=0022,&lt;span class=&quot;re2&quot;&gt;dmask&lt;/span&gt;=0022     &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 4.3. Верстка интерфейса (Фронтенд): Заменить дефолтный index.html в папке Nginx на кастомный пульт управления с использованием &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;, &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt; и JavaScript.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 4.4. Кнопка «Старт»: Написать install.php, который по клику JS-кнопки из браузера безопасно вызывает:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=199&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;install.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;phpshell_exec&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;sudo /usr/share/nginx/html/installer.sh sda 2&amp;gt;&amp;amp;1&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udcbd \u042d\u0442\u0430\u043f 4. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 WebUI-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u0430 \u0438 \u043b\u043e\u0433\u0438\u043a\u0438 LABEL&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udcbd_\u044d\u0442\u0430\u043f_4_\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430_webui-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u0430_\u0438_\u043b\u043e\u0433\u0438\u043a\u0438_label&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:198,&amp;quot;secid&amp;quot;:129,&amp;quot;range&amp;quot;:&amp;quot;231287-233068&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit130&quot; id=&quot;конец&quot;&gt;Конец&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u043e\u043d\u0435\u0446&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043d\u0435\u0446&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:200,&amp;quot;secid&amp;quot;:130,&amp;quot;range&amp;quot;:&amp;quot;233069-233091&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit131&quot; id=&quot;дальше_читаем_только_если_230526_вы_собрали_флешку_но_она_не_запустилась&quot;&gt;Дальше читаем только если 23.05.26 вы собрали флешку, но она не запустилась!&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u0430\u043b\u044c\u0448\u0435 \u0447\u0438\u0442\u0430\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 23.05.26 \u0432\u044b \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u0444\u043b\u0435\u0448\u043a\u0443, \u043d\u043e \u043e\u043d\u0430 \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0430\u0441\u044c!&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u0430\u043b\u044c\u0448\u0435_\u0447\u0438\u0442\u0430\u0435\u043c_\u0442\u043e\u043b\u044c\u043a\u043e_\u0435\u0441\u043b\u0438_230526_\u0432\u044b_\u0441\u043e\u0431\u0440\u0430\u043b\u0438_\u0444\u043b\u0435\u0448\u043a\u0443_\u043d\u043e_\u043e\u043d\u0430_\u043d\u0435_\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0430\u0441\u044c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:200,&amp;quot;secid&amp;quot;:131,&amp;quot;range&amp;quot;:&amp;quot;233092-233233&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit132&quot; id=&quot;🎯_1_глобальная_цель_проекта&quot;&gt;🎯 1. Глобальная цель проекта&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Собрать кастомный, полностью автономный ISO-образ Arch Linux на базе живой системы tom_1 для офлайн-установки на «слепые» физические сервера (Supermicro, старый HP, два кастомных ноунейма) без интернета и мониторов. Доступ к серверам после старта с флешки — строго по SSH.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83c\udfaf 1. \u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0430\u044f \u0446\u0435\u043b\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83c\udfaf_1_\u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0430\u044f_\u0446\u0435\u043b\u044c_\u043f\u0440\u043e\u0435\u043a\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:200,&amp;quot;secid&amp;quot;:132,&amp;quot;range&amp;quot;:&amp;quot;233234-233772&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit133&quot; id=&quot;если_230526_года_до_2359_вам_не_хватит_ума_собрать_рабочую_флешку_только_тогда_для_анализа_читаем_рабочий_код_от_210526&quot;&gt;Если 23.05.26 года до 23:59 вам не хватит ума собрать рабочую флешку. Только тогда! Для Анализа читаем рабочий код от 21.05.26&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0415\u0441\u043b\u0438 23.05.26 \u0433\u043e\u0434\u0430 \u0434\u043e 23:59 \u0432\u0430\u043c \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u0442 \u0443\u043c\u0430 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0443\u044e \u0444\u043b\u0435\u0448\u043a\u0443. \u0422\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0433\u0434\u0430! \u0414\u043b\u044f \u0410\u043d\u0430\u043b\u0438\u0437\u0430 \u0447\u0438\u0442\u0430\u0435\u043c \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043a\u043e\u0434 \u043e\u0442 21.05.26&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0435\u0441\u043b\u0438_230526_\u0433\u043e\u0434\u0430_\u0434\u043e_2359_\u0432\u0430\u043c_\u043d\u0435_\u0445\u0432\u0430\u0442\u0438\u0442_\u0443\u043c\u0430_\u0441\u043e\u0431\u0440\u0430\u0442\u044c_\u0440\u0430\u0431\u043e\u0447\u0443\u044e_\u0444\u043b\u0435\u0448\u043a\u0443_\u0442\u043e\u043b\u044c\u043a\u043e_\u0442\u043e\u0433\u0434\u0430_\u0434\u043b\u044f_\u0430\u043d\u0430\u043b\u0438\u0437\u0430_\u0447\u0438\u0442\u0430\u0435\u043c_\u0440\u0430\u0431\u043e\u0447\u0438\u0439_\u043a\u043e\u0434_\u043e\u0442_210526&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:200,&amp;quot;secid&amp;quot;:133,&amp;quot;range&amp;quot;:&amp;quot;233773-233999&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit134&quot; id=&quot;остановились_тут&quot;&gt;Остановились тут&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создаем точки монтирования, монтируем ISO и копируем его структуру в наш рабочий каталог.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=200&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; loop ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archlinux-x86_64.iso &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;команда_для_проверки_результата&quot;&gt;Команда для проверки результата:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что папки теперь на месте в ~/custom_iso:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=201&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Монтирование прошло успешно (предупреждение о read-only для ISO — это норма). Теперь копируем структуру во временную папку.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;выполните_копирование&quot;&gt;Выполните копирование:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=202&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;даем_права_на_запись_во_всю_структуру_конструктора&quot;&gt;Даем права на запись во всю структуру конструктора&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сделаем все папки и файлы внутри ~/custom_iso доступными для изменения:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=203&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-R&lt;/span&gt; +&lt;span class=&quot;kw2&quot;&gt;w&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Чтобы лично убедиться, что права изменились и у пользователя eva теперь есть доступ на запись (w) ко всем папкам и файлам внутри конструктора, выполните две команды проверки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=204&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-R&lt;/span&gt; +&lt;span class=&quot;kw2&quot;&gt;w&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso
&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso
&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;на_что_смотрим_в_выводе_перед_тем_как_идти_дальше&quot;&gt;На что смотрим в выводе перед тем, как идти дальше:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В строках папок arch, EFI и loader права должны начинаться с drwxr-xr-x (главное — наличие буквы w в первой тройке символов).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Внутри папки entries файлы должны получить права -rw-r–r– (также с буквой w)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;записываем_универсальный_конфиг_в_правильный_файл&quot;&gt;Записываем универсальный конфиг в правильный файл&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=205&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf
title Arch Linux &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; medium &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;x86_64, UEFI&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
linux &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux
initrd &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;initramfs-linux.img
options &lt;span class=&quot;re2&quot;&gt;archisobasedir&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;archisolabel&lt;/span&gt;=ARCH_202605
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_результат_записи1&quot;&gt;Проверяем результат записи&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что файл 01-archiso-linux.conf обновился корректно:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=206&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_пройдена_идеально&quot;&gt;Проверка пройдена идеально.&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Конфигурационный файл 01-archiso-linux.conf успешно перезаписан. Параметр archisolabel=ARCH_202605 зафиксирован в системе. Теперь ядро при старте будет искать носитель строго по метке, и загрузка не упадет.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;делаем_fstab_чистым_через_бэкап&quot;&gt;Делаем fstab чистым (через бэкап)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
временно уберем строчки из fstab на tom_1, соберем слепок и вернем всё назад. На чистом tom_1 в fstab и так практически ничего нет, кроме корня.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_содержимое_оригинального_fstab&quot;&gt;Проверяем содержимое оригинального fstab&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=207&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;делаем_резервную_копию_вашего_рабочего_fstab&quot;&gt;Делаем резервную копию вашего рабочего fstab:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=208&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_его_наличие&quot;&gt;проверяем его наличие&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=209&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Мы должны увидеть два файла одинакового размера, и содержимое fstab.bak должно до символа совпадать с оригиналом.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;бэкап_проверен&quot;&gt;Бэкап проверен&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
всё на месте до единого символа. В оригинальном конфиге как раз жестко завязаны UUID разделов Btrfs (/, /home, /var/…) и vfat (/boot) диска sdb. Именно эти строки systemd отчаянно пытался найти в виртуалке, вызывая аварийный режим. Теперь, когда в основном файле пусто, система внутри ISO-образа больше не будет спотыкаться о локальную разметку tom_1.
Оригинальные данные в полной безопасности, переходим к упаковке.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;полностью_очищаем_fstab_перед_упаковкой&quot;&gt;Полностью очищаем fstab перед упаковкой:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=210&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; truncate &lt;span class=&quot;re5&quot;&gt;-s&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Базовая загрузочная структура полностью готова к упаковке новой системы. 
Переходим к установке утилит и заморозке чистого tom_1 на место удаленного файла ОС.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_squashfs-tools&quot;&gt;Установка squashfs-tools&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Поскольку система чистая, ставим пакет сжатия заново:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=211&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; squashfs-tools&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;замораживаем_и_упаковываем_живой_tom_1&quot;&gt;Замораживаем и упаковываем живой tom_1&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
После успешной установки пакета запускаем сборку слепка файловой системы:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=212&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; mksquashfs &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs \
&lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;proc &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;media &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lost+found ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archlinux-x86_64.iso ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso \
&lt;span class=&quot;re5&quot;&gt;-comp&lt;/span&gt; zstd &lt;span class=&quot;re5&quot;&gt;-b&lt;/span&gt; 1M&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Процесс займет несколько минут, на экране побегут упаковываемые файлы).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;команда_для_обязательной_проверки_результата&quot;&gt;Команда для обязательной проверки результата:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Как только утилита mksquashfs завершит работу и вернет терминал к строке [eva@tom1 ~]$, проверьте, что файл создался и посмотрите его вес:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=213&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;упаковка_squashfs_завершена_успешно&quot;&gt;Упаковка SquashFS завершена успешно.&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Файл airootfs.sfs весит 1.5 ГБ, статистика UID/GID на скриншоте подтверждает, что все пользователи (включая eva и http) корректно перенеслись внутрь слепка системы.&lt;br/&gt;

Поскольку утилита mksquashfs работала через sudo, владельцем созданного файла стал root. Проверяем и правим права, чтобы на этапе финальной сборки ISO у нас не возникло ошибок доступа.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;возвращаем_ваш_fstab_на_место_чтобы_tom_1_не_пострадал&quot;&gt;возвращаем ваш fstab на место, чтобы tom_1 не пострадал:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=214&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;меняем_владельца_файла&quot;&gt;Меняем владельца файла&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните команду смены владельца:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=215&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chown&lt;/span&gt; eva:eva ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;обязательная_проверка_результата&quot;&gt;Обязательная проверка результата&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что права обновились корректно:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=216&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;на_что_смотрим_в_выводе2&quot;&gt;На что смотрим в выводе:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Вместо root root в строке файла должно быть четко написано eva eva.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_прав_пройдена_успешно&quot;&gt;Проверка прав пройдена успешно.&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Владельцем файла airootfs.sfs теперь официально является eva eva.&lt;br/&gt;

Мы подошли к финальному этапу — сборке кастомного ISO-образа. Помня прошлую ошибку с регистром букв в имени загрузчика (BOOTx64.EFI), мы используем точную и проверенную команду сборки.&lt;br/&gt;

Поскольку система чистая, сначала установим xorriso, а затем соберем образ.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_xorriso&quot;&gt;Установка xorriso&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните команду установки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=217&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; xorriso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;финальная_сборка_универсального_iso&quot;&gt;Финальная сборка универсального ISO&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Запустите команду сборки (в ней прописана правильная маленькая буква x и наша метка тома ARCH_202605):
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=218&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;xorriso &lt;span class=&quot;re5&quot;&gt;-as&lt;/span&gt; mkisofs \
  &lt;span class=&quot;re5&quot;&gt;-iso-level&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-full-iso9660-filenames&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-volid&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ARCH_202605&amp;quot;&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-eltorito-alt-boot&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;EFI/BOOT/BOOTx64.EFI&amp;quot;&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-no-emul-boot&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-isohybrid-gpt-basdat&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-output&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso \
  ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;обязательная_проверка_результата1&quot;&gt;Обязательная проверка результата&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что файл arch_custom.iso успешно сгенерировался в вашей домашней директории, проверив его размер:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=219&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;сборка_нового_образа_завершена_идеально&quot;&gt;Сборка нового образа завершена идеально.&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Мы видим заветную строку Writing to &amp;#039;stdio…&amp;#039; completed successfully и готовый файл arch_custom.iso весом 1.7 ГБ.&lt;br/&gt;

В этот раз мы проверили каждый шаг, исправили права на папки и зашили универсальный параметр загрузки ядра по метке тома archisolabel=ARCH_202605.&lt;br/&gt;

Переходим к проверке на виртуальной машине tom_2. Вытаскиваем готовый ISO-образ в Windows.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;скачиваем_новый_iso_в_windows&quot;&gt;Скачиваем новый ISO в Windows&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Эта команда без лишнего мусора и длинных списков выведет ровно одно значение — текущий IP-адрес, по которому tom_1 доступен в вашей сети.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=220&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ip route&lt;/span&gt; get &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $7}&#039;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Откройте PowerShell на вашем хостовом компьютере с Windows и запустите скачивание файла:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=221&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;cmd&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;scp&lt;/span&gt; eva&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;192.168.1.72:&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;eva&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso C:\Users\Public\Downloads\arch_custom.iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(При запросе введите пароль пользователя eva).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;выполнен_успешно&quot;&gt;выполнен успешно!&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Новый универсальный образ arch_custom.iso размером 1.7 ГБ полностью скачан в Windows. Дата изменения — свежая (14:01).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;открываем_папку_с_файлом_на_windows&quot;&gt;Открываем папку с файлом на Windows&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Нажмите на клавиатуре комбинацию клавиш Win + R (откроется окошко «Выполнить»), вставьте туда вот этот путь и нажмите Enter:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux_%D0%B2%D1%80%D0%B5%D0%BC%D0%BA%D0%B0&amp;amp;codeblock=222&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;txt&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code sql&quot;&gt;C:\Users\Public\Downloads&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;дважды_щелкнуть_мышкой_по_диску&quot;&gt;дважды щелкнуть мышкой по диску&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
и записать руфусом
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;извлекаем_диск_из_windows&quot;&gt;Извлекаем диск из Windows&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Даже если вы нажимали «Извлечь», Rufus или Проводник могли оставить фоновый процесс.
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Откройте «Управление дисками» (Disk Management) в Windows.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Найдите внизу списка наш Диск 2 (виртуальный).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Нажмите правой кнопкой мыши по серой зоне с надписью «Диск 2» и выберите «Отсоединить виртуальный жесткий диск». Если его там уже нет — отлично.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u0442\u0443\u0442&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c_\u0442\u0443\u0442&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:200,&amp;quot;secid&amp;quot;:134,&amp;quot;range&amp;quot;:&amp;quot;234000-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 30 May 2026 16:10:40 +0000</pubDate>
        </item>
        <item>
            <title>building_an_arch_linux_iso_image_from_a_modified_arch_linux</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;rev=1779678899</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;сборка_iso_image_arch_linux_из_рабочего_arch_linux&quot;&gt;сборка iso image arch linux из рабочего arch linux&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0441\u0431\u043e\u0440\u043a\u0430 iso image arch linux \u0438\u0437 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e arch linux&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0431\u043e\u0440\u043a\u0430_iso_image_arch_linux_\u0438\u0437_\u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e_arch_linux&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-81&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;вводные_данные_и_архитектура_стенда&quot;&gt;1. Вводные данные и Архитектура Стенда&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; tom_1 - ВМ в Hyper-V с доступом в интернет, с рабочим arch linux, на котором развернут Nginx (порт 5000) и работает SSH для PuTTY, созданы пользователи root и eva и им заданы пороли.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; arch-flash-3 - ВД в Hyper-V,  куда мы через rufus записываем, созданный нами ISO-образ с tom_1&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; tom_2 - ВМ в Hyper-V без доступа в интернет, куда мы подключим arch-flash-3 и развернем arch linux, на котором развернут Nginx (порт 5000) и работает SSH для PuTTY, созданы пользователи root и eva и им заданы пороли.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
реальный headless-сервер - без интернета и без монитора.(supermicro, 2 none-name (старый и новый) и старый HP) &lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;наша_цель&quot;&gt;Наша цель:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
собрать новый, полностью универсальный ISO-образ, который будет находить флешку не по жесткому UUID, а по глобальной метке тома (LABEL=ARCH_202605).&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1. \u0412\u0432\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0421\u0442\u0435\u043d\u0434\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0432\u043e\u0434\u043d\u044b\u0435_\u0434\u0430\u043d\u043d\u044b\u0435_\u0438_\u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430_\u0441\u0442\u0435\u043d\u0434\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;82-1378&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;🛠_этап_0_выравнивание_версий_и_подготовка_окружения_на_tom_1&quot;&gt;🛠 Этап 0. Выравнивание версий и подготовка окружения на tom_1&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Чтобы предотвратить конфликт драйверов и панику модуля ZRAM на ранних секундах загрузки флешки, ядро загрузчика и модули внутри SquashFS-слепка должны совпадать символ в символ.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;шаг_21_тотальное_обновление_и_фиксация_ядра_хоста&quot;&gt;Шаг 2.1. Тотальное обновление и фиксация ядра хоста&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Зайдите на чистый tom_1 по SSH под пользователем eva и обновите индекс пакетов и само ядро хоста:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-Syu&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_95.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_95.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_95.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;фиксируем_эталонную_версию_ядра&quot;&gt;Фиксируем эталонную версию ядра&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Посмотрите на строчку генерации образа виртуального диска:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;=⇒ Starting build: &amp;#039;7.0.9-arch2-1&amp;#039;&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Наша новая зафиксированная версия ядра: 7.0.9-arch2-1.&lt;br/&gt;

Обратите внимание, как утилита mkinitcpio автоматически пересобрала не просто обычный виртуальный диск, а создала единый объединенный образ:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Creating unified kernel image: &amp;#039;/boot/EFI/Linux/arch-linux.efi&amp;#039;&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Это означает, что на tom_1 теперь развернута абсолютно чистая, монолитная, современная база ядра. Конфликт версий официально предотвращен еще на этапе фундамента.&lt;br/&gt;

Поскольку в процессе этого тотального обновления pacman физически заменил старые файлы ядра в каталоге /boot/ на новые, текущее запущенное в оперативной памяти tom_1 ядро всё еще имеет старый индекс, а на диске уже лежат файлы версии 7.0.9-arch2-1.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;перезагрузка_системы&quot;&gt;Перезагрузка системы&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Чтобы система tom_1 полностью приняла новое ядро и зафиксировала его в оперативной памяти, нам нужно отправить виртуалку в чистую перезагрузку.&lt;br/&gt;

Прямо в консоли PuTTY выполните команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; reboot&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_98.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_98.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_98.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Подождите около 20–30 секунд, пока ВМ tom_1 сделает круг перезапуска в Hyper-V.&lt;br/&gt;

Подключитесь к tom_1 заново через PuTTY под пользователем eva
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;загрузка_и_проверка&quot;&gt;Загрузка и проверка&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Как только зайдете обратно, выполните команду сверки
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=2&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;uname&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_99.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_99.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_99.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Убедимся, что в ОЗУ хоста теперь честно светится 7.0.9-arch2-1, и только после этого медленно и аккуратно двинемся дальше по нашему новому руководству.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0 \u042d\u0442\u0430\u043f 0. \u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0439 \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043d\u0430 tom_1&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0_\u044d\u0442\u0430\u043f_0_\u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435_\u0432\u0435\u0440\u0441\u0438\u0439_\u0438_\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430_\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f_\u043d\u0430_tom_1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1379-4889&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;статический_ip_адрес_хоста&quot;&gt;Статический IP адрес хоста&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Вместо автоматического DHCP мы жестко (статически) пропишем адрес к примеру 192.168.1.72 в файле конфигурации. Это гарантирует, что хост tom_1 больше никогда не сменит свой IP, а сетевой диск в Windows не отвалится.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 IP \u0430\u0434\u0440\u0435\u0441 \u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439_ip_\u0430\u0434\u0440\u0435\u0441_\u0445\u043e\u0441\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;4890-5312&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;узнаем_точное_имя_network_файла&quot;&gt;Узнаем точное имя .network файла&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=3&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_129.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_129.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_129.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Имя файла определено: 20-wired.network.)&lt;/em&gt;
&lt;br/&gt;

Перед тем как вносить изменения, мы обязаны посмотреть его полную структуру, чтобы увидеть секцию [Match] (которая привязывает этот конфиг к конкретной сетевой карте eth0 или enx…).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;структура_файла_20-wirednetwork&quot;&gt;Структура файла 20-wired.network&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=4&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_130.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_130.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_130.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Секция [Match] перехватывает все интерфейсы, начинающиеся на en* и eth*.)&lt;/em&gt;
&lt;br/&gt;
 Теперь мы готовы переписать этот файл, заменив красивый адрес 192.168.1.150 на ваш более статический 192.168.1.72. Остальные параметры (маску /24, шлюз и &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;) оставляем без изменений.
&lt;em&gt;(а адрес 192.168.1.150 мы оставим для нашей флешки с iso образом для обнаружения в сети)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;перезапись_файла_20-wirednetwork_на_ip_192168172&quot;&gt;Перезапись файла 20-wired.network на IP 192.168.1.72&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Мы используем монолитную команду cat « &amp;#039;&lt;abbr title=&quot;End of file&quot;&gt;EOF&lt;/abbr&gt;&amp;#039;, которая полностью затрёт старый конфиг и запишет новый чистый текст. Это исключает ошибки ручного ввода в редакторах.&lt;br/&gt;

Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=5&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;tee&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Match&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=en&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; eth&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Network&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Address&lt;/span&gt;=192.168.1.72&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Gateway&lt;/span&gt;=192.168.1.1
&lt;span class=&quot;re2&quot;&gt;DNS&lt;/span&gt;=1.1.1.1
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_132.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_132.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_132.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Перед тем как перезапустить сеть, мы обязаны сделать шаг контроля и убедиться, что файл перезаписался именно так, как нам нужно.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_измененного_файла_20-wirednetwork&quot;&gt;Проверка измененного файла 20-wired.network&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=6&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_133.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_133.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_133.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Внутри прописан наш целевой статический адрес 192.168.1.72.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;применение_настроек_сети&quot;&gt;Применение настроек сети&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Чтобы система сбросила старый адрес 192.168.1.150 и применила новый, нам необходимо полностью перезапустить сетевую службу systemd-networkd.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=7&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl restart systemd-networkd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Важно: Как только вы выполните эту команду, текущая SSH-сессия PuTTY сразу же прервётся (окно зависнет), так как IP-адрес машины мгновенно изменится на 192.168.1.72.  
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_134.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_134.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_134.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверка_нового_адреса&quot;&gt;Проверка нового адреса&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Откройте новое окно PuTTY и подключитесь к tom_1 по его новому постоянному адресу: 192.168.1.72
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=8&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ip&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-br&lt;/span&gt; address show scope global &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $3}&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cut&lt;/span&gt; -d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-f1&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Система отобразила наш новый постоянный IP-адрес 192.168.1.72)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;драйверы_сетевой_карты_реального_сервера&quot;&gt;Драйверы сетевой карты реального сервера&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В виртуалке Hyper-V используется виртуальный сетевой адаптер (обычно dec21140 или синтетический от Microsoft). На реальном сервере будет стоять физический чип (Intel, Realtek, Broadcom).
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;что_проверить&quot;&gt;Что проверить:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
 Убедитесь, что в вашей системе tom_1 установлен пакет linux-firmware.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;команда_для_проверки&quot;&gt;Команда для проверки&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=9&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Q&lt;/span&gt; linux-firmware&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Если его нет, обязательно накатите (sudo pacman -S linux-firmware), иначе реальный сервер после загрузки с ISO просто не увидит свою физическую сетевую карту.&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_106.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_106.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_106.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
расклад по железу понятен (1 Supermicro, 1 старый HP и два ноунейм-самосбора разных поколений), то универсальность сетевого конфига становится задачей номер один. На таком «зоопарке» железа дефолтные предсказуемые имена интерфейсов от systemd гарантированно разъедутся в разные стороны:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; На Supermicro это, скорее всего, будут имена вида eno1 (onboard) или пути вроде enp3s0f0.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; На старом HP интерфейсы могут обозваться как eno49, ens1 или упасть в классический eth0.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; На ноунеймах (самосборах) всё зависит от логики материнской платы (чисто по PCI-пути — например, enp2s0).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Поэтому зашивать маску Name=en* eth* в конфиг systemd-networkd — это единственное спасение, чтобы один и тот же ISO-образ молча поднял сеть на любой из этих плат.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0437\u043d\u0430\u0435\u043c \u0442\u043e\u0447\u043d\u043e\u0435 \u0438\u043c\u044f .network \u0444\u0430\u0439\u043b\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0437\u043d\u0430\u0435\u043c_\u0442\u043e\u0447\u043d\u043e\u0435_\u0438\u043c\u044f_network_\u0444\u0430\u0439\u043b\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;5313-11545&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;создаем_универсальный_конфиг_сети&quot;&gt;Создаем универсальный конфиг сети&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Чтобы не гадать, как система назовет сетевую карту на разном железе (eno1, enp3s0, eth0), мы заставим systemd-networkd применять настройки к любому проводному интерфейсу.&lt;br/&gt;

Выполните команду на tom_1 для создания конфигурационного файла:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=10&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;systemd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;-wired.network&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Вставьте в него следующие строки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=11&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;ini&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Match&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Name&lt;/span&gt;=en&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; eth&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Network&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Address&lt;/span&gt;=192.168.1.150&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;Gateway&lt;/span&gt;=192.168.1.1
&lt;span class=&quot;re2&quot;&gt;DNS&lt;/span&gt;=1.1.1.1&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Примечание: Если в вашей локальной Windows-сети используется другой поддиапазон (например, 192.168.0.X), измените IP-адрес Address и шлюз Gateway под свою рабочую сеть.&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_2.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_2.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_2.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;разбор_конфига_на_скриншоте&quot;&gt;Разбор конфига на скриншоте&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Всё в точности, как надо:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Name=en* eth* — заматчит любую сетевуху.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Address=192.168.1.150/24 — статический IP, который мы будем пинговать на новом сервере.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Gateway=192.168.1.1 — шлюз.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;=1.1.1.1 — &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;-сервер.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
В правом верхнем углу горит надпись Modified. Это значит, что изменения внесены, но файл еще не сохранен на диск.
&lt;em&gt; Примечание: CTRL+O для записи файла Enter для подтверждения имени файла CTRL+X для выхода из редактора nano&lt;/em&gt;
Как только выйдете из редактора, нам нужно убедиться, что systemd-networkd вообще включен и подхватит этот конфиг при старте образа.&lt;br/&gt;

Выполните команду в консоли:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=12&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled systemd-networkd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_3.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_3.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_3.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Примечание: в нашем случае служба systemd-networkd отключена (disabled)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;включаем_сетевую_службу&quot;&gt;Включаем сетевую службу&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните команду, чтобы активировать автозапуск сети:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=13&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; systemd-networkd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_4.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_4.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_4.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте чётко видно, что система создала все необходимые привязки для systemd-networkd.&lt;br/&gt;

Теперь переходим к проверке &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;-резолвера и удаленного доступа по SSH. Без этого сервер не сможет преобразовывать имена сайтов, а мы не сможем зайти на него удаленно.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;включаем_dns_и_проверяем_ssh&quot;&gt;Включаем DNS и проверяем SSH&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале по очереди следующие две команды:
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;включаем_службу_резолвинга_имён_dns&quot;&gt;Включаем службу резолвинга имён (DNS):&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=14&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; systemd-resolved&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_5.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_5.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_5.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверяем_включен_ли_автозапуск_службы_ssh&quot;&gt;Проверяем, включен ли автозапуск службы SSH:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=15&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled sshd&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_6.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_6.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_6.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; включен, SSH в статусе enabled. Это значит, что доступ к консоли по сети у нас будет сразу после старта «вслепую».&lt;br/&gt;

Теперь проверяем последний критически важный сервис — веб-сервер Nginx, ради которого всё и затевается. Нам нужно убедиться, что он тоже поднимется сам.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверяем_nginx&quot;&gt;Проверяем Nginx&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните команду в терминале:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=16&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_8.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_8.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_8.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверяем_слушает_ли_nginx_порт_5000&quot;&gt;Проверяем, слушает ли Nginx порт 5000&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что в конфигах нет синтаксических ошибок и порт 5000 реально прописан. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Выполните команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=17&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; nginx &lt;span class=&quot;re5&quot;&gt;-t&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;5000&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_9.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_9.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_9.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Nginx проверен, тут полный порядок! Тест конфигурации успешный (syntax is ok, test is successful), и порт 5000 чётко прописан в основном файле /etc/nginx/nginx.conf. Варнинг про types_hash — это стандартная безобидная ругань Nginx на мелкий дефолтный размер хэш-таблицы типов файлов в Arch, на работу веб-сервера он никак не повлияет.&lt;br/&gt;

Теперь проверяем вторую половину вашей задумки — пароли пользователей. Это критически важно, так как без паролей SSH-сервер нас просто отошьёт.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;выводим_хэши_паролей_root_и_eva&quot;&gt;Выводим хэши паролей root и eva&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выводим хэши паролей root и eva
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=18&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;getent&lt;/span&gt; shadow root eva &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cut&lt;/span&gt; -d: -f1,&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_10.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_10.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_10.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте мы видим современные, надежные хэши паролей yescrypt (начинаются с $y$) как для root, так и для пользователя eva. Пароли заданы железно, а значит, SSH-сервер без проблем пустит вас в консоль на реальной машине. Полноценный аудит пройден, все критические точки проверены.Время переходить к финальной фазе сборки нашего автономного ISO. Погнали по шагам, аккуратно работаем с таблицей разделов.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433 \u0441\u0435\u0442\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u0435\u043c_\u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439_\u043a\u043e\u043d\u0444\u0438\u0433_\u0441\u0435\u0442\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:10,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;11546-18290&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;ошибка_в_загрузку_флешки&quot;&gt;Ошибка в загрузку флешки&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_107.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_107.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_107.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0444\u043b\u0435\u0448\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0448\u0438\u0431\u043a\u0430_\u0432_\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443_\u0444\u043b\u0435\u0448\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:19,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;18291-18443&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;проверяем_наличие_zram&quot;&gt;Проверяем наличие ZRAM&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;strong&gt;ZRAM&lt;/strong&gt; в Arch Linux (и других дистрибутивах) — это модуль ядра Linux, который создает виртуальный диск в оперативной памяти и сжимает данные на лету.
Давайте посмотрим, активен ли этот модуль ядра на вашей чистой, только что обновленной системе tom_1.&lt;br/&gt;

Выполните в консоли tom_1 две диагностические команды:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=19&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# 1. Проверяем, загружен ли сам модуль ядра в память прямо сейчас&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;lsmod&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; zram&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_100.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_100.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_100.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверка_параметров_активных_дисков_zram&quot;&gt;Проверка параметров активных дисков ZRAM&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале tom_1 ровно одну команду, чтобы увидеть физический размер и алгоритм сжатия созданного диска подкачки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=20&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# 1. Проверяем, загружен ли сам модуль ядра в память прямо сейчас&lt;/span&gt;
zramctl&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_101.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_101.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_101.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 ZRAM&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c_\u043d\u0430\u043b\u0438\u0447\u0438\u0435_zram&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:19,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;18444-19839&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;установка_инструментов_сжатия_и_генератора_zram&quot;&gt;Установка инструментов сжатия и генератора ZRAM&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;ставим_инструменты_squashfs&quot;&gt;Ставим инструменты SquashFS&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Пакет &lt;strong&gt;squashfs-tools&lt;/strong&gt; в Arch Linux — это набор консольных утилит для создания, распаковки и модификации сжатых файловых систем SquashFS.&lt;br/&gt;

Установим пакет squashfs-tools, в который и входит нужная команда. &lt;br/&gt;

Выполняйте:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=21&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; squashfs-tools&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Флаги -S (Синхронизация / Установка) и –noconfirm (Без подтверждения)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_109.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_109.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_109.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;ставим_инструменты_zram-generator&quot;&gt;Ставим инструменты zram-generator&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
zram-generator в Arch Linux — это утилита, которая автоматически создает и настраивает диски zram (сжатая оперативная память) для использования в качестве очень быстрого раздела подкачки (swap).&lt;br/&gt;

Установим пакет squashfs-tools, в который и входит нужная команда. &lt;br/&gt;

Выполняйте:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=22&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; zram-generator&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Флаги -S (Синхронизация / Установка) и –noconfirm (Без подтверждения)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_110.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_110.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_110.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_установки_пакетов&quot;&gt;Проверка установки пакетов&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=23&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Q&lt;/span&gt; squashfs-tools zram-generator&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_111.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_111.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_111.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
(&lt;em&gt;Если пакеты установлены, терминал выведет их версии, иначе, вы получите ошибку (например, error: package &amp;#039;squashfs-tools&amp;#039; was not found).&lt;/em&gt;)
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u0436\u0430\u0442\u0438\u044f \u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 ZRAM&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432_\u0441\u0436\u0430\u0442\u0438\u044f_\u0438_\u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430_zram&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:21,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;19840-21884&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;установка_php-fpm_для_будущего_веб-инсталлятора&quot;&gt;Установка PHP-FPM для будущего веб-инсталлятора&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;strong&gt;PHP-FPM (FastCGI Process Manager)&lt;/strong&gt; в Arch Linux — это продвинутый менеджер процессов PHP. Он выступает в роли отдельного сервера, который принимает запросы от веб-сервера (например, Nginx или Apache), обрабатывает PHP-код и возвращает готовый результат. &lt;br/&gt;

Установим пакет php-fpm. &lt;br/&gt;

Выполняйте:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=24&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Флаги -S (Синхронизация / Установка) и –noconfirm (Без подтверждения)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_112.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_112.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_112.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_установки_пакета&quot;&gt;Проверка установки пакета&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=25&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;pacman &lt;span class=&quot;re5&quot;&gt;-Q&lt;/span&gt; php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_113.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_113.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_113.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
(&lt;em&gt;Если пакеты установлены, терминал выведет их версии, иначе, вы получите ошибку (например, error: package &amp;#039;squashfs-tools&amp;#039; was not found).&lt;/em&gt;)
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_автозапуск_службы_php-fpm&quot;&gt;Проверяем автозапуск службы php-fpm&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что служба PHP-FPM активирована в автозапуске, чтобы при старте флешки в ОЗУ она запустилась сама вместе с Nginx.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=26&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_114.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_114.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_114.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Примечание: статус disabled - выключена)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;включаем_службу_php-fpm_в_автозапуск&quot;&gt;Включаем службу php-fpm в автозапуск&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Включим службу PHP-FPM в автозапуске, чтобы при старте флешки в ОЗУ она запустилась сама вместе с Nginx.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=27&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_115.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_115.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_115.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Примечание: созданы системные симлинки)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_статус_автозапуска_службы_php-fpm&quot;&gt;Проверяем статус автозапуска службы php-fpm&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что служба PHP-FPM активирована в автозапуске, чтобы при старте флешки в ОЗУ она запустилась сама вместе с Nginx. Убедимся, что система теперь рапортует правильный статус.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=28&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;systemctl is-enabled php-fpm&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_116.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_116.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_116.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Примечание: статус enabled - включена)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 PHP-FPM \u0434\u043b\u044f \u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e \u0432\u0435\u0431-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_php-fpm_\u0434\u043b\u044f_\u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e_\u0432\u0435\u0431-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:24,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;21885-24764&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;создание_структуры_каталогов_для_конструктора_iso&quot;&gt;Создание структуры каталогов для конструктора ISO&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Перед тем как запустить утилиту сжатия, нам необходимо подготовить чистое рабочее дерево папок в домашней директории пользователя eva, куда мы позже разложим ядро и файлы загрузчика&lt;br/&gt;

Выполните в терминале:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=29&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_117.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_117.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_117.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Флаг -p заставит систему создать всю цепочку папок за один раз).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_созданной_структуры&quot;&gt;Проверка созданной структуры&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале команду, которая покажет полный путь и содержимое созданной папки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=30&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-laR&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_118.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_118.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_118.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;&lt;pre class=&quot;code&quot;&gt;* //Система должна показать, что внутри custom_iso есть папка arch, а внутри неё — папка x86_64.//
* //Все они должны быть пустыми (внутри только точки . и ..), готовыми принять наш живой корень.//&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0434\u043b\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 ISO&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b_\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432_\u0434\u043b\u044f_\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:29,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;24765-26222&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;разработка_веб-фронтенда&quot;&gt;Разработка Веб-Фронтенда&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверяем_состояние_samba-сервера_на_tom_1&quot;&gt;Проверяем состояние Samba-сервера на tom_1&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Нам нужно узнать, запущен ли демон Samba (smb), чтобы понять, сможем ли мы сразу подключить сетевой диск в Windows.&lt;br/&gt;

Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=31&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl status smb&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_119.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_119.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_119.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Служба Samba (smb.service) отсутствует в системе tom_1 (пакет не установлен).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_пакета_samba&quot;&gt;Установка пакета Samba&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Установим сам сервер Samba.&lt;br/&gt;

 Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=32&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; samba &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_120.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_120.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_120.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_установки&quot;&gt;Проверка установки&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Нам нужно убедиться, что бинарные файлы утилиты встали в систему без ошибок.&lt;br/&gt;

Выполните в терминале команду проверки установленной версии:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=33&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;smbd &lt;span class=&quot;re5&quot;&gt;--version&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_121.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_121.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_121.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;создание_конфигурационного_файла_smbconf&quot;&gt;Создание конфигурационного файла smb.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Создадим конфигурационный файл в редакторе nano. &lt;br/&gt;

Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=34&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;samba&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;smb.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Файл пустой и готов к заполнению. Вставьте в него следующий минимальный рабочий конфиг, чтобы открыть доступ к директории Nginx (/usr/share/nginx/html) с правами на запись для всех:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=35&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;ini&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;global&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    workgroup = WORKGROUP
    server string = Arch Linux Tom1
    security = user
    map to guest = Bad User
    log &lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;log&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;samba&lt;span class=&quot;sy0&quot;&gt;/%&lt;/span&gt;m.log
    max log &lt;span class=&quot;kw2&quot;&gt;size&lt;/span&gt; = &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;nginx_html&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    path = &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html
    writable = &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
    guest ok = &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
    guest only = &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
    force user = root
    create mask = 0777
    directory mask = 0777&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_122.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_122.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_122.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Файл изменен. Нажмите последовательно:CTRL + O, затем клавишу Enter (для записи файла).CTRL + X (для выхода из редактора nano)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_синтаксиса&quot;&gt;Проверка синтаксиса&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
выполните встроенную команду Samba для проверки синтаксиса файла конфигурации:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=36&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;testparm &lt;span class=&quot;re5&quot;&gt;-s&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_123.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_123.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_123.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Тест синтаксиса пройден успешно (Loaded services file OK). Ошибок в файле smb.conf нет. Сетевая папка nginx_html определена верно.&lt;br/&gt;

Следующий шаг — запуск и добавление службы Samba в автозагрузку.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=37&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--now&lt;/span&gt; smb&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_124.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_124.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_124.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Симлинк успешно создан, служба добавлена в автозапуск.)&lt;/em&gt;
&lt;br/&gt;
 Следующий шаг — обязательная проверка статуса запущенного демона Samba.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_статуса&quot;&gt;Проверка статуса&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=38&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl status smb&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_125.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_125.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_125.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Служба smb работает в режиме active (running) и полностью готова принимать сетевые подключения.)&lt;/em&gt;
&lt;br/&gt;

Службы настроены. Теперь нам нужно выдать права Linux на целевую папку, чтобы гостевой пользователь Samba (nobody / root) и веб-сервер Nginx (http) могли без ограничений читать, создавать и изменять файлы внутри.&lt;br/&gt;

Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=39&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-R&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;777&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_126.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_126.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_126.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Права 777 назначены успешно.)&lt;/em&gt;
&lt;br/&gt;

Следующий обязательный шаг по нашему плану — проверка того, как система применила эти права к содержимому каталога.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=40&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_127.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_127.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_127.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Проверка прав прошла успешно. Строки drwxrwxrwx для текущей папки (.) и -rwxrwxrwx для файлов index.html и 50x.html подтверждают, что доступ полностью открыт на чтение, запись и исполнение для всех пользователей системы.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;подключение_сетевой_папки_в_windows&quot;&gt;Подключение сетевой папки в Windows&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h5 id=&quot;получим_точный_текущий_ip-адрес_сервера_tom_1&quot;&gt;Получим точный текущий IP-адрес сервера tom_1&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=41&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ip&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-br&lt;/span&gt; address show scope global &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $3}&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cut&lt;/span&gt; -d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-f1&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_135.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Теперь папка готова к подключению в качестве сетевого диска в среде Windows, чтобы вы могли открыть её через Notepad++.
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Откройте Проводник (Этот компьютер) на вашей Windows-машине.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В верхнем меню нажмите кнопку «Подключить сетевой диск» (или нажмите правой кнопкой мыши по «Этот компьютер» → «Подключить сетевой диск»).&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_137.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_137.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_137.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В поле «Папка» введите сетевой путь, используя IP-адрес вашего сервера tom_1 (из логов PuTTY: 192.168.1.72 или через кнопку обзор)&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_139.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_139.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_139.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Введите сетевые учетные данные
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_140.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_140.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_140.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Зайдите через проводник
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_141.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_141.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_141.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0412\u0435\u0431-\u0424\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430_\u0432\u0435\u0431-\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:31,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;26223-33368&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit13&quot; id=&quot;веб-интерфейс_в_windows_через_notepad&quot;&gt;Веб-интерфейс (в Windows через Notepad++)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 (\u0432 Windows \u0447\u0435\u0440\u0435\u0437 Notepad++)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441_\u0432_windows_\u0447\u0435\u0440\u0435\u0437_notepad&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:42,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;33369-33440&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit14&quot; id=&quot;настройка_nginx_на_обработку_php&quot;&gt;Настройка Nginx на обработку PHP&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Nginx \u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 PHP&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_nginx_\u043d\u0430_\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443_php&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:42,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;33441-33503&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit15&quot; id=&quot;файл_nginxconf&quot;&gt;Файл nginx.conf&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Мы перепишем конфигурационный файл nginx.conf, добавив правильный блок location ~ \.php$, работающий через UNIX-сокет.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=42&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;tee&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx.conf &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null
worker_processes  &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;;
&amp;nbsp;
events &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    worker_connections  &lt;span class=&quot;nu0&quot;&gt;1024&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
http &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    include       mime.types;
    default_type  application&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;octet-stream;
    sendfile        on;
    keepalive_timeout  &lt;span class=&quot;nu0&quot;&gt;65&lt;/span&gt;;
&amp;nbsp;
    server &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        listen       &lt;span class=&quot;nu0&quot;&gt;5000&lt;/span&gt;;
        server_name  localhost;
        root         &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html;
        index        index.html index.htm index.php;
&amp;nbsp;
        location &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            try_files &lt;span class=&quot;re1&quot;&gt;$uri&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$uri&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; =&lt;span class=&quot;nu0&quot;&gt;404&lt;/span&gt;;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        location ~ \.php$ &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            include        fastcgi.conf;
            fastcgi_pass   unix:&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;php-fpm&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;php-fpm.sock;
            fastcgi_index  index.php;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_149.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_149.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_149.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;тестирование_синтаксиса_nginxconf&quot;&gt;Тестирование синтаксиса nginx.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Нам нужно протестировать синтаксис Nginx, чтобы убедиться, что все скобки закрыты и сокет прописан без ошибок.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=43&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; nginx &lt;span class=&quot;re5&quot;&gt;-t&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_150.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_150.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_150.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Тест пройден успешно (syntax is ok, test is successful). Предупреждение о types_hash — это стандартный информационный ворнинг, на работу он не влияет.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_содержимого_файла_nginxconf&quot;&gt;Проверка содержимого файла nginx.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=44&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-n&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_151.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_151.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_151.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;перезапуск_веб-сервера&quot;&gt;Перезапуск веб-сервера&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=45&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl restart nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_153.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_153.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_153.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверка_статуса_службы&quot;&gt;Проверка статуса службы&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=46&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl status nginx&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_155.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_155.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_155.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0424\u0430\u0439\u043b nginx.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u0430\u0439\u043b_nginxconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:42,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;33504-35799&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit16&quot; id=&quot;системный_пользователь_http&quot;&gt;Системный пользователь http&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Пользователь http в Arch Linux — это встроенный системный пользователь, от имени которого по умолчанию работают веб-серверы (например, Apache или Nginx) и сопутствующие им службы.
&lt;br/&gt;
 Он создается автоматически при установке этих программ для изоляции процессов и обеспечения безопасности.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;назначение&quot;&gt;Назначение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Безопасность: Веб-серверы не должны работать под правами суперпользователя (root). Если злоумышленник найдет уязвимость в вашем сайте, он получит доступ только к файлам с правами пользователя http, что убережет остальную систему от взлома.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Права на файлы: Этот пользователь владеет файлами и папками, к которым сервер имеет доступ (обычно они расположены в директории /srv/http/).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Группа http: Для удобства существует одноименная группа http, в которую могут входить другие пользователи, чтобы иметь возможность редактировать файлы сайта без изменения прав доступа к ним через sudo&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;применение&quot;&gt;Применение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Размещение сайтов: При настройке Nginx, Apache или PHP-FPM часто требуется указывать, что процесс должен запускаться от имени http.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Настройка разрешений (Permissions): Если сайт выдает ошибку доступа (например, 403 Forbidden), обычно это означает, что у пользователя http нет прав на чтение нужных файлов или папок.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Безопасность каталогов: Если скриптам на сайте нужно загружать файлы на сервер, папке загрузки необходимо выдать права (владельца) для пользователя http&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;вывод_строк_пользователей_системы&quot;&gt;Вывод строк пользователей системы&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выводим строки трех нами известных пользователей из базы данных.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=47&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;^(root|eva|http):&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;shadow&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_169.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_169.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_169.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;root:$y$j9T$…:20594:::::&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Второе поле — длинный хэш $y$…. Это зашифрованный пароль суперпользователя.Число 20594 — дата последнего изменения пароля (в днях от 1970 года).В конце строки — пустые поля. Это значит, что для root нет никаких ограничений.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;strong&gt;eva:$y$j9T$…:20594:0:99999:7:::&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Тоже видим хэш личного пароля.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Параметры 0:99999:7 означают стандартные правила пользователя: пароль можно менять сразу (0), он действует 99999 дней, а за 7 дней до истечения система начнет предупреждать. Восьмое поле пустое — аккаунт не блокируется.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;strong&gt;http:!*:20594::::::1:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Второе поле содержит !*. Это маркер того, что пароль заблокирован (вход по паролю невозможен, учетка техническая).Внимание в самый конец строки: ::::::1:&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; На предпоследней позиции (8-е поле) стоит цифра 1. В системе Linux это означает, что учетная запись принудительно заблокирована подсистемой безопасности PAM через 1 день после начала эпохи Unix (то есть 2 января 1970 года). &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;изменяем_параметры_пользователя_http&quot;&gt;Изменяем параметры пользователя http&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Уберем эту единицу из конца строки, чтобы сделать учетную запись бессрочной.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=48&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; chage &lt;span class=&quot;re5&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-1&lt;/span&gt; http&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_170.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_170.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_170.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_изменений_в_файле_etc_shadow&quot;&gt;Проверка изменений в файле /etc/shadow&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=49&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;^http:&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;shadow&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_171.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_171.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_171.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Строка завершается чистыми двоеточиями (::::::), что означает: блокировка PAM полностью снята, аккаунт http стал бессрочным)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c http&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c_http&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:47,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;35800-41068&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit17&quot; id=&quot;проверим_директорию&quot;&gt;Проверим директорию&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Чтобы не запутаться в структуре бэкенда и фронтенда, давайте сначала проверим, что сейчас вообще находится внутри корневой папки Nginx на tom_1.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=50&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_142.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_142.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_142.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(В корне /usr/share/nginx/html/ только файлы 50x.html и index.html. Полные права 777)&lt;/em&gt;
&lt;br/&gt;

Разворачиваем структуру каталогов для нашего веб-интерфейса. Создадим стандартные папки для стилей, скриптов и серверной логики.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c_\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:50,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;41069-41889&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit18&quot; id=&quot;создание_директорий&quot;&gt;Создание директорий&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Выполните в терминале PuTTY одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=51&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;css,js,api,assets&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_143.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_143.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_143.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Папки созданы. Теперь обязательный шаг контроля: проверяем, какие права доступа и владельцы назначены для новых директорий, чтобы Windows-пользователь Samba и веб-сервер Nginx могли с ними работать.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;контроль_папок&quot;&gt;Контроль папок&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=52&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_144.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_144.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_144.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Папки создались под пользователем eva, но у них стоят ограниченные права drwxr-xr-x. Из-за этого Windows через Samba не сможет создавать или изменять файлы внутри этих подкаталогов.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;права_доступа_к_папкам&quot;&gt;Права доступа к папкам&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=53&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-R&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;777&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_145.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_145.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_145.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_назначения_прав_пользователя&quot;&gt;Проверка назначения прав пользователя&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=54&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_146.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_146.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_146.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Права drwxrwxrwx (777) успешно применились ко всем новым директориям (api, assets, css, js), они подсвечены зеленым. Теперь пользователи eva и системный пользователь http, и Samba имеют полный доступ.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;предоставления_прав_на_выполнение&quot;&gt;Предоставления прав на выполнение&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Для того чтобы веб-скрипт (install.php) мог безопасно выполнять системные команды от имени суперпользователя (root), вам нужно точечно настроить системную утилиту sudo. По умолчанию операционная система блокирует любые попытки веб-сервера использовать sudo, так как у него нет пароля и текстового терминала (TTY).
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;узнайте_имя_пользователя_веб-сервера&quot;&gt;Узнайте имя пользователя веб-сервера&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Вам нужно определить, от какого именно пользователя работает ваш PHP/Nginx.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=55&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ps&lt;/span&gt; aux &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-E&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;(nginx|apache|php-fpm)&#039;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_172.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_172.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_172.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;файл_конфигурации_sudoers&quot;&gt;Файл конфигурации sudoers&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
&lt;strong&gt;Никогда не редактируйте файл /etc/sudoers обычным текстовым редактором. Если допустить там синтаксическую ошибку, утилита sudo сломается для всей системы, и вы потеряете root-доступ.&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
Используйте специальную безопасную команду visudo для открытия в редакторе nano:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=56&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;EDITOR&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; visudo&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; С помощью стрелочек на клавиатуре спуститесь в самый низ файла.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Вставьте с новой строки правило:&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=57&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# Разрешаем запуск конкретного теста и любого скрипта из папки api через bash&lt;/span&gt;
http &lt;span class=&quot;re2&quot;&gt;ALL&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ALL&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; NOPASSWD: &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;bash&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;api&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;installer.sh, &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;bash&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;api&lt;span class=&quot;sy0&quot;&gt;/*&lt;/span&gt;.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_177.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_177.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_177.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Нажмите комбинацию клавиш Ctrl + O, затем Enter (для сохранения изменений).Нажмите Ctrl + X (для выхода из редактора).)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_синтаксиса1&quot;&gt;Проверка синтаксиса&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=58&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; visudo &lt;span class=&quot;re5&quot;&gt;-c&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-f&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sudoers.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;web-installer&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_178.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_178.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_178.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Синтаксис проверен, система подтвердила: parsed OK. Это значит, что само правило написано без ошибок.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_содержимого&quot;&gt;Проверка содержимого&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
проверяем, что именно у нас записалось внутри этого файла, чтобы убедиться в правильности путей и пользователя.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=59&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sudoers.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;web-installer&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_179.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_179.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_179.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Пользователь http указан верно, беспарольный флаг NOPASSWD на месте, путь к исполняемому bash-скрипту ведет строго в папку api/)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;смена_владельца_файла_на_root_и_установка_прав&quot;&gt;Смена владельца файла на root и установка прав&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выставим права 0440 и владельца root.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=60&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chown&lt;/span&gt; root:root &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sudoers.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;web-installer&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_165.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_165.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_165.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
задаём жесткие права 0440 (только чтение для владельца и группы). Это полностью исключит любые предупреждения безопасности со стороны sudo
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=61&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; 0440 &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sudoers.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;web-installer&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_166.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_166.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_166.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_права_и_владельца&quot;&gt;Проверка права и владельца&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Проверяем, как именно система применила владельца и маску прав к нашему файлу правил sudoers.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=62&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sudoers.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;web-installer&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_167.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_167.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_167.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(права строго -r–r—– (0440), владелец root root, размер файла 64 байта.)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создание_интерфейса_indexhtml&quot;&gt;Создание интерфейса (index.html)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Откройте Notepad++ на Windows.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Откройте файл index.html с сетевого диска \\192.168.1.72\nginx_html.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Полностью замените его содержимое на этот простой тестовый код:&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=63&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_html&quot;&gt;index.html&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code html4strict&quot;&gt;&lt;span class=&quot;sc0&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;html&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;lang&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;ru&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/head.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;head&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/meta.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;meta&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;charset&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/title.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;title&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Тест инсталлятора&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/title.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;title&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/head.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;head&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/body.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;body&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/h1.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;h1&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Тест на порт 5000&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/h1.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;h1&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;installBtn&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;Установить&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
        document.getElementById(&#039;installBtn&#039;).addEventListener(&#039;click&#039;, function() {
            fetch(&#039;api/install.php&#039;)
                .then(response =&amp;gt; response.text())
                .then(data =&amp;gt; alert(&#039;Ответ от сервера:\n&#039; + data))
                .catch(err =&amp;gt; alert(&#039;Ошибка запроса: &#039; + err));
        });
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/body.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;body&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;html&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:51,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;41890-49382&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit19&quot; id=&quot;создание_серверного_скрипта_installphp&quot;&gt;Создание серверного скрипта (install.php)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Этот файл будет принимать запрос от браузера и вызывать системный bash-скрипт от имени суперпользователя.
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В Notepad++ создайте новую вкладку (CTRL + N).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Вставьте в неё следующий код, который будет дёргать будущий bash-скрипт инсталлятора через утилиту sudo:&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=64&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;install.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;a href=&quot;http://www.php.net/header&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;header&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;Content-Type: text/plain; charset=utf-8&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// Вызываем тестовый bash-скрипт из папки api и ловим текстовый вывод&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/shell_exec&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;shell_exec&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;/usr/bin/sudo /bin/bash /usr/share/nginx/html/api/installer.sh 2&amp;gt;&amp;amp;1&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Ошибка: Не удалось запустить скрипт.&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$output&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Нажмите CTRL + S и сохраните файл на сетевой диск в подпапку api под именем install.php (полный сетевой путь: \\192.168.1.72\nginx_html\api\install.php).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0430 (install.php)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e_\u0441\u043a\u0440\u0438\u043f\u0442\u0430_installphp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:64,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;49383-50572&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit20&quot; id=&quot;создание_тестового_bash-скрипта_api_installersh&quot;&gt;Создание тестового bash-скрипта (api/installer.sh)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Этот скрипт не выполняет никаких деструктивных действий. Его задача — подтвердить, что PHP смог вызвать системный скрипт с правами root.
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В Notepad++ создайте новую вкладку (CTRL + N).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Вставьте в неё следующий тестовый код&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=65&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=== СИГНАЛ ПОЛУЧЕН ===&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Скрипт успешно запущен от имени пользователя: &lt;span class=&quot;es4&quot;&gt;$(whoami)&lt;/span&gt;&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;======================&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Нажмите CTRL + S и сохраните этот файл на сетевой диск в подпапку api под именем installer.sh (полный сетевой путь: \\192.168.1.72\nginx_html\api\installer.sh).
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;права_на_исполнение_скрипта&quot;&gt;Права на исполнение скрипта&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Поскольку этот файл был создан из-под Windows через Samba, у него сейчас отсутствуют флаги исполняемого файла в среде Linux (права по умолчанию не позволяют системе его запустить).&lt;br/&gt;

Предоставьте пользователю http права на запуск самого файла installer.sh.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=66&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chown&lt;/span&gt; http:http &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;api&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;installer.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=67&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;755&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;api&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;installer.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_174.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_174.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_174.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;контроль_прав_на_выполнение&quot;&gt;Контроль прав на выполнение&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Чтобы проверить, что права и владелец для файла выставились корректно, выполните команду ls -l с полным путем к файлу:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=68&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;api&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;installer.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_175.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_175.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_175.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(-rwxr-xr-x — файл является исполняемым. Пользователь http имеет полные права на чтение, запись и запуск (rwx), а остальные пользователи системы — на чтение и запуск (r-x).)&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;тестирование_веб-страницы_в_браузере&quot;&gt;Тестирование веб-страницы в браузере&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Откройте любой браузер на вашей Windows-машине (Chrome, Edge, Firefox).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Введите в адресную строку &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;-адрес сервера tom_1: &lt;a href=&quot;http://192.168.1.72:5000&quot; class=&quot;urlextern&quot; title=&quot;http://192.168.1.72:5000&quot; rel=&quot;ugc nofollow&quot;&gt;http://192.168.1.72:5000&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Нажмите Enter.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Вы должны увидеть заголовок «Это тест на порт 5000» и кнопку «Установить». При нажатии на кнопку должно появиться всплывающее окно alert с текстом ошибки (так как самого скрипта installer.sh на сервере ещё физически нет).
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_157.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_157.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_157.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;контрольная_проверка_в_браузере&quot;&gt;Контрольная проверка в браузере&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Откройте ваш браузер на Windows.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Введите (или обновите через CTRL + F5) адрес: &lt;a href=&quot;http://192.168.1.72:5000&quot; class=&quot;urlextern&quot; title=&quot;http://192.168.1.72:5000&quot; rel=&quot;ugc nofollow&quot;&gt;http://192.168.1.72:5000&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Нажмите на кнопку «Установить»&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_180.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_180.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_180.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Пункт выше на правке!
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e bash-\u0441\u043a\u0440\u0438\u043f\u0442\u0430 (api\/installer.sh)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e_bash-\u0441\u043a\u0440\u0438\u043f\u0442\u0430_api_installersh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:65,&amp;quot;secid&amp;quot;:20,&amp;quot;range&amp;quot;:&amp;quot;50573-54237&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit21&quot; id=&quot;мы_тут&quot;&gt;!!!!!!!!!!!!МЫ ТУТ!!!!!!!!!!!!!!!!!&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Следующим пуктом  Сменить статический IP адрес на 192.168.1.150 на время записи слепка, а после назад!!!
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;!!!!!!!!!!!!\u041c\u042b \u0422\u0423\u0422!!!!!!!!!!!!!!!!!&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043c\u044b_\u0442\u0443\u0442&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:69,&amp;quot;secid&amp;quot;:21,&amp;quot;range&amp;quot;:&amp;quot;54238-54474&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit22&quot; id=&quot;временное_обнуление_fstab&quot;&gt;Временное обнуление fstab&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;о_файле&quot;&gt;О файле&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Файл /etc/&lt;strong&gt;fstab&lt;/strong&gt; (от File Systems Table) — это конфигурационный файл, который хранит информацию о разделах диска, флешках и сетевых хранилищах, и указывает системе, как именно и куда их нужно монтировать при запуске.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;предназначение&quot;&gt;Предназначение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Автозагрузка: Без него операционная система не поймет, где искать корневой раздел / и другие важные системные диски, и просто не сможет загрузиться.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Параметры монтирования: Он определяет права доступа (например, можно ли запускать исполняемые файлы с конкретного диска) и режим работы (чтение или чтение и запись).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Организация: Позволяет привязать жесткие диски, SSD или разделы для файлов подкачки (swap) к нужным папкам.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
В других дистрибутивах Linux этот файл создается автоматически при установке. В Arch Linux процесс установки выполняется вручную, поэтому там его чаще всего генерируют с помощью специальной команды: genfstab -U /mnt » /mnt/etc/fstab.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;структура_файла&quot;&gt;Структура файла&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Файл состоит из строк, разделенных пробелами или табуляцией. Каждая строка описывает одно устройство и состоит из 6 колонок:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Устройство (Block device): Обычно здесь указывается уникальный идентификатор диска (UUID), чтобы система не запуталась, если вы поменяете порты подключения (например, UUID=1234-abcd).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Точка монтирования (Mount point): Папка в системе, куда «подключается» диск (например, /, /home или /mnt/games).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Файловая система (FSType): Тип файловой системы (например, ext4, btrfs, xfs или vfat).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Параметры (Mount options): Инструкции по работе с диском (например, defaults, noatime, ro — только для чтения).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Резервная копия (Dump): Флаг для утилиты резервного копирования (обычно 0).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Проверка диска (Pass): Очередность проверки диска утилитой fsck при загрузке (корень — 1, остальные диски — 2, отключено — 0).&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Подробное руководство по редактированию и настройке параметров можно изучить на официальной &lt;a href=&quot;https://wiki.archlinux.org/title/Fstab_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; class=&quot;urlextern&quot; title=&quot;https://wiki.archlinux.org/title/Fstab_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&quot; rel=&quot;ugc nofollow&quot;&gt;ArchWiki: fstab.&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;безопасность_операции_с_fstab&quot;&gt;Безопасность операции с fstab&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Сначала сделаем бэкап, проверим его и fstab на tom_1, чтобы живой образ загружался целиком в оперативную память и не пытался монтировать несуществующие диски.&lt;br/&gt;

Выполните по очереди эти три команды:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=69&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_11.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_11.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_11.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверяем_наличие_резервной_копии_fstab&quot;&gt;Проверяем наличие резервной копии fstab&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=70&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_108.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_108.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_108.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;очищаем_оригинальный_файл_fstab&quot;&gt;Очищаем оригинальный файл fstab&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;strong&gt;Внимание:  после использования утилиты сжатая файловой система SquashFS и копирования слепка, не забываем  вернуть конфигурационный файл fstab из бекапа &lt;/strong&gt;
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=71&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; truncate &lt;span class=&quot;re5&quot;&gt;-s&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_12.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_12.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_12.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;контрольная_проверка_очищения_fstab&quot;&gt;Контрольная проверка очищения fstab&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Фиксируем, что вывод чтения оригинального файла пуст
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=72&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_13.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_13.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_13.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Контроль: Команда cat должна вернуть абсолютно пустую строку.&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u043e\u0431\u043d\u0443\u043b\u0435\u043d\u0438\u0435 fstab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435_\u043e\u0431\u043d\u0443\u043b\u0435\u043d\u0438\u0435_fstab&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:69,&amp;quot;secid&amp;quot;:22,&amp;quot;range&amp;quot;:&amp;quot;54475-59537&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit23&quot; id=&quot;создание_airootfssfs&quot;&gt;Создание airootfs.sfs&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 airootfs.sfs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_airootfssfs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:73,&amp;quot;secid&amp;quot;:23,&amp;quot;range&amp;quot;:&amp;quot;59538-59578&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit24&quot; id=&quot;утилита_mksquashfs&quot;&gt;Утилита mksquashfs&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
mksquashfs — это консольная утилита в Arch Linux, предназначенная для создания сжатых файловых систем SquashFS, которые работают только для чтения. Она является частью пакета squashfs-tools и чаще всего используется для создания Live USB, архивации системы и упаковки портативного софта
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;применение1&quot;&gt;Применение&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Резервные копии: Позволяет упаковать всю систему или отдельные директории в один компактный образ без изменения прав доступа и символических ссылок.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создание Live-образов: С помощью mksquashfs создаются загрузочные модули (например, для archiso или сборок на его базе), которые можно распаковывать и запускать в ОЗУ.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Портативные приложения (AppImage): Формат AppImage по своей сути является упакованным образом SquashFS&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;преимущества&quot;&gt;Преимущества&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Высокая степень сжатия: Поддерживает современные алгоритмы, включая xz, gzip, lz4 и zstd (по умолчанию).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Прямой доступ: ОС может монтировать этот файл как диск и читать данные на лету без предварительной полной распаковки всего архива.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;запаковываем_систему_в_squashfs&quot;&gt;Запаковываем систему в SquashFS&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Теперь запускаем самую ресурсоемкую команду, которая заморозит систему со всеми нашими универсальными сетевыми конфигами, паролями и Nginx. Она проигнорирует саму себя, бэкапы и виртуальный мусор.&lt;br/&gt;

Скопируйте и вставьте в терминал:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=73&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; mksquashfs &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs \
&lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;proc &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;media &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lost+found ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archlinux-x86_64.iso ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso \
&lt;span class=&quot;re5&quot;&gt;-comp&lt;/span&gt; zstd &lt;span class=&quot;re5&quot;&gt;-b&lt;/span&gt; 1M&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_20.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_20.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_20.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Процесс займет несколько минут. Пока он идёт, терминал будет занят. &lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_21.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_21.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_21.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Ждём полного завершения, пока не появится строка [eva@tom1 ~]$).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;немедленно_возвращаем_fstab_на_место&quot;&gt;Немедленно возвращаем fstab на место&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Как только команда mksquashfs полностью отработает и вернет вам управление, немедленно и без пауз выполните команду восстановления оригинальной таблицы разделов:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=74&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_22.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_22.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_22.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;контрольная_проверка_fstab&quot;&gt;Контрольная проверка fstab&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что файл вернулся и внутри него снова прописаны диски текущей виртуалки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=75&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Вы должны увидеть строчки с монтированием ваших UUID или разделов для /, /boot и т.д. Если текст появился — tom_1 в полной безопасности, можно выдохнуть).&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_23.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_23.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_23.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте чётко видно, что все btrfs-субтома (/@, /@home, /@pkg, /@log) и UEFI-раздел /boot вернулись на свои места. Теперь система гарантированно перезагрузится без сбоев.&lt;br/&gt;

Смена владельца файла слепка мы тоже сделали (sudo chown eva:eva …).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🔥_следующая_проблемаскелет_загрузчика_uefi&quot;&gt;🔥 Следующая проблема: Скелет загрузчика UEFI&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Переходим к самой важной части «слепого» взлёта — подготовке загрузчика. Чтобы материнские платы Supermicro, HP и ноунеймы поняли, как запускать наш кастомный образ, внутри папки ~/custom_iso/ должна лежать строгая структура файлов UEFI-загрузчика systemd-boot.&lt;br/&gt;

Сейчас у нас в ~/custom_iso/ есть только папка arch/x86_64/airootfs.sfs. Если запустить сборку ISO прямо сейчас, образ получится пустым и не загрузится ни на одном сервере.&lt;br/&gt;

Нам нужно скопировать бинарники загрузчика и конфиги из живой системы tom_1 прямо в наш конструктор.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;создаем_структуру_папок_для_uefi_и_конфигурации&quot;&gt;Создаем структуру папок для UEFI и конфигурации&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните команду одной строкой:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=76&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOT&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_24.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_24.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_24.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_структуры_uefi&quot;&gt;Проверка структуры UEFI&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=77&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-laR&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_25.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_25.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_25.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;на_что_смотрим_в_выводе&quot;&gt;На что смотрим в выводе:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Система должна показать пустую папку ~/custom_iso/EFI/BOOT&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; И пустую папку ~/custom_iso/loader/entries&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Структура каталогов EFI/BOOT и loader/entries создана без единой ошибки, права на месте. Скелет готов принимать файлы.&lt;br/&gt;

Теперь переходим к заполнению этих папок «жизненно важными органами» системы: загрузчиком UEFI, ядром Linux и виртуальным диском.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;копируем_файлы_загрузки&quot;&gt;Копируем файлы загрузки&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале строго по очереди следующие три команды:
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;копируем_сам_загрузчик_uefi&quot;&gt;Копируем сам загрузчик UEFI:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=78&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOT&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOTX64.EFI ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOT&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;BOOTX64.EFI&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_26.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_26.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_26.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;копируем_ядро_linux&quot;&gt;Копируем ядро Linux:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=79&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_27.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_27.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_27.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверяем_содержимое_каталога_boot&quot;&gt;Проверяем содержимое каталога /boot&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=80&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_29.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_29.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_29.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;что-то_проебали_и_остановились_тут&quot;&gt;Что-то проебали и Остановились тут&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0442\u0438\u043b\u0438\u0442\u0430 mksquashfs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0442\u0438\u043b\u0438\u0442\u0430_mksquashfs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:73,&amp;quot;secid&amp;quot;:24,&amp;quot;range&amp;quot;:&amp;quot;59579-67154&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit25&quot; id=&quot;скачиваем_чистый_iso&quot;&gt;Скачиваем чистый ISO&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Поскольку сеть на tom_1 у нас работает, первым делом вытягиваем актуальную ссылку на зеркало Яндекса и скачиваем официальный образ Arch Linux. Из него мы и заберём правильные файлы загрузчика&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;скачиваем_чистый_iso_arch_linux&quot;&gt;Скачиваем чистый ISO Arch Linux&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните эти две команды, чтобы вытащить актуальную ссылку на зеркало Яндекса и скачать чистый Arch Linux:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=81&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;MIRROR_URL&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-m&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;mirror.yandex.ru&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pacman.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mirrorlist &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $3}&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;s/\$repo\/os\/\$arch//&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
curl &lt;span class=&quot;re5&quot;&gt;-L&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-O&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es3&quot;&gt;${MIRROR_URL}&lt;/span&gt;iso/latest/archlinux-x86_64.iso&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_30.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_30.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_30.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(В консоли побегут проценты скачивания файла размером около 1.1–1.5 ГБ).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;контрольная_проверка_скачанного_файла&quot;&gt;Контрольная проверка скачанного файла&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Как только закачка полностью завершится, мы обязаны убедиться, что файл лёг в корень домашней директории и не является «нулевым»
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;выполните_команду_проверки&quot;&gt;Выполните команду проверки&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=82&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; archlinux-x86_64.iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_31.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_31.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_31.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Нам нужно смонтировать этот ISO во временную директорию и вытащить оттуда оригинальные папки EFI и loader. Папку arch копировать НЕ будем, чтобы случайно не затереть наш кастомный airootfs.sfs, который мы так долго собирали.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;монтирование_и_копирование_загрузчика&quot;&gt;Монтирование и копирование загрузчика&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале по очереди эти три команды:
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;создаем_точку_монтирования&quot;&gt;Создаем точку монтирования&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=83&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_32.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_32.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_32.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;убеждаемся_что_папка_создана&quot;&gt;Убеждаемся, что папка создана&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу же проверяем, что каталог физически появился в системе и готов к работе. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=84&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-ld&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_33.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_33.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_33.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте чётко видно: каталог /tmp/iso_mount успешно создан, владелец eva, права drwxr-xr-x. Фундамент заложен без ошибок.&lt;br/&gt;

Переходим к следующему микрошагу — монтированию скачанного официального диска в эту папку.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;монтируем_чистый_iso&quot;&gt;Монтируем чистый ISO&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале ровно одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=85&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; loop ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archlinux-x86_64.iso &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_34.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_34.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_34.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Примечание: Система обязана написать на английском, что диск смонтирован в режиме только для чтения (mount: /tmp/iso_mount: WARNING: source write-protected, mounted read-only.).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_что_внутри_диска&quot;&gt;Проверяем, что внутри диска&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу же после выполнения монтирования смотрим, появились ли там файлы оригинального диска.&lt;br/&gt;
  Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=86&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_35.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_35.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_35.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте видна эталонная структура официального образа Arch Linux: каталоги arch, boot, EFI, loader и файл оболочки shellx64.efi&lt;br/&gt;

Теперь переходим к этапу копирования нужных нам каталогов загрузчика в наш конструктор ~/custom_iso/. Начнем строго с каталога EFI
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;копируем_каталог_efi&quot;&gt;Копируем каталог EFI&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале только одну команду
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=87&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_36.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_36.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_36.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;убеждаемся_что_efi_скопировался_правильно&quot;&gt;Убеждаемся, что EFI скопировался правильно&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Проверяем, что каталог скопировался со всем его содержимым в нашу рабочую папку. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=88&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-laR&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_37.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_37.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_37.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте видно, что в папке EFI/BOOT теперь лежат три файла: BOOTIA32.EFI, BOOTx64.EFI и старый подсвеченный зеленым BOOTX64.EFI (который мы копировали ранее из живой системы). Они не конфликтуют, официальные загрузчики встали ровно.&lt;br/&gt;

Переходим к копированию второго важнейшего каталога — loader, в котором хранятся настройки пунктов загрузки
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;копируем_каталог_loader&quot;&gt;Копируем каталог loader&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале ровно одну команду
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=89&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_38.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_38.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_38.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;смотрим_что_скопировалось&quot;&gt;Смотрим, что скопировалось&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу же проверяем структуру и файлы внутри скопированного каталога loader. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=90&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-laR&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_39.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_39.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_39.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте видна вся заводская структура официального образа: глобальный конфиг loader.conf и три дефолтных пункта меню загрузки в папке entries.&lt;br/&gt;

Теперь нам нужно скопировать оригинальные файлы ядра и виртуального диска (initramfs) из смонтированного чистого образа, чтобы не зависеть от специфики локального ядра вашей виртуалки. Они лежат в папке /tmp/iso_mount/boot/
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;копируем_ядро_и_initramfs_из_донорского_iso&quot;&gt;Копируем ядро и initramfs из донорского ISO&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В официальном ISO-образе Arch Linux пути к ядру могут слегка отличаться в зависимости от версии. Чтобы не гадать по памяти и не плодить ошибки, давайте прямо сейчас заглянем внутрь смонтированного диска в папку boot и посмотрим, где конкретно авторы релиза спрятали ядро и initramfs
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;ищем_ядро_внутри_донорского_iso&quot;&gt;Ищем ядро внутри донорского ISO&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале только одну команду, чтобы вывести структуру папки boot смонтированного образа
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=91&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-laR&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_40.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_40.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_40.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
и окончание вывода
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_41.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_41.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_41.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Ищем мы два главных файла — само ядро Linux и виртуальный диск. На официальном ISO-образе Arch Linux они обычно называются vmlinuz-linux и initramfs-linux.img&lt;br/&gt;

На нашем скриншоте видно, что в папке /tmp/iso_mount/boot лежат только каталоги старых загрузчиков (grub, syslinux), утилита теста памяти (memtest86+) и файл-метка с датой релиза. Ядра здесь нет.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_наличие_ядра_в_корневом_каталоге_arch&quot;&gt;Проверяем наличие ядра в корневом каталоге arch&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале только одну команду
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=92&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_42.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_42.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_42.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Здесь лежит только оригинальный airootfs.sfs и его подписи. Ядра и виртуального диска тут тоже нет.&lt;br/&gt;

Разработчики Arch Linux переработали структуру официального ISO. Давайте найдем, где лежат vmlinuz-linux и initramfs-linux.img на этом диске, чтобы забрать их.&lt;br/&gt;

Поскольку на первом скриншоте вывода ls -laR /tmp/iso_mount/boot мы видели каталог /tmp/iso_mount/boot/grub, проверим оставшуюся часть папки /tmp/iso_mount/boot.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;поиск_ядра_в_корне_каталога_boot&quot;&gt;Поиск ядра в корне каталога boot&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выведем список файлов в самой папке boot без ухода в подкаталоги, чтобы увидеть скрытые файлы.&lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=93&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_43.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_43.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_43.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
и тут не нашли&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Выполните в терминале ровно одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=94&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_44.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_44.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_44.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка&quot;&gt;Проверка&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу убедимся, что путь создался успешно и параллельно нашему слепку. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=95&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_45.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_45.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_45.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
В выводе мы должны увидеть две папки: старую x86_64 (где лежит слепок) и новую boot (куда мы сейчас положим ядро).&lt;br/&gt;

Папки boot и x86_64 легли рядышком, права принадлежат пользователю eva, магия сработала. Теперь у нас полностью изолированы друг от друга и готовый настроенный слепок системы, и будущее донорское ядро.&lt;br/&gt;

Переходим к следующему микрошагу — забираем ядро и виртуальный диск напрямую из правильного каталога смонтированного донорского образа.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;копируем_ядро_и_initramfs_из_донора&quot;&gt;Копируем ядро и initramfs из донора&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале ровно одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=96&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;initramfs-linux.img ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_46.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_46.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_46.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверяем_наличие_скопированных_файлов&quot;&gt;Проверяем наличие скопированных файлов&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу же после выполнения смотрим, долетели ли файлы и какой у них размер. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=97&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
vmlinuz-linux весит законные 16 МБ, а виртуальный диск initramfs-linux.img — полноценные 228 МБ. Владелец — пользователь eva. Теперь загрузчик на реальном сервере гарантированно увидит эти файлы по прописанным путям.&lt;br/&gt;

Поскольку донорский диск нам больше не нужен, параноидально зачистим за собой временные ресурсы, чтобы они не болтались в оперативной памяти виртуалки tom_1.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;размонтируем_официальный_iso&quot;&gt;Размонтируем официальный ISO&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=98&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;umount&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_48.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_48.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_48.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;убеждаемся_что_папка_опустела&quot;&gt;Убеждаемся, что папка опустела&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Проверим, что точка монтирования теперь полностью пуста:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=99&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Если там остались только стандартные точки . и .., значит диск успешно отмонтирован.&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_49.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_49.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_49.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Теперь переходим к шагу, ради которого вся эта схема и затевалась — записи кастомного загрузочного конфига.&lt;br/&gt;

Нам нужно заставить systemd-boot искать наш носитель по жестко прописанной глобальной метке ARCH_202605, а также (помня про отсутствие монитора) — сразу активировать вывод консоли в последовательный COM-порт для аварийного подключения.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;даем_права_на_запись_01-archiso-linuxconf&quot;&gt;Даем права на запись 01-archiso-linux.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале одну команду
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=100&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +&lt;span class=&quot;kw2&quot;&gt;w&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_52.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_52.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_52.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверка_прав_на_файл_конфига&quot;&gt;Проверка прав на файл конфига&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Выполните в терминале строго одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=101&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_53.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_53.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_53.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;на_что_смотрим_в_выводе1&quot;&gt;На что смотрим в выводе:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Владелец и группа: Должно быть написано eva eva.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Флаги прав (самое начало строки): Если там написано -r–r–r–, то файл заблокирован на запись (read-only). Если после нашей команды sudo chmod +w там появилось -rw-r–r–, значит, флаг записи (w) успешно пробился, и пользователь eva может его менять.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;перезаписываем_конфигурацию_загрузчика&quot;&gt;Перезаписываем конфигурацию загрузчика&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Скопируйте этот блок текста целиком и вставьте в терминал tom_1:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=102&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf
title Arch Linux &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; medium &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;x86_64, UEFI&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
linux &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux
initrd &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;initramfs-linux.img
options &lt;span class=&quot;re2&quot;&gt;archisobasedir&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;archisolabel&lt;/span&gt;=ARCH_202605 &lt;span class=&quot;re2&quot;&gt;console&lt;/span&gt;=tty0 &lt;span class=&quot;re2&quot;&gt;console&lt;/span&gt;=ttyS0,&lt;span class=&quot;nu0&quot;&gt;115200&lt;/span&gt;
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_54.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_54.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_54.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;проверяем_результат_записи&quot;&gt;Проверяем результат записи&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся параноидально, что старые параметры с UUID стёрлись, а новые сели ровно. &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=103&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_55.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_55.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_55.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Все параметры на месте: пути ведут к ядру и initramfs внутри arch/boot/x86_64/, жесткий UUID стерт, зашита метка тома archisolabel=ARCH_202605 и активирован вывод в COM-порт console=ttyS0,115200 &lt;br/&gt;

Вся структура нашего конструктора ~/custom_iso полностью готова к финальной упаковке. Нам остался последний рывок — запустить утилиту xorriso, чтобы собрать всё это добро в готовый файл arch_custom.iso&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;устанавливаем_xorriso&quot;&gt;Устанавливаем xorriso&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните в терминале строго одну команду
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=104&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; xorriso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_56.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_56.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_56.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Система запросит подтверждение установки, нажмите Y и Enter).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;убеждаемся_что_пакет_встал&quot;&gt;Убеждаемся, что пакет встал&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сразу после установки проверяем версию заново
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=105&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;xorriso &lt;span class=&quot;re5&quot;&gt;--version&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_57.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_57.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_57.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Теперь у системы есть всё необходимое, чтобы сшить папки, ядро и наш настроенный слепок в один готовый ISO-файл&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Выходим на финишную прямую сборки диска. Команда большая, в ней мы жёстко привязываем имя тома к нашей метке ARCH_202605 (чтобы загрузчик на реальном сервере не потерял флешку), а также прописываем UEFI-загрузчик
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0447\u0438\u0441\u0442\u044b\u0439 ISO&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c_\u0447\u0438\u0441\u0442\u044b\u0439_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:81,&amp;quot;secid&amp;quot;:25,&amp;quot;range&amp;quot;:&amp;quot;67155-85487&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit26&quot; id=&quot;💣_как_взрывается_мина_1_при_установке&quot;&gt;💣 Как взрывается Мина №1 при установке?&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;запуск_финальной_сборки_iso&quot;&gt;Запуск финальной сборки ISO&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Скопируйте этот блок полностью и запустите в терминале от пользователя eva
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=106&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;xorriso &lt;span class=&quot;re5&quot;&gt;-as&lt;/span&gt; mkisofs \
&lt;span class=&quot;re5&quot;&gt;-iso-level&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-full-iso9660-filenames&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-volid&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ARCH_202605&amp;quot;&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-eltorito-alt-boot&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;EFI/BOOT/BOOTx64.EFI&amp;quot;&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-no-emul-boot&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-isohybrid-gpt-basdat&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-output&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso \
~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_58.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_58.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_58.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;контрольная_проверка_созданного_файла&quot;&gt;Контрольная проверка созданного файла&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Как только утилита отработает и вернет приглашение командной строки, параноидально проверяем, что файл лег на диск и имеет правильный вес (в районе 1.6–1.8 ГБ). &lt;br/&gt;

Выполните:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=107&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_59.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_59.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_59.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Файл arch_custom.iso весит честные 1.7 ГБ, права принадлежат пользователю eva, дата и время свежие.
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;определяем_ip-адрес_tom_1&quot;&gt;Определяем IP-адрес tom_1&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Перед тем как лезть в PowerShell на хостовой Windows, нам нужно точно знать текущий сетевой адрес вашей рабочей виртуалки, чтобы указать его в команде скачивания.&lt;br/&gt;

Выполните в терминале tom_1 одну команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=108&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ip route&lt;/span&gt; get 1.1.1.1 &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $7}&#039;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_60.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_60.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_60.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(Она выведет ровно один ваш актуальный IP, например 192.168.1.72 или аналогичный).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;забираем_iso_через_powershell&quot;&gt;Забираем ISO через PowerShell&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Открывайте PowerShell на вашей Windows-машине и вставляйте следующую команду (в неё нужно зашить ваш реальный IP):
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=109&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;powershell&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;scp&lt;/span&gt; eva&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;192.168.1.72:~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso &lt;span class=&quot;re1&quot;&gt;$home&lt;/span&gt;\Downloads\arch_custom.iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;PowerShell выдаст предупреждение о неизвестном хосте (The authenticity of host… can&amp;#039;t be established). Напишите yes и нажмите Enter.&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;После этого система потребует пароль пользователя eva (тот самый, хэш которого мы параноидально проверяли). Вводите его (символы при вводе отображаться не будут) и жмите Enter.&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_62.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_62.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_62.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Образ arch_custom.iso весом 1700 МБ успешно скачался в вашу папку «Загрузки» хостовой Windows всего за одну минуту на скорости 28.5 МБ/с. Связь между виндой и tom_1 отработала как часы.&lt;br/&gt;

Теперь переходим к следующему ответственному этапу — подготовке виртуальной флешки arch-flash-3 через Rufus. Делаем строго по нашей параноидальной схеме.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;подключаем_виртуальный_диск&quot;&gt;Подключаем виртуальный диск&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h5 id=&quot;присоединяем_vhd_vhdx&quot;&gt;Присоединяем VHD/VHDX:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Откройте в Windows «Управление дисками» (Win + X → Управление дисками). Сверху нажмите Действие → Присоединить виртуальный жесткий диск 
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_63.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_63.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_63.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
и выберите файл вашей виртуальной флешки arch-flash-3. 
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_64.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_64.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_64.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Убедитесь, что диск появился в списке снизу.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_65.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_65.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_65.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;запишем_наш_образ_через_rufus&quot;&gt;Запишем наш образ через Rufus&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_66.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_66.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_66.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;Схема раздела — GPT, Целевая система — UEFI (не-CSM), а метка тома встала строго как ARCH_202605&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🔥_шаг_1_правильное_отвязывание_диска_от_windows&quot;&gt;🔥 Шаг 1. Правильное отвязывание диска от Windows&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Действуем строго через системную утилиту, которую видно у вас на заднем плане:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Вернитесь в окно «Управление дисками» (Disk Management).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Найдите снизу в списке Диск 2 (это наша флешка ARCH_202605 (G:) весом 14.00 ГБ).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Нажмите правой кнопкой мыши строго по серому квадрату с надписью «Диск 2 / Базовый / 14,00 ГБ / В сети» (нажимать нужно именно на левую серую плашку, а не на сам синий раздел диска G:).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В появившемся контекстном меню выберите пункт «Взаимодействие» → «Отсоединить виртуальный жесткий диск» (Detach VHD).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Система выдаст окошко с подтверждением пути к файлу, нажмите ОК.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_68.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_68.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_68.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;em&gt;(После этого строка Диск 2 должна полностью исчезнуть из нижнего списка, а диск G: — пропасть из «Проводника»).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;монтируем_флешку_в_настройки_tom_2&quot;&gt;Монтируем флешку в настройки tom_2&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Откройте Диспетчер Hyper-V.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Нажмите правой кнопкой мыши по виртуалке tom_2 → Параметры (Settings).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Перейдите в раздел SCSI-контроллер → выберите Жесткий диск → нажмите Добавить.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В появившемся окне нажмите кнопку Обзор и укажите путь к файлу нашей виртуальной флешки arch-flash-3.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Перейдите во вкладку Встроенное ПО (Firmware) в самом верху настроек. Убедитесь, что этот новый жесткий диск (наша флешка) стоит на первом месте в списке загрузки (выше основного пустого диска).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Перейдите во вкладку Безопасность (Security) и железно проверьте, что галочка «Включить безопасную загрузку» (Secure Boot) снята.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_69.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_69.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_69.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udca3 \u041a\u0430\u043a \u0432\u0437\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u041c\u0438\u043d\u0430 \u21161 \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udca3_\u043a\u0430\u043a_\u0432\u0437\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f_\u043c\u0438\u043d\u0430_1_\u043f\u0440\u0438_\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:106,&amp;quot;secid&amp;quot;:26,&amp;quot;range&amp;quot;:&amp;quot;85488-92803&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit27&quot; id=&quot;🕵️_♂️_разбор_проёбаоткуда_взялся_zram-generator&quot;&gt;🕵️‍♂️ Разбор проёба: откуда взялся zram-generator?&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_71.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_71.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_71.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_72.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_72.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_72.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;br/&gt;

Ошибка zram-generator означает, что подсистема инициализации systemd пытается создать сжатый подкачивающий диск (swap) в оперативной памяти, но падает с ошибкой. На чистом официальном ISO Arch Linux этот генератор работает без проблем.&lt;br/&gt;

Но почему он упал у нас?
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Файловая система airootfs.sfs — это слепок вашей виртуалки tom_1. На tom_1 в ядре настроена полноценная работа с дисками (btrfs, файлы подкачки и т.д.).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; А вот ядро (vmlinuz-linux) и виртуальный диск (initramfs-linux.img) мы ювелирно скопировали из чистого официального ISO (донора), чтобы обойти проблему путей.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Произошел жесткий конфликт версий и модулей (Mismatch): Донором для ядра стал чистый официальный образ Arch. Но на живой машине tom_1 система уже обновлялась (linux-firmware от мая 2026 года, обновленные пакеты systemd).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Когда официальное донорское ядро пытается подгрузить модули и генераторы из нашего слепка airootfs.sfs, версии systemd и модулей ядра банально не совпадают. zram-generator падает, и systemd намертво блокирует дальнейшую загрузку служб, включая сеть и консоль.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
По старому руководству вы брали ядро и initramfs от той же самой системы tom_1 (хоть мы и запутались в путях), поэтому там версии совпадали, и ядро проходило дальше, пока не упиралось в UUID дисков.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🛠️_что_делаем_дальше_у_нас_есть_два_пути&quot;&gt;🛠️ Что делаем дальше? У нас есть два пути:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Поскольку мы договорились проверять всё пошагово и возвращаться к зафиксированным точкам, у нас два варианта:
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;путь_1_вернуться_на_tom_1_и_взять_его_родные_ядро_и_initramfs&quot;&gt;Путь 1. Вернуться на tom_1 и взять ЕГО родные ядро и initramfs&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Мы теперь точно знаем, что ядро и initramfs загрузчик ищет строго по пути arch/boot/x86_64/.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Мы можем зайти на tom_1, сгенерировать там чистый, родной initramfs-linux.img с помощью утилиты mkinitcpio (чтобы он точно содержал в себе модули для btrfs/ext4 и сетевых карт).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Скопировать их в ~/custom_iso/arch/boot/x86_64/, затерев донорские файлы.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Пересобрать ISO через xorriso. Версии совпадут, система продвинется дальше и упрется в UUID, как в старой доке, и мы сможем продолжить чистый эксперимент.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h5 id=&quot;путь_2_попробовать_дождаться_вдруг_отпустит&quot;&gt;Путь 2. Попробовать дождаться (вдруг отпустит?)&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Иногда при падении генераторов systemd ждет таймаут (около 90 секунд) и пробует продолжить загрузку остальных служб в аварийном режиме. &lt;br/&gt;

Если подождать пару минут, экран меняется или висит намертво на этой строчке?Если висит наглухо — переходим к Пути 1, чтобы выровнять версии ядра и слепка системы.
&lt;br/&gt;

В Linux-системах у systemd на запуск каждого генератора или службы по умолчанию заложен жесткий лимит времени (обычно 90 секунд). Если за это время капризный zram-generator не оклемается, ядро должно плюнуть на него, выдать статус [DEPEND] (ошибка зависимости) и попробовать запустить критически важные для нас вещи — текстовую консоль и службы логина.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aarch_linux%3Abuilding_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;media=software:linux_server:arch_linux:iso_image_arch_linux_server_73.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:arch_linux:iso_image_arch_linux_server_73.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:arch_linux:iso_image_arch_linux_server_73.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udd75\ufe0f\u200d\u2642\ufe0f \u0420\u0430\u0437\u0431\u043e\u0440 \u043f\u0440\u043e\u0451\u0431\u0430: \u043e\u0442\u043a\u0443\u0434\u0430 \u0432\u0437\u044f\u043b\u0441\u044f zram-generator?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udd75\ufe0f_\u2642\ufe0f_\u0440\u0430\u0437\u0431\u043e\u0440_\u043f\u0440\u043e\u0451\u0431\u0430\u043e\u0442\u043a\u0443\u0434\u0430_\u0432\u0437\u044f\u043b\u0441\u044f_zram-generator&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:110,&amp;quot;secid&amp;quot;:27,&amp;quot;range&amp;quot;:&amp;quot;92804-97762&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit28&quot; id=&quot;📋_итоговый_чек-листхроники_ручной_сборки_headless_arch_iso&quot;&gt;📋 Итоговый чек-лист: Хроники ручной сборки Headless Arch ISO&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udccb \u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0447\u0435\u043a-\u043b\u0438\u0441\u0442: \u0425\u0440\u043e\u043d\u0438\u043a\u0438 \u0440\u0443\u0447\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438 Headless Arch ISO&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udccb_\u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439_\u0447\u0435\u043a-\u043b\u0438\u0441\u0442\u0445\u0440\u043e\u043d\u0438\u043a\u0438_\u0440\u0443\u0447\u043d\u043e\u0439_\u0441\u0431\u043e\u0440\u043a\u0438_headless_arch_iso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:110,&amp;quot;secid&amp;quot;:28,&amp;quot;range&amp;quot;:&amp;quot;97763-97872&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit29&quot; id=&quot;🕵️_♂️_часть_1_хроника_аудита_подопытной_флешки_вм_tom_2&quot;&gt;🕵️‍♂️ ЧАСТЬ 1. ХРОНИКА АУДИТА ПОДОПЫТНОЙ ФЛЕШКИ (ВМ tom_2)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Сессия началась с препарирования «вживую» запущенной в ОЗУ флешки №101 на изолированной машине tom_2. Нам требовалось понять причины двух проблем: почему ядро сыплет аппаратными ошибками прерываний (NMI) и почему система не записывается на пустой диск sda.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udd75\ufe0f\u200d\u2642\ufe0f \u0427\u0410\u0421\u0422\u042c 1. \u0425\u0420\u041e\u041d\u0418\u041a\u0410 \u0410\u0423\u0414\u0418\u0422\u0410 \u041f\u041e\u0414\u041e\u041f\u042b\u0422\u041d\u041e\u0419 \u0424\u041b\u0415\u0428\u041a\u0418 (\u0412\u041c tom_2)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udd75\ufe0f_\u2642\ufe0f_\u0447\u0430\u0441\u0442\u044c_1_\u0445\u0440\u043e\u043d\u0438\u043a\u0430_\u0430\u0443\u0434\u0438\u0442\u0430_\u043f\u043e\u0434\u043e\u043f\u044b\u0442\u043d\u043e\u0439_\u0444\u043b\u0435\u0448\u043a\u0438_\u0432\u043c_tom_2&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:110,&amp;quot;secid&amp;quot;:29,&amp;quot;range&amp;quot;:&amp;quot;97873-98449&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit30&quot; id=&quot;🔍_ключевые_улики_и_факты_добытые_по_ssh&quot;&gt;🔍 Ключевые улики и факты, добытые по SSH:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Сетевой стек и VLAN ID (Решено в один клик):Изначально Windows хост выдавал «Заданный узел недоступен» при пинге 192.168.1.150. Аудит свойств виртуального коммутатора Hyper-V Lan_without_internet показал активную галочку VLAN ID = 2. Хостовая Windows тегировала трафик, а Live-сессия Arch на eth0 ждала нетегированный (Native) поток. После сброса галочки VLAN ID сетевой мост мгновенно ожил, пошел чистый пинг, открылся SSH по PuTTY и отобразилась веб-страница.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Триумф SquashFS-слепка:Опровергнута теория о «затирании» кастомного корня донорскими файлами. Наличие активного статического IP 192.168.1.150, успешная авторизация под созданным пользователем eva, валидные Yescrypt-хэши ($y$) паролей в /etc/shadow и работающий Nginx на порту 5000 железно доказали: слепок airootfs.sfs жив, цел и развернулся в ОЗУ в штатном режиме. На скриншоте отобразилась дефолтная страница «Welcome to nginx!», так как контент инсталлятора в папку /usr/share/nginx/html/ еще не внедрялся.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Загадка и разгадка ZRAM (Причина сбоя на 2-й секунде):&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; На 2-й секунде загрузки флешки ядро выплевывало ошибку zram-generator failed with exit status 1.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Аудит в ОЗУ флешки (zramctl и lsmod | grep zram) выдал абсолютную тишину — модуль не загружен, устройства подкачки в памяти нет.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Поиск блокировок в /etc/modprobe.d/ вернул пустоту.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Глубинная причина: Локальный pacman -Q linux внутри слепка показал версию пакета модулей 7.0.9, а утилита uname -r запущенного ядра выдала донорскую версию 7.0.3. Произошел жесткий «мисматч» версий (Франкенштейн). Донорское ядро 7.0.3 из скачанного ISO не нашло своих модулей в слепке (там всё под 7.0.9), из-за чего отвалились драйверы, упал zram-generator, а виртуальный процессор Hyper-V начал засыпать консоль аппаратными ошибками прерываний NMI received for unknown reason 00.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Почему система не записалась на диск:Команда lsblk показала пустой жесткий диск sda (12G) без разделов. Аудит каталогов автозапуска systemd (/etc/systemd/system/multi-user.target.wants/), shell-профилей (.bash_profile, .bashrc) у eva и у root (у которого профиля вообще не было ввиду пустоты /etc/skel при базовой установке) доказал: в системе физически отсутствовали инструкции и скрипты для работы с дисками. Флешка вела себя как честный, чистый Live-CD.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udd0d \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0443\u043b\u0438\u043a\u0438 \u0438 \u0444\u0430\u043a\u0442\u044b, \u0434\u043e\u0431\u044b\u0442\u044b\u0435 \u043f\u043e SSH:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udd0d_\u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435_\u0443\u043b\u0438\u043a\u0438_\u0438_\u0444\u0430\u043a\u0442\u044b_\u0434\u043e\u0431\u044b\u0442\u044b\u0435_\u043f\u043e_ssh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:110,&amp;quot;secid&amp;quot;:30,&amp;quot;range&amp;quot;:&amp;quot;98450-102203&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit31&quot; id=&quot;часть_2_внесенные_изменения_в_руководство_на_сайте&quot;&gt;ЧАСТЬ 2. ВНЕСЕННЫЕ ИЗМЕНЕНИЯ В РУКОВОДСТВО НА САЙТЕ&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Осознав ценность 11-дневного труда, мы отказались от идеи «костылить» флешку на лету. Мы вернулись на tom_1 и начали пересобирать проект абсолютно с нуля. По ходу выполнения мы открыли ваше оригинальное руководство на сайте и сразу внесли в него фундаментальные архитектурные правки:
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0427\u0410\u0421\u0422\u042c 2. \u0412\u041d\u0415\u0421\u0415\u041d\u041d\u042b\u0415 \u0418\u0417\u041c\u0415\u041d\u0415\u041d\u0418\u042f \u0412 \u0420\u0423\u041a\u041e\u0412\u041e\u0414\u0421\u0422\u0412\u041e \u041d\u0410 \u0421\u0410\u0419\u0422\u0415&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0447\u0430\u0441\u0442\u044c_2_\u0432\u043d\u0435\u0441\u0435\u043d\u043d\u044b\u0435_\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f_\u0432_\u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e_\u043d\u0430_\u0441\u0430\u0439\u0442\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:110,&amp;quot;secid&amp;quot;:31,&amp;quot;range&amp;quot;:&amp;quot;102204-102822&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit32&quot; id=&quot;🛠_этап_0_выравнивание_и_контроль_версий&quot;&gt;🛠 Этап 0. Выравнивание и контроль версий&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;как_было&quot;&gt;Как было:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В середине процесса скачивался донорский ISO, и файлы vmlinuz-linux и initramfs-linux.img механически забирались из него.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0.1. Актуализация пакетов на tom_1: Запустить полное обновление системы (pacman -Syu), чтобы зафиксировать стабильный срез ядра и утилит на хосте.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0.2. Смена источника ядра: Полностью отказаться от копирования файлов vmlinuz-linux и initramfs-linux.img из скачанных донорских ISO-образов.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0.3. Прямая подстановка: Копировать файлы ядра и initramfs в структуру ISO (~/custom_iso/arch/boot/x86_64/) строго из родной папки /boot/ обновленной системы tom_1.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0.4. Сквозная проверка (Запрет сборки): Перед запуском упаковщика программно или визуально сверять версии:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Пакет: pacman -Q linux&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Файл на хосте: file /boot/vmlinuz-linux&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Файл в ISO: file ~/custom_iso/arch/boot/x86_64/vmlinuz-linuxВерсии должны совпадать символ в символ (например, строго 7.0.9-arch1-1).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;️_корректировка_1выравнивание_ядер_этап_0&quot;&gt;✏️ Корректировка №1: Выравнивание ядер (Этап 0)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;как_стало&quot;&gt;Как стало:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
 Мы ввели «Правило Нулевого Шага». Перед любой консервацией система tom_1 принудительно обновляется из зеркал (pacman -Syu), фиксируя эталонное свежее ядро (в нашем кейсе — 7.0.9-arch2-1). Копирование файлов ядра и initramfs в структуру конструктора теперь производится строго из родного каталога /boot/ самой обновленной tom_1. Это гарантирует 100% совпадение версий со слепком и навсегда убирает ошибку NMI и панику ZRAM.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;️_корректировка_2идеальное_место_для_интеграции_zram&quot;&gt;✏️ Корректировка №2: Идеальное место для интеграции ZRAM&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;как_было1&quot;&gt;Как было:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Текстовый конфиг zram-generator.conf лежал в системе, но утилита падала, так как бинарника не было в ОЗУ.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;как_стало1&quot;&gt;Как стало:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
 Мы нашли ювелирную точку на сайте. В подразделе «Установка инструментов сжатия и генератора ZRAM», строго после безопасной очистки fstab через truncate и перед непосредственным запуском команды mksquashfs, мы прописали совместную установку пакетов:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=110&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;bashsudo pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; squashfs-tools zram-generator&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Это гарантирует, что бинарник и службы ZRAM попадут внутрь слепка за секунду до упаковки, а на этапе ранней эксплуатации tom_1 система не будет замусорена.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0 \u042d\u0442\u0430\u043f 0. \u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0432\u0435\u0440\u0441\u0438\u0439&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0_\u044d\u0442\u0430\u043f_0_\u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435_\u0438_\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c_\u0432\u0435\u0440\u0441\u0438\u0439&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:110,&amp;quot;secid&amp;quot;:32,&amp;quot;range&amp;quot;:&amp;quot;102823-106311&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit33&quot; id=&quot;🛠_часть_3_подготовка_файловой_системы_слепка&quot;&gt;🛠 ЧАСТЬ 3. Подготовка файловой системы слепка&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0 \u0427\u0410\u0421\u0422\u042c 3. \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441\u043b\u0435\u043f\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0_\u0447\u0430\u0441\u0442\u044c_3_\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430_\u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439_\u0441\u0438\u0441\u0442\u0435\u043c\u044b_\u0441\u043b\u0435\u043f\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:111,&amp;quot;secid&amp;quot;:33,&amp;quot;range&amp;quot;:&amp;quot;106312-106406&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit34&quot; id=&quot;🧹_этап_1_статус_выполненных_шагов_на_свежей_вм_tom_1&quot;&gt;🧹 Этап 1. СТАТУС ВЫПОЛНЕННЫХ ШАГОВ НА СВЕЖЕЙ ВМ tom_1&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Продвигаясь мелкими шажками, строго по одной изолированной команде с мгновенным скриншот-контролем, мы успешно реализовали стартовый блок нового руководства на чистой tom_1:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.1. Запустили полное обновление системы (sudo pacman -Syu –noconfirm).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.2. Отправили ВМ в чистый ребут (sudo reboot), зашли обратно и зафиксировали в памяти ОЗУ эталонное родное ядро 7.0.9-arch2-1.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.3. Проверили пакет физического микрокода (pacman -Q linux-firmware) — версия 20260519-1 на месте, реальные сетевухи Intel/Broadcom заведутся.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.4. Ювелирно создали и сохранили на диск универсальный сетевой конфиг /etc/systemd/network/20-wired.network с маской Name=en* eth* и статикой 192.168.1.150/24.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.5. Перевели сетевую службу в автозапуск: sudo systemctl enable systemd-networkd (симлинки созданы).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.6. Включили &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;-резолвер: sudo systemctl enable systemd-resolved.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.7. Убедились, что удаленный доступ активен: systemctl is-enabled sshd рапортует enabled.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.8. Проверили автозапуск веб-сервера: systemctl is-enabled nginx выдает enabled.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.9. Прогнали синтаксический тест Nginx (sudo nginx -t) — успешно, порт 5000 жестко привязан в nginx.conf.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.10. Проверили хэши безопасности пользователей (sudo getent shadow root eva) — современный Yescrypt ($y$) на месте, учетки активны. Прямой вход под root через su - root проверен и защищен вашим личным паролем.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.11. Вывели параметры ZRAM на хосте (lsmod и zramctl) — модуль в ядре активен, swap на 4 ГБ функционирует штатно.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.12. Сделали резервную копию рабочей таблицы разделов: sudo cp /etc/fstab /etc/fstab.bak [1.9].&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.13. Обнулили оригинал: sudo truncate -s 0 /etc/fstab [1.9]. Контрольный cat /etc/fstab вернул идеальную пустую строку (оригинальная Btrfs-структура субтомов хоста надежно заперта в бэкапе .bak весом 837 байт) [1.4, 1.9].&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.14. Отработали нашу новую эдит-запись: одной чистой командой доставили инструменты сжатия и генератор ZRAM (sudo pacman -S –noconfirm squashfs-tools zram-generator) [1.4]. Раздельная проверка подтвердила их наличие в системе [1.4].&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.15. Доставили программную основу нашего будущего веб-инсталлятора: sudo pacman -S –noconfirm php-fpm [1.4].&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Шаг 0.16–0.18. Поймали «выключенный» статус PHP-FPM через is-enabled и принудительно перевели его в автозапуск (sudo systemctl enable php-fpm), добившись жесткого статуса enabled [1.4].&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83e\uddf9 \u042d\u0442\u0430\u043f 1. \u0421\u0422\u0410\u0422\u0423\u0421 \u0412\u042b\u041f\u041e\u041b\u041d\u0415\u041d\u041d\u042b\u0425 \u0428\u0410\u0413\u041e\u0412 \u041d\u0410 \u0421\u0412\u0415\u0416\u0415\u0419 \u0412\u041c tom_1&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83e\uddf9_\u044d\u0442\u0430\u043f_1_\u0441\u0442\u0430\u0442\u0443\u0441_\u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0445_\u0448\u0430\u0433\u043e\u0432_\u043d\u0430_\u0441\u0432\u0435\u0436\u0435\u0439_\u0432\u043c_tom_1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:111,&amp;quot;secid&amp;quot;:34,&amp;quot;range&amp;quot;:&amp;quot;106407-110211&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit35&quot; id=&quot;🚀_часть_4_что_предстоит_сделать_веб-инсталлятор&quot;&gt;🚀 ЧАСТЬ 4. ЧТО ПРЕДСТОИТ СДЕЛАТЬ (ВЕБ-ИНСТАЛЛЯТОР)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Мы остановились ровно перед разделом «Создание структуры каталогов для конструктора ISO». Мы полностью утвердили новую изящную концепцию: наша флешка будет не просто Live-CD, а полноценным WebUI-автономным сервером установки. Окно SSH нам нужно только для контроля, а сама установка на tom_2 будет происходить по клику кнопки из браузера на веб-странице 192.168.1.150:5000!
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\ude80 \u0427\u0410\u0421\u0422\u042c 4. \u0427\u0422\u041e \u041f\u0420\u0415\u0414\u0421\u0422\u041e\u0418\u0422 \u0421\u0414\u0415\u041b\u0410\u0422\u042c (\u0412\u0415\u0411-\u0418\u041d\u0421\u0422\u0410\u041b\u041b\u042f\u0422\u041e\u0420)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\ude80_\u0447\u0430\u0441\u0442\u044c_4_\u0447\u0442\u043e_\u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442_\u0441\u0434\u0435\u043b\u0430\u0442\u044c_\u0432\u0435\u0431-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:111,&amp;quot;secid&amp;quot;:35,&amp;quot;range&amp;quot;:&amp;quot;110212-110961&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit36&quot; id=&quot;🗺_предстоящие_шаги_доработки_руководства_на_tom_1&quot;&gt;🗺 Предстоящие шаги доработки руководства на tom_1:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создание_структуры_каталогов_конструктора&quot;&gt;1. Создание структуры каталогов конструктора:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Мы создадим папку под слепок системы mkdir -p ~/custom_iso/arch/x86_64/. Проверим систему tom_2 и официальный iso образ на необходимость создания директори изолированного пути для ядра загрузчика, которого ранее в доноре возможно не было:&lt;br/&gt;

и если его не было,то создадим 
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=111&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
и проверим создание.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;разработка_веб-фронтенда_и_бэкенда_html_css_js_php&quot;&gt;2. Разработка Веб-Фронтенда и Бэкенда (HTML / CSS / JS / PHP):&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В каталоге /usr/share/nginx/html/ мы заменим стандартную заглушку Nginx на пульт управления:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; index.html + style.css: красивый интерфейс с большой кнопкой «Начать установку системы на tom_2».&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; script.js: обработчик клика, который через асинхронный fetch() пингует бэкенд и выводит логи установки в реальном времени.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; install.php: скрипт, принимающий запрос от JS и инициирующий системный вызов через shell_exec(&amp;#039;sudo /usr/share/nginx/html/installer.sh sda 2&amp;gt;&amp;amp;1&amp;#039;);. &lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;

&lt;h4 id=&quot;обход_мины_с_правами_доступа_http_пользователь&quot;&gt;3. Обход мины с правами доступа (http пользователь):&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Поскольку PHP-FPM в Arch работает от имени пользователя http, мы создадим изолированный файл прав /etc/sudoers.d/web-installer внутри конструктора ISO и пропишем туда строго одну строчку беспарольного доступа к скрипту:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=112&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;http &lt;span class=&quot;re2&quot;&gt;ALL&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ALL:ALL&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; NOPASSWD: &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;installer.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
http ALL=(ALL:ALL) NOPASSWD: /usr/share/nginx/html/installer.sh
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создание_скрипта_разметки_по_логике_label_полный_отказ_от_uuid&quot;&gt;4. Создание скрипта разметки по логике LABEL (Полный отказ от UUID):&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Мы напишем installer.sh, который примет диск sda, занулит его через sgdisk –zap-all и наречет разделы жесткими глобальными метками: EFI раздел → LABEL=«ARCH_BOOT» (FAT32), Root раздел → LABEL=«ARCH_&lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt;» (Btrfs). Скрипт создаст ваши btrfs-субтома (/@, /@home, /@pkg, /@log), скопирует систему из ОЗУ и подкинет универсальный статический /etc/fstab, полностью завязанный на метки LABEL=.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;запуск_заморозки_системы&quot;&gt;5. Запуск заморозки системы:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполним команду mksquashfs / ~/custom_iso/arch/x86_64/airootfs.sfs …. Внутри этого слепка теперь гарантированно окажутся и модули ядра 7.0.9, и php-fpm, и zram-generator. Сразу после этого вернем fstab хоста на место.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;сборка_через_xorriso&quot;&gt;6. Сборка через xorriso:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Мы соберем новый 102-й образ, жестко привязав имя диска к вашей метке тома -volid «ARCH_202605», пропишем флаг ядра unknown_nmi_panic=0 для защиты от прерываний Hyper-V
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;🔌_модификация_параметров_загрузчика_под_hyper-v&quot;&gt;🔌 Модификация параметров загрузчика под Hyper-V&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 6.1. Добавление флага ядра: При формировании конфигурационного файла ~/custom_iso/loader/entries/01-archiso-linux.conf в строку параметров ядра (options) дописать:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=113&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;textunknown_nmi_panic&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Это заблокирует ложные аппаратные прерывания виртуализации Hyper-V и предотвратит ступор консоли.&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\uddfa \u041f\u0440\u0435\u0434\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0448\u0430\u0433\u0438 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u043d\u0430 tom_1:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\uddfa_\u043f\u0440\u0435\u0434\u0441\u0442\u043e\u044f\u0449\u0438\u0435_\u0448\u0430\u0433\u0438_\u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438_\u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430_\u043d\u0430_tom_1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:111,&amp;quot;secid&amp;quot;:36,&amp;quot;range&amp;quot;:&amp;quot;110962-115135&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit37&quot; id=&quot;🌐_этап_3_развертывание_и_изоляция_веб-бэкенда_nginx_php&quot;&gt;🌐 Этап 3. Развертывание и изоляция веб-бэкенда (Nginx + PHP)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 3.1. Интеграция PHP: Установить пакет php-fpm внутри слепка системы и связать его с Nginx через сокет в nginx.conf.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 3.2. Настройка прав веб-пользователя: Создать изолированный файл правил прав доступа по пути /etc/sudoers.d/web-installer внутри конструктора ISO.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 3.3. Беспарольный доступ к Bash: Прописать в этот файл строго одну строчку:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=114&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;texthttp &lt;span class=&quot;re2&quot;&gt;ALL&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ALL:ALL&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; NOPASSWD: &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;installer.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 3.4. Маскировка прав: Перед заморозкой SquashFS жестко выставить права на этот файл, иначе sudo его проигнорирует:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=115&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;bashchown root:root &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sudoers.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;web-installer
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; 0440 &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sudoers.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;web-installer&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83c\udf10 \u042d\u0442\u0430\u043f 3. \u0420\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0438 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044f \u0432\u0435\u0431-\u0431\u044d\u043a\u0435\u043d\u0434\u0430 (Nginx + PHP)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83c\udf10_\u044d\u0442\u0430\u043f_3_\u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435_\u0438_\u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044f_\u0432\u0435\u0431-\u0431\u044d\u043a\u0435\u043d\u0434\u0430_nginx_php&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:114,&amp;quot;secid&amp;quot;:37,&amp;quot;range&amp;quot;:&amp;quot;115136-116215&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit38&quot; id=&quot;💽_этап_4_разработка_webui-инсталлятора_и_логики_label&quot;&gt;💽 Этап 4. Разработка WebUI-инсталлятора и логики LABEL&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 4.1. Внедрение Bash-исполнителя: Написать скрипт /usr/share/nginx/html/installer.sh, который:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Принимает имя целевого диска как аргумент (например, $1 → sda).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Стирает старую разметку через sgdisk –zap-all.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Размечает диск и присваивает разделам жесткие метки: Раздел 1 (FAT32) → ARCH_BOOT, Раздел 2 (Btrfs) → ARCH_&lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создает внутри ARCH_&lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt; копию вашей структуры субтомов (/@, /@home, /@pkg, /@log).Копирует файлы из текущего ОЗУ флешки на новые субтома без интернета.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 4.2. Полный отказ от UUID: Внедрить в устанавливаемую систему универсальный статический /etc/fstab, полностью завязанный на метки:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=116&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;text&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;LABEL&lt;/span&gt;=ARCH_OS   &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;       btrfs   rw,noatime,&lt;span class=&quot;re2&quot;&gt;compress&lt;/span&gt;=zstd,&lt;span class=&quot;re2&quot;&gt;subvol&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/@&lt;/span&gt;   &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LABEL&lt;/span&gt;=ARCH_BOOT &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot   vfat    rw,relatime,&lt;span class=&quot;re2&quot;&gt;fmask&lt;/span&gt;=0022,&lt;span class=&quot;re2&quot;&gt;dmask&lt;/span&gt;=0022     &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 4.3. Верстка интерфейса (Фронтенд): Заменить дефолтный index.html в папке Nginx на кастомный пульт управления с использованием &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;, &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt; и JavaScript.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 4.4. Кнопка «Старт»: Написать install.php, который по клику JS-кнопки из браузера безопасно вызывает:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=117&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;install.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;phpshell_exec&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;sudo /usr/share/nginx/html/installer.sh sda 2&amp;gt;&amp;amp;1&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udcbd \u042d\u0442\u0430\u043f 4. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 WebUI-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u0430 \u0438 \u043b\u043e\u0433\u0438\u043a\u0438 LABEL&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udcbd_\u044d\u0442\u0430\u043f_4_\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430_webui-\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u0430_\u0438_\u043b\u043e\u0433\u0438\u043a\u0438_label&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:116,&amp;quot;secid&amp;quot;:38,&amp;quot;range&amp;quot;:&amp;quot;116216-117997&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit39&quot; id=&quot;конец&quot;&gt;Конец&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u043e\u043d\u0435\u0446&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043d\u0435\u0446&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:118,&amp;quot;secid&amp;quot;:39,&amp;quot;range&amp;quot;:&amp;quot;117998-118020&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit40&quot; id=&quot;дальше_читаем_только_если_230526_вы_собрали_флешку_но_она_не_запустилась&quot;&gt;Дальше читаем только если 23.05.26 вы собрали флешку, но она не запустилась!&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u0430\u043b\u044c\u0448\u0435 \u0447\u0438\u0442\u0430\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 23.05.26 \u0432\u044b \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u0444\u043b\u0435\u0448\u043a\u0443, \u043d\u043e \u043e\u043d\u0430 \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0430\u0441\u044c!&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u0430\u043b\u044c\u0448\u0435_\u0447\u0438\u0442\u0430\u0435\u043c_\u0442\u043e\u043b\u044c\u043a\u043e_\u0435\u0441\u043b\u0438_230526_\u0432\u044b_\u0441\u043e\u0431\u0440\u0430\u043b\u0438_\u0444\u043b\u0435\u0448\u043a\u0443_\u043d\u043e_\u043e\u043d\u0430_\u043d\u0435_\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0430\u0441\u044c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:118,&amp;quot;secid&amp;quot;:40,&amp;quot;range&amp;quot;:&amp;quot;118021-118162&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit41&quot; id=&quot;🎯_1_глобальная_цель_проекта&quot;&gt;🎯 1. Глобальная цель проекта&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Собрать кастомный, полностью автономный ISO-образ Arch Linux на базе живой системы tom_1 для офлайн-установки на «слепые» физические сервера (Supermicro, старый HP, два кастомных ноунейма) без интернета и мониторов. Доступ к серверам после старта с флешки — строго по SSH.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83c\udfaf 1. \u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0430\u044f \u0446\u0435\u043b\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83c\udfaf_1_\u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0430\u044f_\u0446\u0435\u043b\u044c_\u043f\u0440\u043e\u0435\u043a\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:118,&amp;quot;secid&amp;quot;:41,&amp;quot;range&amp;quot;:&amp;quot;118163-118701&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit42&quot; id=&quot;если_230526_года_до_2359_вам_не_хватит_ума_собрать_рабочую_флешку_только_тогда_для_анализа_читаем_рабочий_код_от_210526&quot;&gt;Если 23.05.26 года до 23:59 вам не хватит ума собрать рабочую флешку. Только тогда! Для Анализа читаем рабочий код от 21.05.26&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0415\u0441\u043b\u0438 23.05.26 \u0433\u043e\u0434\u0430 \u0434\u043e 23:59 \u0432\u0430\u043c \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u0442 \u0443\u043c\u0430 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0443\u044e \u0444\u043b\u0435\u0448\u043a\u0443. \u0422\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0433\u0434\u0430! \u0414\u043b\u044f \u0410\u043d\u0430\u043b\u0438\u0437\u0430 \u0447\u0438\u0442\u0430\u0435\u043c \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043a\u043e\u0434 \u043e\u0442 21.05.26&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0435\u0441\u043b\u0438_230526_\u0433\u043e\u0434\u0430_\u0434\u043e_2359_\u0432\u0430\u043c_\u043d\u0435_\u0445\u0432\u0430\u0442\u0438\u0442_\u0443\u043c\u0430_\u0441\u043e\u0431\u0440\u0430\u0442\u044c_\u0440\u0430\u0431\u043e\u0447\u0443\u044e_\u0444\u043b\u0435\u0448\u043a\u0443_\u0442\u043e\u043b\u044c\u043a\u043e_\u0442\u043e\u0433\u0434\u0430_\u0434\u043b\u044f_\u0430\u043d\u0430\u043b\u0438\u0437\u0430_\u0447\u0438\u0442\u0430\u0435\u043c_\u0440\u0430\u0431\u043e\u0447\u0438\u0439_\u043a\u043e\u0434_\u043e\u0442_210526&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:118,&amp;quot;secid&amp;quot;:42,&amp;quot;range&amp;quot;:&amp;quot;118702-118928&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit43&quot; id=&quot;остановились_тут&quot;&gt;Остановились тут&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создаем точки монтирования, монтируем ISO и копируем его структуру в наш рабочий каталог.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=118&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; loop ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archlinux-x86_64.iso &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;команда_для_проверки_результата&quot;&gt;Команда для проверки результата:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что папки теперь на месте в ~/custom_iso:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=119&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Монтирование прошло успешно (предупреждение о read-only для ISO — это норма). Теперь копируем структуру во временную папку.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;выполните_копирование&quot;&gt;Выполните копирование:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=120&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EFI ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;iso_mount&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;даем_права_на_запись_во_всю_структуру_конструктора&quot;&gt;Даем права на запись во всю структуру конструктора&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сделаем все папки и файлы внутри ~/custom_iso доступными для изменения:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=121&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-R&lt;/span&gt; +&lt;span class=&quot;kw2&quot;&gt;w&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Чтобы лично убедиться, что права изменились и у пользователя eva теперь есть доступ на запись (w) ко всем папкам и файлам внутри конструктора, выполните две команды проверки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=122&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-R&lt;/span&gt; +&lt;span class=&quot;kw2&quot;&gt;w&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso
&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso
&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;на_что_смотрим_в_выводе_перед_тем_как_идти_дальше&quot;&gt;На что смотрим в выводе перед тем, как идти дальше:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В строках папок arch, EFI и loader права должны начинаться с drwxr-xr-x (главное — наличие буквы w в первой тройке символов).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Внутри папки entries файлы должны получить права -rw-r–r– (также с буквой w)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;записываем_универсальный_конфиг_в_правильный_файл&quot;&gt;Записываем универсальный конфиг в правильный файл&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=123&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf
title Arch Linux &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; medium &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;x86_64, UEFI&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
linux &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-linux
initrd &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;initramfs-linux.img
options &lt;span class=&quot;re2&quot;&gt;archisobasedir&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;arch&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;archisolabel&lt;/span&gt;=ARCH_202605
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_результат_записи1&quot;&gt;Проверяем результат записи&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что файл 01-archiso-linux.conf обновился корректно:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=124&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loader&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;entries&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01-archiso-linux.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_пройдена_идеально&quot;&gt;Проверка пройдена идеально.&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Конфигурационный файл 01-archiso-linux.conf успешно перезаписан. Параметр archisolabel=ARCH_202605 зафиксирован в системе. Теперь ядро при старте будет искать носитель строго по метке, и загрузка не упадет.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;делаем_fstab_чистым_через_бэкап&quot;&gt;Делаем fstab чистым (через бэкап)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
временно уберем строчки из fstab на tom_1, соберем слепок и вернем всё назад. На чистом tom_1 в fstab и так практически ничего нет, кроме корня.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_содержимое_оригинального_fstab&quot;&gt;Проверяем содержимое оригинального fstab&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=125&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;делаем_резервную_копию_вашего_рабочего_fstab&quot;&gt;Делаем резервную копию вашего рабочего fstab:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=126&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверяем_его_наличие&quot;&gt;проверяем его наличие&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=127&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Мы должны увидеть два файла одинакового размера, и содержимое fstab.bak должно до символа совпадать с оригиналом.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;бэкап_проверен&quot;&gt;Бэкап проверен&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
всё на месте до единого символа. В оригинальном конфиге как раз жестко завязаны UUID разделов Btrfs (/, /home, /var/…) и vfat (/boot) диска sdb. Именно эти строки systemd отчаянно пытался найти в виртуалке, вызывая аварийный режим. Теперь, когда в основном файле пусто, система внутри ISO-образа больше не будет спотыкаться о локальную разметку tom_1.
Оригинальные данные в полной безопасности, переходим к упаковке.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;полностью_очищаем_fstab_перед_упаковкой&quot;&gt;Полностью очищаем fstab перед упаковкой:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=128&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; truncate &lt;span class=&quot;re5&quot;&gt;-s&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Базовая загрузочная структура полностью готова к упаковке новой системы. 
Переходим к установке утилит и заморозке чистого tom_1 на место удаленного файла ОС.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_squashfs-tools&quot;&gt;Установка squashfs-tools&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Поскольку система чистая, ставим пакет сжатия заново:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=129&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; squashfs-tools&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;замораживаем_и_упаковываем_живой_tom_1&quot;&gt;Замораживаем и упаковываем живой tom_1&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
После успешной установки пакета запускаем сборку слепка файловой системы:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=130&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; mksquashfs &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs \
&lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;proc &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;media &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lost+found ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archlinux-x86_64.iso ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso \
&lt;span class=&quot;re5&quot;&gt;-comp&lt;/span&gt; zstd &lt;span class=&quot;re5&quot;&gt;-b&lt;/span&gt; 1M&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Процесс займет несколько минут, на экране побегут упаковываемые файлы).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;команда_для_обязательной_проверки_результата&quot;&gt;Команда для обязательной проверки результата:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Как только утилита mksquashfs завершит работу и вернет терминал к строке [eva@tom1 ~]$, проверьте, что файл создался и посмотрите его вес:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=131&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;упаковка_squashfs_завершена_успешно&quot;&gt;Упаковка SquashFS завершена успешно.&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Файл airootfs.sfs весит 1.5 ГБ, статистика UID/GID на скриншоте подтверждает, что все пользователи (включая eva и http) корректно перенеслись внутрь слепка системы.&lt;br/&gt;

Поскольку утилита mksquashfs работала через sudo, владельцем созданного файла стал root. Проверяем и правим права, чтобы на этапе финальной сборки ISO у нас не возникло ошибок доступа.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;возвращаем_ваш_fstab_на_место_чтобы_tom_1_не_пострадал&quot;&gt;возвращаем ваш fstab на место, чтобы tom_1 не пострадал:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=132&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab.bak &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;меняем_владельца_файла&quot;&gt;Меняем владельца файла&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните команду смены владельца:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=133&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chown&lt;/span&gt; eva:eva ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;обязательная_проверка_результата&quot;&gt;Обязательная проверка результата&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что права обновились корректно:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=134&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;на_что_смотрим_в_выводе2&quot;&gt;На что смотрим в выводе:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Вместо root root в строке файла должно быть четко написано eva eva.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;проверка_прав_пройдена_успешно&quot;&gt;Проверка прав пройдена успешно.&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Владельцем файла airootfs.sfs теперь официально является eva eva.&lt;br/&gt;

Мы подошли к финальному этапу — сборке кастомного ISO-образа. Помня прошлую ошибку с регистром букв в имени загрузчика (BOOTx64.EFI), мы используем точную и проверенную команду сборки.&lt;br/&gt;

Поскольку система чистая, сначала установим xorriso, а затем соберем образ.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_xorriso&quot;&gt;Установка xorriso&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните команду установки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=135&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pacman &lt;span class=&quot;re5&quot;&gt;-S&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--noconfirm&lt;/span&gt; xorriso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;финальная_сборка_универсального_iso&quot;&gt;Финальная сборка универсального ISO&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Запустите команду сборки (в ней прописана правильная маленькая буква x и наша метка тома ARCH_202605):
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=136&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;xorriso &lt;span class=&quot;re5&quot;&gt;-as&lt;/span&gt; mkisofs \
  &lt;span class=&quot;re5&quot;&gt;-iso-level&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-full-iso9660-filenames&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-volid&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ARCH_202605&amp;quot;&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-eltorito-alt-boot&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;EFI/BOOT/BOOTx64.EFI&amp;quot;&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-no-emul-boot&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-isohybrid-gpt-basdat&lt;/span&gt; \
  &lt;span class=&quot;re5&quot;&gt;-output&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso \
  ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;custom_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;обязательная_проверка_результата1&quot;&gt;Обязательная проверка результата&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Убедимся, что файл arch_custom.iso успешно сгенерировался в вашей домашней директории, проверив его размер:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=137&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;сборка_нового_образа_завершена_идеально&quot;&gt;Сборка нового образа завершена идеально.&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Мы видим заветную строку Writing to &amp;#039;stdio…&amp;#039; completed successfully и готовый файл arch_custom.iso весом 1.7 ГБ.&lt;br/&gt;

В этот раз мы проверили каждый шаг, исправили права на папки и зашили универсальный параметр загрузки ядра по метке тома archisolabel=ARCH_202605.&lt;br/&gt;

Переходим к проверке на виртуальной машине tom_2. Вытаскиваем готовый ISO-образ в Windows.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;скачиваем_новый_iso_в_windows&quot;&gt;Скачиваем новый ISO в Windows&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Эта команда без лишнего мусора и длинных списков выведет ровно одно значение — текущий IP-адрес, по которому tom_1 доступен в вашей сети.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=138&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ip route&lt;/span&gt; get &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;awk&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{print $7}&#039;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Откройте PowerShell на вашем хостовом компьютере с Windows и запустите скачивание файла:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=139&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;cmd&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;scp&lt;/span&gt; eva&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;192.168.1.72:&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;eva&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso C:\Users\Public\Downloads\arch_custom.iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(При запросе введите пароль пользователя eva).&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;выполнен_успешно&quot;&gt;выполнен успешно!&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Новый универсальный образ arch_custom.iso размером 1.7 ГБ полностью скачан в Windows. Дата изменения — свежая (14:01).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;открываем_папку_с_файлом_на_windows&quot;&gt;Открываем папку с файлом на Windows&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Нажмите на клавиатуре комбинацию клавиш Win + R (откроется окошко «Выполнить»), вставьте туда вот этот путь и нажмите Enter:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:building_an_arch_linux_iso_image_from_a_modified_arch_linux&amp;amp;codeblock=140&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;txt&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code sql&quot;&gt;C:\Users\Public\Downloads&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;дважды_щелкнуть_мышкой_по_диску&quot;&gt;дважды щелкнуть мышкой по диску&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
и записать руфусом
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;извлекаем_диск_из_windows&quot;&gt;Извлекаем диск из Windows&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Даже если вы нажимали «Извлечь», Rufus или Проводник могли оставить фоновый процесс.
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Откройте «Управление дисками» (Disk Management) в Windows.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Найдите внизу списка наш Диск 2 (виртуальный).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Нажмите правой кнопкой мыши по серой зоне с надписью «Диск 2» и выберите «Отсоединить виртуальный жесткий диск». Если его там уже нет — отлично.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u0442\u0443\u0442&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c_\u0442\u0443\u0442&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:118,&amp;quot;secid&amp;quot;:43,&amp;quot;range&amp;quot;:&amp;quot;118929-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 25 May 2026 03:14:59 +0000</pubDate>
        </item>
        <item>
            <title>building_arch_linux_from_ubuntu</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:linux_server:arch_linux:building_arch_linux_from_ubuntu&amp;rev=1779470128</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;сборка_arch_linux_из_убунту&quot;&gt;Сборка arch linux из убунту&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 22 May 2026 17:15:28 +0000</pubDate>
        </item>
        <item>
            <title>setting_up_a_hyper-v_and_linux_environment_for_a_custom_arch_linux_build</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:linux_server:arch_linux:setting_up_a_hyper-v_and_linux_environment_for_a_custom_arch_linux_build&amp;rev=1780068080</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;настройка_окружения_hyper-v_и_linux_для_кастомной_сборки_arch_linux&quot;&gt;Настройка окружения Hyper-V и Linux для кастомной сборки Arch Linux&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Этот регламент решает главные проблемы тяжелой многопоточной сборки образов (SquashFS / ISO): нехватку оперативной памяти, зависания терминала (PuTTY) и сбои UEFI-загрузчика на целевой машине.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f Hyper-V \u0438 Linux \u0434\u043b\u044f \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438 Arch Linux&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f_hyper-v_\u0438_linux_\u0434\u043b\u044f_\u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0439_\u0441\u0431\u043e\u0440\u043a\u0438_arch_linux&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-455&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;шаг_1_конфигурация_железа_в_диспетчере_hyper-v_хост&quot;&gt;Шаг 1. Конфигурация железа в Диспетчере Hyper-V (Хост)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Настройки выполняются строго на выключенной виртуальной машине-сборщике (tom_1). Это исключает скрытое сжатие ресурсов со стороны Windows.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 1. \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0436\u0435\u043b\u0435\u0437\u0430 \u0432 \u0414\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0435 Hyper-V (\u0425\u043e\u0441\u0442)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_1_\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f_\u0436\u0435\u043b\u0435\u0437\u0430_\u0432_\u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0435_hyper-v_\u0445\u043e\u0441\u0442&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;456-801&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;фиксация_оперативной_памяти_убираем_oom_killer_и_зависания_putty&quot;&gt;1. Фиксация оперативной памяти (Убираем OOM Killer и зависания PuTTY):&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Перейдите в Параметры (Settings) → Оперативная память (Memory).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В поле ОЗУ (RAM) введите: 24576 МБ (ровно 24 ГБ).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 🛑 Критически важно: Снимите галочку с пункта «Включить динамическую память» (Enable Dynamic Memory).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Зачем это нужно: Динамическая память в снапшотах откатывает Linux к базовым 2 ГБ. Без этой галочки Hyper-V железно резервирует 24 ГБ с первой секунды старта. Ядро Linux не уходит в ступор, пытаясь экстренно просить память у Windows во время сжатия, что предотвращает падение сетевого демона sshd.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1. \u0424\u0438\u043a\u0441\u0430\u0446\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 (\u0423\u0431\u0438\u0440\u0430\u0435\u043c OOM Killer \u0438 \u0437\u0430\u0432\u0438\u0441\u0430\u043d\u0438\u044f PuTTY):&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u0438\u043a\u0441\u0430\u0446\u0438\u044f_\u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439_\u043f\u0430\u043c\u044f\u0442\u0438_\u0443\u0431\u0438\u0440\u0430\u0435\u043c_oom_killer_\u0438_\u0437\u0430\u0432\u0438\u0441\u0430\u043d\u0438\u044f_putty&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;802-1793&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;синхронизация_процессора_numa-топология&quot;&gt;2. Синхронизация процессора (NUMA-топология):&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Перейдите в Процессор (Processor) → разверните дерево, нажав на плюс [+] → выберите подпункт NUMA.Нажмите кнопку «Использовать топологию оборудования» (Use Hardware Topology).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Зачем это нужно: Это жестко привязывает 6 виртуальных ядер к архитектуре физического процессора сервера, убирая микрозадержки при обмене данными между ядрами во время параллельного сжатия.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2. \u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 (NUMA-\u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f):&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f_\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430_numa-\u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1794-2525&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;фиксация_контрольной_точки_защита_от_сброса_настроек&quot;&gt;3. Фиксация контрольной точки (Защита от сброса настроек):&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Запустите машину, проверьте в терминале командой free -h, что в столбце total отображается 23Gi или 24Gi. &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создайте новую чистую контрольную точку (например, arch_fixed_24G).Зачем это нужно: Если вы откатитесь к любой старой точке, Hyper-V сотрет новые настройки и вернет режим динамической памяти (2 ГБ). Работать нужно только от этой новой точки.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3. \u0424\u0438\u043a\u0441\u0430\u0446\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 (\u0417\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 \u0441\u0431\u0440\u043e\u0441\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a):&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u0438\u043a\u0441\u0430\u0446\u0438\u044f_\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0439_\u0442\u043e\u0447\u043a\u0438_\u0437\u0430\u0449\u0438\u0442\u0430_\u043e\u0442_\u0441\u0431\u0440\u043e\u0441\u0430_\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;2526-3241&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;шаг_2_оптимизация_ядра_внутри_linux_tom_1&quot;&gt;Шаг 2. Оптимизация ядра внутри Linux (tom_1)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Выполняется один раз при старте операционной системы для отключения ложных триггеров защиты.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:setting_up_a_hyper-v_and_linux_environment_for_a_custom_arch_linux_build&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#Отключение сторожевого таймера NMI (Защита от Kernel Panic при дисковой нагрузке)&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; sysctl &lt;span class=&quot;re5&quot;&gt;-w&lt;/span&gt; kernel.nmi_watchdog=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Зачем это нужно: По умолчанию Linux считает, что если ядро занято обработкой дисковой очереди дольше 20 секунд и не отвечает, то система зависла, и вызывает панику (сигнал NMI). Запись огромных массивов данных (сжатие блоков 1M) создает легальную очередь на диске хоста. Команда запрещает Hyper-V аварийно «пинать» ядра виртуалки и вызывать строки Dazed and confused.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 2. \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u044f\u0434\u0440\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 Linux (tom_1)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_2_\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f_\u044f\u0434\u0440\u0430_\u0432\u043d\u0443\u0442\u0440\u0438_linux_tom_1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;3242-4336&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;шаг_3_сборка_squashfs_слепок_системы&quot;&gt;Шаг 3. Сборка SquashFS (Слепок системы)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Упаковка работающего корня системы в один сжатый файл-образ airootfs.sfs.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:setting_up_a_hyper-v_and_linux_environment_for_a_custom_arch_linux_build&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; mksquashfs &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86_64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;airootfs.sfs \
&lt;span class=&quot;re5&quot;&gt;-comp&lt;/span&gt; zstd &lt;span class=&quot;re5&quot;&gt;-b&lt;/span&gt; 1M \
&lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; proc sys dev run tmp lost+found media home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;eva&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;original_iso_image&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;eva&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;archlinux-x86_64.iso mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; -comp zstd -b 1M: Включает алгоритм ZSTD с размером блока 1 МБ для максимального сжатия и быстрой загрузки диска в ОЗУ.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; -e …: Флаг исключений. Пути пишутся без начального слэша (относительно корня)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; .🛑 Критически важно: Исключение целевой папки mnt/new_iso обязательно. Если её забыть, утилита начнет упаковывать создаваемый файл внутрь самого себя, что вызовет бесконечный цикл, забьет весь диск и намертво повесит сервер.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 3. \u0421\u0431\u043e\u0440\u043a\u0430 SquashFS (\u0421\u043b\u0435\u043f\u043e\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u044b)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_3_\u0441\u0431\u043e\u0440\u043a\u0430_squashfs_\u0441\u043b\u0435\u043f\u043e\u043a_\u0441\u0438\u0441\u0442\u0435\u043c\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;4337-5511&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;шаг_4_генерация_финального_загрузочного_iso-образа&quot;&gt;Шаг 4. Генерация финального загрузочного ISO-образа&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Сборка структуры каталогов в гибридный загрузочный файл, поддерживающий UEFI.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:setting_up_a_hyper-v_and_linux_environment_for_a_custom_arch_linux_build&amp;amp;codeblock=2&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; xorriso &lt;span class=&quot;re5&quot;&gt;-as&lt;/span&gt; mkisofs &lt;span class=&quot;re5&quot;&gt;-iso-level&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-full-iso9660-filenames&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-volid&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ARCH_202605&amp;quot;&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-eltorito-alt-boot&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-eltorito-platform&lt;/span&gt; efi &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;EFI/BOOT/BOOTx64.EFI&amp;quot;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-no-emul-boot&lt;/span&gt; \
&lt;span class=&quot;re5&quot;&gt;-isohybrid-gpt-basdat&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-output&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso &lt;span class=&quot;re5&quot;&gt;-root&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;new_iso&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; -eltorito-platform efi -e «EFI/BOOT/BOOTx64.EFI» -no-emul-boot: Генерирует специальную El Torito UEFI загрузочную запись. Обратите внимание на точный регистр буквы x в имени файла BOOTx64.EFI (в Linux регистр имеет значение, ошибка в одной букве ломает сборку).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; -output /tmp/arch_custom.iso: Запись ведется в системную папку /tmp. Это гарантирует обход любых ошибок прав доступа (Permission denied) при генерации.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; -root / /mnt/new_iso: Изолирует утилиту, принудительно делая папку /mnt/new_iso единственным корнем диска, предотвращая зацикливание на дубликатах.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 4. \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e ISO-\u043e\u0431\u0440\u0430\u0437\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_4_\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f_\u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e_\u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e_iso-\u043e\u0431\u0440\u0430\u0437\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;5512-6912&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;шаг_5_ротация_файла_и_запуск_в_hyper-v&quot;&gt;Шаг 5. Ротация файла и запуск в Hyper-V&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Перемещение файла внутри Linux:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:arch_linux:setting_up_a_hyper-v_and_linux_environment_for_a_custom_arch_linux_build&amp;amp;codeblock=3&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;arch_custom.iso &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;eva&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Освобождение файла на Windows:Перед копированием зайдите в параметры целевой машины tom_2 → DVD-дисковод и временно выберите «Нет» (Извлечь). Если этого не сделать, Hyper-V заблокирует файл, и при копировании поверх старого вы получите битый или недописанный образ.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Копирование и Старт:Перенесите файл через SFTP/WinSCP на Windows в D:\Hyper-V\arch_custom.iso, подключите обратно в DVD-привод tom_2 и запускайте. При отключенном Secure Boot в параметрах tom_2 система мгновенно подхватит UEFI-меню Arch Linux.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 5. \u0420\u043e\u0442\u0430\u0446\u0438\u044f \u0444\u0430\u0439\u043b\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a \u0432 Hyper-V&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_5_\u0440\u043e\u0442\u0430\u0446\u0438\u044f_\u0444\u0430\u0439\u043b\u0430_\u0438_\u0437\u0430\u043f\u0443\u0441\u043a_\u0432_hyper-v&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;6913-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 29 May 2026 15:21:20 +0000</pubDate>
        </item>
    </channel>
</rss>
