برنامج Python النصي المتوافق مع نظامي التشغيل Windows وOS X والذي يجلب Boot Camp ESD ("توزيع البرامج الإلكترونية")، من Apple أو خادم تحديث البرامج الخاص بك، لطراز معين من أجهزة Mac. يقوم بفك طبقات الأرشيف المتعددة داخل الحزمة المسطحة وإذا تم تشغيل البرنامج النصي على Windows باستخدام خيار --install
، فإنه يقوم أيضًا بتشغيل مثبت MSI 64 بت.
على نظام التشغيل Windows، يتم فك ضغط الأرشيفات باستخدام 7-Zip، ويتم تنزيل 7-Zip MSI وتثبيته، وإزالته لاحقًا إذا قام Brigadier بتثبيته. تُستخدم هذه الأداة لاستخدام dmg2img لاستخراج الملفات من ملف WindowsSupport.dmg
الخاص بشركة Apple، ولكن الإصدارات الأحدث من 7-Zip تتضمن دعمًا أكثر اكتمالاً لـ DMGs، لذا يبدو أنه لم تعد هناك حاجة إلى dmg2img.
وقد كتب هذا لسببين:
تم تصميمه في الأصل ليتم تشغيله كخطوة ما بعد التصوير لعمليات نشر Boot Camp على أجهزة Mac، ولكن نظرًا لأنه يتطلب اتصالاً بالشبكة، يجب أن يكون برنامج تشغيل الشبكة متاحًا بالفعل على النظام. (انظر التحذيرات أدناه)
لقد حقق Brigadier نتائج أقل من رائعة مع بعض مجموعات حزم برامج التشغيل ونماذج الأجهزة في الإصدارات الأخيرة من Boot Camp 5، والآن مع Boot Camp 6. وقد أكد بعض الأشخاص وجود مشكلات في Boot Camp 6 وWindows 7 بشكل عام، لذا فإن هذه قد لا يكون خطأ العميد بالكامل. يشير لي بعض الفحص لـ Boot Camp setup.exe
إلى أن هذا الملف القابل للتنفيذ يؤدي العديد من المهام ويهيئ بيئة معينة للتنفيذ النهائي لـ BootCamp.msi
، وهو ما لا نتمكن دائمًا من الحصول عليه من خلال استدعاء Brigadier البسيط لـ msiexec
لتثبيت الملف. إم إس آي مباشرة.
أنا بعيد عن المعرفة الكافية بالأجزاء الداخلية لنظام Windows لفهم كيفية تنفيذ إصدار مؤتمت بالكامل لأي شيء يفعله setup.exe بالفعل (إلى جانب تشغيل msiexec /i /qr
في النهاية على MSI). على سبيل المثال، تشير هذه العلاقات العامة إلى أنه يمكن تحقيق نتائج أفضل باستخدام خيارات "هادئة" مختلفة لـ msiexec
، لكن تفكيك ملف setup.exe
يوضح أنه ينفذ فعليًا /qr
، كما هو الحال مع التعليمات البرمجية الموجودة في الفرع الرئيسي الحالي. هذا النوع من الأسئلة هو أحد الأسئلة التي لا أشعر أن لدي المعرفة الكافية لمحاولة الإجابة عليها.
كانت هناك مشكلات غريبة واجهتها منذ عامين أيضًا. على سبيل المثال، مثبت برنامج تشغيل واحد (متعلق بمجموعة شرائح Intel) ينبثق سلسلة من أخطاء WinRAR SFX بسبب محاولته تنفيذ جميع ملفات الترجمة الخاصة ببرنامج التشغيل بشكل تسلسلي (والتي ليست حتى قابلة للتنفيذ). يؤدي النقر فوق مربعات الحوار هذه في النهاية إلى استمرار التثبيت، ولكن حتى يحدث ذلك، يتم حظر العملية. لا يحدث هذا الخطأ عندما يقوم المستخدم بتشغيل setup.exe
يدويًا، ولكن لماذا لا أفهم.
على الرغم من أنني أحتفظ ببعض الأمل في أن أتمكن من حل هذه المشكلات، إلا أن حالة استخدام معمل التشغيل المزدوج في بيئتي تتقلص ولذلك يصعب تبرير الوقت اللازم لقضاء المزيد من البحث في هذه المشكلات. إذا كان أي شخص على دراية بعكس setup.exe
- مثل أغلفة التثبيت ومثبتات MSI وإدارة أنظمة Windows بشكل عام، مهتمًا بمعالجة الدعم المعطل حاليًا إلى حد ما للتثبيتات الصامتة لبرامج تشغيل Boot Camp في هذه الأداة، فأنا أحب بعض المساعدة! هناك العديد من خصائص المثبت في BootCamp.msi
والتي قد تكون مفيدة في حل هذه المشكلة أيضًا.
قم بتشغيل العميد بدون خيارات لتنزيل وتفريغ ESD الذي ينطبق على هذا النموذج، إلى دليل العمل الحالي. في نظام التشغيل OS X، يتم الاحتفاظ بملف ESD بتنسيق .dmg لسهولة النسخ على القرص؛ في نظام التشغيل Windows، يتم استخراج ملفات برنامج التشغيل.
قم بتشغيله باستخدام خيار --model
لتحديد نموذج بديل، على شكل MacPro3,1
وما إلى ذلك.
قم بتشغيله باستخدام خيار --install
للتنزيل والتثبيت، وحذف برامج التشغيل بعد التثبيت. ومن الواضح أن هذا يعمل فقط على نظام التشغيل Windows. تم إنشاء هذا الخيار لإجراء عمليات التثبيت التلقائية لبرامج تشغيل Boot Camp.
ضع ملف brigadier.plist
في نفس المجلد مثل البرنامج النصي لتجاوز عنوان URL الخاص بـ .sucatalog للإشارة إلى كتالوج Software Update Server الداخلي (التفاصيل أدناه).
الخيارات الإضافية الموضحة أدناه.
يمكنك العثور على ملف ثنائي تم تجميعه مسبقًا لنظام التشغيل Windows في منطقة الإصدارات. يمكن أن يكون هذا مفيدًا إذا لم تكن لغة Python مثبتة على نظام التشغيل Windows بالفعل. تم إنشاء هذا باستخدام PyInstaller. مزيد من التفاصيل حول بنائها بنفسك أدناه.
ويمكن أيضًا تشغيله مباشرة من خلال Git checkout على نظام التشغيل OS X أو Windows.
إلى جانب بعض خيارات سطر الأوامر:
Usage: brigadier [options]
Options:
-h, --help show this help message and exit
-m MODEL, --model=MODEL
System model identifier to use (otherwise this
machine's model is used).
-i, --install After the installer is downloaded, perform the install
automatically. Can be used on Windows only.
-o OUTPUT_DIR, --output-dir=OUTPUT_DIR
Base path where the installer files will be extracted
into a folder named after the product, ie.
'BootCamp-041-1234'. Uses the current directory if
this option is omitted.
-k, --keep-files Keep the files that were downloaded/extracted. Useful
only with the '--install' option on Windows.
يمكنك أيضًا إنشاء ملف plist brigadier.plist
XML ووضعه في نفس الدليل مثل البرنامج النصي. وهو يدعم حاليًا مفتاحًا واحدًا: CatalogURL
، وهو عبارة عن سلسلة تشير إلى عنوان URL الداخلي لكتالوج SUS الذي يحتوي على حزم BootCampESD. انظر المثال في هذا الريبو.
من الشائع تنفيذ برامج تشغيل Boot Camp أثناء مرحلة Sysprep بعد التصوير، بحيث يكون من الممكن نشر نفس الصورة على نماذج مختلفة دون مراعاة النموذج وحزمة Boot Camp المطلوبة. يبدو أن العميد يتصرف في سياق SysPrep FirstLogonCommand.
يوجد حل واحد يتم تنفيذه بواسطة البرنامج النصي عند التشغيل في هذا السيناريو، حيث يكون العمل الحالي عادةً windowssystem32
. في اختباراتي على نظام 64 بت، سيتوقف MSI عن محاولة تحديد موقع مكونات التثبيت الخاصة به، نظرًا للطريقة التي يقوم بها Windows بتقسيم مجلد System32
الخاص به إلى SysWoW64
لتطبيقات 32 بت. عندما يكتشف البرنامج النصي دليل العمل هذا دون تجاوز خيار --output-dir
، فإنه سيقوم بتعيين دليل الإخراج إلى جذر النظام، أي. %SystemRoot%
.
افتراضيًا، عند استخدام --install
، فإنه سيقوم بتنظيف ملفاته المستخرجة بعد التثبيت، ما لم يتم تحديد خيار --keep-files
، لذلك ما لم تكن تريد الاحتفاظ بالملفات الموجودة حولك فلن تحتاج إلى التنظيف بعد ذلك. .
إذا كنت تفضل تشغيله كبرنامج نصي قياسي لـ Python، فستحتاج إلى Python لنظام التشغيل Windows (تم اختبار هذا مع الإصدار 2.7 الأحدث) من أجل تنفيذ البرنامج النصي.
إذا كنت تفضل إنشاء البرنامج بنفسك، فيمكنك استخدام برنامج البناء النصي المضمن. يتطلب الأمر Python والإصدار المطابق من pywin32. يتولى تنزيل PyInstaller نيابةً عنك. ما عليك سوى تشغيله بدون وسيطات، وسيقوم بإنشاء ملف مضغوط في دليل العمل الحالي:
c:python27python build_windows_exe.py
في نظام التشغيل OS X، لدينا الأمران الأصليان hdiutil وpkgutil للقيام بعمل تفريغ ملفات برنامج التشغيل. على نظام التشغيل Windows، نقوم بما يلي:
WindowsSupport.dmg
داخل ملف pkgC:WindowsINF
على صورة تم إعدادها بالنظام. هذا المجلد هو موقع البحث الافتراضي عن برامج تشغيل الأجهزة، ويجب أن يقوم تلقائيًا باكتشاف وتثبيت برامج التشغيل الموجودة هنا لجميع الأجهزة غير المعروفة. يمكنك أيضًا تعديل مفتاح تسجيل DevicePath
لإضافة موقع مخصص، ولكن استخدام مجلد INF
الموجود يعني عدم الحاجة إلى تغييرات أخرى إلى جانب نسخة الملف لتحديث برامج تشغيل الصورة الموجودة، لذلك يمكن القيام بذلك دون استعادة الصورة فعليًا وتشغيلها فقط لتثبيت برنامج التشغيل. تعد خدمة برامج التشغيل دون اتصال باستخدام Windows وDISM أمرًا سهلاً بالنسبة لصور WIM، ولكن من المحتمل ألا يقوم معظم المسؤولين بنشر صور WIM على أجهزة Mac، بل يستخدمون الأدوات التي تحتوي على ntfsprogs.brigadier.plist
تجاوز عناوين URL هذه بنسخك الخاصة المخزنة على خادم ويب خاص.FirstTimeRun
على HKEY_CURRENT_USERSoftwareApple Inc.Apple Keyboard Support
لتعطيل نافذة تعليمات Boot Camp المنبثقة عند التشغيل الأول، ولا يوجد حاليًا خيار لتعطيل هذا السلوك.