Thay đổi đường dẫn BCD ở chế độ Legacy và UEFI

Có một người dùng đã hỏi tôi làm thế nào để thay đổi đường dẫn BCD. Trong bài viết này tôi sẽ hướng dẫn bạn làm điều đó trên cả hai chế độ Legacy và UEFI.

Các tệp Dữ liệu Cấu hình Khởi động (BCD) cung cấp một cửa hàng được sử dụng để mô tả các ứng dụng khởi động và các cài đặt ứng dụng khởi động. Các đối tượng và các yếu tố trong cửa hàng có hiệu quả thay thế Boot.ini. Xem thêm về BCD.

Legacy

Đường dẫn mặc định của tệp tin BCD ở chế độ Legacy BIOS là /boot/bcd. AIO Boot sử dụng đường dẫn BCD ở chế độ Legacy là /AIO/Menu/WinLegacy. Mục đích mà tôi làm điều đó là để loại bỏ thư mục /boot và sử dụng thư mục /AIO để thay thế.

Ở chế độ Legacy, chúng ta cần phải sửa đổi tệp tin bootmgr để thay đổi đường dẫn BCD. Cách đơn giản nhất là chúng ta sử dụng phần mềm BMplus để tạo ra các tệp tin bootmgrbootmgr.exe. Với phần mềm này, bạn còn có thể thay đổi đường dẫn cho boot.ini và thư mục phông chữ. Nó cũng hỗ trợ một danh sách các giao diện và tất nhiên bạn cũng có thể chỉnh sửa các giao diện này.

BMplus - thay đổi đường dẫn BCD cho bootmgr

Sau khi thiết lập các đường dẫn và các tùy chọn, bấm nút Make BOOTMGR để tạo ra tệp tin bootmgr. Tệp tin này nằm trong thư mục BM.Builds. Bạn chỉ cần tệp tin bootmgr70, bootmgr81 hoặc bootmgr10.

UEFI

Ở chế độ UEFI, đường dẫn mặc định của BCD là /EFI/Microsoft/Boot/BCD. Tôi sử dụng tên là BCD cho 64-bit và B86 cho 32-bit, điều này giúp tôi có hai tệp tin trình đơn riêng biệt. Ở chế độ này, Windows phiên bản 32-bit không thể khởi động trên UEFI 64-bit và Windows phiên bản 64-bit không thể khởi động trên UEFI 32-bit. Tôi sử dụng hai tệp BCD riêng biệt để chắc chắn tất cả các trình đơn đều hoạt động.

Chúng ta sẽ chỉnh sửa tệp tin bootx64.efi cho 64-bit và bootia32.efi cho 32-bit. Lưu ý: Secure Boot sẽ không hoạt động với những tệp tin đã chỉnh sửa. Tôi sẽ sử dụng HxD để chỉnh sửa mã Hex của các tệp tin này. Bạn có thể sử dụng bất cứ trình chỉnh sửa Hex mà bạn muốn. Mở bootx64.efi bằng HxD, bấm Ctrl + F để mở hộp tìm và nhập như sau:

Thay đổi đường dẫn BCD cho bootx64.efi

  • Search for42 00 43 00 44
  • Datatype: Hex-values

Tôi tìm ra được kết quả như sau:

Thay đổi đường dẫn BCD cho bootia32.efi

Ok bây giờ tôi sẽ sửa tên tệp tin BCD thành một tên khác. Mỗi ký tự sẽ được cách nhau một ký tự rỗng (mã Hex là 00). Chúng ta phải chừa lại ít nhất 3 ký tự rỗng cuối cùng. Độ dài tối đa của bootx64.efi là 6 ký tự, bootia32.efi là 4 ký tự.

Ví dụ tôi muốn thay đổi tên BCD thành BCDx64, tôi sẽ sửa lại như sau:

5C 00 42 00 43 00 44 00 78 00 36 00 34

chỉnh sửa bootmgr

Bước cuối cùng là lưu tệp tin này lại và thử nghiệm. Đừng quên đổi tên tệp tin BCD của bạn. Lặp lại các bước trên để đổi đường dẫn BCD cho tệp tin bootia32.efi.

Grub2

Để khởi động các tệp tin trên từ Grub2, thêm trình đơn sau vào tệp tin cấu hình của Grub2:

menuentry "WinPE & Setup" {
	if [ "${grub_platform}" == "efi" ]; then
		if [ "${grub_cpu}" == "x86_64" ]; then
			chainloader /bootx64.efi
		else
			chainloader /bootia32.efi
		fi
	else
		ntldr /bootmgr
	fi
}

Tệp tin trình đơn của AIO Boot là /AIO/Menu/Main.cfg. Bạn cần thay đổi đường dẫn và tên của các tệp tin.

Grub4dos chỉ hỗ trợ chế độ Legacy:

title WinPE & Setup
chainloader /bootmgr
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