Инструменты пользователя

Инструменты сайта


software:linux_server:arch_linux:arch_linux_circuit

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
software:linux_server:arch_linux:arch_linux_circuit [2026/05/25 13:54] VladPolskiysoftware:linux_server:arch_linux:arch_linux_circuit [2026/05/25 17:35] (текущий) – [1.9.1 Примеры схем] VladPolskiy
Строка 4: Строка 4:
   * Процесс клонирования ядра: Команды cp /boot/... ~/custom_iso/... берут текущие рабочие загрузочные файлы хоста tom_1 и переносят их во вложенную структуру конструктора, чтобы будущий образ гарантированно загрузился на том же ядре.   * Процесс клонирования ядра: Команды cp /boot/... ~/custom_iso/... берут текущие рабочие загрузочные файлы хоста tom_1 и переносят их во вложенную структуру конструктора, чтобы будущий образ гарантированно загрузился на том же ядре.
   * Рекурсивное исключение при запаковке: Когда утилита mksquashfs сканирует корень / для генерации файла airootfs.sfs, она упаковывает все файлы etc, usr/share/nginx/html и т.д., но в параметрах запуска обязательно пропускает папку ~/custom_iso (и архивы *.iso), чтобы избежать бесконечного цикла (упаковки архива внутрь самого себя).   * Рекурсивное исключение при запаковке: Когда утилита mksquashfs сканирует корень / для генерации файла airootfs.sfs, она упаковывает все файлы etc, usr/share/nginx/html и т.д., но в параметрах запуска обязательно пропускает папку ~/custom_iso (и архивы *.iso), чтобы избежать бесконечного цикла (упаковки архива внутрь самого себя).
 +
 +Директория ~/custom_iso/ не входит внутрь файла airootfs.sfs и не подключается к нему напрямую. Она выполняет роль внешнего «контейнера» (конструктора), внутри которого этот файл создается и хранится.
 +\\  
 +Если сопоставить обе схемы, то папка ~/custom_iso/ находится на самом верхнем уровне и в момент финальной сборки через утилиту xorriso превращается в корень загрузочного ISO-образа.
 +\\   
 +Вот схема, показывающая точное местоположение airootfs.sfs внутри конструктора ~/custom_iso/:
 <code bash circuit> <code bash circuit>
 / (Корень системы, раздел /dev/sda3, тип Ext4) / (Корень системы, раздел /dev/sda3, тип Ext4)
