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.
- Thủ thuật lấy lại email đã gửi nhầm trên Gmail và Outlook hiệu quả
- Thủ thuật ghi âm trên máy tính không cần phần mềm
- Top trình cắt video trực tuyến tốt nhất mà bạn nên biết
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ấ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 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ô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:
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
Đá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).
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)
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
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
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 |
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 |
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}
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:
- Tắt máy tính
- Tháo ổ cứng của bạn ra khỏi máy;
- 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
- 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).
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.
Chúc các bạn thành công. Hay chia sẻ nếu thủ thuật này hữu ích nhé.