Содержание

схемы

Сквозная схема файловой системы хоста tom_1 и конструктора ISO

Директория ~/custom_iso/ не входит внутрь файла airootfs.sfs и не подключается к нему напрямую. Она выполняет роль внешнего «контейнера» (конструктора), внутри которого этот файл создается и хранится.
Если сопоставить обе схемы, то папка ~/custom_iso/ находится на самом верхнем уровне и в момент финальной сборки через утилиту xorriso превращается в корень загрузочного ISO-образа.
Вот схема, показывающая точное местоположение airootfs.sfs внутри конструктора ~/custom_iso/:

circuit
/ (Корень системы, раздел /dev/sda3, тип Ext4)
│
├── boot/                                # Точка монтирования реального UEFI (ESP) раздела хоста
│   ├── vmlinuz-linux ──────────────────┐ (копирование) # Родное исполняемое ядро Arch Linux
│   ├── initramfs-linux.img ────────────┼───┐ (копирование) # Основной образ системы ранней загрузки 
│   ├── initramfs-linux-fallback.img    │   │     # Резервный образ загрузки (включает 
├── EFI/                                │   │                   полный набор драйверов)
│   └── BOOT/                           │   │
│       ├── BOOTX64.EFI ────────────────┼───┼───┐ (копирование UEFI-загрузчика)
│       └── fbx64.efi                   │   │   │ # (Опционально) Файл Fallback-
│                                       │   │   │                 загрузчика для восстановления
│                                       │   │   │
├── etc/                                │   │   │ # Системные конфигурационные файлы
│   ├── fstab                           │   │   │ # [ВАЖНО] Очищен (0 байт) перед запаковкой!
│   ├── passwd                          │   │   │ # База пользователей (используется api/users.php)
│   ├── group                           │   │   │ # База групп (используется api/groups.php)
│   ├── shadow                          │   │   │ # Хэши паролей (модифицируется веб-интерфейсом)
│   ├── sudoers                         │   │   │ # Настроен беспарольный доступ пользователя http
│   │                                   │   │   │
│   ├── nginx/                          │   │   │
│   │   └── nginx.conf                  │   │   │ # Веб-сервер Nginx настроен на порт 5000
│   │                                   │   │   │
│   ├── systemd/                        │   │   │
│   │   ├── network/                    │   │   │
│   │   │   └── 20-wired.network        │   │   │ # Сетевой конфиг (статический IP 192.168.1.150)
│   │   └── system/                     │   │   │
│   │                                   │   │   │ # Включена автозагрузка служб: nginx, php-fpm,  
│   │                                   │   │   │       systemd-networkd, systemd-resolved, smb                                        
│   └── samba/                          │   │   │
│       └── smb.conf                    │   │   │  # Файловый сервер для Windows-разработки
│                                       │   │   │
├── var/cache/pacman/pkg/               │   │   │  # Кэш менеджера пакетов
│   └── [*.pkg.tar.zst]                 │   │   │  # Загруженные из интернета пакеты (nginx, 
│                                       │   │   │     php-fpm, samba...) 
├── usr                                 │   │   │
│   ├──bin/                             │   │   │  # Системные исполняемые файлы
│   │  └── pacman                       │   │   │  # Менеджер пакетов хоста (утилита управления)
│   │                                   │   │   │
│   └── share/                          │   │   │ 
│       └── nginx/                      │   │   │ 
│           └── html/                   │   │   │  # Исходный код Веб-Инсталлятора (права 775/664,  
│               │                       │   │   │    http:http)
│               ├── index.html          │   │   │  # Интерфейс панели управления
│               ├── css/                │   │   │
│               │   └── style.css       │   │   │  # Стили оформления панели
│               ├── js/                 │   │   │
│               │   └── app.js          │   │   │  # Клиентские скрипты логики
│               └── api/                │   │   │
│                   ├── users.php       │   │   │  # Серверный обработчик пользователей
│                   └── groups.php      │   │   │  # Серверный обработчик групп
│                                       │   │   │
└── home/                               │   │   │
    └── eva/                            │   │   │ # Домашний каталог текущего пользователя хоста
        │                               │   │   │
        └── ~/custom_iso/               │   │   │ # [ВХОДНАЯ ТОЧКА] Папка проекта-конструктора                                      
            │                           │   │   │                   будущей флешки
            │                           │   │   │ # (Содержимое этой папки утилита xorriso                                                                        
            │                           │   │   │     превратит в ISO) 
            ├── archlinux-x86_64.iso    │   │   │ # ISO-образа Arch Linux, скачанного из интернета                                                                        
            │                           │   │   │      
            ├── EFI/                    │   │   │
            │   └── BOOT/               │   │   │
            │       └── BOOTX64.EFI ◄───┼───┼───┘      (Скопирован из /boot/EFI/BOOT/BOOTX64.EFI)
            │                           │   │
            ├── loader/                 │   │           [ГЕНЕРАЦИЯ ИЗ ТЕРМИНАЛА ХОСТА]
            │   ├── loader.conf ◄───────┼───┼────────── Команда: cat << 'EOF' > ~/custom_iso/
            │   │                       │   │                    loader/loader.conf
            │   │                       │   │           Содержит: таймаут меню и выбор 
            │   │                       │   │                    записи по умолчанию
            │   └── entries/            │   │
            │       │                   │   │           [ГЕНЕРАЦИЯ ИЗ ТЕРМИНАЛА ХОСТА]                                                              
            │       └── 01-archiso-linux.conf ◄──────── Команда: cat << 'EOF' > ~/custom_iso/
            │                           │   │                  loader/entries/01-archiso-linux.conf
            └── arch/                   │   │           Содержит: параметры ядра, COM-порта
                ├── boot/               │   │                     и метку ARCH_202605
                │   └── x86_64/         ▼   │
                │       ├── vmlinuz-linux   ▼     (Скопирован из /boot/vmlinuz-linux)
                │       └── initramfs-linux.img   (Скопирован из /boot/initramfs-linux.img)
                │
                └── x86_64/
                    └── airootfs.sfs               # [ФИНАЛЬНЫЙ СЛЕПОК] Сюда команда # mksquashfs запакует весь корень '/',# исключая виртуальные ФС и сам custom_iso
                        │                 
                        │                          # (Опционально) Файл Fallback-загрузчика 
                        │                                          для восстановления
                        │                
                        # При загрузке сервера ядро монтирует этот файл в Live-ОЗУ как корень '/':
                        ├── etc/ (passwd, shadow, nginx.conf, 20-wired.network)
                        ├── usr/share/nginx/html/ (код вашего веб-инсталлятора)
                        └── ...                          
