บูตเซกเตอร์และไดรฟ์หลายตัวทำงานอย่างไร


17

ฉันไม่เข้าใจแนวคิดของบูตเซกเตอร์อย่างเต็มที่ฉันหวังว่าจะมีใครบางคนสามารถเคลียร์สิ่งนี้ให้ฉันได้

หากคุณมีฮาร์ดไดรฟ์สองตัวที่ติดตั้งระบบปฏิบัติการไว้ในแต่ละไดรฟ์แต่ละตัวจะมีบูตเซกเตอร์ของตัวเองหรือไม่? แต่ละไดร์ฟต้องการพาร์ติชั่น MBR หรือไม่?

ฉันมี Linux และ Windows ในสองไดรฟ์แยกกัน ฉันมีปัญหาเมื่อติดตั้ง Linux และด้วงและตอนนี้ฉันตัดสินใจใช้ Windows bootloader เพื่อเริ่มต้น Windows จะกำจัดด้วงหรือไม่เมื่อฉันใช้ / fixmbr หรืออยู่ในส่วนบูตของไดรฟ์อื่นหรือไม่

คำตอบ:


17

คำตอบของ Wil ถูกต้องราง แต่ไม่ถูกต้องทางเทคนิค ใช่ไดรฟ์ไม่จำเป็นต้องมี MBR หากไม่มีหนึ่งคุณจะไม่สามารถบูตจากไดรฟ์นั้นและคุณจะไม่สามารถสร้างพาร์ติชันบนไดรฟ์นั้นได้ แต่...

เทอมมาสเตอร์บูตเรคคอร์ดมักใช้เพื่ออ้างถึงสองสิ่ง - มันถูกต้องเป็นครั้งแรกเท่านั้นและมักใช้ผิดที่สอง:

  1. ที่ตั้งโดยเฉพาะอย่างยิ่งเซกเตอร์ 512 ไบต์แรกของอุปกรณ์จัดเก็บข้อมูลที่แบ่งพาร์ติชัน ("LBA Sector 0") ตำแหน่งนี้เก็บโค้ดบูตโหลดเดอร์ 440 ไบต์แรก (บูตโหลดเดอร์ระดับแรก) และตารางพาร์ติชันหลัก ดูบทความ MBRของ Wikipedia สำหรับรายละเอียดเกี่ยวกับโครงสร้างของ MBR ทั่วไป

  2. รหัสบูตโหลดเดอร์เก็บไว้ในตำแหน่งนั้น ในระบบ BIOS นี่เป็นรหัสแรกที่เรียกใช้งานเมื่อ BIOS บู๊ตจากไดรฟ์ ดูMBRs และ bootstrapping ระบบและตัวโหลดบูตระยะที่หนึ่ง : บนระบบ i386 โค้ดนี้จะเลือกตัวโหลดบูตระดับที่สองซึ่งเก็บไว้ในบันทึกการบูตปริมาณของพาร์ติชันที่ใช้งานอยู่ซึ่งเป็นการบูตจริงของระบบปฏิบัติการ

ปริมาณ Boot Recordหรือพาร์ทิชันบูตเป็นภาคแรกของพาร์ทิชันและเป็นที่ระบบปฏิบัติการติดตั้งพาร์ทิชันที่จะเก็บรหัสร่วมมือหลัก VBR ยังใช้กับอุปกรณ์เก็บข้อมูลที่ไม่ได้แบ่งพาร์ติชัน (ฟลอปปีดิสก์, USB แฟลชไดรฟ์หรือแม้แต่ฮาร์ดไดรฟ์ที่ใช้ในบทบาทที่ไม่ได้แบ่งพาร์ติชัน)

ระบบ Mulitple-boot ใช้ตัวจัดการการบูต (เช่น Grub) ตัวจัดการการบูตวางโค้ด bootloader ของตัวเองลงใน MBR และแสดงเมนูที่ผู้ใช้สามารถเลือกระบบปฏิบัติการที่จะบูต (ในแง่เทคนิคผู้ใช้เลือก bootloader ระดับที่สองที่จะใช้)


