MoonLightOS

الدليل

من التنزيل إلى تثبيت يعمل، وما العمل حين يسوء شيء ما.

قبل أن تبدأ

أي حاسوب x86 بنواة 64 بت. يتطلب المثبِّت 1.7 غيغابايت من الذاكرة و18 غيغابايت من مساحة القرص على الأقل؛ والقيم أدناه هي التي يعمل بها النظام بأريحية.

الحد الأدنىالموصى به
الذاكرة2 غيغابايت4 غيغابايت
القرص18 غيغابايت30 غيغابايت
المعالجأي معالج x86 بنواة 64 بتثنائي النواة
الرسومياتأي كرت شاشة له ذاكرة إطارأي كرت من الخمس عشرة سنة الماضية

تدعم نسخة القرص نفسها كلاً من UEFI وBIOS القديم. ويمكن إبقاء Secure Boot مفعّلاً.

التنزيل والتحقق

نسخة القرص ملف واحد، moonlightos-26.04.5-bengunur-amd64.iso، وبجانبه ملف ثانٍ يحوي بصمة SHA-256 الخاصة بها. تحقق من البصمة قبل كتابة النسخة: فالتنزيل الناقص ينتج ذاكرة USB تقلع ثم تخفق بطرق محيّرة.

على Linux أو macOS، داخل المجلد الذي حفظت فيه التنزيل:

sha256sum -c moonlightos-26.04.5-bengunur-amd64.iso.sha256

على Windows، في PowerShell، قارن البصمة المطبوعة بتلك الموجودة في ملف ‎.sha256:

Get-FileHash .\moonlightos-26.04.5-bengunur-amd64.iso -Algorithm SHA256
Get-Content .\moonlightos-26.04.5-bengunur-amd64.iso.sha256

يطبع الأمر الأول OK؛ ويطبع الثاني بصمة يجب أن تطابق ما في الملف. وأي شيء غير ذلك يعني أن التنزيل تالف.

تنزيل 26.04.5

كتابة نسخة القرص على ذاكرة USB

نسخة القرص هجينة، فيكفي نسخ كتلي عادي: لا حاجة إلى أداة خاصة، والذاكرة نفسها تقلع على حواسيب UEFI وBIOS معاً. ويُمحى كل ما على الذاكرة. وتحتاج إلى ذاكرة سعتها 8 غيغابايت على الأقل.

على Linux أو macOS، اعرف اسم الجهاز أولاً ‏(lsblk على Linux، وdiskutil list على macOS)، ثم:

sudo dd if=moonlightos-26.04.5-bengunur-amd64.iso of=/dev/sdX bs=4M status=progress oflag=direct conv=fsync
sudo dd if=moonlightos-26.04.5-bengunur-amd64.iso of=/dev/rdiskN bs=4m   # macOS

تحقق من اسم الجهاز مرتين: فـ dd يكتب على أي جهاز يُعطى له.

Windows

استخدم Rufus في وضع صورة DD، أو balenaEtcher، أو Ventoy. وإذا سأل Rufus أتكتب بوضع ISO أم DD، فاختر DD.

الإقلاع من ذاكرة USB

شغّل الحاسوب والذاكرة موصولة، وافتح قائمة الإقلاع لمرة واحدة ‏(F12 أو F8 أو F2 أو Esc أو Del، بحسب المصنّع)، أو اجعل جهاز USB أول جهاز إقلاع في إعدادات البرنامج الثابت. ولا حاجة إلى تغيير Secure Boot.

