Memaksa Windows Server 2008 untuk menggunakan bootloader BIOS lama alih-alih EFI

12

Kami memiliki server UEFI dan telah menemukan situasi di mana kami harus memaksa Windows Server 2008 untuk melakukan booting melalui metode BIOS lama alih-alih melalui UEFI.

Apakah ada cara untuk memberitahu Windows Server 2008 (baik saat menginstal atau pasca-instal) untuk mengabaikan fakta bahwa itu menginstal ke mesin EFI dan bukannya menginstal dan menggunakan bootloader BIOS lama?


Saya sudah mencoba beberapa saran yang tidak membantu:

  • Memformat disk sebagai partisi MBR sebelum menginstal Windows

    Tidak, Windows menolak untuk menginstal:Pada sistem EFI, Windows hanya dapat diinstal ke disk GPT

  • Instal Windows, migrasi partisi ke disk MBR, perbaikan sistem

    Tidak, konsol perbaikan sistem tidak mau memuat. Ia mengeluh bahwa ia tidak mengenali versi Windows yang saya coba perbaiki.

  • Nonaktifkan UEFI

    Jika saya dapat menonaktifkan UEFI dan membuat sistem hanya legacy, saya akan melakukannya. Namun, sistem tertentu yang saya gunakan (IBM HS22, x3690X5) hanya UEFI dengan dukungan legacy. Anda tidak bisa menonaktifkan UEFI saja. Itu akan membutuhkan implementasi BIOS yang lengkap.


Solusinya!

Seperti yang ditunjukkan JdeBP, metode tunggal yang digunakan Windows untuk menentukan apakah akan menggunakan bootloader EFI / GPT atau BIOS / MBR adalah metode yang digunakan untuk mem-boot CD instal.

Menggabungkan ini dengan saran Weaver untuk membuat gambar .iso tanpa entri katalog boot 0xEF (jauh lebih mudah dilakukan dengan hex-editing daripada remastering gambar, omong-omong) membawa kita ke jawaban yang bagus dan ringkas:

Paksa media instal untuk boot melalui BIOS, bukan melalui UEFI karena ini adalah satu-satunya pembeda yang digunakan Pemasang Windows untuk menentukan skema boot mana yang akan digunakan.

MikeyB
sumber
Ini akan menjadi perangkat keras spesifik. Mungkin membantu jika Anda menyebutkan peralatan dan modelnya. Beberapa vendor memberikan opsi untuk mode kompatibilitas-BIOS di layar pengaturan atau sebagai opsi boot.
Tom Willwerth
Alasan saya tidak menyebutkan perangkat keras dalam pertanyaan itu adalah pilihan yang disengaja. Saya ingin membuat perubahan ini di sisi Windows dengan mengatakannya untuk menggunakan bootloader yang berbeda. IBM x3690X5 saya sudah mengaktifkan kompatibilitas BIOS, sehingga setiap loader BIOS akan berfungsi. Masalahnya adalah memberitahu W2K8 untuk tidak menggunakan bootloader UEFI-nya.
MikeyB
2
@ MikeyB: Mengapa tidak menggunakan GPT saja?
tegbains
@tegbains: $ BIGCUSTOMER memiliki lingkungan pencitraan yang menggunakan produk yang tidak mendukung GPT dengan benar.
MikeyB
1
Jika tidak butuh dua minggu untuk memeras informasi yang sangat penting ini dari Anda, kami bisa menyelamatkan Weaver dari banyak kesedihan. Saya menyarankan Anda mengedit pertanyaan Anda untuk mencerminkan tujuan yang sebenarnya, karena apa yang ada dalam judul adalah langkah X yang tidak dapat Anda kerjakan dan pertanyaan Anda sangat menyesatkan.
JdeBP

Jawaban:

6

Microsoft tidak akan membiarkan Anda mencapai langkah Anda; jadi alamat tujuan Anda sebagai gantinya.

Microsoft keliru mengkonfigurasi memiliki cakram keras yang dipartisi EFI dengan memiliki firmware EFI . Tentu saja ini salah. Sangat mungkin - dan memang semakin diminati akhir-akhir ini - untuk memiliki cakram dipartisi EFI pada mesin yang memiliki firmware lama non-EFI. Anda sebenarnya - walaupun butuh lebih dari dua minggu untuk orang-orang di sini untuk memeras tujuan Anda daripada langkah - ingin yang sebaliknya. Anda ingin memiliki disk yang dipartisi PC / AT-style MBR lama pada mesin yang memiliki firmware EFI. (Firmware EFI sendiri tidak memiliki masalah dengan format tabel partisi mana pun, dan memang diperlukan oleh spesifikasi EFI untuk memahami keduanya. Microsoft yang membuat kesalahan ini.) Dan Anda menginginkan ini karena perangkat lunak orang lain tidak dapat memahami tabel partisi EFI.