ดังนั้นเพื่อตอบคำถามของคุณโดยตรง:

  • ฮาร์ดไดรฟ์สองกับระบบปฏิบัติการที่ติดตั้งในแต่ละแต่ละคนจะมี MBR

    • MBR ทั้งสองจะมีอย่างน้อยหนึ่งพาร์ติชัน
    • แต่ละพาร์ติชันบนฮาร์ดไดรฟ์เหล่านั้นจะมี VBR ของตัวเอง พาร์ติชันที่มีการติดตั้งระบบปฏิบัติการจะจัดเก็บบูตโหลดสเตจสองใน VBR เหล่านั้น พาร์ติชั่นใด ๆ ที่เป็นข้อมูลอย่างเดียว (อาจจะ) ไม่มีรหัสบูตที่ถูกต้องใน VBR
    • หากระบบนี้บู๊ตอย่างน้อยหนึ่ง MBR เหล่านั้นจะมีบูตโหลดเดอร์ระยะแรกที่ถูกต้อง แต่จำเป็นสำหรับไดรฟ์ที่ BIOS พยายามบูตเท่านั้น

  • เมื่อคุณติดตั้ง Linux ลงในไดรฟ์ที่สองของคุณมันอาจจะเขียนบูตโหลดเดอร์ระยะแรกของ Grub ไปยัง MBR ของไดรฟ์ Windows มันอาจได้ยังเขียนบูตขั้นตอนแรกที่จะ MBR ของไดรฟ์ของตัวเอง แต่ถ้า BIOS ไม่เคยพยายามที่จะบูตจากไดรฟ์ Linux คุณจะไม่แจ้งให้ทราบล่วงหน้า ในทำนองเดียวกันเมื่อคุณใช้ / fixmbr Windows จะเขียนบูตโหลดเดอร์ระยะที่หนึ่งบน MBR ของไดรฟ์ระบบ

    • ฉันไม่ทราบจริงๆว่ายูทิลิตี Bootrec.exe ของ Win-7 นั้นจะเขียนไปยัง MBR ของไดรฟ์อื่นหรือไม่ อาจมีความสามารถในการทำเช่นนั้น แต่อาจไม่ใช่การกระทำเริ่มต้น
    • ฉันยังไม่รู้ด้วยว่าตัวติดตั้งของ Ubuntu 9.04 จะติดตั้ง Grub ไปยัง MBR ของไดรฟ์ทั้งสองโดยค่าเริ่มต้นหรือไม่ สามารถทำได้ด้วยมือหากต้องการ ในบางสถานการณ์มันจะเป็นสิ่งที่ดี - ถ้าคุณต้องถอดไดรฟ์ Windows ออกและลองบูตจากไดรฟ์ Linux คุณจะไม่บู๊ตหากโค้ดบูตระยะแรกของ Grub ไม่มีอยู่

ขอบคุณสำหรับคำตอบที่มีรายละเอียดมาก: -) ... ฉันสงสัยอยู่เสมอว่าทำไม MBR จึงถูกใช้สำหรับความหมายที่แตกต่างกันสองแบบและตอนนี้ฉันรู้แล้วฮ่าฮ่า
GiH

1
@GiH ยินดีต้อนรับ ขอบคุณที่ถามคำถามนี้ มันสามารถทำหน้าที่เป็นบทนำพื้นฐานของ MBR & bootloaders สำหรับผู้อ่านในอนาคต
ต้มตุ๋น quixote

คุณมีแหล่งข้อมูลสำหรับ "คำว่า Master Boot Record มักใช้เพื่ออ้างถึงสองสิ่งหรือไม่นั้นเป็นเพียงรายการแรกอย่างถูกต้องและนำไปใช้ผิดในครั้งที่สอง:" ฉันแน่ใจว่ามันถูกต้องและฉันได้อ่านแล้ว ที่ไหนสักแห่ง .. แต่น่าสนใจถ้าคุณมีแหล่งที่มา นอกจากนี้เนื่องจากนี่เป็นคำศัพท์สำหรับ bootloader จึงมีคำศัพท์สำหรับส่วนที่ไม่ใช่ bootloader ของ MBR หรือไม่ และเมื่อพูดถึง GPT GPT จะรวม bootloader และตารางพาร์ติชั่นหรือไม่และคำศัพท์ใดที่แยกความแตกต่างระหว่าง GPT และตารางพาร์ติชั่น
barlop