Строка 109: Строка 115:
   * Загруженные пакеты (/var/cache/pacman/pkg/):Когда на Шаге 2.2 выполняется команда sudo pacman -S nginx php-fpm ..., пакеты сначала скачиваются из интернета в этот системный кэш, а затем устанавливаются в систему. Если перед сборкой образов не вызвать очистку кэша (pacman -Sc), все эти скачанные .tar.zst файлы тоже будут запакованы внутрь airootfs.sfs, что увеличит размер финального ISO-образа.   * Загруженные пакеты (/var/cache/pacman/pkg/):Когда на Шаге 2.2 выполняется команда sudo pacman -S nginx php-fpm ..., пакеты сначала скачиваются из интернета в этот системный кэш, а затем устанавливаются в систему. Если перед сборкой образов не вызвать очистку кэша (pacman -Sc), все эти скачанные .tar.zst файлы тоже будут запакованы внутрь airootfs.sfs, что увеличит размер финального ISO-образа.
   * Скачанный оригинальный ISO-образ (~/archlinux-x86_64.iso):В данном руководстве автор реализует метод сборки на основе слепка живой системы (Host Snapshot), а не классический метод через утилиту archiso. Поэтому оригинальный ISO-образ Arch Linux автора не интересует — из него ничего не монтируется и не копируется.В тексте руководства он упоминается ровно один раз на Шаге 4.2 в качестве флага исключения:... -e /proc /sys ... ~/archlinux-x86_64.iso ~/custom_iso ...Это сделано исключительно для того, чтобы архиватор mksquashfs случайно не стал упаковывать этот огромный скачанный файл весом в 1 ГБ внутрь создаваемого слепка.   * Скачанный оригинальный ISO-образ (~/archlinux-x86_64.iso):В данном руководстве автор реализует метод сборки на основе слепка живой системы (Host Snapshot), а не классический метод через утилиту archiso. Поэтому оригинальный ISO-образ Arch Linux автора не интересует — из него ничего не монтируется и не копируется.В тексте руководства он упоминается ровно один раз на Шаге 4.2 в качестве флага исключения:... -e /proc /sys ... ~/archlinux-x86_64.iso ~/custom_iso ...Это сделано исключительно для того, чтобы архиватор mksquashfs случайно не стал упаковывать этот огромный скачанный файл весом в 1 ГБ внутрь создаваемого слепка.
 +=== Исключенные директории (Флаг -e в mksquashfs)=== 
 +При сборке слепка командой sudo mksquashfs / ... напрямую исключаются виртуальные, временные и резервные папки хоста, так как они генерируются ядром автоматически при загрузке в ОЗУ: 
 +  * /proc и /sys — виртуальные ФС ядра. 
 +  * /dev — файлы устройств (заполняются службой udev). 
 +  * /run — динамические runtime-данные (сюда при старте создается сокет /run/php-fpm/php-fpm.sock). 
 +  * /tmp — временные файлы. 
 +  * /mnt и /media — точки монтирования внешних дисков.
  
 <code bash circuit> <code bash circuit>
Строка 145: Строка 157:
 │               │                  │ Размер: Всё оставшееся    │                          │ │               │                  │ Размер: Всё оставшееся    │                          │
 └─────────────────────────────────────────────────────────────────────────────────────────┘ └─────────────────────────────────────────────────────────────────────────────────────────┘
 +</code>
 +
 +===Важные технические особенности:===
 +  * Почему FAT32 обязателен? Материнские платы с UEFI «из коробки» не умеют читать файловые системы Linux (такие как Ext4, Btrfs или SquashFS). Они понимают только FAT32. Поэтому папка /boot выносится на отдельный FAT32-раздел, чтобы плата могла запустить загрузчик BOOTX64.EFI и считать ядро.
 +  * Флаг загрузки: При создании раздела /dev/sda1 утилитами fdisk или gdisk ему обязательно выставляется тип EFI System (код ef00 в gdisk), а форматируется он строго командой mkfs.vfat -F 32 /dev/sda1.
 +  * Использование в ISO: При сборке вашего кастомного ISO-образа утилита xorriso имитирует эту структуру прямо внутри одного ISO-файла, создавая скрытый FAT-образ для совместимости с UEFI-загрузкой целевых серверов.
 +
 +=====1.9.1 Примеры схем=====
 +[[https://wiki.archlinux.org/title/Installation_guide_(Русский)|UEFI с GPT]]
 +{{tablelayout?colwidth="200px,,,230px"}}
 +^Точка монтирования в установленной системе^Раздел^Тип раздела^Рекомендуемый размер^
 +|/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):
 +<code>
 +/usr/share/nginx/html/               # Корневая директория веб-сервера Nginx
 +├── index.html                       # Главный интерфейс панели (вкладки, таблицы, модальные окна)
 +├── css/
 +│   └── style.css                    # Стили оформления интерфейса панели управления
 +├── js/
 +│   └── app.js                       # Клиентская логика (асинхронные Fetch-запросы к API, фильтры)
 +└── api/
 +    ├── users.php                    # Серверный обработчик для системных пользователей (/etc/passwd)
 +    └── groups.php                   # Серверный обработчик для системных групп (/etc/group)
 </code> </code>
software/linux_server/arch_linux/arch_linux_circuit.1779706460.txt.gz · Последнее изменение: VladPolskiy

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki