Làm thế nào để khôi phục phân vùng khởi động EFI lỗi trong Windows 7, 8, 10?

0
1390
Làm thế nào để khôi phục phân vùng khởi động EFI lỗi trong Windows 7, 8, 10?
Làm thế nào để khôi phục phân vùng khởi động EFI lỗi trong Windows 7, 8, 10?

Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách khôi phục thủ công phân vùng khởi động Windows EFI vô tình bị xóa hoặc bị lỗi trên máy tính chuẩn UEFI. Tạo lại phân vùng EFI và MSR hệ thống theo cách thủ công trong Windows, giúp bạn khởi động lại hệ điều hành Windows mà không cần phải cài đặt lại. Hướng dẫn này phù hợp với các phiên bản Windows 7 đến Windows 10.

Giả sử phân vùng khởi động EFI trên máy tính UEFI (không phải BIOS) của bạn đã vô tình bị xóa hoặc bị định dạng lại ổ cứng. Kết quả là Windows 10 / 8.1 / 7 không khởi động được và thường xuất hiện lỗi như sau:

Reboot and select proper boot device or insert boot media in selected boot device and press a key.

Hãy tìm hiểu xem liệu có thể khởi động Windows không sau khi xóa phân vùng EFI (với Boot Manager và BCD ) mà không cần cài đặt lại Hệ điều hành hay không?

Cảnh báo: Hướng dẫn này ảnh hưởng đến phân vùng ổ cứng và không khuyến nghị cho người mới bắt đầu. Bởi vì nó có thể mất hết dữ liệu trên ổ cứng của mình. An toàn nhất là bạn nên copy nó qua chỗ khác như USB, CD… để đảm bảo dữ liệu của bạn được đảm bảo.

Cấu trúc phân vùng đĩa cứng GPT trong Windows

Hãy xem xét bảng phân vùng mặc định của ổ cứng có thể khởi động với partition GUID (GPT) trên máy tính UEFI sẽ trông như thế nào. Bạn phải có ít nhất các phân vùng sau:

Phân vùng EFI
Phân vùng EFI
  • Phân vùng hệ thống EFI (ESP – System Partition) – 100 MB (Partition – EFI);
  • Phân vùng dành riêng Microsoft Reserved – 128 MB (MSR);
  • Phân vùng Windows chính chứa hệ điều hành Windows (Primary Windows partition).

Đây là cấu hình tối thiểu. Các phân vùng này được tạo bởi Windows Installer khi bạn thực hiện cài đặt hệ điều hành trên ổ đĩa mới (chưa từng định dạng (format)). Các nhà sản xuất hoặc người dùng máy tính có thể tự tạo phân vùng riêng. Ví dụ: Phân vùng Windows Recovery Environment (Windows RE) trong file winre.wim. Đây là một phân vùng chứa bản sao lưu hình ảnh hệ thống do OEM cung cấp (phân vùng cho phép bạn có thể khôi phục trạng thái ban đầu của nhà sản xuất), phân vùng người dùng, v.v.

Phân vùng EFI (EFI partition) với hệ thống file kiểu FAT32 là phân vùng bắt buộc trên đĩa GPT của máy tính chuẩn UEFI và có GUID c12a7328-f81f-11d2-ba4b-00a0c93ec93b. Kích thước mặc định của phân vùng EFI là 100MB (trên các định dạng đĩa nâng cao với 4KB sectors, kích thước của phân vùng EFI là 260MB).

Phân vùng MSR (Microsoft System Reserved) trên đĩa GPT được sử dụng để đơn giản hóa việc quản lý phân vùng và được sử dụng cho các hoạt động dịch vụ (ví dụ: khi chuyển đổi đĩa từ cơ bản sang động (basic to dynamic)). Đây là phân vùng sao lưu có GUID label e3c9e316-0b5c-4db8-817d-f92df00215ae.

Phân vùng MSR không nhận được ký tự ổ cứng và không thể lưu trữ dữ liệu người dùng. Trong Windows 10, kích thước của phân vùng MSR chỉ là 16 MB (trong Windows 8.1 kích thước của phân vùng MSR là 128 MB), hệ thống file là NTFS. Phân vùng MSR phải nằm giữa phân vùng EFI (ESP) và phân vùng hệ điều hành primary Windows.

Phân vùng chính (main partition) cài đặt Windows, chương trình và dữ liệu người dùng. Và có thể add thêm các phân vùng dữ liệu bổ sung.

Thủ thuật: Để cài đặt Windows trên máy tính UEFI, bạn sẽ cần một đĩa DVD chưa hệ điều hành hoặc USB có khả năng khởi động được. Nên cài đặt máy tính chuẩn UEFI với hệ điều hành Windows 10 trở lên (hoặc với Windows Server).

Thông báo lỗi khi máy bị thiếu phân vùng EFI

Phân vùng EFI (tương tự như System Reserved partition trên ổ đĩa sử dụng phân vùng MBR). Lưu trữ kho cấu hình khởi động (BCD) và một số file cần thiết để khởi động Windows. Khi máy tính khởi động, UEFI sẽ tải bộ nạp khởi động (bootloader) (EFI\Microsoft\Boot\bootmgfw.efi) từ phân vùng EFI (ESP) và chuyển quyền điều khiển đến nó. File thực thi bootmgfw.efi khởi chạy Windows Boot Manager, tải dữ liệu cấu hình từ BCD. Khi BCD được tải, Windows bắt đầu khởi động thông qua file winload.efi.

Nếu phân vùng EFI bị xóa hoặc bị hỏng, bạn sẽ không thể khởi động Windows từ ổ đĩa đó. Xuất hiện lỗi UEFI: could not locate \efi\boot\bootx64.efi – not found hoặc một UEFI Shell (dấu nhắc lệnh) trống nhắc bạn chỉ định thiết bị khởi động.

Ngoài ra, bạn sẽ không thể khởi động Windows nếu phân vùng EFI được format kiểu NTFS. Ngay cả khi thực hiện cài đặt mới Windows, bạn sẽ nhận được lỗi:

Windows detected that the EFI system partition was formatted as NTFS. Format the EFI system partition as FAT32, and restart the installation.

Làm cách nào để tạo phân vùng EFI và MSR theo cách thủ công trên GPT Drive?

Đầu tiên bạn cần có đĩa CD (usb) cài đặt Windows 10 (Windows 7, 8 cũng được) hoặc bất kỳ đĩa (usb) khởi động nào cũng được… Khởi động từ đĩa CD hoặc USB vào phần cài đặt. Nhấn tổ hợp phím Shift + F10 (ở đây chúng tôi sử dụng đĩa khởi động là Windows 7, tất nhiên đĩa cài đặt Windows 10 thì quá tốt). Cửa sổ dấu nhắc lệnh hiện ra

Cửa sổ dấu nhắc lệnh Dos
Cửa sổ dấu nhắc lệnh Dos

Đánh câu lệnh sau để Chạy công cụ quản lý đĩa và phân vùng (partion): Diskpart

Câu lệnh này để iệt kê các đĩa cứng được kết nối với máy tính của bạn (trong ví dụ của chúng tôi, chỉ có một đĩa: Disk 0. Dấu hoa thị (*) trong cột GPT có nghĩa là nó sử dụng bảng phân vùng GUID Partition table).

Lưu ý: Nếu không có * trong cột GPT, thì bảng phân vùng đĩa là MBR. Bạn cần đảm bảo rằng trước đó bạn đã khởi động máy tính ở chế độ UEFI (nếu không, việc làm theo hướng dẫn này là vô nghĩa). Nếu bạn chắc chắn rằng loại partition table đã thay đổi, bạn nên chuyển đổi ổ đĩa từ MBR sang GPT.

Tiếp tục đánh câu lệnh sau: list disk

Chọn ổ đĩa: Select disk 0

Hiện lên danh sách partitions trên đĩa: List partition

Ví dụ sau của chúng tôi:

  • MSR partition — 128 MB;
  • Windows system partition — 9 GB.

Bạn sẽ thấy phân vùng EFI partition bị thiếu (hoặc nó bị deleted)

Phân vùng EFI bị lỗi hoặc bị xóa
Phân vùng EFI bị lỗi hoặc bị xóa

Thủ thuật: Nếu bạn thấy các file EFI bị hỏng mà không phải bị xóa. Bạn có thể bỏ qua quá trình tạo lại phân vùng đó bằng diskpart. Mặc dù trong hầu hết các trường hợp, việc sửa chữa lại phân vùng khởi động EFI trong Windows là đủ. Bạn có thể tạo thủ công boot BCD trên máy tính MBR + BIOS bằng cách xem bài viết này

Nhiệm vụ của chúng ta là xóa phân vùng MSR còn lại để có ít nhất 228 MB dung lượng trống trên ổ đĩa (đối với phân vùng MSR và EFI). Bạn có thể xóa phân vùng này bằng giao diện đồ họa graphical Gparted hoặc trực tiếp từ dấu nhắc lệnh

Lưu ý: Bạn phải cực kỳ chú ý ở đây để không vô tình xóa phân vùng Windows hoặc các phân vùng chứa dữ liệu của bạn (nếu có).