Архитектурная логика связей на схеме:

Исключенные директории (Флаг -e в mksquashfs)

При сборке слепка командой sudo mksquashfs / … напрямую исключаются виртуальные, временные и резервные папки хоста, так как они генерируются ядром автоматически при загрузке в ОЗУ:

circuit
/boot/                                   # Точка монтирования реального UEFI (ESP) раздела хоста
├── vmlinuz-linux                        # Родное исполняемое ядро Arch Linux (сжатый бинарник)
├── initramfs-linux.img                  # Основной образ файловой системы ранней загрузки (ОЗУ-диск)
├── initramfs-linux-fallback.img         # Резервный образ загрузки (включает полный набор драйверов)
└── EFI/
    └── BOOT/
        ├── BOOTX64.EFI                  # Основной бинарный файл загрузчика UEFI (в данном проекте systemd-boot)
        └── fbx64.efi                    # (Опционально) Файл Fallback-загрузчика для восстановления
Ключевые файлы схемы:

разбивки диска оригинальго Arch linux с Fat32

На основе стандартных рекомендаций по установке оригинального Arch Linux в режиме UEFI (включая требования из руководства по созданию ISO), ниже представлена схема разбивки физического диска (например, /dev/sda или /dev/nvme0n1).
Схема содержит обязательный системный раздел FAT32 (для загрузчика), основной раздел Ext4 (корень системы) и раздел подкачки Swap:

Физический диск (Разметка таблицы разделов: GPT)

GPT
┌─────────────────────────────────────────────────────────────────────────────────────────┐
│ Номер раздела │ Файловая система │ Название / Назначение     │ Точка монтирования       │
├───────────────┼──────────────────┼───────────────────────────┼──────────────────────────┤
│   /dev/sda1   │      FAT32       │ EFI System Partition (ESP)/boot                    │
│               │                  │ Размер: 512 МБ - 1 ГБ     │                          │
├───────────────┼──────────────────┼───────────────────────────┼──────────────────────────┤
│   /dev/sda2   │    linux-swap    │ Swap Partition (Подкачка)[SWAP]                   │
│               │                  │ Размер: равен ОЗУ или выше│                          │
├───────────────┼──────────────────┼───────────────────────────┼──────────────────────────┤
│   /dev/sda3   │      Ext4        │ Root Partition (Корень)/(Сюда ставится система) │                        
│               │                  │ Размер: Всё оставшееся    │                          │
└─────────────────────────────────────────────────────────────────────────────────────────┘

Важные технические особенности:

1.9.1 Примеры схем

UEFI с GPT

Точка монтирования в установленной системеРазделТип разделаРекомендуемый размер
/boot1/dev/системный_раздел_efiСистемный раздел EFI 1 ГиБ
[SWAP]/dev/раздел_подкачкиLinux swapНе менее 4 ГиБ
//dev/корневой_разделLinux x86-64 root (/)Остаток, минимум 23–32 ГиБ

Схема веб-панели управления в основной системе (tom_1)

Папка веб-сервера nginx_html находится по пути /usr/share/nginx/html/ и имеет следующую структуру файлов бэкенда (PHP) и фронтенда (JS/CSS):

/usr/share/nginx/html/               # Корневая директория веб-сервера Nginx
├── index.html                       # Главный интерфейс панели (вкладки, таблицы, модальные окна)
├── css/
│   └── style.css                    # Стили оформления интерфейса панели управления
├── js/
│   └── app.js                       # Клиентская логика (асинхронные Fetch-запросы к API, фильтры)
└── api/
    ├── users.php                    # Серверный обработчик для системных пользователей (/etc/passwd)
    └── groups.php                   # Серверный обработчик для системных групп (/etc/group)