استخدم جهاز Linux لتثبيت Windows 10 أو Windows 11 على بطاقة Raspberry Pi SD.
وفي عام 2020، كان هذا مستحيلًا تمامًا.
في عام 2021، يتطلب ذلك اتباع برنامج تعليمي معقد.
الآن، باستخدام WoR-flasher الجديد، أصبح الأمر سهلاً للغاية .
أسرع طريقة لتشغيل WoR-flasher على RPi هي استخدام متجر تطبيقات Pi-Apps لـ Raspberry Pi:
يتمتع تثبيت WoR-flasher من Pi-Apps بالعديد من المزايا: فهو ينشئ زرًا مناسبًا في قائمة "ابدأ"، وتتم عملية إلغاء التثبيت بنقرة واحدة، ويتم التعامل مع التحديثات بسلاسة.
git clone https://github.com/Botspot/wor-flasher
سيؤدي هذا إلى تنزيل البرامج النصية إلى دليل جديد يسمى wor-flasher
.
التبعيات: لا حاجة لتثبيت الحزم يدويًا. سيؤدي تشغيل البرنامج النصي إلى تثبيت ما يلي تلقائيًا: yad
aria2
cabextract
wimtools
chntpw
genisoimage
exfat-fuse
exfat-utils
wget
~/wor-flasher/install-wor-gui.sh
install-wor.sh
: ~/wor-flasher/install-wor.sh
$ ~/wor-flasher/install-wor.sh
Choose Windows version:
1) Windows 11
2) Windows 10
3) Custom...
Enter 1, 2 or 3: 1
Choose language: en-us
Choose Raspberry Pi model to deploy Windows on:
1) Raspberry Pi 4 / 400
2) Raspberry Pi 2 rev 1.2 / 3 / CM3
Enter 1 or 2: 1
Available devices:
/dev/sdb - 59.5GB - USB Storage
Choose a device to flash the Windows setup files to: /dev/sdb
1) Create an installation drive (minimum 25 GB) capable of installing Windows to itself
2) Create a recovery drive (minimum 7 GB) to install Windows on other >16 GB drives
Choose the installation mode (1 or 2): 1
Input configuration:
DL_DIR: /home/pi/wor-flasher-files
RUN_MODE: cli
RPI_MODEL: 4
DEVICE: /dev/sdb
CAN_INSTALL_ON_SAME_DRIVE: 1
UUID: 6f7de912-4143-431b-b605-924c22ab9b1f
WIN_LANG: en-us
Formatting /dev/sdb
Generating partitions
Generating filesystems
# script output continues... It generates a Windows image legally, downloads all necessary drivers, the BIOS, the bootloader, and the modified kernel. Once done it ejects the drive.
تم تصميم البرنامج النصي install-wor.sh
ليتم استخدامه ضمن نصوص bash النصية الأكبر حجمًا. بالنسبة للأتمتة والتخصيص، سيقوم install-wor.sh
باكتشاف بعض متغيرات البيئة والالتزام بها:
DL_DIR
: قم بتعيين هذا المتغير لتغيير موقع التنزيل الافتراضي. بشكل افتراضي، يكون ~/wor-flasher-files
.BID
: قم بتعيين هذا المتغير لاختيار معرف إصدار Windows الدقيق. قيمة المثال: " 22631.2861
". عند تعيين هذا المتغير، لن يسأل install-wor.sh
المستخدم عن إصدار Windows الذي يجب استخدامه.WIN_LANG
: قم بتعيين هذا المتغير لاختيار لغة لصورة Windows. قيمة المثال: " en-us
". عند تعيين هذا المتغير، لن يسأل install-wor.sh
المستخدم عن اللغة التي سيستخدمها.RPI_MODEL
: اضبط هذا المتغير لاختيار طراز Raspberry Pi. القيم المسموح بها: " 3
"، " 4
". عند تعيين هذا المتغير، لن يسأل install-wor.sh
المستخدم عن طراز Raspberry Pi الذي يجب استخدامه.DEVICE
: اضبط هذا المتغير على الجهاز الذي تريد وميضه. قيمة المثال: " /dev/sda
". عند تعيين هذا المتغير، لن يسأل install-wor.sh
المستخدم عن الجهاز الذي سيستخدمه.CAN_INSTALL_ON_SAME_DRIVE
: اضبط هذا المتغير على " 1
" إذا كان حجم الجهاز أكبر من 25 جيجابايت وترغب في تثبيت Windows على نفسه. بخلاف ذلك، اضبطه على " 0
".CONFIG_TXT
: قم بتعيين هذا المتغير لتخصيص /boot/config.txt
لمحرك الأقراص الناتج. يُستخدم هذا عادةً لرفع تردد التشغيل أو لتغيير إعدادات HDMI. هذه هي القيمة الافتراضية.RUN_MODE
: اضبط هذا على " gui
" إذا كنت تريد أن يعرض install-wor.sh
رسائل خطأ رسومية.DRY_RUN
: اضبط هذا المتغير على " 1
" لمتابعة عملية الإعداد كالمعتاد، ولكن للخروج بعد تنزيل كل شيء. هذا يمنع وميض الجهاز.مثال على الاستخدام:
DL_DIR=/media/pi/my-big-flash-drive DEVICE=/dev/sdg DRY_RUN=1 UUID=db8ec987-d136-4421-afb8-2ef109396b00 RPI_MODEL=4 WIN_LANG=en-us ~/wor-flasher/install-wor-gui.sh
تم تصميم البرنامج النصي install-wor.sh
ليتم استخدامه ضمن نصوص bash النصية الأكبر حجمًا. لتحسين التكامل، تم تجهيز install-wor.sh
بمجموعة متنوعة من الوظائف المفيدة التي يمكن أن تستخدمها البرامج النصية للواجهة الأمامية مثل install-wor-gui.sh
.
لمصدر البرنامج النصي بحيث تكون الوظائف متاحة:
source ~/wor-flasher/install-wor.sh source
سؤال: لماذا يقول هذا الأمر " source
" مرتين؟ الإجابة: " source
" الأول هو أمر، و" source
" الثاني هو إشارة سطر أوامر يتم تمريرها إلى البرنامج النصي لإعلامه بأنك مصدره. بمجرد الحصول على مصدر البرنامج النصي، تصبح هذه الأوامر الجديدة (المعروفة أيضًا بالوظائف) متاحة:
error
- وظيفة بسيطة يستخدمها Botspot في البرامج النصية bash لتحذير المستخدم من فشل شيء ما وللخروج من البرنامج النصي برمز فشل. (1) command-that-downloads-windows || error "Windows failed to download! Check your internet connection and try again."
echo_white
- واجهة أمامية بسيطة لأمر echo
تعرض رسالتك المطلوبة كنص أبيض بدلاً من اللون الرمادي الفاتح المعتاد. echo_white "Now, downloading windows... please wait"
package_available
- يحدد ما إذا كان من الممكن تثبيت الحزمة من المستودعات المناسبة الإدخال: اسم واحد للحزمة الاستخدام: if package_available yad ;then
echo "yad can be installed"
fi
install_packages
- التحقق من قائمة الحزم المقتبسة وتثبيتها. install_packages 'yad aria2 cabextract wimtools chntpw genisoimage exfat-fuse exfat-utils wget'
download_from_gdrive
- تنزيل ملف كبير مشترك بشكل عام من Google Drive. إليك البرنامج التعليمي الذي قمت بتكييفه منه. download_from_gdrive 1WHyHFYjM4WPAAGH2PICGEhT4R5TlxlJC WoR-PE_Package.zip
get_partition
- طريقة نظيفة وموثوقة لتحديد جهاز كتلة القسم. get_partition /dev/sda 2
#Assuming partition 2 exists, the above command returns "/dev/sda2"
get_partition /dev/mmcblk0 2
#Assuming partition 2 exists, the above command returns "/dev/mmcblk0p2"
get_partition /dev/mmcblk0 all
#Returns every partition within the drive, each one on a line
get_name
- تحديد اسم يمكن قراءته بواسطة الإنسان لمحرك التخزين المحدد. get_name /dev/sda
get_size_raw
- يحدد حجم محرك الأقراص بالبايت. get_size_raw /dev/sda
list_devs
- يسرد محركات التخزين المتاحة بتنسيق ملون يمكن قراءته بواسطة الإنسان. list_devs
get_bid
- احصل على أحدث معرف إصدار Windows لنظام التشغيل Windows 10 أو Windows 1110
" أو " 11
" get_bid 11
get_space_free
- احصل على مساحة القرص المتوفرة للمجلد get_space_free ~/wor-flasher-files
get_os_name
- احصل على اسم نظام التشغيل الذي يمكن قراءته بواسطة الإنسان. get_os_name 22631.2861
سيؤدي هذا الرمز إلى تحويل نظام التشغيل Windows 11 بشكل غير تفاعلي إلى /dev/sda
وإضافة إعدادات رفع تردد التشغيل. يمكنك نسخ الكود ولصقه في الوحدة الطرفية، أو حفظه كبرنامج نصي لـ Shell.
# make all variables we set to be visible to the script (only necessary if you run this in a terminal)
set -a
# First, source the script so its functions are available
source ~ /wor-flasher/install-wor.sh source
# Determine the latest Windows 11 update ID using a function
BID= " $( get_bid 11 ) "
# set destination RPi model
RPI_MODEL=4
# choose language
WIN_LANG=en-us
# set the device to flash
DEVICE=/dev/sda
# set a custom config.txt
CONFIG_TXT= " over_voltage=6
arm_freq=2147
gpu_freq=750
# don't change anything below this point #
arm_64bit=1
enable_uart=1
uart_2ndstage=1
enable_gic=1
armstub=RPI_EFI.fd
disable_commandline_tags=1
disable_overscan=1
device_tree_address=0x1f0000
device_tree_end=0x200000
dtoverlay=miniuart-bt "
# indicate that drive is large enough to install Windows to itself
CAN_INSTALL_ON_SAME_DRIVE=1
~ /wor-flasher/install-wor.sh