Khỡi động windows trong grub
Grub2 là một bộ nạp khởi động mạnh mẽ và hỗ trợ khởi động hầu hết các hệ điều hành. Bài viết này sẽ hướng dẫn bạn khởi động Windows từ Grub2 bằng dòng lệnh. Mặc dù bạn có thể quét và khởi động vào hầu hết các hệ điều hành đã cài đặt trên máy tính như Windows, Linux, FreeBSD và macOS từ trình đơn Grub2 của AIO Boot. Nhưng Windows là một hệ điều hành thông dụng, AIO Boot v0.9.7.6 đã thêm một trình đơn để hỗ trợ khởi
động vào Windows nhanh hơn mà không cần phải quét các hệ điều hành khác (bấm phím Tất nhiên là chúng ta sẽ sử dụng trình đơn thay vì khởi động Windows từ Grub2 bằng lệnh. Nhưng có một vài lý do khiến bạn không thể truy cập vào trình đơn của Grub2. Mà lý do thường gặp là bạn đã vô tình xóa phân vùng đang chứa tệp tin cấu hình của Grub2. Sử dụng dòng lệnh của Grub2 là cách duy nhất trước khi bạn phải sử dụng các thiết bị cứu hộ khác. Khi
bạn xóa phân vùng chứa tệp tin cấu hình của Grub2 (grub.cfg) và các mô-đun của nó, Grub2 sẽ dừng lại ở chế độ rescue. Nếu các mô-đun của Grub2 đã được tải sẵn thì bạn vẫn còn cơ hội để khởi động vào Windows. Cụ thể là chúng ta cần tải mô-đun Đây là màn hình Grub2 dừng lại ở chế độ rescue. error: no such device: error: unknown filesystem. Entering rescue mode... grub rescue> Đầu tiên chúng ta sẽ sử dụng lệnh UEFIĐối với UEFI, tệp tin BCD sẽ nằm ở đường dẫn /EFI/Microsoft/Boot/BCD trên phân vùng EFI. Phân vùng này cũng chứa tệp tin /EFI/Microsoft/Boot/bootmgfw.efi. Sử dụng lệnh search -s root -f /EFI/Microsoft/Boot/BCD chainloader /EFI/Microsoft/Boot/bootmgfw.efi boot LegacyĐối
với Windows Vista, Windows 7 đến Windows 10, tệp tin BCD sẽ nằm ở đường dẫn /Boot/BCD. Phân vùng này cũng chứa tệp tin /bootmgr. Sử dụng lệnh search -s root -f /Boot/BCD ntldr /bootmgr boot Đối với Windows XP/2003, bạn sẽ tìm phân vùng chứa tệp tin search -s root -f /ntdetect.com drivemap -s hd0 $root ntldr /ntldr boot Bạn sẽ thấy các lỗi sau nếu các mô-đun tương ứng chưa được tải sẵn như đã nói ở trên. Unknown command 'search'. error: unknown filesystem. Unknown command 'chainloader'. Unknown command 'ntldr'. Unknown command 'drivemap'. Nếu các tệp tin không được tìm thấy trên tất cả các phân vùng, bạn sẽ thấy một trong các lỗi sau: error: no such device: /EFI/Microsoft/Boot/BCD. error: no such device: /Boot/BCD. error: no such device: /ntdetect.com. Nếu bạn cài đặt Ubuntu hoặc các hệ điều hành Linux khác song song với Windows thì Windows sẽ được tự động thêm vào trình đơn Grub2. Nếu bạn cài đặt Grub2 thủ công, bạn có thể thêm Windows vào trình đơn Grub2 thủ công. Dưới đây là kịch bản Grub2 mà tôi đã viết cho AIO Boot: menuentry "Windows" { insmod regexp set saved_root=$root for dev in (*,*); do regexp -s device '\((.*)\)' $dev if searchindevice "$device" ; then probe -s fstype -f $device if [ -z "$fstype" ] -o [ "$fstype" == "procfs" ]; then continue; fi probe -s tscheme -p $device if [ -n "$pc" ] -a [ "$tscheme" == "msdos" ]; then if test \ '(' -f ($device)/bootmgr -a -f ($device)/boot/bcd ')' \ -o \ '(' -f ($device)/bootmgr -a -f ($device)/boot/Bcd ')' \ -o \ '(' -f ($device)/bootmgr -a -f ($device)/boot/BCD ')' \ -o \ '(' -f ($device)/bootmgr -a -f ($device)/Boot/bcd ')' \ -o \ '(' -f ($device)/bootmgr -a -f ($device)/Boot/Bcd ')' \ -o \ '(' -f ($device)/bootmgr -a -f ($device)/Boot/BCD ')' \ -o \ '(' -f ($device)/bootmgr -a -f ($device)/BOOT/bcd ')' \ -o \ '(' -f ($device)/bootmgr -a -f ($device)/BOOT/Bcd ')' \ -o \ '(' -f ($device)/bootmgr -a -f ($device)/BOOT/BCD ')' \ ; then set root="$device" ntldr /bootmgr boot elif test \ '(' -f ($device)/ntldr -a -e ($device)/ntdetect.com -a -f ($device)/boot.ini ')' \ -o \ '(' -f ($device)/ntldr -a -e ($device)/ntdetect.com -a -f ($device)/BOOT.INI ')' \ -o \ '(' -f ($device)/ntldr -a -e ($device)/NTDETECT.COM -a -f ($device)/boot.ini ')' \ -o \ '(' -f ($device)/ntldr -a -e ($device)/NTDETECT.COM -a -f ($device)/BOOT.INI ')' \ -o \ '(' -f ($device)/NTLDR -a -e ($device)/ntdetect.com -a -f ($device)/boot.ini ')' \ -o \ '(' -f ($device)/NTLDR -a -e ($device)/ntdetect.com -a -f ($device)/BOOT.INI ')' \ -o \ '(' -f ($device)/NTLDR -a -e ($device)/NTDETECT.COM -a -f ($device)/boot.ini ')' \ -o \ '(' -f ($device)/NTLDR -a -e ($device)/NTDETECT.COM -a -f ($device)/BOOT.INI ')' \ ; then set root="$device" regexp -s devnum 'hd([0-9]+)' $root if test "$devnum" != "0"; then drivemap -s hd0 $root; fi ntldr /ntldr boot fi elif [ -n "$efi" ] -a [ "$fstype" == "fat" ] -a [ "$tscheme" == "gpt" ] -a [ -f ($device)/EFI/Microsoft/Boot/bootmgfw.efi ] -a [ -f ($device)/EFI/Microsoft/Boot/BCD ]; then root="$device" chainloader /EFI/Microsoft/Boot/bootmgfw.efi boot fi unset tscheme unset fstype fi done set root=$saved_root if [ "${grub_platform}" == "efi" ]; then set mode="UEFI mode"; else set mode="Legacy BIOS mode"; fi echo "Did not find the Windows operating system can be booted in ${mode}." echo echo -n "Press ESC to return to the menu " sleep -i -v 60 } Trình đơn trên sẽ tự động quét và khởi động vào hệ điều hành Windows đang cài trên máy tính. Hỗ trợ Windows Vista, Windows 7 đến Windows 10 cho cả hai chế độ UEFI và Legacy BIOS. Hỗ trợ Windows XP/2003/2000 ở chế độ Legacy. Tôi nghĩ Windows 98/ME không cần phải được thêm vào. Điều hướng bài viếtAIO Boot là phần mềm khởi động tất cả trong một cho USB và HDD. Là một trong những chương trình Multiboot tốt nhất cho Windows. |