Запуск контейнера с ArchLinux:
sudo docker run -it --privileged=true archlinux
Установка зависимостей:
pacman -Sy git grub mtools edk2-shell arch-install-scripts squashfs-tools libisoburn btrfs-progs dosfstools lynx binutils wget patch vim make
Скачиваем исходники образа и сборщика:
wget https://gitlab.com/systemrescue/systemrescue-sources/-/archive/8.01/systemrescue-sources-8.01.tar.gz
wget https://gitlab.archlinux.org/archlinux/archiso/-/archive/v43/archiso-v43.tar.gz
tar -xf systemrescue-sources-8.01.tar.gz
tar -xf archiso-v43.tar.gz
mv archiso-v43 archiso
Накладываем патчи (полный пример с указанием процесса, остальные идут по аналогии):
patch < /systemrescue-sources-8.01/patches/archiso-v43-01-squashfs-options.patch
can't find file to patch at input line 5
Perhaps you should have used the -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git a/archiso/mkarchiso b/archiso/mkarchiso
|index 567a5af..ed3f2c1 100755
|--- a/archiso/mkarchiso
|+++ b/archiso/mkarchiso
--------------------------
File to patch: /archiso/archiso/mkarchiso
patching file /archiso/archiso/mkarchiso
patch < /systemrescue-sources-8.01/patches/archiso-v43-02-fix-pxeboot-dhcp.patch
patch < /systemrescue-sources-8.01/patches/archiso-v43-03-fix-pxeboot-multiple-interfaces.patch
patch < /systemrescue-sources-8.01/patches/archiso-v43-04-increase-cow-spacesize.patch
# для ввода пути до файла
patch -p5 < /systemrescue-sources-8.01/patches/archiso-v43-05-add-loadsrm.patch
patch -p5 < /systemrescue-sources-8.01/patches/archiso-v43-06-autorun-copytoram.patch
Устанавливаем пропатченную утилиту:
cd archiso
make install
make install-initcpio
Чистим мусор:
rm -rf archiso-v43.tar.gz archiso systemrescue-sources-8.01.tar.gz systemrescue-sources-8.01
В соседней консоли создаем образ из текущего контейнера:
sudo docker commit 9cc5b22ebcb3 zukrain/archlinux:v2
Content type
Image
Digest
Size
270.7 MB
Last updated
over 5 years ago
docker pull zukrain/archlinux:v2