3

ไดรฟ์ไม่จำเป็นต้องมี MBR อย่างไรก็ตามหากไม่มีหนึ่งไดรฟ์คุณจะไม่สามารถบูตจากไดรฟ์นั้นได้

สำหรับ starters เครื่องจะบู๊ตไปยังดิสก์ที่ BIOS ได้รับการแจ้งให้ทราบ นั่นเป็นดิสก์เดียวที่ต้องการ MBR (นี่คือเครื่องที่ใช้ BIOS เช่นส่วนใหญ่ในตลาดไม่ใช่ EFI)

การมี MBR นั้นโดยทั่วไปจะบอกเครื่องว่าไดรฟ์นั้นสามารถบู๊ตได้ (และไม่คืนค่า "ไม่มีดิสก์หรือดิสก์ผิดพลาด" หรือข้อความที่คล้ายกัน), bootloader จะถูกโหลด

เมื่อโหลด bootloader โดยทั่วไปแล้วมันจะทำตามที่ได้รับคำสั่งซึ่งสามารถโหลด bootloaders อื่น ๆ (เช่น Grub load bootload Windows) หรือระบบปฏิบัติการ - ตัวอย่างเช่นคุณสามารถเลือก drive / partition

ดังนั้นคุณจะต้องมี MBR (และ Bootloader) ในไดรฟ์บูตจริง


ตกลง แต่เป็นไปได้ไหมที่ทั้งสองไดรฟ์ของฉันมี MBR ตั้งแต่ฉันด้วงทำงานมาก่อน โดยทั่วไปสิ่งที่ฉันพยายามคิดก็คือถ้าไดรฟ์ Linux ของฉันสูญเสียพื้นที่ใน MBR เพราะฉันไม่ได้ใช้ด้วงหรือเมื่อฉันติดตั้ง bootloader ของ Windows มันกำจัดด้วงและ MBR หรือไม่? ขออภัยหากคำถามของฉันเป็นความสับสน ...
GIH

1
คุณสามารถมี MBR ได้เพียงอันเดียวเพราะมันไม่ได้เป็นไฟล์มากนัก แต่เป็นที่ตั้ง - ถ้าคุณติดตั้งระบบปฏิบัติการอื่นบนไดรฟ์อื่นมันเป็นไปได้ที่คุณยังคงมีมันอยู่ในไดรฟ์อื่น แต่มันเล็กมาก ฉันจะไม่ต้องกังวลจริงๆ (เรากำลังพูดถึงไม่กี่ร้อยไบต์ (ฉันคิดว่าสูงสุดคือ ~ 500) ถ้าอย่างนั้นบนไดรฟ์ที่มีหลายพันล้านไบต์!) อย่างไรก็ตามเป็นไปได้ว่าคุณยังคงมีไฟล์ด้วง - แต่ก็มีขนาดเล็กมาก
William Hilsum

3
@GiH, re: wasting space - ไม่, MBR ยังมีตารางพาร์ติชันสำหรับไดรฟ์เพื่อให้มีการจองพื้นที่ (ไม่ได้ใช้โดยระบบปฏิบัติการ) ไม่ว่าจะมีการบันทึกการบูตที่ถูกต้องหรือไม่ คุณสามารถคิดว่ามันเป็นค่าใช้จ่ายเล็กน้อยสำหรับระบบไฟล์ของคุณ เมื่อเปรียบเทียบกับความจุฮาร์ดไดรฟ์ที่ทันสมัยปริมาณของพื้นที่ "ที่สูญเปล่า" นั้นเล็กเกินไปที่จะต้องกังวล
ต้มตุ๋น quixote

1

MBR (Master Boot Record) เป็นภาคแรกที่เป็นไปได้ที่จะเขียน มันมีตำแหน่งและขนาดที่แน่นอน (เล็กมาก) ดังนั้นคุณจึงสามารถมี MBR ได้เพียงดิสก์เดียว

MBR เป็นภาคแรกที่อ่านในลำดับการบูตหลังจากโหลดไบออส มันสามารถใช้เพื่อบูตระบบปฏิบัติการเดียวหรือโหลดบูตโหลดเดอร์เช่นด้วงหรือไลโลเพื่อเลือกระบบที่จะโหลด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.