Salah satu dari beberapa konsekuensi kesalahan Microsoft adalah bahwa penginstal Windows NT 6.1 harus dipanggil dari media penginstalan yang pada gilirannya telah di-bootstrap dari firmware PC98 lama, agar dapat menerima gagasan menginstal Windows NT 6.1 ke disk. dipartisi dengan skema partisi PC / AT MBR lama. Sayangnya, jika cakram instalasi Windows NT di-bootstrap dengan cara EFI baru, penginstal akan berpikir bahwa ada firmware EFI, dan karenanya menyatakan bahwa cakram tersebut tidak dapat diinstal ke cakram keras non-EFI yang dipartisi.

Seperti yang ditunjukkan oleh Weaver, dan seperti yang dijelaskan oleh dokumentasi Microsoft , CD-ROM instalasi sebenarnya adalah dual-boot. Seperti dijelaskan Rod Smith lebih lanjut , oleh karena itu seseorang dapat secara manual membuat disk instalasi Windows NT 6.1 yang bootstraps dengan cara PC98 lama. Penginstal Windows NT 6.1 akan memungkinkan penginstalan ke hard disk yang dipartisi PC / AT MBR.

Namun, pada sistem yang tidak memiliki modul dukungan kompatibilitas , seperti yang Anda katakan sistem Anda lakukan, ini tidak akan membantu sedikit pun . Sistem Anda akan memerlukan versi Boot Manager Microsoft versi EFI, yang diinstal pada Partisi Sistem EFI, karena begitulah firmware Anda akan mencoba mem-bootstrap sistem operasi. Tetapi ketika penginstal Windows NT 6.1 dimulai pada firmware non-EFI, itu menginstal versi Boot Manager Microsoft non-EFI dan tidak akan membuat Partisi Sistem EFI. Instalasi semacam itu tidak akan benar-benar bootstrap pada mesin Anda, dan Anda bahkan tidak akan dapat menyelesaikan prosedur instalasi. Memang, karena Anda tidak memiliki CSM, Anda bahkan tidak akan dapat memulaiprosedur instalasi, karena Anda bahkan tidak dapat melakukan bootstrap disk instalasi dengan cara PC98 lama. Microsoft tidak akan membiarkan Anda mencapai langkah Anda, dua kali lipat.

Jadi, fokuslah pada tujuan Anda. Tujuan Anda adalah memungkinkan pelanggan Anda untuk menggunakan Windows Server 2008 ke mesin yang memiliki firmware EFI dari gambar sistem. Oleh karena itu pertanyaan yang benar yang harus Anda tanyakan - dari vendor perangkat lunak - adalah bagaimana cara memperbaiki perangkat lunak pencitraan disk lama / rusak sehingga tidak ada masalah dengan tabel partisi EFI.

JdeBP
sumber
Oh sistem saya tidak kekurangan mode kompatibilitas, itu bukan masalah. Jadi Anda mengatakan bahwa satu-satunya cara installer Windows mendeteksi apakah sistemnya adalah EFI adalah melalui metode yang digunakan untuk bootstrap? Itu informasi baru dan penting - saya akan mencobanya.
MikeyB
Ah ah! Berhasil! Itulah informasi penting yang saya butuhkan: "Paksa media instal untuk melakukan booting melalui BIOS, bukan melalui UEFI karena ini adalah metode yang digunakan Pemasang Windows untuk menentukan skema boot yang digunakan."
MikeyB
@ JdeBP +1 kepada Anda untuk jawaban yang bagus.
Weaver
7

Singkatnya, ya dan tidak karena beberapa alasan berbeda. Jika Windows mem-boot dari disk GPT, itu harus dari UEFI. Manajer boot dan loader Windows tidak dapat boot ke disk MBR dari UEFI asli . Namun, jika UEFI dikonfigurasi untuk mode boot BIOS lama maka disk MBR dapat digunakan untuk booting. Ini berasal dari mode boot Windows (BIOS dengan MBR atau UEFI dengan GPT) yang bergantung pada lingkungan di mana ia dilibatkan.

Baca terus untuk sedikit teknologi -

Perangkat keras fisik (atau perangkat keras virtual, namun perangkat keras) firmware (BIOS / UEFI) menyediakan lingkungan pengoperasian awal (struktur dan konvensi data terkait boot) dan layanan firmware yang tersedia untuk tahapan selanjutnya dari proses boot sistem operasi.

BIOS / MBR

Dalam hal BIOS / MBR boot sektor pertama dari disk bootable pertama - master boot record (LBA 0) berisi segelintir perakitan x86 (16 bit 8088), kemudian tabel partisi, lalu tanda tangan). BIOS memuat sektor ini ke dalam memori dan mulai mengeksekusi - BIOS melepaskan kontrol kode programnya sendiri begitu MBR terlibat.

