Это старая версия документа!
вытаскиваем официальный образ/ обновляем и запаковываем
Шаг 1. Копируем файлы ISO в рабочую папку Создадим рабочую директорию и скопируем туда файлы, чтобы их можно было редактировать:
mkdir ~/custom_iso cp -a /home/eva/original_iso_image/mnt/. ~/custom_iso/
Шаг 2. Распаковываем внутреннюю файловую систему у нас на вм 10гб озу и 6 вирт ядер Распакуем сжатый образ airootfs.sfs, где живет сама система Arch Linux:
mkdir ~/extracted_fs sudo unsquashfs -d ~/extracted_fs/rootfs ~/custom_iso/arch/x86_64/airootfs.sfs
Шаг 3. Обновляем ядро внутри образаТак как у вас в основной системе уже стоит ядро 7.0.10-arch1-1, мы можем просто скопировать готовые файлы ядра и модулей прямо из вашей рабочей системы внутрь распакованного образа. Это быстрее и надежнее, чем скачивать через pacman.
# 1. Копируем модули ядра вашей системы (7.0.10-arch1-1) внутрь образа sudo cp -a /usr/lib/modules/7.0.10-arch1-1 ~/extracted_fs/rootfs/usr/lib/modules/
# 2. Генерация файла initramfs
Создаем файл инициализации для ядра 7.0.10-arch1-1 напрямую в корень вашей домашней папки: sudo mkinitcpio -k 7.0.10-arch1-1 -g /home/eva/initramfs-linux.img
# 3. Копируем само ядро и образ инициализации в загрузочную папку системы образа sudo cp /boot/vmlinuz-linux ~/extracted_fs/rootfs/boot/vmlinuz-linux sudo cp /home/eva/initramfs-linux.img ~/extracted_fs/rootfs/boot/initramfs-linux.img
Шаг 4. Обновляем ядро для загрузчика ISO Ядро на Arch ISO дублируется. Его также нужно обновить в папке самого загрузчика диска:
sudo cp /boot/vmlinuz-linux ~/custom_iso/arch/boot/x86_64/vmlinuz-linux sudo cp /home/eva/initramfs-linux.img ~/custom_iso/arch/boot/x86_64/initramfs-linux.img
Шаг 5. Собираем образ SquashFS обратно Удаляем старый сжатый образ и упаковываем измененную систему заново (это может занять пару минут):
sudo rm ~/custom_iso/arch/x86_64/airootfs.sfs sudo mksquashfs ~/extracted_fs/rootfs ~/custom_iso/arch/x86_64/airootfs.sfs -comp xz
isohdpfx.bin не оказалось на диске Выполните команду для поиска :
find ~/custom_iso -name «isohdpfx.bin»
Отлично, файл isohdpfx.bin нашёлся прямо внутри вашего образа [archlinux.org]! Раз он лежит по пути /home/eva/custom_iso/boot/syslinux/isohdpfx.bin, мы просто скормим его утилите xorrisofs [archlinux.org].Выполните эту команду, и сборка наконец-то завершится успехом:
Шаг 6. Создаем финальный .iso файл Собираем всё обратно в загрузочный ISO-образ. Файл new_arch.iso появится в вашей домашней папке:
xorrisofs -iso-level 3 -full-iso9660-filenames -volid «ARCH_CUSTOM» \
- eltorito-boot boot/syslinux/isolinux.bin -eltorito-catalog boot/syslinux/boot.cat \
- no-emul-boot -boot-load-size 4 -boot-info-table \
- isohybrid-mbr /home/eva/custom_iso/boot/syslinux/isohdpfx.bin \
- output ~/new_arch.iso ~/custom_iso
Шаг 7. Проверим версию ядра после обновления
sudo umount /home/eva/original_iso_image/mnt 2>/dev/null sudo mount -o loop ~/new_arch.iso /home/eva/original_iso_image/mnt file /home/eva/original_iso_image/mnt/arch/boot/x86_64/vmlinuz-linux
Проверка подтверждает: version 7.0.10-arch1-1. Вы успешно пересобрали ISO-образ, обновили ядро, укротили unsquashfs и победили капризные пути в xorriso без захламления основной системы.Теперь этот образ готов к использованию. Чтобы безопасно очистить временные файлы на виртуальной машине, которые занимают место, выполните:
sudo umount /home/eva/original_iso_image/mnt sudo rm -rf ~/custom_iso ~/extracted_fs ~/initramfs-linux.img
Шаг 8. Вытащить образ в Windows
scp eva@IP_АДРЕС_ВИРТУАЛКИ:/home/eva/new_arch.iso C:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ\Downloads\
Замените IP_АДРЕС_ВИРТУАЛКИ на реальный IP вашей машины (его можно узнать в Arch командой ip a), а ИМЯ_ПОЛЬЗОВАТЕЛЯ — на ваше имя пользователя в Windows.