قائمة الإقلاع

  • Try or Install MoonLightOS

    المدخل المعتاد. يبدأ الجلسة الحية مع حركة الإقلاع.

  • Try or Install MoonLightOS (safe graphics)

    الشيء نفسه، مع تعطيل ضبط وضع العرض في النواة. استخدمه حين تبقى الشاشة سوداء أو يظهر العرض مشوّهاً.

  • MoonLightOS in RAM (needs 6 GB+)

    ينسخ النظام كاملاً إلى الذاكرة، فيمكن نزع الذاكرة بعدها.

  • Check this medium for defects

    يتحقق من كل ملف على الذاكرة مقابل البصمات المسجّلة وقت البناء.

  • Verbose boot (no splash, logs to serial)

    يعرض كل رسالة على الشاشة وعلى أول منفذ تسلسلي، وهو السبيل الوحيد لقراءة إقلاع يخفق قبل أن تتوفر الشاشة.

  • UEFI firmware settings

    يعيد التشغيل إلى إعدادات البرنامج الثابت.

لقطة شاشة من MoonLightOS
ثم تظهر حركة الإقلاع: الشعار ثابت، والهالة تنبض، وشريط التقدم يمتلئ.

الجلسة الحية

أول ما تراه معالج الإعداد الأولي: اختر لغة النظام، وأكّد تخطيط لوحة المفاتيح (اكتب في الحقل لتجربته)، واتصل بشبكة Wi-Fi، ثم إما أن تستكشف أو تثبّت. وكل ما يضبطه إعداد نظام حقيقي، ويستخدم المثبِّت الاختيارات نفسها.

لقطة شاشة من MoonLightOS

الجلسة الحية هي النظام كاملاً دون أي تعديل: سطح المكتب نفسه، والأدوات نفسها، وصفحات الإعدادات نفسها. واسم المستخدم الحي moonlight وليس له كلمة مرور. ولا يمس شيء مما تفعله هنا القرصَ حتى تشغّل المثبِّت.

للتثبيت، انقر نقراً مزدوجاً على Install MoonLightOS على سطح المكتب، أو افتح معالج الإعداد الأولي مجدداً واختر التثبيت.

التثبيت

المثبِّت هو Calamares. سبع صفحات، ثم النسخ إلى القرص.

  1. الترحيب

    لغة المثبِّت وروابط هذا الدليل.

  2. الموقع

    منطقتك ونطاقك الزمني؛ وتتبعهما المحلية وصيغ الأرقام.

  3. لوحة المفاتيح

    مضبوطة سلفاً على ما اخترته في المعالج. اكتب في الحقل للتأكد.

  4. الأقسام

    محو القرص هو الخيار الافتراضي وينشئ نظام ملفات ext4 مع ملف تبديل؛ ويتوفر أيضاً btrfs وxfs وf2fs، إضافة إلى التقسيم اليدوي. علّم خيار تعمية النظام للحصول على تعمية LUKS2 كاملة للقرص واختر عبارة مرور: ستكتبها عند كل إقلاع، ولا يمكن استعادتها إن نسيتها. وعلى حاسوب UEFI يُنشأ قسم EFI بسعة 512 ميبيبايت.

  5. المستخدمون

    اسمك، واسم الحاسوب، واسم مستخدم، وكلمة مرور من ثمانية محارف على الأقل من فئتين مختلفتين. ويدير الحساب الأول الحاسوب عبر sudo؛ ويبقى حساب الجذر مقفلاً، ولا دخول تلقائي إلا إذا فعّلته.

  6. الملخص

    كل ما يوشك المثبِّت أن يفعله، في قائمة واحدة. ولم يُكتب شيء بعد.

  7. التثبيت

    يُنسخ النظام إلى القرص، ويُثبَّت محمّل الإقلاع (باسم MoonLightOS في قائمة إقلاع البرنامج الثابت على UEFI)، وتُزال بقايا الجلسة الحية. ثم أعد التشغيل وانزع الذاكرة.

تكتشف os-prober أنظمة التشغيل الأخرى على الحاسوب عند أول تشغيل وتضيفها إلى قائمة GRUB.

أول تشغيل

