Partisi Sistem Windows dalam HD berbeda dari tempat BIOS mem-boot

2

Ini adalah masalah yang saya selesaikan beberapa waktu lalu dengan perintah bootmgr tanpa rasa sakit dan tanpa kehilangan BCD saya, tetapi cara kerjanya sebelum membuat saya penasaran.

Saya memiliki disk SSD dan disk SATA normal. Saya menginstal W7 pada SSD tetapi, karena saya memiliki FreeDos pada SATA saya, saya pikir installer W7 menggunakan partisi FreeDos untuk menyimpan bootmgr karena melihat itu adalah satu-satunya chainloader yang dapat dibuang, bahkan jika sedang diinstal pada berbeda disk. Yang meninggalkan saya dengan partisi sistem pada partisi SATA FreeDos dan dengan boot patition pada SSD saya ketika W7 dipilih dari menu mgr.

Jika saya boot dari SSD. Apakah ini berarti VBR saya menunjuk ke bootmgr di disk yang berbeda? Apakah itu mungkin?

Alex
sumber

Jawaban:

1

VBR saya menunjuk ke bootmgr di disk yang berbeda?

Tidak. Dengan asumsi partisi MBR (bukan UEFI), entri dalam BCD Anda menunjuk ke direktori \ Windows pada disk yang berbeda.

Tabel partisi di MBR (blok 0 disk, dan bukan bagian dari partisi apa pun) menunjukkan di mana partisi primer berada dan mana yang "aktif". Kode dari MBR memuat blok pertama VBR dari partisi itu dan mentransfer kontrol ke kode itu.

Blok pertama dari kode VBR membaca sisa VBR (untuk NTFS 8 blok). VBR tidak "menunjuk ke" partisi apa pun selain dari dirinya sendiri ... setidaknya, tidak dengan VBR yang pernah saya dengar. Tetapi VBR bervariasi berdasarkan OS dan jenis sistem file, jadi secara teoritis, ini bisa terjadi.

Namun, secara konvensional, kode dari VBR menemukan boot loader OS Anda (bootmgr untuk Windows Vista dan yang lebih baru, ntldr untuk versi Windows yang lebih lama) pada partisi yang sama dengan VBR, memuat beberapa blok pertama, dan mentransfer kontrol ke kode tersebut . bootmgr kemudian memuat sisanya, dan membaca BCD Anda. Entri BCD yang menunjukkan disk dan partisi mana yang memuat OS.

Perhatikan bahwa kode VBR harus memiliki sedikit pengetahuan tentang sistem file pada partisi sendiri. Di Windows itu hanya harus dapat menemukan file dengan nama di direktori root, dan membacanya. Kode dari ntldr atau bootmgr harus dapat melakukan hal yang sama untuk volume boot, tetapi harus memahami subdirektori.

Jamie Hanrahan
sumber
Terima kasih. Jadi, bagaimana saya bisa berakhir dengan partisi sistem saya pada disk yang berbeda? Partisi sistem pada sistem windows menyimpan bootmgr dan partisi boot, kali ini di SSD saya, menyimpan file terakhir yang akan dibaca untuk memulai Windows (ditunjukkan oleh BCD). Satu-satunya hal yang dapat saya pikirkan adalah bahwa sebenarnya BIOS melewatkan SSD saya dan mem-boot SATA. Apakah ada standar yang tersedia untuk mencari info selain dari Wikipedia?
Alex
Menjadi BCD saya di SATA, partisi sistem, maka itu akan menunjuk ke file init pada SSD saya. Jadi ini berarti jika ini terjadi, HD yang benar-benar di-boot dari BIOS adalah SATA, bukan SSD. Apakah saya benar?
Alex
Kedengarannya seolah-olah sistem Anda sudah dikonfigurasikan untuk menemukan MBR pada hard drive Anda, jadi pengaturan Windows membiarkannya begitu saja. Setelah pengaturan Windows dapat membuat partisi sistem, itu bukan kasus khusus untuk meletakkan partisi boot di mana saja. Saya tidak tahu tentang standar, tetapi banyak dari ini adalah barang-barang standar PC warisan akan kembali dekade. Windows spesifik tentu saja dalam berbagai edisi Windows Internals . Ya, drive yang sedang di-boot dari BIOS adalah hard drive, bukan SSD. (Saya membayangkan mereka berdua "SATA"!)
Jamie Hanrahan
Berikut adalah video Channel9 pada urutan boot Vista-dan-kemudian. Itu tidak mencakup semuanya tetapi itu hal yang baik. channel9.msdn.com/shows/Going+Deep/…
Jamie Hanrahan