Chọn phân vùng để xóa: Select partition 1

Xóa phân vùng: Delete partition override

Đảm bảo rằng chỉ còn lại phân vùng Windows 9GB (trong ví dụ của chúng tôi): List partition

Xem lại các phân vùng sau khi bạn xóa
Xem lại các phân vùng sau khi bạn xóa

Bây giờ chúng ta sẽ tạo lại phân vùng EFI và MSR Partitions. Làm nó bằng cách sử dụng các câu lệnh như sau:

Chọn ổ đĩa:

select disk 0

 

Tạo phân vùng 100MB EFI partition và format nó với chuẩn FAT32 và gán ký tự cho nó:

create partition efi size=100

Bạn chắc chắn rằng phân vùng 100MB đã được chọn (dấu hoa thị trước Partition 1):

list partition
select partition 1
format quick fs=fat32 label="System"
assign letter=G

Bây giờ bạn cần tạo lại một phân vùng MSR với kích thước 128 MB (Trong Windows 10 nó đủ để tạo phân vùng 16MB MSR )

create partition msr size=128
list partition
list vol

Trong ví dụ này, ổ đĩa C: đã được gán cho phân vùng Windows chính. Nếu không, hãy gán ký tự ổ đĩa cho nó như sau:

select vol 1
assign letter=C
exit
Tạo phân vùng EFI và MSR Partition
Tạo phân vùng EFI và MSR Partition

Sửa lỗi khởi động EFI bootloader và Windows BCD

Sau khi bạn đã tạo cấu trúc phân vùng đĩa tối thiểu cho ổ GPT trên máy tính chạy chuẩn UEFI, bạn có thể tiến hành sao chép file khởi động EFI vào phân vùng mới và tạo file khởi động bootloader (BCD).

Sao chép tệp khởi động EFI từ thư mục chứa hệ điều hành Windows đã được cài đặt:

mkdir G:\EFI\Microsoft\Boot
 
xcopy /s C:\Windows\Boot\EFI\*.* G:\EFI\Microsoft\Boot

 

Copy file từ đĩa cài đặt Windows
Copy file từ đĩa cài đặt Windows

Tạo lại cấu hình Window BCD bootloader :

g:
cd EFI\Microsoft\Boot
bcdedit /createstore BCD
bcdedit /store BCD  /create {bootmgr} /d “Windows Boot Manager”
bcdedit /store BCD /create /d “My Windows 10” /application osloader

Bạn có thể thay đổi tên “My Windows 10” bằng bất kỳ tên gì bạn muốn. Các lệnh trên sẽ tạo lại GUID entry. Và các lệnh sau sẽ đặt GUID vào trong {your_guid}

Tạo BCD bằng câu lệnh
Tạo BCD bằng câu lệnh
bcdedit /store BCD /set {bootmgr} default {your_guid}
bcdedit /store BCD /set {bootmgr} path \EFI\Microsoft\Boot\bootmgfw.efi
bcdedit /store BCD /set {bootmgr} displayorder {default}

Câu lệnh bcdedit dưới đây sẽ tạo {default}:

bcdedit /store BCD /set {default} device partition=c:
bcdedit /store BCD /set {default} osdevice partition=c:
bcdedit /store BCD /set {default} path \Windows\System32\winload.efi
bcdedit /store BCD /set {default} systemroot \Windows
exit

Khởi động lại máy. Trong ví dụ của chúng tôi, nó không khởi động từ lần đầu tiên. Bạn thử như sau:

  1. Tắt máy tính
  2. Tháo ổ cứng của bạn ra khỏi máy;
  3. Mở máy tính của bạn và đợi cho xuất hiện lỗi khởi động, sau đó tắt máy lại lần nữa
  4. Gắn ổ cứng lại

Vì chúng tôi đang thử nghiệm trên máy ảo VMWare với firmware UEFI và chúng tôi phải thêm vào menu khởi động bằng cách chọn file EFI\Microsoft\Boot\ bootmgrfw.efi trên phân vùng EFI Parttions.

Trong một số menu UEFI, bằng cách tương tự, bạn cần thay đổi ưu tiên khởi động của các phân vùng (partitions).

Thay đổi EFI boot
Thay đổi EFI boot

Khi bạn làm xong các bước này, Windows của bạn sẽ khởi động bình thường.

Thủ thuật: Nếu vẫn không khởi động bình thường. Bạn xem lại phân vùng EFI có được active không? Bạn có thể sử dụng đĩa khởi động để active nó

Chúc các bạn thành công. Hay chia sẻ nếu thủ thuật này hữu ích nhé.