يبدأ النظام المثبَّت نسخةً طبق الأصل من نسخة القرص التي يأتي منها كل تثبيت آخر. وكل ما يجب أن يكون فريداً لهذا الحاسوب يُنشأ عند أول تشغيل، قبل ظهور شاشة الدخول، بخدمة تعطّل نفسها بعدها:

  • معرّف جهاز جديد، حتى لا يستطيع أي مراقب للشبكة الربط بين تثبيتين؛
  • مفاتيح SSH جديدة، لأن مفتاحاً يتشاركه كل من نزّل نسخة القرص يجعل التحقق من الجهاز بلا معنى؛
  • قائمة GRUB، بعد أن صارت الأقراص الحقيقية وأنظمة التشغيل الأخرى عليها ظاهرة؛
  • ‏initramfs أُعيد بناؤه للعتاد الموجود فعلاً، فصار أصغر وصارت حركة الإقلاع تظهر أسرع؛
  • مخابئ الأيقونات والخطوط وسطح المكتب، حتى لا يكون أول دخول بطيئاً؛
  • الجدار الناري، مفعّلاً من جديد.

وتُكتب مخرجاتها في ‎/var/log/moonlight-firstboot.log. ثم تظهر شاشة الدخول، وبعد أول دخول نافذة الترحيب.

لقطة شاشة من MoonLightOS

الخطوات الأولى

  • اختر مظهراً

    داكن أو فاتح، مباشرةً من تطبيق مرحباً. وكل ما عدا ذلك في MoonLight Tweaks: تخطيط سطح المكتب، والخلفية، والجدول الزمني، والعناصر.

  • التعريفات

    مرحباً ← التعريفات يفتح مدير التعريفات. وعلى حاسوب بكرت NVIDIA يكون التعريف المحتكر على نسخة القرص، فيعمل دون اتصال بالإنترنت.

  • البرمجيات

    يعرض المتجر حزم snap ومستودع Ubuntu وFlathub معاً. وThunderbird وSteam وSpotify وغيرها كثير على بعد بحث واحد.

  • البصمة والوجه

    مرحباً ← بصمة الإصبع، أو إعدادات النظام ← حسابك، لتسجيل بصمة أو إعداد فتح القفل بالوجه.

  • النسخ الاحتياطي

    يأخذ Timeshift لقطات مجدولة للنظام. أعدّه قبل أن تحتاج إليه.

  • الأمان

    إعدادات النظام ← الأمان تعرض ما يحمي هذا الحاسوب وما لا يحميه، وفي كل سطر الزر الذي يصلحه.

  • حزم المطورين

    الأجهزة الافتراضية وPHP مع قواعد البيانات وLaTeX: كل منها بنقرة واحدة من تطبيق مرحباً، وتُثبَّت من المستودع المهيّأ سلفاً.

  • برامج Windows

    افتح تطبيقات Windows مرة واحدة: فهي تهيّئ Wine مع DXVK وVKD3D والخطوط وبيئات التشغيل. وبعدها تُفتح ملفات ‎.exe مباشرةً.

الأجهزة الافتراضية

VirtualBox

يحتاج VirtualBox إلى تغيير ثلاثة إعدادات عن قيمها الافتراضية، وإلا فلن يقلع هذه النسخة إطلاقاً. ويبدو الإخفاق مشكلةَ ذاكرة وليس كذلك: فـ GRUB ينتقل إلى وضع رسوميات ليرسم القائمة المزخرفة، ومع ذاكرة الفيديو الافتراضية في VirtualBox البالغة 16 ميغابايت يخفق ذلك بالرسالة «Out of memory. You need to load the kernel first.»

النوعLinux / Ubuntu (64-bit)
الذاكرة4096 ميغابايت (2048 كحد أدنى)
المعالجات2 أو أكثر
ذاكرة الفيديو128 ميغابايت، وهو الإعداد الذي يهم فعلاً
التسريع ثلاثي الأبعادمفعّل
متحكم الرسومياتVMSVGA
تفعيل EFIمعطّل: فـ BIOS يعمل جيداً، وEFI في VirtualBox ناقص
تخطي التثبيت غير المراقَبمعلَّم
القرص30 غيغابايت أو أكثر

