Mbr2gpt.exe là công cụ console tích hợp Windows 10 mới cho phép chuyển đổi ổ đĩa với bảng phân vùng MBR (Master Boot Record) sang GPT (GUID Partition Table) mà không mất dữ liệu và không cần xóa phân vùng hiện có. Công cụ mbr2gpt dùng chuyển đổi bảng phân vùng cả trong Windows PE (Windows Preinstallation Environment) và trực tiếp từ Windows 10 đang chạy. Bạn dùng công cụ này đổi bảng phân vùng từ MBR sang GPT cả trên ổ dữ liệu (non-system) và ổ hệ thống cài Windows 10 (dùng tùy chọn /allowFullOS).
Cách công cụ MBR2GPT hoạt động
Công cụ mbr2gpt.exe là một phần của image Windows 10, từ build 1703 (Creators Update). Bạn dùng mbr2gpt chuyển đổi ổ từ MBR sang GPT ở chế độ offline trên các build Windows 10 trước (1507, 1511, 1607). Các phiên bản Windows trước (Win 7/8.1) không được hỗ trợ chính thức.
Lưu ý. Trước đây, công cụ thứ ba gptgen có thể chuyển ổ non-system từ MBR sang GPT không mất phân vùng. Nhưng chuyển ổ hệ thống, phải dọn sạch ổ, tạo bảng GPT và phân vùng mới, rồi cài sạch Windows 10.
Tài liệu MBR2GPT nói, các điều kiện sau phải thỏa mãn để chuyển bảng phân vùng sang GPT:
- Bảng phân vùng hiện tại là MBR;
- Có không gian trống trên ổ để đặt bảng GPT chính và phụ ở đầu và cuối ổ;
- Bảng MBR không chứa quá 3 phân vùng, một trong đó là active (phân vùng mở rộng và logical không được có);
- Cấu hình BCD phải có bản ghi boot trỏ tới phân vùng Windows.
Logic Mbr2gpt khi chuyển ổ MBR sang GPT:
- Kiểm tra ổ;
- Nếu không có phân vùng hệ thống EFI (ESP), tạo dùng không gian trống từ một phân vùng (nếu không đủ không gian, lỗi "
cannot find room for the EFI system partition"); - Copy file boot UEFI vào phân vùng EFI;
- Áp dụng metadata GPT và bảng phân vùng (bảng MBR chuyển sang GPT không mất dữ liệu trên phân vùng hiện có);
- Cập nhật cấu hình bootloader BCD.
Cú pháp công cụ MBR2GPT:
mbr2gpt /validate|convert [/disk:] [/logs:] [/map:=] [/allowFullOS]
- /validate – chỉ kiểm tra ổ có thể chuyển đổi (kể cả kiểm tra không gian lưu bảng GPT chính/phụ: 16 KB + 2 sector đầu ổ và 16 KB + 1 sector cuối);
- /convert – bắt đầu chuyển đổi nếu validation thành công;
- /disk: – chỉ định số ổ chuyển sang GPT. Nếu không đặt, chuyển ổ hệ thống (như Diskpart:
select disk system) - /logs: – chỉ định thư mục ghi log. Nếu không đặt, dùng
%windir%. File log: diagerr.xml, diagwrn.xml, setuperr.log, setupact.log; - /map: – chỉ định ánh xạ thêm giữa bảng phân vùng MBR và GPT. Ví dụ /map:42={af9b60a0-1431-4f62-bc68-3311714a69ad}. Số phân vùng MBR thập phân, GPT GUID có dấu phân cách. Có thể chỉ định nhiều ánh xạ;
- /allowFullOS – mặc định MBR2GPT chỉ dùng trong Windows PE. Dùng allowFullOS để chuyển ổ hệ thống trực tiếp từ Windows 10 đang chạy. Nếu không chỉ định tham số này khi dùng mbr2gpt từ Windows, lỗi:
ERROR: MBR2GPT can only be used from the Windows Preinstallation Environment. Use /allowFullOS to override.
Chuyển đổi ổ từ MBR sang GPT không mất dữ liệu từ Windows 10
Thao tác chuyển đổi ổ từ MBR sang GPT là không thể đảo ngược. Đảm bảo máy tính hỗ trợ UEFI trước khi chuyển.
Trước khi chuyển, validate ổ hệ thống hiện tại để chuyển từ MBR sang GPT:
mbr2gpt.exe /disk:0 /validate /Logs:C:\logs /allowFullOS
MBR2GPT: Attempting to validate disk 0 MBR2GPT: Retrieving layout of disk MBR2GPT: Validating layout, disk sector size is: 512
Dòng MBR2GPT: Validation completed successfully cho thấy ổ có thể chuyển. Dòng MBR2GPT: Disk layout validation failed nghĩa là ổ không thỏa mãn điều kiện.
Lỗi thường gặp khác Cannot find OS partition(s) for disk 0 thường do dùng bootloader thứ ba hoặc chọn sai ổ chuyển. Bạn cũng có thể thử di chuyển file boot Windows sang phân vùng hệ thống (bcdboot c:\Windows /f bios /s c:), và kiểm tra entry WinRE trong BCD (reagentc /disable && reagentc /enable) đúng.
Mẹo. Nếu ổ hệ thống được mã hóa BitLocker, giải mã trước khi chuyển.
Bây giờ chuyển bảng phân vùng trên ổ hệ thống:
mbr2gpt.exe /convert /disk:0
MBR2GPT will now attempt to convert disk 0. If conversion is successful the disk can only be booted in GPT mode. These changes cannot be undone! MBR2GPT: Attempting to convert disk 0 MBR2GPT: Retrieving layout of disk MBR2GPT: Validating layout, disk sector size is: 512 bytes MBR2GPT: Trying to shrink the system partition MBR2GPT: Trying to shrink the OS partition MBR2GPT: Creating the EFI system partition MBR2GPT: Installing the new boot files MBR2GPT: Performing the layout conversion MBR2GPT: Migrating default boot entry MBR2GPT: Adding recovery boot entry MBR2GPT: Fixing drive letter mapping MBR2GPT: Conversion completed successfully MBR2GPT: Before the new system can boot properly you need to switch the firmware to boot to UEFI mode!
Chuyển ổ từ MBR sang GPT từ Windows 10 cài sẵn diễn ra trong giây lát.
Để máy boot từ phân vùng EFI mới, phải đổi cài đặt boot sang chế độ UEFI. Khởi động lại và trong cài đặt UEFI đổi boot mode từ Legacy (BIOS) sang UEFI (Pure) và lưu thay đổi.
Windows 10 nên boot thành công. Dùng msinfo32.exe xác nhận Windows 10 boot ở BIOS Mode = UEFI.
Lợi ích chính chuyển sang UEFI native và bảng GPT:
- Tạo phân vùng lớn hơn 2 Tb;
- Bảo vệ môi trường boot với Secure Boot;
- Công nghệ ELAM (Early Launch Antimalware);
- Tính năng Device Guard và Credential Guard trong Windows 10 Enterprise;
- Measured Boot
Chuyển đổi MBR sang GPT khi cài đặt Windows 10
Bạn có thể dùng mbr2gpt trong quá trình cài Windows 10. Ví dụ, tạo USB boot UEFI, cố cài Windows 10 trên ổ MBR trên máy UEFI. Lúc này lỗi:
Windows cannot be installed to this disk. The selected disk has an MBR partition table. On EFI system, Windows can only be installed to GPT disks.
Nếu không muốn mất phân vùng dữ liệu trên ổ MBR (dùng boot Legacy hoặc máy BIOS) khi đổi sang GPT, bạn chuyển MBR sang GPT trực tiếp từ cửa sổ cài Windows 10.
- Nhấn
Shift+F10 trên màn hình cài Windows 10 mở command prompt WinPE; - Kiểm tra bảng phân vùng ổ có thể chuyển sang GPT. Chạy:
mbr2gpt /validate - Nếu lệnh trả về
Validation completed successful, chuyển ổ này; Nếu lỗiFailed to retrieve geometry for disk -1hiện ra, có thể bạn gắn nhiều ổ. Chạydiskpart→list diskxác định số ổ. Validate ổ cụ thể theo số:mbr2gpt /validate /disk:0 - Chuyển bảng phân vùng:
mbr2gpt /converthoặc với số ổmbr2gpt /convert /disk:0 - mbr2gpt tạo phân vùng EFI system boot mới, copy bootloader Windows vào đó và chuyển bảng phân vùng sang GPT (phân vùng hiện có giữ nguyên). Chuyển sang cửa sổ Setup Windows 10, nhấp Refresh ở màn hình chọn ổ và bắt đầu cài Windows 10 trên phân vùng chọn.
Vấn đề đã biết của MBR2GPT
Sau chuyển bảng phân vùng bằng mbr2gpt, thường gặp vấn đề với BitLocker và Hyper-V (có trong Pro/Enterprise Windows 10).
Nếu chuyển ổ hệ thống và cố bật BitLocker, có thể lỗi: The system cannot find the file specified. Có thể do Windows Recovery Environment (WinRE).
Thử đổi tên file %windir%\System32\Recovery\ReAgent.xml và bật BitLocker (file ReAgent.xml mới tự tạo).
Có thể lỗi khi khởi động VM Hyper-V:
Virtual machine could not be started because the hypervisor is not running.
Để sửa, bật Hyper-V autostart trong cấu hình BCD:
BCDEDIT /Set {current} hypervisorlaunchtype auto
Nếu thử chuyển ổ với Windows cũ (7/8.1), công cụ báo mbr2gpt cannot install new boot files. Khuyên nâng cấp in-place lên Windows 10 trước, rồi mới chuyển bảng phân vùng.