UEFI: NTFS adalah bootloader generik, yang dirancang untuk memungkinkan boot dari NTFS atau partisi exfat, dalam mode UEFI murni, bahkan jika sistem Anda tidak mendukungnya secara alami. Ini terutama dimaksudkan untuk digunakan dengan Rufus, tetapi juga dapat digunakan secara mandiri.
Dengan kata lain, UEFI: NTFS dirancang untuk menghapus pembatasan, yang dimiliki sebagian besar sistem UEFI, hanya memberikan dukungan boot dari partisi FAT32, dan memungkinkan kemampuan untuk juga boot dari partisi NTFS.
Ini dapat digunakan, misalnya, untuk mem-boot UEFI media instalasi Windows NTFS, berisi install.wim .
Sebagai tambahan, dan karena tampaknya ada banyak informasi yang tidak akurat tentang hal ini di internet, perlu ditekankan bahwa sama sekali tidak ada dalam spesifikasi UEFI yang sebenarnya memaksa penggunaan FAT32 untuk boot UEFI. Sebaliknya, UEFI akan dengan senang hati boot dari sistem file apa pun , selama firmware Anda memiliki driver untuk itu. Dengan demikian, itu hanya pilihan produsen sistem, yang cenderung hanya memasukkan driver untuk FAT32, yang membatasi kemampuan boot default UEFI, dan itu membuat banyak orang salah percaya bahwa hanya FAT32 yang dapat digunakan untuk boot UEFI.
Namun, seperti yang ditunjukkan dalam proyek ini, sangat mungkin untuk mengatasi batasan ini dan mengaktifkan firmware UEFI untuk boot dari sistem file non-FAT32.
Cara UEFI: NTFS bekerja, bersama dengan Rufus, adalah sebagai berikut:
/efi/boot/bootarm.efi yang relevan, menempatkan partisi NTFS yang ada pada media yang sama, dan mengeksekusi /efi/boot/bootia32.efi , /efi/boot/bootx64.efi /efi/boot/bootaa64.efi residasi. Ini mencapai hasil yang sama persis seolah -olah firmware UEFI memiliki dukungan asli untuk NTF dan bisa boot langsung darinya. UEFI: NTFS kompatibel dengan boot aman dan telah ditandatangani oleh Microsoft.
Anda dapat menemukan binari yang ditandatangani oleh boot aman (untuk x86_64, x86_32 dan ARM64) di arsip Rufus uefi-ntfs.img .
Namun perlu dicatat bahwa, karena pembatasan Microsoft sewenang-wenang mengenai GPLV3 satu-satunya driver yang saat ini dapat digunakan dengan UEFI: NTFS di lingkungan boot yang aman adalah yang berlisensi GPLV2 NTFS-3G yang berlisensi. Terutama, driver NTF dan EXFAT dari EFIFS, yang berasal dari GRUB 2.0, dan oleh karena itu GPLV3, tidak dapat dikirimkan ke Microsoft untuk ditandatangani.
Akhirnya, kebijakan penandatanganan boot Microsoft saat ini memerlukan validasi tambahan untuk lengan 32-bit, oleh karena itu biner lengan 32-bit tidak ditandatangani oleh boot aman. Ini tidak mempengaruhi lengan 64-bit (alias ARM64 / AARCH64 / AA64 ) yang kami memiliki binari yang ditandatangani oleh boot yang sepenuhnya aman.
Untuk kenyamanan, proyek ini dapat dikompilasi terhadap perpustakaan GNU-EFI daripada EDK2, jadi Anda mungkin perlu menginisialisasi submodul GIT dengan:
git submodule update --init
Jika menggunakan Solusi Visual Studio ( .sln ), cukup tekan F5 untuk membuat aplikasi dikompilasi dan diluncurkan dalam emulator QEMU.
Jika menggunakan GCC dengan GNU-EFI, Anda harus dapat dengan mudah make .
Jika diperlukan, Anda juga dapat mengeluarkan sesuatu seperti make ARCH=<arch> CROSS_COMPILE=<tuple> di mana <arch> adalah salah satu dari ia32 , x64 , arm atau aa64 dan Tuple adalah satu-satunya untuk kompiler silang Anda (misalnya aarch64-linux-gnu- ).
Anda juga dapat men -debug melalui QEMU dengan menentukan qemu untuk make doa Anda. Namun berhati -hatilah bahwa ini menyalakan mode _DEBUG khusus, dan Anda harus menjalankan Make tanpa memohon qemu untuk menghasilkan biner pelepas yang tepat.
Jika menggunakan VS2022 dengan EDK2 di Windows, dengan asumsi bahwa Direktori EDK2 Anda ada di D:edk2 dan bahwa nasm berada di D:edk2BaseToolsBinWin32 , Anda harus dapat mengeluarkan:
set EDK2_PATH=D:edk2
set NASM_PREFIX=D:edk2BaseToolsBinWin32
set WORKSPACE=%CD%
set PACKAGES_PATH=%WORKSPACE%;%EDK2_PATH%
%EDK2_PATH%edksetup.bat reconfig
build -a X64 -b RELEASE -t VS2022 -p uefi-ntfs.dsc
Jika menggunakan GCC dengan EDK2 di Linux, dan dengan asumsi bahwa direktori EDK2 Anda berada di /usr/src/edk2 :
export EDK2_PATH="/usr/src/edk2"
export WORKSPACE=$PWD
export PACKAGES_PATH=$WORKSPACE:$EDK2_PATH
. $EDK2_PATH/edksetup.sh --reconfig
build -a X64 -b RELEASE -t GCC5 -p uefi-ntfs.dsc
Anda dapat menemukan gambar partisi lemak yang siap digunakan, berisi versi x86 dan lengan dari UEFI: NTFS loader (baik 32 dan 64 bit) dan driver dalam proyek Rufus, di bawah /res /uefi.
Jika Anda membuat partisi dengan ukuran yang sama di akhir drive Anda dan menyalin uefi-ntfs.img di sana (dalam mode DD tentu saja), maka Anda harus memiliki semua yang Anda butuhkan untuk membuat partisi NTFS pertama pada drive yang dapat di-booting UEFI.
Harap berhati -hati bahwa, untuk mengaktifkan dukungan kompilasi ARM atau ARM64 di Visual Studio 2022, Anda harus pergi ke layar komponen individual dalam aplikasi pengaturan dan memilih alat build ARM/ARM64 di sana, karena mereka tidak muncul di layar beban kerja default: