ใช้เครื่อง Linux เพื่อติดตั้ง Windows 10 หรือ Windows 11 บนการ์ด Raspberry Pi SD
ในปี 2020 สิ่งนี้เป็นไปไม่ได้เลย
ในปี 2021 สิ่งนี้จำเป็นต้องปฏิบัติตามบทแนะนำที่ซับซ้อน
ตอนนี้การใช้ WoR-flasher ใหม่เป็น เรื่องง่าย
วิธีที่เร็วที่สุดในการทำให้ WoR-flasher ทำงานบน RPi คือการใช้ Pi-Apps app store สำหรับ Raspberry Pi:
การติดตั้ง WoR-flasher จาก Pi-Apps มีข้อดีหลายประการ: สร้างปุ่มที่สะดวกในเมนู Start การถอนการติดตั้งทำได้เพียงคลิกเดียว และการอัปเดตได้รับการจัดการได้อย่างราบรื่น
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
ได้รับการออกแบบเพื่อใช้ภายในสคริปต์ทุบตีอื่นๆ ที่ใหญ่กว่า สำหรับระบบอัตโนมัติและการปรับแต่ง install-wor.sh
จะตรวจจับและปฏิบัติตามตัวแปรสภาพแวดล้อมบางอย่าง:
DL_DIR
: ตั้งค่าตัวแปรนี้เพื่อเปลี่ยนตำแหน่งการดาวน์โหลดเริ่มต้น ตามค่าเริ่มต้น ~/wor-flasher-files
BID
: ตั้งค่าตัวแปรนี้เพื่อเลือก ID เวอร์ชัน 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
" หากอุปกรณ์มีขนาดใหญ่กว่า 25GB และคุณต้องการติดตั้ง 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
ได้รับการออกแบบเพื่อใช้ภายในสคริปต์ทุบตีอื่นๆ ที่ใหญ่กว่า เพื่อการบูรณาการที่ดีขึ้น install-wor.sh
มีฟังก์ชันที่มีประโยชน์มากมายที่สคริปต์ส่วนหน้า เช่น install-wor-gui.sh
สามารถใช้ได้
ในการจัดหาสคริปต์ เพื่อให้มีฟังก์ชันต่างๆ ให้ใช้งานได้:
source ~/wor-flasher/install-wor.sh source
คำถาม: ทำไมคำสั่งนั้นจึงพูดว่า " source
" สองครั้ง คำตอบ: " source
" อันแรกคือคำสั่ง และ " source
" ตัวที่สองคือแฟล็กบรรทัดคำสั่งที่ส่งไปยังสคริปต์เพื่อแจ้งให้ทราบว่าคุณกำลังจัดหามัน เมื่อสคริปต์ได้รับแหล่งที่มาแล้ว คำสั่งใหม่เหล่านี้ (หรือที่เรียกว่าฟังก์ชัน) จะพร้อมใช้งาน:
error
- ฟังก์ชันง่ายๆ ที่ Botspot ใช้ในสคริปต์ทุบตีเพื่อเตือนผู้ใช้ว่ามีบางอย่างล้มเหลว และเพื่อออกจากสคริปต์ด้วยรหัสความล้มเหลว (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
- กำหนดว่าสามารถติดตั้งแพ็คเกจจากที่เก็บ apt ได้หรือไม่ อินพุต: ชื่อหนึ่งของแพ็คเกจ การใช้งาน: 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 build ID ล่าสุดสำหรับ 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
และเพิ่มการตั้งค่าโอเวอร์คล็อก คุณสามารถคัดลอกและวางโค้ดลงในเทอร์มินัล หรือบันทึกเป็นเชลล์สคริปต์ได้
# 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