http://mbr.adamsatoms.com/

http://www.ata-atapi.com/hiwmbr.html

rakitan x86 (Intel 8088 di sebagian besar MBR) di MBR mem-parsing tabel partisi, mencari partisi yang aktif, dan melompat ke sektor pertama di partisi itu - disebut catatan boot volume. Catatan boot volume berisi x86 rakitan jmp, blok parameter BIOS (tidak digunakan sama sekali oleh BIOS sistem, jadi nama yang membingungkan), dan lebih banyak rakitan x86 yang pada akhirnya memuat boot loader sistem operasi (NTLDR atau BOOTMGR di lingkungan Windows ) dari volume boot / partisi itu sendiri.

NTLDR atau BOOTMGR membalik CPU ke mode terproteksi, lihat konfigurasi waktu boot mereka (masing-masing boot.ini atau BCD, baik pada volume / partisi boot), dan muat NTOSKRNL di mana sisanya adalah sejarah.

http://technet.microsoft.com/en-us/library/cc781134%28WS.10%29.aspx

http://en.wikipedia.org/wiki/Windows_NT_startup_process

http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/bios-parameter-block.html

UEFI / GPT

Pertama izinkan saya menyatakan bahwa saya tidak memiliki banyak pengalaman aktif dengan UEFI / GPT. Namun, karena saya telah menggunakannya dan memahaminya untuk beroperasi - perbedaan besar (yang berkaitan dengan percakapan kami) adalah bahwa kontrol yang dapat dieksekusi tidak ditransfer ke MBR.

Sebaliknya firmware UEFI berisi boot manager sendiri. Boot manager ini memindai disk dan media, - menyoroti MBR pelindung dari disk yang diformat GPT, tiba di header GPT, dan kemudian menyelam ke Partisi Sistem EFI (ESP) di mana ia mencari program yang dapat dieksekusi EFI - yang seharusnya menjadi pemuat boot sistem operasi yang mem- boot OS secara langsung, namun seperti yang telah kita lihat dengan MS dan Apple EFI executable terbaru, mereka sebenarnya boot manager menambahkan lapisan lain ke proses dan kompleksitas.

http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/efi-boot-process.html

http://msdn.microsoft.com/en-us/windows/hardware/gg463525#X-201104111922443

Kesimpulan / TL; DR

Poin yang perlu diambil dari hal ini adalah bahwa ada lingkungan yang diharapkan di mana boot manager dan boot loader sistem operasi diharapkan untuk berjalan. Dari layanan level firmware yang tersedia (BIOS / UEFI interrupts), struktur data (variabel, konvensi stack, dll), dan bahkan konvensi pemformatan disk. Tidak dapat diubah saat runtime - setidaknya bukan cara saya memahaminya.

Opsi Anda?

Pra-instal Anda dapat mengontrol instal dengan menggunakan BIOS / MBR atau UEFI di boot BIOS lama dengan MBR atau UEFI dengan GPT.

Pasca-instal - mungkin ada beberapa kemungkinan menarik dengan mengubah format disk (MBR ke GPT dan GPT ke MBR) secara offline, kemudian boot ke konsol pemulihan (dalam mode UEFI atau BIOS yang sesuai) dan bekerja dengan bcdboot dan bcdedit untuk mendapatkan Windows boot manager diluruskan.

Perbarui 2011.09.09

@MikeyB

Cantumkan opsi seperti yang saya pahami, tidak benar-benar membuat saran formal.

Namun demikian, setelah melakukan sedikit penelitian lebih lanjut tentang UEFI (ingat bahwa saya tidak memiliki banyak pengalaman aktif dengannya), saya telah menemukan beberapa informasi menarik tentang UEFI boot manager dan dukungan untuk boot CD / DVD.

Spesifikasi Boot El Torito, mulai '95 masih ada sampai sekarang dan digunakan dengan CD / DVD bootable. Sebuah CD / DVD tunggal mungkin harus boot pada beberapa arsitektur - dan sementara ISO 9660 agak independen terhadap platform, kode yang dapat dieksekusi tidak. Dengan demikian, Spesifikasi Boot El Torito memungkinkan untuk beberapa entri / gambar boot.

Entri / gambar ini berisi ID Platform , yang dimaksudkan untuk menunjukkan apakah entri untuk PC, PowerPC, dan arsitektur lainnya sehingga BIOS (atau firmware) arsitektur dapat memilih entri boot yang tepat.

PC x86 standar dengan BIOS memiliki ID Platform El Torito 0x00. ID Platform berkemampuan UEFI adalah 0xEF - agak kreatif.

Standar x86 PC BIOS mengabaikan semua entri lain kecuali 0x00. Firmware UEFI yang memiliki dukungan BIOS lama (dikenal sebagai Compatibility Support Module (CSM)) - walaupun dapat melakukan booting 0x00, akan lebih memilih entri boot asli 0xEF dari katalog.

Media Windows 2008, 2008 R2, dan 7 DVD berisi beberapa gambar katalog El Torito dengan 0x00 dan 0xEF. 0x00 adalah default, tetapi UEFI akan mengabaikannya jika 0xEF ada dan memilih entri 0xEF - karena itu asli.

Apa yang mungkin - adalah membuat media yang hanya berisi ID Platform yang disukai dalam katalog boot El Torito. Alih-alih katalog multi-entri, buat katalog entri tunggal dengan ID Platform 0x00. Ini harus memaksa firmware UEFI, jika sebenarnya mendukung boot BIOS lama, untuk memilih ID Platform 0x00 dan boot entri boot lama BIOS pada media Windows.

Bagaimana cara melakukannya?

Menggunakan Oscdimg dimungkinkan. Di bawah ini adalah beberapa contoh orang yang membuat media UEFI hanya untuk mengatasi keterbatasan dalam implementasi UEFI Apple. Perhatikan bahwa ini adalah kebalikan dari apa yang kami coba lakukan - kami hanya ingin membuat BIOS, meninggalkan entri boot UEFI dari katalog.

Hanya UEFI (Seberang) 1

Hanya UEFI (Seberang) 2

Proses untuk membuat media khusus BIOS mirip dengan perubahan pada -bdan -pargumen berikut ini

-bC:\path\to\Etfsboot.com -p0x00

Sumber daya yang hebat yang memberi penerangan luar biasa tentang kegilaan Microsoft yang dipilih pada media instalasi Windows adalah dokumen Dukungan dan Persyaratan UEFI untuk Sistem Operasi Windows .

Penenun
sumber
1
"Pra-instal Anda dapat mengontrol instalasi dengan menggunakan BIOS / MBR atau UEFI dalam boot BIOS lama dengan MBR atau UEFI dengan GPT." OK, jadi bagaimana Anda memberi tahu Windows: "Instal ke tabel partisi gaya-MSDOS."?
MikeyB
@MikeyB Boot media instalasi Windows dalam sistem komputer dengan BIOS tradisional. Atau - boot media instalasi Windows dalam sistem komputer dengan UEFI yang diatur dalam mode boot BIOS lama. Perhatikan bahwa UEFI Anda harus mendukung mode boot BIOS lawas.
Weaver
Anda menyarankan saya menginstal Windows ke komputer yang sama sekali berbeda lalu memindahkan disk? Sama sekali bukan ide bagus. Juga, ketika Anda mengatur komputer UEFI ke 'mode BIOS lama', itu hanya memungkinkan kait BIOS lama untuk mem-boot disk MBR lawas. Itu tidak mematikan UEFI , jadi Windows masih mengatakan "Apakah ini sistem UEFI? Yup."
MikeyB
@MikeyB Menambahkan pembaruan ke jawaban asli.
Weaver
1
Saya telah melihat sesuatu yang mirip dengan server 2008, dalam proses belajar tentang BIOS dan batas ukuran disk MBR. Saya membangun server dengan 2008 R2 dan mengaktifkan mode BIOS lama karena fakta bahwa itu tidak akan diinstal dengan media USB (bug MS) namun saya menemukan itu kemudian menggunakan MBR daripada GPT karena BIOS tidak mampu memuat GPT (kecuali Anda memiliki semacam boot loader). Singkatnya, beralih ke mode lawas pasti dipasang dalam mode lawas, buktinya ada di pengelola disk tempat Anda akan melihat MBR bukan disk GPT.
Alex Berry
3

Salah satu metode sederhana adalah dengan melakukan instalasi basis Windows pada mesin yang tidak mendukung EFI, menangkapnya dengan perangkat lunak gambar Anda dan mengembalikannya ke perangkat keras yang sebenarnya.

Pilihan yang baik mungkin untuk membangun instalasi basis Anda di VM. Dalam versi sebelumnya (ver <6) Windows tidak beradaptasi dengan baik untuk dipindahkan dari satu jenis perangkat keras ke yang lain. Dengan versi terbaru Windows selama pengontrol penyimpanan didukung pada gambar, Windows akan melakukan pekerjaan yang cukup baik untuk beradaptasi dengan perangkat keras baru.

Disk Windows install (ver> = 6) pada dasarnya biasanya menyertakan file wim yang pada dasarnya hanyalah gambar dari sistem operasi.

Sakit kepala
sumber
Itulah tepatnya yang akan saya sarankan. Jalankan pengaturan Windows pada sistem lain (BIOS / MBR), kemudian pindahkan disk atau gambarnya ke server tujuan. Jika melakukan boot, maka PnP akan terjadi dan dengan senang hati akan berjalan pada perangkat keras yang berbeda.
Massimo