يبني صور ISO الرسمية لمثبّت Kali Linux باستخدام simple-cdd وdebian-cd، مع دعم معماريات ومتغيّرات ومرايا متعددة وعمليات بناء داخل حاويات.
باني ISO لمثبّت Kali Linux، عبر simple-cdd (مع debian-cd).
هذه هي نفس سكربتات البناء التي يستخدمها فريق Kali لإنشاء صور Kali Linux الأساسية الرسمية، الموجودة على kali.org/get-kali/.
يمكن استخدام هذه الصور لتثبيت Kali مع تخصيصات متنوعة أثناء الإعداد، من CD/DVD/Blu-ray/USB/sdCard. للتمكن من الإقلاع المباشر (live boot) (مثلًا تجربة Kali دون تغيير أي نظام تشغيل موجود)، راجع kali-live:
ابنِ نسختك من Kali اليوم!
نوصي بالبناء على مضيف يعمل بنظام Linux، يتوافق مع المعمارية المطلوبة.
هناك طرق متعددة للاستعداد لاستخدام سكربت بناء kali-installer. يمكنك إما:
build.sh - البناء مباشرة من جهازكbuild-in-container.sh - البناء من داخل حاوية (مثل Docker أو Podman) لكي يعمل build.sh، سيتطلب صلاحيات المستخدم الخارق (مثل sudo أو حاوية بصلاحيات root). ومع ذلك، لا يُشترط وجود KVM.
أولًا قم بتثبيت git، وتأكد من استنساخ المستودع محليًا:
$ sudo apt-get install --no-install-recommends \
git ca-certificates
$ git clone https://gitlab.com/kalilinux/build-scripts/kali-installer.git
$ cd ./kali-installer/
للبناء مباشرةً على المضيف باستخدام build.sh، قم بتثبيت تبعيات البناء:
$ sudo apt-get install --no-install-recommends \
simple-cdd debian-cd \
cpio \
mtools \
dosfstools \
xorriso
يمكنك الآن استخدام ./build.sh، الذي سيبني ISO لمثبّت Kali مباشرةً على جهازك.
إذا كنت لا تستخدم Kali كنظام تشغيل أساسي، فستحتاج إلى تثبيت kali-archive-keyring الخاص بـ Kali لكي يتمكن simple-cdd من جلب حزم Kali.
$ sudo apt-get install --no-install-recommends \
wget ca-certificates
$ wget https://http.kali.org/pool/main/k/kali-archive-keyring/kali-archive-keyring_20YY.X_all.deb
$ sudo apt-get install ./kali-archive-keyring_*_all.deb
$ wget https://http.kali.org/pool/main/d/debian-cd/debian-cd_*_all.deb
$ sudo apt-get install ./debian-cd_*_all.deb
ملاحظة: استبدل 20YY.X بالقيم الموضحة هنا، في kali-archive-keyring.
اعتمادًا على وقت تشغيلك لهذا، قد تحتاج أيضًا إلى إصدار معين من simple-cdd (متتبع الحزم: Debian/Kali) و/أو debian-cd (متتبع الحزم: Debian/Kali).
الآن يمكنك اتباع البناء من المضيف (Kali) لتثبيت تبعيات البناء.
سنتخطى إعداد أي برنامج حاويات.
إذا كنت تفضل البناء من داخل حاوية، فستحتاج إلى تثبيت وتكوين إما docker أو podman على جهازك.
docker إضافة المستخدم إلى مجموعة Docker، أو استخدام حساب الجذر (مثل $ sudo ./build-in-container.sh).podman مع rootful (مثل $ sudo ./build-in-container.sh)، ومع ذلك فإن rootless غير مدعوم في الوقت الحالي.build-in-container.sh هو غلاف فوق build.sh. يكتشف محرك الحاويات المتوافق مع OCI الذي يجب استخدامه، ويتولى إنشاء صورة الحاوية إذا كانت مفقودة، ثم يبدأ الحاوية لتنفيذ البناء من الداخل.
لديك ثلاث طرق لتوفير صورة الحاوية:
$ # Option #1 - Automated build (recommended)
$ ./build-in-container.sh
$ ./build-in-container.sh --force # If you need to rebuild the image from scratch
$
$
$
$ # Option #2 - Manual build
$ docker build -t kali-build/kali-installer .
$ # ...OR...
$ podman build -t kali-build/kali-installer .
$
$
$
$ # Option #3 - Use the pre-generated
$ docker pull registry.gitlab.com/kalilinux/build-scripts/kali-installer:latest
$ docker tag registry.gitlab.com/kalilinux/build-scripts/kali-installer:latest kali-build/kali-installer
$ # ...OR...
$ podman pull registry.gitlab.com/kalilinux/build-scripts/kali-installer:latest
$ podman tag registry.gitlab.com/kalilinux/build-scripts/kali-installer:latest kali-build/kali-installer
$
$ # ...then point the build at it:
$ ./build-in-container.sh # Locally built (automated or manual)
$ IMAGE=registry.gitlab.com/kalilinux/build-scripts/kali-installer:latest ./build-in-container.sh # Pre-generated
إذا كان لديك كل من docker وpodman مثبتين، فسيستخدم build-in-container.sh افتراضيًا podman. لتغيير ذلك، أضف البادئة CONTAINER=docker قبل ./build-in-container.sh:
$ CONTAINER=docker ./build-in-container.sh [...]
الآن يمكنك استخدام ./build-in-container.sh (بدلاً من ./build.sh)، لبناء صورة.
$ ./build.sh --help
Usage: build.sh [OPTIONS]
Build a Kali Linux Installer image.
Build options:
-a, --arch ARCH Build an image for this architecture (default: amd64)
Supported: amd64 arm64 armhf
-b, --branch BRANCH Kali branch used to build the image (default: kali-rolling)
Supported: kali-rolling kali-dev kali-last-snapshot
-k, --keep Keep intermediary build artifacts
-m, --mirror URL Mirror used to build the image (default: http://http.kali.org/kali)
-o, --output DIR Output directory (default: /home/kali/kali-installer/output)
-v, --variant VARIANT Variant of image to build (default: default)
Supported: default everything netinst purple
-x, --version VERSION What to name the image release as (default: rolling)
-h, --help Show this help and exit
Installer options:
-H, --hostname HOSTNAME Set system host name (default: kali)
-P, --packages PKGS Install extra packages (comma/space separated list)
Apt caching proxy:
Auto-detected: localhost:3142 (apt-cacher-ng), localhost:8000 (squid-deb-proxy).
If detected and http_proxy is not set, http_proxy is exported automatically.
Supported environment variables:
http_proxy HTTP proxy URL, see README.md for details
DEBUG Print extra debug output
Any --flag value can be pre-set via its env var (e.g. ARCH, BUILD_MIRROR, OUT_DIR)
Examples:
build.sh
build.sh --branch kali-rolling
build.sh -b kali-dev -v netinst -a arm64
ملاحظة: ثلاثة أعلام لا تشارك متغيراتها الاسم: --mirror هو BUILD_MIRROR، و--hostname هو KALI_HOSTNAME (bash يعيّن HOSTNAME بالفعل)، و--output هو OUT_DIR. كل علم آخر يحمل اسمه الخاص بأحرف كبيرة (مثلًا --branch هو BRANCH).
لمزيد من المعلومات و/أو الأمثلة، يُرجى الاطلاع على: