Khởi động WinPE qua WimBoot từ Grub2 và iPXE

wimboot là một bộ nạp khởi động cho WinPE (.wim). Bạn có thể sử dụng wimboot để khởi động WinPE từ Grub2 ở chế độ Legacy và iPXE ở chế độ UEFI.

Giới thiệu

AIO Boot sử dụng wimboot để khởi động WinPE khi nó không thể trực tiếp sử dụng Windows Boot Manager. Mà thực tế wimboot sẽ khởi động Windows Boot Manager từ đĩa RAM thay vì ổ đĩa vật lý.

AIO Boot sử dụng wimboot cho các trường hợp:

Ở chế độ Legacy, chúng ta sẽ sử dụng Grub2 và ở chế độ UEFI chúng ta sẽ sử dụng iPXE. Hiện tại thì Grub2 không hỗ khởi động wimboot ở chế độ UEFI, hy vọng trong tương lai nó sẽ hỗ trợ làm điều này. Syslinux, pxelinux và Grub4dos cũng hỗ trợ wimboot nhưng tôi chưa thử.

Grub2

Đầu tiên bạn cần chép tất cả các tệp tin WinPE (.wim) vào thư mục /AIO/Files/WinPE. Đối với tệp tin ISO, bạn cần trích xuất tệp tin sources\boot.wim. Từ trình đơn chính Grub2, bấm phím t để truy cập nhanh vào trình đơn “Boot WinPE via WimBoot“.

Boot wimboot từ Grub2

Đây là kịch bản Grub2 được viết cho AIO Boot. Bạn cần phải thay đổi các đường dẫn của các tệp tin của bạn.

function wimboot {
	echo "Loading ${1}... Please wait...".
	linux16		/AIO/Tools/MS/PXE/wimboot.x64 rawbcd
	initrd16	\
		newc:bootmgr:/AIO/Tools/MS/PXE/bootmgr			\
		newc:bootmgr.exe:/AIO/Tools/MS/PXE/bootmgr.exe	\
		newc:bcd:/AIO/Tools/MS/PXE/boot/bcd				\
		newc:segmono_boot.ttf:/AIO/Tools/MS/PXE/boot/fonts/segmono_boot.ttf		\
		newc:segoe_slboot.ttf:/AIO/Tools/MS/PXE/boot/fonts/segoe_slboot.ttf		\
		newc:segoen_slboot.ttf:/AIO/Tools/MS/PXE/boot/fonts/segoen_slboot.ttf	\
		newc:wgl4_boot.ttf:/AIO/Tools/MS/PXE/boot/fonts/wgl4_boot.ttf			\
		newc:boot.sdi:/AIO/Tools/MS/boot.sdi	\
		newc:boot.wim:"${1}"
}
function ListWimBoot {
	echo "Getting the list of files in \"/AIO/Files/WinPE\". Please wait..."
	for file in /AIO/Files/WinPE/*.wim /AIO/Files/WinPE/*.WIM /AIO/Files/WinPE/*/*.wim /AIO/Files/WinPE/*/*.WIM; do
		if ! test -f "$file"; then continue; fi
		regexp -s filename "/AIO/Files/WinPE/(.*)" "$file"
		if [ -z "$havefile" ]; then set havefile="1"; fi
		menuentry "${filename}" {
			wimboot "/AIO/Files/WinPE/${1}"
		}
	done
	if [ -z "$havefile" ]; then
		echo
		echo "Please copy all your WIM files to the \"/AIO/Files/WinPE\" folder first."
		echo
		echo -n "Press ESC to continue "
		sleep -i -v 60
	else
		unset havefile
		menuentry "Return to the Main menu" {
			configfile ${prefix}/grub.cfg
		}
	fi
	unset filename
}
submenu "Boot WinPE via WimBoot" {
	if [ -n "$pc" ]; then
		ListWimBoot
	else
		chainloader /EFI/iPXE/WimBoot${_SPEC_UEFI_ARCH}.efi
	fi
}

Đây là lệnh để khởi động WinPE ở bất kỳ đường dẫn mà bạn muốn. Ví dụ tệp tin boot.wim được đặt ở thư mục gốc, bấm phím c để nhập lệnh:

wimboot "/boot.wim"

iPXE

Ở chế độ UEFI, chúng ta sẽ sử dụng iPXE thay vì Grub2. Mặc định thì AIO Boot sẽ khởi động /AIO/Files/WinPE/x64/boot.wim cho 64-bit và /AIO/Files/WinPE/x86/boot.wim cho 32-bit. AIO Boot sẽ chainload tệp tin /EFI/iPXE/WimBootx64.efi (được đối tên từ ipxe.efi) và iPXE sẽ load trình đơn tại /AIO/Tools/PXE/ipxewimboot.ipxe. Nếu bạn đã sao chép tệp tin boot.wim vào thư mục mặc định, chỉ cần chọn trình đơn WinPE & Setup từ iPXE.

Nếu bạn cần khởi động vào một tệp tin .wim khác với đường dẫn mặc định, chỉ cần thiết lập giá trị cho biến wimfile. Bấm phím s hoặc truy cập vào trình đơn Enter iPXE shell và nhập lệnh sau:

set wimfile /ADK/boot.wim
goto wimboot
exit

Khởi động WinPE qua wimboot với iPXE ở chế độ UEFI

Các lệnh trên sẽ thiết lập giá trị của biến wimfile là /ADK/boot.wim, tất nhiên là tệp tin này phải tồn tại để có thể khởi động. Không như chế độ Legacy, ở chế độ UEFI, wimboot chỉ hoạt động khi tệp tin có tên là boot.wim. Điều này có nghĩa là mỗi tệp tin boot.wim cần ở trong một thư mục riêng.

Bạn nên sử dụng AIOCreator.exe để tích hợp WinPE nếu có thể. Chúc thành công!

Share this...Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInPin on PinterestShare on RedditShare on TumblrShare on VKBuffer this pageDigg thisEmail this to someoneFlattr the authorPrint this pageShare on StumbleUponShare on Yummly