Hôm nay chúng ta sẽ xem cách cài đặt / khởi động Windows hiện đại (Windows 7, 10) trên máy cũ dùng BIOS (không hỗ trợ UEFI) với ổ cứng dùng bảng phân vùng GPT. Vấn đề nảy sinh khi cài Windows Server 2008 R2 trên HP DL380 G8 (HP DL không hỗ trợ EFI) với RAID 5 tổng dung lượng > 4 TB. Trên MBR, Windows chỉ thấy 2 TB, không truy cập được 2 TB còn lại. Cách duy nhất tận dụng hết dung lượng là chuyển sang GPT.
Bài viết hướng dẫn cấu hình Windows boot từ ổ GPT trên BIOS classic (hoặc Legacy BIOS). Windows không thể boot từ GPT trên BIOS cũ. Giải pháp: di chuyển Windows bootloader (BCD) sang USB flash drive nhỏ (hoặc ổ HDD) có bảng phân vùng MBR. USB này chỉ dùng để khởi động bootloader, sau đó chuyển quyền điều khiển cho Windows chính trên ổ GPT. Hướng dẫn áp dụng cho Windows 7, 10 và các bản x86/x64 hỗ trợ.
Ưu điểm GPT so với MBR
- Hỗ trợ ổ cứng > 2.2 TB (GPT max 9.4 ZettaBytes = 9.4 x 10²¹ byte);
- Hỗ trợ tới 128 phân vùng (MBR chỉ 4);
- Độ tin cậy cao nhờ bản sao bảng phân vùng ở nhiều vị trí và kiểm tra CRC;
- Không cần phân vùng logic dễ gặp lỗi.
Khởi động Windows từ ổ GPT
Theo tài liệu Microsoft (https://msdn.microsoft.com/en-us/windows/hardware/gg463525.aspx), mọi OS từ Windows Server 2003 SP1 đều hỗ trợ volume GPT làm data disk. Nhưng chỉ Windows 64-bit trên mainboard UEFI mới boot từ volume GPT. Do đó không cài/boot được Windows từ GPT trên BIOS cũ.
Mẹo: Có cách boot Windows 10/7 x64 trên BIOS từ GPT dùng DUET (Developer's UEFI Environment) giả lập EFI. BIOS boot SYSLINUX → load UEFI emulator (DUET) → gọi bootloader Windows chuẩn (bootx64.efi). Hoặc chuyển disk sang hybrid MBR bằng gdisk (Linux). Cả hai phức tạp, cần kiến thức Linux nâng cao.
Lưu ý quan trọng: Chỉ boot Windows x64 từ GPT được trên hệ thống UEFI.
Nếu PC dùng BIOS và cần ổ GPT, cách dễ nhất: thêm ổ MBR thứ 2 (HDD/SSD), cài Windows lên đó và boot từ ổ đó.
Chúng ta sẽ biến thể kỹ thuật này: dùng USB flash drive/SD card nhỏ (≥ 64 MB) định dạng MBR, chứa Windows Boot Manager (bootmgr) nhỏ. USB này cung cấp boot khởi tạo và chuyển điều khiển cho bootloader hệ thống chính trên volume GPT.
Quan trọng! BIOS phải hỗ trợ boot từ USB/SD card.
→ Boot mọi phiên bản Windows (cả x86 và x64!!!) trên hệ thống BIOS (không EFI) được hỗ trợ.
Cài Windows trên ổ GPT trên PC BIOS
Giả sử máy BIOS, ổ cứng GPT. Khi cài Windows lên ổ GPT, Windows Setup báo lỗi:
Windows cannot be installed to this disk the selected disk is of the GPT Partition Style

Mẹo: Chuyển partition table MBR → GPT (mất dữ liệu) bằng Shift+F10 trên màn hình Setup:
diskpart → select disk 0 → clean → convert gpt
Lúc này chỉ cài Windows 10/8.1/7 lên GPT được ở chế độ UEFI qua DUET emulation. Chỉ cài được 64-bit, thủ tục phức tạp.
Dễ hơn: cài Windows lên ổ MBR bình thường, sau đó chuyển sang GPT bằng gptgen.
Gptgen: Chuyển MBR sang GPT không mất phân vùng
Disk Management chỉ chuyển MBR→GPT nếu ổ unallocated hoặc "clean". Không chuyển được ổ đã cài OS.
Lưu ý: Windows 10 1703+ có mbr2gpt.exe chuyển MBR→GPT không mất dữ liệu (xem bài Convert MBR to GPT without losing data in Windows 10).
Để chuyển online, dùng tool nhỏ Gptgen thay đổi partition table on-the-fly không xóa phân vùng (không mất dữ liệu).
Quan trọng! Trước khi chuyển, khuyên sao lưu dữ liệu quan trọng ra ổ ngoài. Dù chưa thấy gptgen fail gây crash filesystem, nhưng nên phòng ngừa.
- Tải gptgen, giải nén (ví dụ:
c:\tools\gptgen-1.1). - Mở CMD quyền Admin.
- Chạy:
diskpart - Xem ổ đĩa:
list disk
- Ví dụ: 1 ổ 40 GB index 0 (Disk 0), MBR (cột GPT trống). Chuyển bằng:
gptgen.exe -w \\.\physicaldrive0
(0 cuối = disk 0). Chương trình cảnh báo không đảm bảo boot sau chuyển đổi. Chọn Y.
gptgen.exe: Partition table converter v1.1
Boot: 1, Type: 0x7, Start: sector 2048, Length: 204860 sectors
Boot: 0, Type: 0x7, Start: sector 206858, Length: 83685636 sectors
WARNING: Boot partition(s) found. This tool cannot guarantee that
such partitions will remain bootable after conversion.
Do you want to continue? [Y/N] y
Writing primary GPT and protective MBR to LBA address 0…
Writing secondary GPT to LBA address 83786657…
Success!

→ Chuyển partition table sang GPT thành công!
Di chuyển Windows Bootloader sang USB Flash Drive
Khởi động lại, kiểm tra BIOS không boot từ ổ GPT. OK! Cắm USB/SD card nhỏ. Boot từ media cài Windows (DVD/USB), Shift+F10 mở CMD:
diskpartlist disk→ giờ có 2 ổ: Disk 0 (40 GB, OS, cột GPT có *), Disk 1 (1 GB USB).
- Xác định ổ và letter:
select disk 0→list volume
- Theo size, OS cài trên Volume 2, letter D: (có thể khác letter Windows hiển thị).
- Tạo phân vùng trên USB:
select disk 1cleancreate partition primary size=1000(1 GB)format fs=fat32(KHÔNG dùng NTFS, BIOS không boot từ NTFS)select partition 1activelist volume→ volume mới là Volume 3select volume 3assign letter=G
list volumekiểm tra letter G:
exitthoát diskpart
- Copy file boot environment từ system volume sang USB:
bcdboot d:\Windows /l en-us /s g: - Ghi boot code lên USB để bootmgr khởi động:
bootsect /nt60 G: /mbr /force - Restart.
Vào BIOS đổi boot order: USB/SD card lên đầu. Lưu thay đổi. Nếu đúng, hệ thống boot bình thường. Kiểm tra Windows nằm trên ổ GPT: mở diskmgmt.msc → Properties ổ hệ thống → tab Volumes → Partition style: GUID Partition Table.

Cách này cho phép tận dụng hết ưu điểm GPT và toàn bộ dung lượng ổ cứng (> 2.2 TB) trên hệ thống BIOS (không UEFI). Áp dụng cho:
- Windows 10 / Windows Server 2016
- Windows 8, 8.1, Server 2012 / 2012 R2
- Windows 7, Vista, Server 2008 / 2008 R2
- Windows Server 2003 SP1 / 2003 (x64)
- Windows XP x64
Lưu ý: Mỗi lần bật/reboot, USB flash drive chứa bootloader MBR phải cắm vào máy, nếu không Windows sẽ không boot.
Một số model BIOS cũ không làm việc với ổ GPT, disk không được nhận diện trong CMOS.