من سطر الأوامر:

VBoxManage modifyvm "MoonLightOS" \
    --ostype Ubuntu24_LTS_64 --memory 4096 --cpus 4 \
    --vram 128 --graphicscontroller vmsvga --accelerate3d on \
    --boot1 dvd --boot2 disk

يسمّي VirtualBox الوسيط «Ubuntu» لأنه يجد عليه مجلد ‎/casper. وهذه مجرد تسمية في واجهة VirtualBox؛ أما الوسيط نفسه فيعرّف عن نفسه بأنه MoonLightOS. واضبط نوع الضيف على Ubuntu على أي حال، لأن ذلك يختار الشريحة الصحيحة والإعدادات الرسومية الصحيحة.

QEMU

‏UEFI، وهو ما تقلع به أغلب الحواسيب. أنشئ أولاً متغيرات البرنامج الثابت القابلة للكتابة وقرصاً هدفاً:

cp /usr/share/OVMF/OVMF_VARS.fd .
qemu-img create -f qcow2 disk.qcow2 30G
qemu-system-x86_64 \
  -enable-kvm -m 4096 -smp 4 \
  -machine q35 -cpu host \
  -device virtio-vga-gl -display gtk,gl=on \
  -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE.fd \
  -drive if=pflash,format=raw,file=OVMF_VARS.fd \
  -drive file=moonlightos-26.04.5-bengunur-amd64.iso,media=cdrom \
  -drive file=disk.qcow2,if=virtio

مع تفعيل Secure Boot فعلياً، باستخدام البرنامج الثابت الذي سُجّلت فيه مفاتيح Microsoft. وبعد الإقلاع يبلّغ mokutil --sb-state بأن SecureBoot enabled، وكذلك الإعدادات ← حول:

cp /usr/share/OVMF/OVMF_VARS_4M.ms.fd OVMF_VARS.fd
qemu-system-x86_64 \
  -enable-kvm -m 4096 -smp 4 -machine q35,smm=on -cpu host \
  -global driver=cfi.pflash01,property=secure,value=on \
  -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE_4M.secboot.fd \
  -drive if=pflash,format=raw,file=OVMF_VARS.fd \
  -drive file=moonlightos-26.04.5-bengunur-amd64.iso,media=cdrom

‏BIOS القديم: نسخة القرص هجينة، فالملف نفسه يقلع بالطريقة القديمة أيضاً:

qemu-system-x86_64 -enable-kvm -m 2048 -cdrom moonlightos-26.04.5-bengunur-amd64.iso

لاختبار ادّعاء 2 غيغابايت، أقلع بلا تسريع وبأدنى ذاكرة، ثم تحقق في الجلسة الحية من ظهور zram كمساحة تبديل ومن بقاء ضغط الذاكرة منخفضاً:

qemu-system-x86_64 -enable-kvm -m 2048 -smp 2 -vga std -cdrom moonlightos-26.04.5-bengunur-amd64.iso

# in the live session:
free -h                      # zram appears as swap
swapon --show                # /dev/zram0, zstd
cat /proc/pressure/memory    # "some avg10" under about 10 means it is keeping up
systemctl is-active earlyoom

أدوات الضيف لـ VirtualBox وQEMU/SPICE وVMware موجودة أصلاً على نسخة القرص، وهي ما يتيح تكيّف الشاشة مع الحجم ومشاركة الحافظة.

اختصارات لوحة المفاتيح

الجدول الكامل في صفحة المزايا. وهذه أجدرها بالتعلّم في اليوم الأول:

Superيفتح القائمة؛ وSuper+Space يفتحها والمؤشر في حقل البحث
Super+Vسجل الحافظة
Super+Nالملاحظات
Print / Shift+Printلقطة للشاشة / لمنطقة؛ وShift+Super+5 يفتح لوحة الالتقاط
Super+Left / Rightيُلصق نافذة بنصف الشاشة
Ctrl+Upكل النوافذ؛ وCtrl+Down، كل أسطح المكتب
Super+Lيقفل الشاشة؛ وCtrl+Alt+T يفتح طرفية؛ وCtrl+Shift+Esc يفتح مراقب النظام

الجدول الكامل

حل المشكلات

  • تبقى الشاشة سوداء بعد قائمة الإقلاع

    اختر مدخل الرسوميات الآمنة. فإن أقلع، ثبّت من هناك ثم فعّل التعريف المحتكر من صفحة التعريفات.

  • «Out of memory. You need to load the kernel first.»

    جهاز VirtualBox بذاكرة فيديو 16 ميغابايت. امنحه 128 ميغابايت وفعّل التسريع ثلاثي الأبعاد؛ انظر الأجهزة الافتراضية أعلاه.

  • سطح المكتب يبدو بطيئاً

    تحقق من مُصيِّر OpenGL في الإعدادات ← حول. فمع التصيير البرمجي تُعطَّل الحركات تلقائياً عند الدخول؛ وTweaks ← الأداء يعطّلها يدوياً.

  • تقلع الذاكرة ثم تخفق بطرق محيّرة

    شغّل فحص الوسيط من قائمة الإقلاع، وتحقق من بصمة SHA-256 للتنزيل.

  • لا يوجد Wi-Fi

    افتح صفحة التعريفات: تعريف Broadcom مضمَّن في نسخة القرص. أما المحوّلات الأخرى فتعرض قائمة الشبكة ما اكتشفته النواة.

  • لا يُكتشف قارئ البصمة

    افتح بصمة الإصبع. فهي تذكر مصنّع المستشعر، وتقول هل هو مستشعر أصلي أم يطابق على الشريحة أم يعتمد على ملف تنفيذي من المصنّع، وتشرح ما يمكن عمله.

  • قراءة السجلات

    ما اشتكى منه الإقلاع، وسجل مدير الدخول، وسجل أول تشغيل، واسم سمة الإقلاع النشطة:

journalctl -b -p warning          # what the boot complained about
journalctl -b -u lightdm
cat /var/log/moonlight-firstboot.log
plymouth-set-default-theme        # should print: moonlightos

لتقرير خلل، يضع «حول» ← نسخ التقرير الإصدارَ والعتاد في الحافظة، ويطبع moonlight-selftest ما يفعله سطح المكتب فعلاً.

moonlight-selftest | less

ابنه بنفسك

التوزيعة كلها مستودع واحد: الرسوم مشتقة من شعار مصدري واحد، والسمات مولّدة من لوحة ألوان واحدة، وسكربت واحد يحوّل كل ذلك إلى نسخة قرص قابلة للإقلاع تعمل مع Secure Boot. وتحتاج إلى Docker (على أي نظام تشغيل، لأن البناء يجري داخل حاوية) ونحو 25 غيغابايت من المساحة الحرة.

./build.shكل شيء: bootstrap ← التخصيص ← الضغط ← نسخة القرص
./build.sh rootfsيتوقف بعد تخصيص النظام
./build.sh imageيعيد تحزيم نظام ملفات جذر قائم في نسخة قرص جديدة
./build.sh finishمحمّلات الإقلاع ونسخة القرص فقط، مع إعادة استخدام squashfs
./build.sh shellصدفة داخل بيئة البناء
./build.sh cleanيحذف وحدة التخزين المؤقتة

تُكتب نسخة القرص في ‎out/‎، وبجانبها بصمة SHA-256. وعلى Windows، شغّله من Git Bash أو استخدم build.ps1.

كيف يُنظَّم البناء

build.shنقطة الدخول على جهازك؛ يشغّل كل شيء داخل حاوية
build/Dockerfile.builderبيئة البناء، مثبّتة على الإصدار الهدف
build/mkiso.sh‏bootstrap، واستخراج النواة، وsquashfs، ومحمّلات الإقلاع، ونسخة القرص
build/inchroot.shكل ما يجري داخل chroot، في أربع عشرة مرحلة
config/moonlight.confكل نص يعرّف الإصدار
packages/*.listما يدخل نسخة القرص وما يُزال منها
rootfs/ملفات تُنسخ كما هي إلى النظام، ومنها تطبيقات MoonLight
brand/source/الشعار المصدري والخلفيات؛ و‎brand/out/‎ مولَّد
tools/gen-branding.pyالشعار المصدري ← حركة الإقلاع وGRUB وشاشة الدخول والأيقونات
tools/gen-themes.pyلوحة ألوان واحدة ← السمتان الكاملتان
po/ترجمات تطبيقات MoonLight
installer/إعدادات Calamares وهويته البصرية

قبل إنشاء نسخة القرص، يجري البناء أكثر من 120 فحصاً إلزامياً داخل النسخة: النواة، وshim الموقّع، والسمتان، وكل أداة من MoonTools، والترميزات، وتعريفات Wi-Fi، والترجمات، والتأكد من أن فتح القفل بالوجه وكلمة مرور الطوارئ معطّلان. وإذا أخفق أي فحص توقف البناء. والمساحة المؤقتة وحدة تخزين في Docker لا bind mount، لأن ملكية الملفات والروابط الرمزية وعقد الأجهزة لا تنجو من bind mount على Windows أو macOS.

التخصيص

  • هوية الإصدار

    يحوي config/moonlight.conf كل نص يعرّف التوزيعة.

  • الرسوم

    استبدل الشعار المصدري أو خلفية، وأعد تشغيل tools/gen-branding.py، فتُولَّد من جديد حركة الإقلاع وGRUB وشاشة الدخول والأيقونات ورسوم المثبِّت كلها.

  • الألوان

    يحوي tools/gen-themes.py لوحة داكنة وأخرى فاتحة ويولّد منهما السمتين الكاملتين بالقواعد نفسها.

  • الحزم المثبّتة

    في packages/*.list، حزمة في كل سطر، تُثبَّت بترتيب أسماء الملفات؛ ويسرد 99-purge.list ما يُزال بعد ذلك.

  • افتراضيات سطح المكتب

    في rootfs/etc/dconf/db/moonlight.d/‎، بصيغة keyfile الخاصة بـ dconf. وهذه افتراضيات لا أقفال: يستطيع المستخدم تغيير أي منها.

  • إعادة بناء سريعة

    بعد تغيير في ‎rootfs/‎ أو في قوائم الحزم، يعيد build.sh rootfs مرحلة chroot على الأساس المخزَّن ويعيد build.sh image تحزيم نسخة القرص؛ أما build.sh finish فللعمل على قائمة الإقلاع.

الحصول على المساعدة والإبلاغ عن الأخطاء

التقرير المفيد يقول ما الذي توقعته، وما الذي حدث بدلاً منه، وعلى أي حاسوب حدث. وMoonLightOS يجعل الجزء الثالث سهلاً:

  • حول MoonLightOS ← نسخ التقرير يضع الإصدار والعتاد ومُصيِّر الرسوميات وحالة Secure Boot في الحافظة نصاً.
  • ‏moonlight-selftest يطبع إعدادات السمة المستخدمة، وهل حُمّلت صفحة أنماط الصدفة بشكل صحيح، وأي تعريف رسوميات نشط، وأي خدمات أخفقت.
  • ولمشكلة في الإقلاع، يكتب مدخل Verbose boot كل رسالة على الشاشة وعلى أول منفذ تسلسلي.
  • وبخصوص المثبِّت، الملف ‎/var/log/moonlight-firstboot.log على النظام المثبَّت، والأمر journalctl -b -p warning.

إلى أين ترسله

سيُعلَن هنا عن متتبع مشكلات عام وقناة دعم. وحتى ذلك الحين، احتفظ بالتقرير: فكل ما ينبغي أن يحتويه يأتي من الأداتين أعلاه.