Linux ไม่สามารถบู๊ตได้ แก้ไข GRUB bootloader การติดตั้ง Grub bootloader จะดาวน์โหลดได้ที่ไหนและจะติดตั้ง Grub ได้อย่างไร

💖 ชอบไหม?แชร์ลิงก์กับเพื่อนของคุณ

ผู้ใช้ระบบปฏิบัติการที่ไม่ใช่ Windows รายใหม่จำนวนมากในปัจจุบันพบกับวลี "bootloader" ด้วยความสงสัยและความสงสัยอย่างมาก มีคำอธิบายที่สมเหตุสมผลอย่างสมบูรณ์สำหรับสิ่งนี้: ผู้ใช้ใหม่ส่วนใหญ่ใช้ Windows เดียวกันในชีวิตประจำวันก่อนที่จะเปลี่ยนไปใช้ระบบปฏิบัติการอื่น ๆ ที่ไม่ธรรมดาในตลาด bootloader ถูกนำไปใช้อย่างโปร่งใสและดั้งเดิมที่สุด แน่นอนว่าสิ่งนี้เพิ่มความสะดวกสบายให้กับผู้ใช้ทั่วไปในระดับหนึ่ง แต่ในขณะเดียวกันก็ลดการทำงานของระบบปฏิบัติการที่เป็นสากลและเป็นที่นิยมอยู่แล้ว ดังนั้นผู้ใช้ทุกคนที่ตัดสินใจให้ความสนใจกับผลิตภัณฑ์อื่น ๆ ของอุตสาหกรรมเทคโนโลยีสารสนเทศควรทำความคุ้นเคยกับ Universal bootloader GRUB อย่างแน่นอน ในอนาคตสิ่งนี้สามารถช่วยเหลือผู้ใช้ได้อย่างมากเมื่อทำงานกับระบบปฏิบัติการหลายระบบที่ติดตั้งในเครื่องเดียว

เครื่องมือสากล
ก่อนอื่น เรามาทำความเข้าใจกับชื่อของ GNU GRUB กันก่อน ตัวย่อนี้แปลจากภาษาอังกฤษแปลว่า "ตัวโหลดหลักแบบรวม" ผู้สร้าง bootloader นี้คือองค์กรไม่แสวงหาผลกำไร "GNU Project" มันมีชื่อเสียงในอุตสาหกรรมเทคโนโลยีสารสนเทศสำหรับซอฟต์แวร์ฟรี โดยพื้นฐานแล้ว GRUB เองจะแสดงเมนูสำหรับเลือกระบบปฏิบัติการที่ต้องการจากรายการระบบที่รองรับซึ่งรวมถึง FreeBSD, Linux และ Solaris GRUB สามารถทำงานร่วมกับระบบปฏิบัติการ Windows ได้ อย่างไรก็ตาม เพื่อที่จะใช้งานระบบดังกล่าวที่ไม่ได้รับการสนับสนุนโดยตรงจากโปรแกรมโหลดบูตที่ระบุ มีคุณลักษณะบางอย่างที่จะกล่าวถึงโดยละเอียดในภายหลัง

การพัฒนาเทคโนโลยี
ความนิยมที่เพิ่มขึ้นอย่างต่อเนื่องของ GRUB ทุกปีเป็นเหตุผลพื้นฐานที่กระตุ้นให้เกิดการพัฒนาและปรับปรุง bootloader อย่างต่อเนื่องในอนาคต เวอร์ชันแรกของบูตโหลดเดอร์ซึ่งเรียกว่า GRUB Legacy ทำหน้าที่ได้อย่างยอดเยี่ยมในการเป็นบูตโหลดเดอร์แบบรวมสำหรับระบบ UNIX อายุการใช้งานที่ยาวนานยังรับประกันได้ด้วยการสนับสนุนอย่างกว้างขวางจากบริษัทที่จริงจังและการกระจายเซิร์ฟเวอร์ แต่เป็นที่น่าสังเกตว่าเหตุการณ์นี้ไม่ได้ส่งผลกระทบต่อการพัฒนาเพิ่มเติมของ bootloader นี้ แต่อย่างใด ด้วยเหตุนี้ผู้ใช้จึงได้รับ GRUB2 เวอร์ชันล่าสุดในขณะนี้ ด้วยการเขียนตั้งแต่เริ่มต้น GRUB2 แทบจะไม่มีคุณสมบัติทั่วไปใดๆ กับ GRUB Legacy ที่ล้าสมัย เนื่องจากเป็น bootloader เริ่มต้นในระบบปฏิบัติการ Ubuntu ตั้งแต่เวอร์ชัน 9.10 ทำให้ GRUB2 หยุดการพัฒนา Legacy เพิ่มเติมโดยสิ้นเชิง ซึ่งได้พิสูจน์ตัวเองแล้วในอดีต ผู้เริ่มต้นจำเป็นต้องเข้าใจตั้งแต่เริ่มต้นว่า GRUB 2 เป็นบูตโหลดเดอร์ที่ซับซ้อนกว่าเมื่อเปรียบเทียบกับเวอร์ชันก่อนหน้า ดังนั้นเพื่อปกป้องผู้ซื้อจากปัญหาและความยากลำบากที่อาจเกิดขึ้น รายละเอียดที่เล็กที่สุดจะระบุไว้ด้านล่าง การทำความเข้าใจจะช่วยให้ผู้ใช้สามารถนำนวัตกรรมทั้งหมดของเวอร์ชันล่าสุดที่มีอยู่มากมายมาใช้ได้อย่างเต็มที่ ซึ่งรวมถึงการสนับสนุนสคริปต์ (ตัวแปร, ฟังก์ชั่น, เงื่อนไข, ลูป), ความสามารถในการเปลี่ยนรูปลักษณ์ของตัวโหลดให้เหมาะกับรสนิยมของผู้ใช้, ความสามารถในการโหลดโมดูลแบบไดนามิกซึ่งช่วยให้คุณขยายฟังก์ชันการทำงานไม่ได้อยู่ที่ขั้นตอนการประกอบ แต่ โดยตรงที่รันไทม์, ความเข้ากันได้กับสถาปัตยกรรมต่างๆ, รองรับการบูต MacOS, การทำงานที่เสถียรกับระบบไฟล์ NTFS, FAT32, FAT16 ด้วยประเภทการติดตั้งข้ามแพลตฟอร์ม ทำให้สามารถติดตั้ง GRUB2 จากสถาปัตยกรรมที่แตกต่างกันได้ นอกจากนี้ หากเกิดปัญหาขึ้น คุณสามารถเข้าสู่เซฟโหมดได้ นอกจากนี้ bootloader เวอร์ชันใหม่ได้แก้ไขข้อผิดพลาดของ GRUB Legacy รุ่นเก่าซึ่งไม่สามารถแก้ไขได้ในตอนแรกเนื่องจากข้อกำหนดความเข้ากันได้แบบย้อนหลัง ในอนาคตภายใต้ชื่อ GRUB เราจะหมายถึง GRUB 2 ซึ่งเราจะเข้าใจอย่างถ่องแท้

ลิโล่
แน่นอนว่าตัวเลือกของระบบปฏิบัติการ bootloaders ไม่ได้จำกัดอยู่เพียง GRUB เพียงอย่างเดียว bootloader ที่คล้ายกันคือ LILI นี่คือบูตโหลดเดอร์สำหรับระบบ Linux ซึ่งยังคงไม่สูญเสียความเกี่ยวข้อง เพื่อสนับสนุน GRUB เดียวกัน ควรสังเกตว่าคุณสมบัติที่โดดเด่นหลายประการที่คู่แข่งยังไม่สามารถอวดได้ LILO รองรับการกำหนดค่าการบูตเพียง 16 รูปแบบ ในขณะที่ GRUB รองรับการกำหนดค่าดังกล่าวได้ไม่จำกัดจำนวน GRUB ยังสามารถบูตผ่านเครือข่ายท้องถิ่นได้ ซึ่งไม่ใช่กรณีของ LILO LILO ไม่มีอินเทอร์เฟซคำสั่งแบบโต้ตอบเหมือนกันซึ่งเป็นความสะดวกที่ผู้ใช้ GRUB เวอร์ชันล่าสุดคุ้นเคยอยู่แล้ว คุณสมบัติทั่วไปเพียงอย่างเดียวของ bootloaders ทั้งสองคือจำเป็นต้องรวบรวมการเปลี่ยนแปลงทั้งหมดที่ทำกับเมนูในแต่ละครั้ง ตัวโหลดบูต Linux ที่เป็นกรรมสิทธิ์ขาดฟังก์ชันการบันทึกอัตโนมัติมานานแล้ว GRUB 2 ไม่สามารถอวดคุณสมบัติที่สะดวกสบายนี้ได้ แม้ว่าเราจะคำนึงถึงความแตกต่างเล็กน้อยนี้ซึ่งไม่สะดวกสำหรับการใช้งานในชีวิตประจำวัน แต่ตัวโหลด LILO ก็พ่ายแพ้ให้กับคู่แข่งหลายจุดในคราวเดียว ด้วยเหตุนี้ GRUB จึงแพร่หลายมากขึ้นในหมู่ผู้ใช้ระบบคอมพิวเตอร์ในบ้าน

การติดตั้ง GRUB: คุณสมบัติกระบวนการ
ขั้นแรก คุณต้องตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Ubuntu บนคอมพิวเตอร์ของคุณหรือในดิสก์สำหรับบูตแล้ว หลังจากสตาร์ทระบบ คุณจะต้องโทรหาเทอร์มินัลโดยใช้คีย์ผสม Ctrl+Alt+F2 จากนั้นคุณจะต้องเขียนคำสั่งต่อไปนี้: - sudo add-apt-repository ppa: cjwatson/grub, - sudo add-get update && sudo add-get install grub 2, - sudo update-grub2 แม้ว่าระบบปฏิบัติการของคุณไม่ใช่ Ubuntu แต่คุณมี Live CD ขั้นตอนจะยังคงเหมือนเดิมโดยมีความแตกต่างเล็กน้อย หลังจากที่คุณบูตจากดิสก์สำหรับบูตนี้ คุณต้องเลือกตัวเลือก "ลองใช้ Ubuntu" ด้วยวิธีนี้ คุณจะรันระบบโดยไม่มีการเปลี่ยนแปลงใดๆ ในคอมพิวเตอร์ของคุณเอง หลังจากนี้คุณจะต้องติดตั้ง GRUB bootloader ต่อไปตามรูปแบบเดียวกันตั้งแต่ขั้นตอนการเรียกเทอร์มินัล หากต้องการตรวจสอบเวอร์ชัน bootloader ที่ติดตั้ง คุณสามารถใช้คำสั่ง grub-install-v คุณสามารถทำได้โดยตรงเมื่อคุณบูต Ubuntu

GRUB: อัลกอริทึมการเริ่มต้น
เมื่อการติดตั้ง GRUB เสร็จสิ้น สิ่งแรกที่ bootloader จะทำคือเปลี่ยนโค้ด MBR เป็นเซกเตอร์ MBR ของตัวเอง ซึ่งมีมาสเตอร์บูตเรกคอร์ดอยู่ ประกอบด้วยรหัส bootloader หลัก (446 ไบต์) ซึ่งเป็นตารางพาร์ติชันที่อธิบายทั้งพาร์ติชันฮาร์ดดิสก์หลักและรอง (64 ไบต์) เนื่องจากภาค MBR มีขนาดเล็ก การเปิดตัว GRUB จึงเกิดขึ้นในสองขั้นตอน ภาค MBR มีลิงค์ไปยังไฟล์การกำหนดค่าซึ่งสามารถอยู่ในฮาร์ดไดรฟ์ใดก็ได้ตามดุลยพินิจของผู้ใช้ มันจะใช้เพื่อกำหนดการโหลดซึ่งจะเริ่มในขั้นตอนที่สอง การตั้งค่าและข้อมูลทั้งหมดสำหรับการดำเนินการ GRUB จะถูกนำมาพิจารณาจากไฟล์กำหนดค่า หากไม่พบไฟล์การกำหนดค่าในขั้นตอนที่สอง กระบวนการดาวน์โหลดจะสิ้นสุดลง ผู้ใช้จะต้องเลือกการกำหนดค่าการบูตด้วยตนเองจากบรรทัดคำสั่ง โครงสร้างการบูตนี้ช่วยให้ GRUB มีความยืดหยุ่นและกำหนดค่าได้สูงเมื่อเปรียบเทียบกับอะนาล็อกอื่น ๆ มากมายที่กระบวนการนี้ลดความซับซ้อนลงให้สูงสุด

คำสั่งคอนโซลที่ใช้กันทั่วไป
ความเป็นไปได้ในการทำงานที่หลากหลายของบูตโหลดเดอร์ GNU GRUB เวอร์ชันล่าสุดความสามารถในการกำหนดค่าและการปรับแต่งจะไม่ทำให้ผู้ใช้เฉยเมย หากต้องการเข้าไปคุณเพียงแค่กดปุ่ม "C" ในขณะที่เมนูบู๊ตปรากฏขึ้น หลังจากนี้สิ่งที่เหลืออยู่คือการป้อนคำสั่งที่จำเป็นให้ถูกต้อง

GRUB หลังการติดตั้ง: การตั้งค่าและซอฟต์แวร์ที่มีประโยชน์
ใน GRUB2 ไฟล์คอนฟิกูเรชันหลักไม่ใช่ /boot/grub/menu.lst แต่เป็น /boot/grub/grub.cfg การแก้ไขไฟล์นี้ไม่มีประโยชน์เลย เมื่อการเปลี่ยนแปลงที่บันทึกไว้ในไฟล์การตั้งค่า /etc/default/grub การเปลี่ยนแปลงนั้นจะถูกสร้างขึ้นใหม่ การปรับแต่งใน /etc/default/grub ส่วนใหญ่จะจำกัดอยู่ที่การเปลี่ยนรายการบูตเริ่มต้นและเวลาแสดงเมนู พารามิเตอร์ GRUB_DEFAULT มีหน้าที่รับผิดชอบในการเปลี่ยนแปลงจุดแรก ค่าของมันระบุหมายเลขรายการในเมนูการบู๊ต เมื่อเลือกรายการอื่น ผู้ใช้จะต้องทราบลำดับในรายการทั่วไป ในการดำเนินการนี้ คุณต้องดูเนื้อหาของไฟล์ /boot/grub/grub.cfg และค้นหาบัญชีที่ต้องการในนั้น มันคุ้มค่าที่จะจดจำกฎการนับเลข รายการแรกกำหนดค่าเป็น 0 รายการที่สองกำหนดค่าเป็น 1 รายการที่สามกำหนดค่าเป็น 2 และต่อๆ ไป พารามิเตอร์ GRUB_TIMEOUT รับผิดชอบต่อความล่าช้าในการแสดงเมนูการบู๊ต ค่าที่กำหนดในเครื่องหมายคำพูดจะระบุจำนวนวินาทีที่หน้าจอเริ่มต้นควรปรากฏขึ้น มีคุณลักษณะที่ยุ่งยากอย่างหนึ่งเมื่อแก้ไขพารามิเตอร์นี้

เมื่อตั้งค่าเป็น "-1" หน้าจอเริ่มต้นจะแสดงจนกว่าผู้ใช้จะเลือกรายการใดรายการหนึ่ง ใน /etc/grub.d ชุดสคริปต์จะค้นหาเคอร์เนลและระบบทั้งหมดที่ติดตั้งบนคอมพิวเตอร์ เมนูการบู๊ตถูกสร้างขึ้นใน grub.cfg มีสองส่วนหลักที่รับผิดชอบในการค้นหาระบบปฏิบัติการและเคอร์เนลอื่น: 30_os-prober และ 10_linux ไฟล์ 40_custom ช่วยให้คุณปรับแต่ง GRUB ได้โดยเพิ่มจุดบูตของคุณเอง สิ่งนี้มีประโยชน์สำหรับการทำงานกับการเริ่มต้นระบบประเภทพิเศษ ควรให้ความสนใจกับความจริงที่ว่าจะต้องลงท้ายด้วยสถานที่ก่อสร้างที่ว่างเปล่าสำหรับการเปลี่ยนแปลงใด ๆ มิฉะนั้นรายการดาวน์โหลดล่าสุดจากข้อเสนอทั้งหมดที่เสนอจะไม่ปรากฏขึ้น มีอีกวิธีที่ง่ายกว่าในการแก้ไข GRUB ในระบบปฏิบัติการ Ubuntu เพื่อจุดประสงค์นี้ เราจำเป็นต้องมียูทิลิตี grub-Customizer เนื่องจากความเรียบง่ายและอินเทอร์เฟซที่ใช้งานง่าย จึงเป็นตัวเลือกที่ดีที่สุดสำหรับการตั้งค่าโปรแกรมโหลดบูตนี้ Grub Tools เหมาะที่สุดสำหรับผู้เริ่มต้นที่ไม่มีประสบการณ์ ในการติดตั้ง คุณต้องเปิดเทอร์มินัลโดยกดคีย์ผสม Ctrl+Alt+T จากนั้นป้อนคำสั่งต่อไปนี้ทีละคำสั่ง: -sudo add-apt-repository ppa:denielrichter2007/grub-customizer, -sudo add- รับการอัปเดต -sudo add- รับการติดตั้งด้วงปรับแต่ง แน่นอนว่าการแปลโปรแกรม Grub-Customizer นั้นไม่ได้มีคุณภาพสูงมากนัก แต่ก็ค่อนข้างเข้าใจง่าย

— การกำหนดค่ารายการ – รายการนี้แสดงการตั้งค่าเมนูเมื่อโหลดระบบปฏิบัติการ ที่นี่คุณสามารถเปลี่ยนลำดับของรายการได้
- การตั้งค่าพื้นฐาน - การเลือกระบบบูตเริ่มต้นตลอดจนกำหนดเวลารอ
— ลักษณะที่ปรากฏ - รายการนี้ช่วยให้คุณสามารถแก้ไขการออกแบบภายนอกของเมนูการบู๊ตได้

นอกเหนือจากการตั้งค่าที่หลากหลายแล้ว ผู้ใช้ควรให้ความสนใจกับซอฟต์แวร์สำหรับการทำงานกับ GRUB อย่างแน่นอน ด้วยการใช้คำสั่งพิเศษ การตั้งค่าและการวินิจฉัย bootloader จะสะดวกสบายยิ่งขึ้น

Super Grub Disk เป็นเครื่องมือที่ง่ายและสะดวกสำหรับการกู้คืน bootloader อย่างรวดเร็ว ใช้งานได้ไม่เพียงกับ LILO และ GRUB เท่านั้น แต่ยังใช้ได้กับ Windows ด้วย สามารถเปิดได้จากฟล็อปปี้ดิสก์ แฟลชไดรฟ์ หรือดิสก์

GParted เป็นตัวแก้ไขพาร์ติชันดิสก์ ทำงานโดยตรงจากดิสก์ เมื่อใช้โปรแกรมนี้ คุณสามารถดำเนินการต่อไปนี้กับพาร์ติชันและระบบไฟล์ได้: การลบ การสร้าง ตรวจสอบ ปรับขนาด การคัดลอก และการย้าย
SystemRescue CD เป็นการแจกจ่าย Linux ที่ออกแบบมาสำหรับการกู้คืนระบบ

ผู้ใช้ที่ไม่ใช่ Windows รายใหม่หลายสิบรายทักทายวลี “bootloader” ด้วยความสงสัยและความกังขาในทุกวันนี้ และมีเหตุผลเชิงตรรกะอย่างแน่นอนสำหรับสิ่งนี้: ผู้เริ่มต้นส่วนใหญ่ใช้ Windows เดียวกันในชีวิตประจำวันก่อนที่จะเปลี่ยนไปใช้ระบบปฏิบัติการอื่นที่ใช้กันทั่วไปน้อยกว่าในตลาด ในนั้น bootloader นี้ถูกนำไปใช้อย่างดั้งเดิมและโปร่งใสที่สุดเท่าที่จะเป็นไปได้ และถึงแม้ว่าสิ่งนี้จะเพิ่มความสะดวกสบายให้กับผู้ใช้โดยเฉลี่ยในระดับหนึ่ง แต่ก็ยังลดการทำงานของระบบปฏิบัติการที่ได้รับความนิยมและเป็นสากลที่สุดอยู่แล้วด้วย ดังนั้นทุกคนที่ตัดสินใจให้ความสนใจกับผลิตภัณฑ์อื่น ๆ ของอุตสาหกรรมไอทีควรทำความคุ้นเคยกับ Universal bootloader GRUB ซึ่งในอนาคตจะช่วยในการทำงานกับระบบปฏิบัติการหลายระบบที่ติดตั้งบนคอมพิวเตอร์เครื่องเดียวได้อย่างมาก

เครื่องมือสากลสำหรับระบบที่ไม่ใช่สากล

ก่อนอื่นเรามาเริ่มด้วยชื่อ GNU GRUB กันก่อน คำย่อจากภาษาอังกฤษนี้แปลว่า "main unified bootloader" ผู้สร้างคือองค์กรไม่แสวงหาผลกำไร "โครงการ GNU" ซึ่งมีชื่อเสียงในด้านไอทีจากซอฟต์แวร์ที่เผยแพร่อย่างเสรี GRUB เองจะแสดงเมนูสำหรับเลือกวิธีการบูตระบบปฏิบัติการที่ผู้ใช้ต้องการจากรายการระบบที่รองรับทั้งหมด:

  • ลินุกซ์.
  • ฟรีBSD.
  • โซลาริส

ในกรณีนี้ GRUB จะสามารถทำงานได้แม้กับ Windows อย่างไรก็ตามสำหรับการเปิดตัวระบบดังกล่าวที่ Bootloader ไม่รองรับโดยตรง มีความแตกต่างพิเศษที่เราจะศึกษารายละเอียดและรายละเอียดทั้งหมดในภายหลังเล็กน้อย

เส้นทางการพัฒนาเทคโนโลยี

ความนิยมที่เพิ่มขึ้นอย่างต่อเนื่องของ GRUB เป็นเหตุผลพื้นฐานที่กระตุ้นให้เกิดการพัฒนาและปรับปรุง bootloader อย่างต่อเนื่องในอนาคต bootloader เวอร์ชันแรกสุดที่เรียกว่า GRUB Legacy ยังคงทำงานได้ดีกับงานของ bootloader แบบรวมสำหรับระบบที่คล้าย UNIX การสนับสนุนอย่างกว้างขวางจากบริษัทที่จริงจัง (เช่น RedHat และ Novell) และการกระจายเซิร์ฟเวอร์ทำให้มั่นใจได้ว่าจะยังคงมีอยู่ต่อไปโดยทั่วไป

อย่างไรก็ตามแม้สถานการณ์นี้จะไม่ส่งผลกระทบใด ๆ ต่อการปรับปรุง bootloader อีกต่อไปเนื่องจากผู้ใช้ได้รับ GRUB 2 เวอร์ชันล่าสุดในขณะนี้ เมื่อเขียนใหม่ตั้งแต่ต้น GRUB 2 แทบจะไม่มีอะไรเหมือนกันกับ GRUB Legacy ที่ล้าสมัย ยกเว้นชื่อตัวเอง วันนี้มีการใช้โดยค่าเริ่มต้นตั้งแต่เวอร์ชัน 9.10 ของระบบปฏิบัติการ Ubuntu GRUB ของการแก้ไขครั้งที่สองเนื่องจากโครงสร้างขั้นสูงและทรงพลังยิ่งขึ้นได้หยุดการพัฒนา Legacy เพิ่มเติมโดยสิ้นเชิงซึ่งได้พิสูจน์ตัวเองแล้วในอดีตที่ผ่านมา

อย่างไรก็ตามตั้งแต่เริ่มต้นผู้เริ่มต้นควรเข้าใจว่า GRUB 2 เป็นบูตโหลดเดอร์ที่ซับซ้อนกว่าเมื่อเปรียบเทียบกับเวอร์ชันก่อนหน้า ดังนั้นเพื่อปกป้องผู้ใช้จากปัญหาและปัญหาที่อาจเกิดขึ้น เราจะอธิบายรายละเอียดที่เล็กที่สุดทั้งหมดด้านล่างอย่างเรียบง่ายและละเอียด ความเข้าใจในเรื่องนี้จะช่วยให้คุณใช้ประโยชน์จากนวัตกรรมทั้งหมดในเวอร์ชันล่าสุดได้อย่างเต็มที่ และยังมี บางส่วน:

  • รองรับสคริปต์ (รอบ เงื่อนไข ตัวแปร และฟังก์ชัน)
  • อินเทอร์เฟซแบบกราฟิกเพิ่มความสามารถในการเปลี่ยนรูปลักษณ์ของ bootloader อย่างยืดหยุ่นเพื่อให้เหมาะกับรสนิยมส่วนบุคคลของผู้ใช้ (GRUB 2 สามารถเปลี่ยนจากโต๊ะขาวดำเป็นหน้าต่างหลากสีที่มีสไตล์ได้อย่างง่ายดาย)
  • ความเป็นไปได้ของการโหลดโมดูลแบบไดนามิก สิ่งนี้จะช่วยให้คุณสามารถขยายฟังก์ชันการทำงานได้ไม่ใช่ในขั้นตอนการประกอบ แต่โดยตรงระหว่างการดำเนินการ
  • เข้ากันได้กับสถาปัตยกรรมที่แตกต่างกัน
  • เพิ่มการรองรับการโหลด Mac OS
  • เพิ่มการทำงานที่เสถียรกับระบบไฟล์เช่น: FAT16, FAT32, เอ็นทีเอฟเอสเวอร์ชันใดก็ได้ ต่อ, เอ็กซ์เอฟเอสและ ไอเอสโอ
  • ประเภทการติดตั้งข้ามแพลตฟอร์มจะทำให้สามารถติดตั้ง GRUB2 จากสถาปัตยกรรมอื่นได้
  • ขอแนะนำเซฟโหมดในกรณีที่เกิดปัญหา
  • แก้ไขข้อผิดพลาดจาก GRUB Legacy เก่าที่ไม่สามารถแก้ไขได้ในตอนแรกเนื่องจากข้อกำหนด

ทุกคนเคยได้ยินเกี่ยวกับ LILO บ้างไหม?

แน่นอนว่าตัวเลือกของผู้ใช้ในบรรดาตัวโหลดระบบปฏิบัติการไม่ได้ จำกัด อยู่ที่ GRUB เพียงอย่างเดียว อะนาล็อกที่คล้ายกันคือ LILO - ตัวโหลดเริ่มต้นของ Linux (LInux LOader) ซึ่งยังคงไม่สูญเสียความเกี่ยวข้องไปโดยสิ้นเชิงอย่างไรก็ตามในความโปรดปรานของ GRUB นั้นมีความโดดเด่นหลายประการ ควรคำนึงถึงคุณสมบัติต่างๆ ซึ่งคู่แข่งโดยตรงไม่สามารถอวดอ้างได้อย่างแน่นอน:

  • LILO รองรับการกำหนดค่าการบูตเพียง 16 รูปแบบ ในขณะที่ GRUB รองรับการกำหนดค่าดังกล่าวได้ไม่จำกัดจำนวน
  • GRUB สามารถบูตผ่านเครือข่ายท้องถิ่นซึ่งไม่สามารถพูดถึง LILO ได้
  • ในที่สุด LILO ไม่มีอินเทอร์เฟซคำสั่งแบบโต้ตอบแบบเดียวกับที่ผู้ใช้ GRUB เวอร์ชันล่าสุดคุ้นเคยมานานแล้ว

คุณลักษณะทั่วไปเพียงอย่างเดียวของตัวโหลดทั้งสองตัวคือจำเป็นต้องรวบรวมการเปลี่ยนแปลงทั้งหมดที่ทำกับเมนูในแต่ละครั้ง ฟังก์ชั่นการบันทึกอัตโนมัติขาดหายไปจาก bootloader Linux ที่เป็นกรรมสิทธิ์มานานแล้ว GRUB 2 ยังไม่มีคุณสมบัติที่สะดวกสบายเช่นนี้ แต่ถึงแม้จะคำนึงถึงความแตกต่างเล็กน้อยนี้ซึ่งไม่สะดวกสำหรับการใช้งานในชีวิตประจำวัน LILO ก็ยังด้อยกว่าคู่แข่งในหลาย ๆ ประเด็นซึ่งทำให้ผู้ใช้คอมพิวเตอร์ที่บ้านแพร่หลายมากขึ้น

การติดตั้ง GRUB: ความแตกต่างและรายละเอียดทั้งหมดของกระบวนการ

ตั้งแต่เริ่มต้น ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Ubuntu หรือมีดิสก์สำหรับบูต (LiveCD) ไว้แล้ว หลังจากสตาร์ทระบบ คุณจะต้องเรียกเทอร์มินัลโดยใช้คีย์ผสม Ctrl+Alt+F2 จากนั้นป้อนคำสั่งต่อไปนี้:

Sudo add-apt-repository ppa:cjwatson/grub,

Sudo add-get อัปเดต && sudo add-get ติดตั้ง grub2

Sudo อัปเดต-grub2

และแม้ว่าคุณจะไม่ได้ติดตั้ง Ubuntu แต่มี LiveCD ขั้นตอนก็ยังคงเหมือนเดิมโดยมีข้อแตกต่างเพียงเล็กน้อยเท่านั้น หลังจากบูตจากสิ่งนี้ ให้เลือกตัวเลือก “ลองใช้ Ubuntu” ด้วยวิธีนี้ คุณจะเริ่มระบบโดยไม่มีการเปลี่ยนแปลงใดๆ ในคอมพิวเตอร์ของคุณ หลังจากนั้นให้ติดตั้ง GRUB boot loader ต่อไปในลักษณะเดียวกันจากขั้นตอนการเรียกเทอร์มินัล

คุณสามารถตรวจสอบเวอร์ชั่น bootloader ที่ติดตั้งด้วยคำสั่ง ด้วงติดตั้ง -vเช่นเดียวกับโดยตรงระหว่างการบูต Ubuntu

อัลกอริธึมการเริ่มต้น GRUB

เมื่อการติดตั้ง GRUB เสร็จสิ้น บูตเดอร์จะเปลี่ยนรหัส MBR เป็นของตัวเองก่อน MBR เป็นเซกเตอร์ที่มีมาสเตอร์บูตเรคคอร์ด (จากภาษาอังกฤษประกอบด้วย:

  • รหัส bootloader หลัก (446 ไบต์);
  • ตารางพาร์ติชั่นที่มีคำอธิบายทั้งพาร์ติชั่นหลักและพาร์ติชั่นรองของฮาร์ดดิสก์ (64 ไบต์)

เนื่องจากภาค MBR มีขนาดที่เล็ก การเปิดตัว GRUB จึงแบ่งออกเป็นสองขั้นตอนทั่วไป:

  1. MBR มีลิงก์ไปยังไฟล์การกำหนดค่า (ซึ่งสามารถอยู่ในฮาร์ดไดรฟ์ใดก็ได้ ขึ้นอยู่กับดุลยพินิจของผู้ใช้) ด้วยเหตุนี้เองจึงจะกำหนดขั้นตอนการโหลดทั้งหมดโดยเริ่มจากขั้นตอนที่สอง
  2. ไฟล์การกำหนดค่าคำนึงถึงการตั้งค่าและข้อมูลทั้งหมดที่จำเป็นสำหรับ GRUB ในการทำงาน หากไม่พบไฟล์การกำหนดค่าในขั้นตอนที่สอง กระบวนการบู๊ตจะสิ้นสุดลง และผู้ใช้จะต้องเลือกการกำหนดค่าการบู๊ตด้วยตนเองจากบรรทัดคำสั่ง

โครงสร้างการบูตนี้ช่วยให้ GRUB สามารถกำหนดค่าได้อย่างกว้างขวางและยืดหยุ่นกว่าอะนาล็อกอื่น ๆ ซึ่งกระบวนการนี้ถูกทำให้ง่ายขึ้นจนมีขนาดกะทัดรัดสูงสุด

คำสั่งคอนโซลที่ใช้บ่อยที่สุด

ขอบเขตความเป็นไปได้ในการทำงานในโหมดคอนโซลของ GNU GRUB เวอร์ชันล่าสุดความสามารถในการตั้งค่าและการกำหนดค่าจะไม่ทำให้ผู้ใช้เฉยเมย เพื่อที่จะเข้าไปเพียงกดปุ่ม "C" ในขณะที่เมนูการบู๊ตปรากฏขึ้นหลังจากนั้นสิ่งที่คุณต้องทำคือป้อนคำสั่งที่คุณต้องการอย่างถูกต้อง:

ทีมคำอธิบายตัวอย่างอินพุตคอนโซล
LSคำสั่งสากลสำหรับการทำงานกับรายการฮาร์ดไดรฟ์และพาร์ติชัน สามารถใช้เพื่อแสดงเนื้อหาของโฟลเดอร์ls /boot/grub
การใช้งานจะให้ข้อมูลที่ครบถ้วนเกี่ยวกับส่วนใดส่วนหนึ่งอย่างแน่นอน ซึ่งจะระบุประเภทของระบบไฟล์, ป้ายกำกับ, UUID รวมถึงวันที่ของการเปลี่ยนแปลงครั้งล่าสุด
แมวแสดงข้อมูลเกี่ยวกับเนื้อหาของไฟล์เฉพาะcat /path/ชื่อไฟล์
ลินุกซ์อะนาล็อกของคำสั่งเคอร์เนล GRUB จากเวอร์ชันเก่าที่ดีซึ่งช่วยให้คุณสามารถโหลดเคอร์เนล Linux ที่ระบุได้

ไฟล์เคอร์เนลลินุกซ์

option1=ค่า

ตัวเลือกที่ 2 ตัวเลือกที่ 3

ลูกโซ่โหลดเดอร์ถ่ายโอนการควบคุมการบูตไปยัง bootloader อื่นตลอดสาย bootloader จะถูกค้นหาโดยเฉพาะในพาร์ติชันที่ระบุว่าเป็นรูท (แน่นอนระบุไฟล์ปฏิบัติการเฉพาะ)

chainloader /path/ชื่อไฟล์

รากเมื่อใช้คำสั่งโดยไม่มีพารามิเตอร์ใด ๆ ผู้ใช้จะได้รับข้อมูลเกี่ยวกับพาร์ติชันรูทตลอดจนประเภทของระบบไฟล์ในนั้นราก
โดยทั่วไปน้อยกว่า (เนื่องจากความเป็นไปได้ของการดำเนินการที่ไม่ถูกต้อง) มันถูกใช้เพื่อถ่ายโอนรูทไปยังพาร์ติชันอื่น

*,* - หมายเลขดิสก์และหมายเลขพาร์ติชันตามลำดับ

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

ตั้งค่า root= (hd*,*)

*,* - หมายเลขดิสก์และหมายเลขพาร์ติชันตามลำดับ

ค้นหา

คำสั่งเพื่อค้นหา UUID ส่วน ป้ายกำกับ หรือไฟล์เฉพาะ ปุ่มต่อไปนี้ใช้เพื่อตั้งค่าพารามิเตอร์การค้นหา:

  • คุณ (หรือ --fs-uuid) - ค้นหาพาร์ติชันด้วย UUID
  • l (หรือ --label) - ค้นหาตามป้ายกำกับส่วน
  • f (หรือ --file) - ค้นหาไฟล์เฉพาะ
  • n (หรือ --no-floppy) - ข้ามเมื่อตรวจสอบฟล็อปปี้ดิสก์
  • s (หรือ --set) - ตั้งค่าส่วนที่พบเป็นค่าของตัวแปรที่ระบุ

คำสั่งจะมีประโยชน์หากการกำหนดหมายเลขของดิสก์และพาร์ติชันผิดพลาด ซึ่งเป็นเหตุผลว่าทำไมคำสั่ง set root จึงไม่ไปที่ใดเลยหรือไปยังพาร์ติชันผิดของดิสก์ที่ไม่ถูกต้อง

ค้นหา -u uuid_of_the_partition

ค้นหา -l ป้ายกำกับพาร์ติชัน

ค้นหา -f /path/filename

lsfontsแสดงรายการแบบอักษรที่ดาวน์โหลดในปัจจุบันlsfonts
ช่วยใช้เพื่อแสดงรายการที่มีอยู่ทั้งหมดช่วย
หรือเพื่อส่งออกคำสั่งที่เริ่มต้นด้วยการผสมอักขระบางตัว

help s - แสดงความช่วยเหลือสำหรับคำสั่งทั้งหมดที่ขึ้นต้นด้วย s

help set - แสดงความช่วยเหลือเกี่ยวกับคำสั่ง set

terminal_output.consoleเปลี่ยนเป็นสีที่แสดงเป็นขาวดำterminal_output.console
ภาพพื้นหลัง

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

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

background_image /path/ชื่อไฟล์

บูตบูตคอมพิวเตอร์ของคุณบูต
รีบูตเพื่อรีสตาร์ทคอมพิวเตอร์รีบูต
ปิดคอมพิวเตอร์หยุด

หลังการติดตั้ง GRUB: การตั้งค่าและซอฟต์แวร์ที่มีประโยชน์

ไฟล์การกำหนดค่าหลักใน GRUB2 ไม่ใช่ไฟล์การกำหนดค่าหลักซึ่งต่างจาก Legacy รุ่นก่อนหน้า /boot/ด้วง/menu.lstและแล้ว /boot/ด้วง/grub.cfgอย่างไรก็ตาม ไม่มีประโยชน์ในการแก้ไขโดยตรง - มันจะถูกสร้างขึ้นพร้อมกับการเปลี่ยนแปลงที่บันทึกไว้ในไฟล์การตั้งค่า /etc/default/grub และในไดเร็กทอรีสคริปต์ /etc/grub.d

ใน /etc/default/grubการปรับแต่งส่วนใหญ่จะจำกัดอยู่ที่การเปลี่ยนรายการบูตเริ่มต้นและ/หรือเวลาแสดงเมนู:

  • พารามิเตอร์ที่รับผิดชอบจุดแรกของการเปลี่ยนแปลงคือ GRUB_DEFAULTค่าที่ระบุจำนวนของรายการในเมนูการบู๊ต เมื่อเลือกรายการอื่น ๆ ผู้ใช้จะต้องทราบลำดับจากรายการทั่วไป (ในการดำเนินการนี้คุณต้องดูเนื้อหา /boot/ด้วง/grub.cfgและค้นหารายการที่ต้องการในบัญชี) ในเวลาเดียวกันอย่าลืมกฎการกำหนดหมายเลข: รายการแรกถูกกำหนดให้เป็นค่า 0 รายการที่สอง - 1 รายการที่สาม - 2 และอื่น ๆ
  • พารามิเตอร์ที่รับผิดชอบในการชะลอการแสดงเมนูการบู๊ตคือ GRUB_TIMEOUTซึ่งค่าที่กำหนดในเครื่องหมายคำพูดหมายถึงจำนวนวินาทีที่หน้าจอเริ่มต้นนี้จะปรากฏขึ้น มีคุณลักษณะที่ยุ่งยากอย่างหนึ่งในการแก้ไขพารามิเตอร์นี้: เมื่อตั้งค่าเป็น "-1" โปรแกรมรักษาหน้าจอจะหยุดทำงานจนกว่าผู้ใช้จะเลือกรายการใด ๆ

ชุดสคริปต์ใน /etc/grub.dค้นหาระบบและเคอร์เนลที่ติดตั้งทั้งหมดบนคอมพิวเตอร์โดยสร้างเมนูการบู๊ตใน grub.cfg สองคนหลักมีหน้าที่ค้นหาเคอร์เนลและระบบปฏิบัติการอื่น: 10_linux และ 30_os-prober ไฟล์ 40_custom ช่วยให้คุณสามารถแก้ไข GRUB ได้โดยการเพิ่มรายการบูตของคุณเองซึ่งมีประโยชน์สำหรับการทำงานกับการเริ่มต้นระบบประเภทพิเศษ (โปรดทราบว่าการเปลี่ยนแปลงใด ๆ จะต้องลงท้ายด้วยบรรทัดว่าง มิฉะนั้นรายการบูตสุดท้ายจากทั้งหมดที่เสนอจะ เพียงแต่ไม่ปรากฏให้เห็น)

อย่างไรก็ตาม วิธีที่ง่ายกว่าในการแก้ไข GRUB บนระบบ Ubuntu คือยูทิลิตี้ Grub-Customizer เนื่องจากความเรียบง่ายและอินเทอร์เฟซที่ใช้งานง่าย นี่คือตัวเลือกที่ดีที่สุดสำหรับการตั้งค่า bootloader เหมาะที่สุดสำหรับผู้เริ่มต้นที่ไม่มีประสบการณ์ หากต้องการติดตั้ง ให้เปิดเทอร์มินัล (Ctrl+Alt+T) จากนั้นป้อนคำสั่งต่อไปนี้ทีละคำสั่ง:

Sudo add-apt-repository ppa:danielrichter2007/grub-customizer,

Sudo add-get อัปเดต

Sudo add-get ติดตั้งด้วงปรับแต่ง

และถึงแม้ว่าการแปลโปรแกรม Grub-Customizer จะเป็นที่ต้องการอย่างมาก แต่ก็เข้าใจได้ง่ายมาก:

  • การกำหนดค่ารายการ- เมื่อระบบบูท ที่นี่ลำดับของคะแนนเปลี่ยนไป
  • การตั้งค่าพื้นฐาน- การเลือกระบบที่จะบู๊ตตามค่าเริ่มต้นพร้อมทั้งกำหนดเวลารอ
  • ลักษณะที่ปรากฏ - แก้ไขลักษณะที่ปรากฏของเมนูการบู๊ต

นอกเหนือจากการตั้งค่าที่หลากหลายแล้ว ผู้ใช้ควรให้ความสนใจกับซอฟต์แวร์ที่ได้รับการพิสูจน์แล้วเป็นอย่างดีสำหรับการทำงานกับ GRUB ซึ่งการกำหนดค่าและการวินิจฉัยจะสะดวกสบายยิ่งขึ้น:

  • ดิสก์ซุปเปอร์ด้วง- เครื่องมือที่ง่ายและสะดวกสำหรับการกู้คืน bootloader อย่างรวดเร็ว ในเวลาเดียวกันมันสามารถทำงานได้ไม่เพียงกับ GRUB และ LILO เท่านั้น แต่ยังใช้ได้กับ Windows อีกด้วย ทำงานจากซีดี แฟลชไดรฟ์ หรือฟล็อปปี้ดิสก์
  • Gแยกส่วน- ตัวแก้ไขพาร์ติชันดิสก์ เปิดตัวโดยตรงจากซีดี ด้วยความช่วยเหลือนี้ คุณสามารถดำเนินการกับพาร์ติชันและระบบไฟล์ได้ เช่น การสร้าง การลบ การปรับขนาด ตรวจสอบ การย้าย และการคัดลอก
  • ซีดีกู้ภัยระบบ- การกระจาย Linux ที่ออกแบบมาเป็นพิเศษสำหรับการกู้คืนระบบ
  • ทดสอบดิสก์- ยูทิลิตี้ที่ช่วยให้คุณวินิจฉัยและกู้คืนทั้งพาร์ติชันเดี่ยวและดิสก์สำหรับบูตทั้งหมด

bootloader จัดการกับ Windows OS อย่างไร

น่าเสียดายที่ GRUB ไม่สามารถบูต Windows x86 ได้โดยตรงไม่ว่าด้วยวิธีใดก็ตาม (รุ่น 64 บิตก็ไม่มีข้อยกเว้น) ซึ่งเป็นสาเหตุที่จำเป็นต้องสร้างกลไกลูกโซ่การเปิดตัวที่เหมาะสม เมื่อต้องการทำเช่นนี้ในไฟล์กำหนดค่า grub.cfgคุณต้องเพิ่มคำสั่งเฉพาะหลายบรรทัด:

หัวข้อ Windows,

รูทโนเวอร์ริฟาย (hd*,*),

เชนโหลดเดอร์ +1,

ตัวอย่างและคำอธิบายโดยละเอียดของอันหลังได้รับไว้ในตารางคำสั่งคอนโซล ตอนนี้กรณีที่ใช้งานได้จริงมาถึงแล้วเมื่อมันจะมีประโยชน์ในที่ทำงาน อย่างไรก็ตาม ก่อนหน้านี้มีบรรทัดสองสามบรรทัดที่มีความสำคัญไม่น้อยสำหรับการโหลด Windows:

  • รูตโนเวอร์ริฟาย (hd*,*)- อะนาล็อกเดียวกัน ตั้งราก- แจ้ง GRUB เกี่ยวกับตำแหน่งของพาร์ติชันซึ่งมีส่วนถัดไปของรหัสการบูตอยู่ แต่ไม่ได้ติดตั้งไว้ (ด้วยเหตุผลที่ชัดเจนว่า GRUB ไม่สามารถทำได้) โปรดทราบส่วนนั้นอีกครั้ง (เอชดี*,*)- นี่คือหมายเลขดิสก์และหมายเลขพาร์ติชันตามลำดับที่ติดตั้ง Windows
  • ทำให้เกิดปฏิกิริยา- คำสั่งให้สถานะการบูตพาร์ติชันรูทที่ระบุ

ตอนนี้ทีมเดียวกัน. เชนโหลดเดอร์ +1,ซึ่งจะถ่ายโอนการควบคุมการบูตเพิ่มเติมทั้งหมดไปยังบูตโหลดเดอร์ของ Windows โดยตรง

ในที่สุดคำสั่งการบูตขั้นสุดท้ายจะเริ่มการบูตหลังจากนั้นคุณสามารถทำงานในระบบปฏิบัติการที่เลือกได้อย่างปลอดภัย

นอกจากนี้ยังเกิดขึ้นว่าไม่ได้ติดตั้ง Windows รุ่นใดรุ่นหนึ่ง แต่มีรุ่นสองรุ่นขึ้นไปในฮาร์ดไดรฟ์ จากนั้นดำเนินการเปิดใช้งานอย่างเสถียรโดยไม่มีคำสั่งซ่อน/แสดงเพิ่มเติม ( ซ่อน/ยกเลิกการซ่อน) ส่วนต่างๆ นั้นไม่สมจริงเลย สิ่งที่สำคัญที่สุดคือหากไฟล์การกำหนดค่า GRUB ระบุการซ่อนพาร์ติชันใด ๆ ของไดรฟ์ Windows ก็จะไม่สามารถอ่านได้ และหากมองเห็นพาร์ติชันก็เป็นไปได้ที่จะบูตจากพาร์ติชันนั้น

หากคุณมีระบบปฏิบัติการหลายระบบ ขั้นแรกให้ตัดสินใจว่าคุณต้องการบูตอินสแตนซ์ใด จากนั้นตรวจสอบตำแหน่งที่แน่นอน - คุณจำเป็นต้องรู้ว่ามีการติดตั้งพาร์ติชันใดของฮาร์ดไดรฟ์ ตัวอย่างเช่น มี Windows สองเวอร์ชันที่แตกต่างกันซึ่งอยู่ในพาร์ติชั่นแรกและพาร์ติชั่นที่สองของไดรฟ์หนึ่งตามลำดับ และผู้ใช้จำเป็นต้องดาวน์โหลดอันที่สอง เมื่อต้องการทำเช่นนี้ คุณต้องทำการเปลี่ยนแปลงต่อไปนี้ในไฟล์ menu.lst:

หัวข้อ Windows,

ยกเลิกการซ่อน (hd0,1)

รูตโนเวอร์ริฟาย(hd0,1),

เชนโหลดเดอร์ +1,

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

ติดตั้ง GRUB ใหม่ในกรณีที่เกิดปัญหาร้ายแรง

แม้ในกรณีที่เกิดปัญหาทางเทคนิค การกู้คืน GRUB ก็เป็นงานง่ายๆ โดยสิ้นเชิง ขั้นแรก ดาวน์โหลดการติดตั้ง LiveCD เปิดเทอร์มินัลโดยใช้แป้นพิมพ์ลัด CTRL+อัลที+ต.

หลังจากนั้นให้ป้อนคำสั่งทีละรายการ:

  • sudo grub-install /dev/sda - ติดตั้ง GRUB ลงใน MBR โดยตรง (sda คือดิสก์สำหรับบูต)
  • sudo update-grub - ค้นหารายการบูตอื่น ๆ บนฮาร์ดไดรฟ์ (เช่น Windows)

ตอนนี้สิ่งที่เหลืออยู่คือการรีสตาร์ทคอมพิวเตอร์และตรวจสอบให้แน่ใจว่า bootloader ที่ติดตั้งใหม่นั้นทำงานได้อย่างสมบูรณ์

คำถามเกี่ยวกับการป้องกันลูปการรีบูต

ความต้องการระบบป้องกันดังกล่าวที่รวมอยู่ในบูตโหลดเดอร์ของ GRUB จะปรากฏขึ้นเมื่อขนาดของบันทึกที่อยู่ในไดเร็กทอรี /var/log เติบโตขึ้นเป็นโวลุ่มที่ยอมรับไม่ได้เนื่องจากการบันทึกข้อมูลที่ไม่สามารถควบคุมได้ ระบบปฏิบัติการปกติจะให้บริการพิเศษที่เก็บถาวรและล้างบันทึกเหล่านี้โดยอัตโนมัติ ดังนั้นในกรณีส่วนใหญ่ ผู้ใช้ไม่จำเป็นต้องเสียเวลาควบคุมระดับเสียงเลย

อย่างไรก็ตาม บริการเดียวกันนี้จะเริ่มต้นหลังจากที่ระบบปฏิบัติการบูทแล้วเท่านั้น ก่อนหน้านี้ ขนาดของไฟล์บันทึกจะไม่ถูกตรวจสอบโดยสิ่งใดเลย ซึ่งเป็นเหตุผลว่าทำไมในกรณีที่ระบบล่มโดยไม่คาดคิดและการรีบูตเพิ่มเติม บันทึกจะมีปริมาณเพิ่มขึ้นเท่านั้น และการเติบโตที่ไม่สามารถควบคุมได้นี้จะดำเนินต่อไปตราบเท่าที่การรีบูตครั้งล่าสุดเนื่องจากความล้มเหลวในระบบ ต่อจากนั้นทั้งหมดนี้สามารถนำไปสู่การเติมพาร์ติชั่นที่มีไดเร็กทอรี /var/log อยู่โดยสมบูรณ์ ซึ่งอาจส่งผลให้ระบบค้างและทำให้ไม่สามารถเริ่มโหมดการกู้คืนได้

จากสถานการณ์ภัยพิบัตินี้ที่ระบบการป้องกันที่รวมอยู่ใน GRUB จะบันทึกจากการรีบูตแบบวนโดยแสดงเมนู GRUB "ค้าง" เพื่อรอการแทรกแซงของผู้ใช้อย่างชัดเจน การป้องกันจะขึ้นอยู่กับค่าของตัวแปร recordfail ที่ระบุในสคริปต์ /boot/grub/grub.cfg ในระหว่างการบู๊ตแต่ละครั้งจะมีการติดตั้งเป็น บันทึกล้มเหลว=1และในขั้นตอนการบูตครั้งสุดท้าย ระบบจะรีเซ็ตเป็น บันทึกล้มเหลว=0- และหากไม่เกิดการรีเซ็ตดังกล่าว การโหลดอัตโนมัติจะถูกป้องกันโดยสมบูรณ์ และการป้องกัน GRUB เดียวกันจะถูกเปิดใช้งาน

เมื่อต้องการทำเช่นนี้ ใน /etc/defaul/grub เราจะค้นหาตัวแปร GRUB_RECORDFAIL_TIMEOUTและกำหนดค่าจำนวนวินาทีในระหว่างที่เมนู GRUB จะรอการแทรกแซงของผู้ใช้หากไม่ได้รีเซ็ตบันทึกล้มเหลวจาก 1 เป็น 0 หลังจากนั้นเราจะบันทึกการเปลี่ยนแปลงด้วยคำสั่ง sudo อัปเดตด้วงดังนั้นจึงปิดใช้งานการป้องกันการรีบูตแบบวนซ้ำ

ใครบ้างที่อาจได้รับประโยชน์จากสิ่งนี้? เฉพาะสถานีและเซิร์ฟเวอร์ที่ไม่มีแป้นพิมพ์สำหรับอินพุต/เอาต์พุตข้อมูล หากไม่มีปัญหาดังกล่าว การบูตระบบโดยทั่วไปจะเป็นไปไม่ได้ กรณีของการบูตลูปไม่ได้เกิดขึ้นบ่อยนักและส่วนใหญ่เกิดขึ้นเนื่องจากปัญหาด้านพลังงานหรือข้อบกพร่องของซอฟต์แวร์

ถอนการติดตั้ง GRUB และกลับสู่ Windows: รวดเร็ว ง่ายดาย และไม่ลำบาก

หากมีคำถามเกิดขึ้นว่า "จะลบ GRUB และปล่อยให้ bootloader ของระบบปฏิบัติการอื่นได้อย่างไร" ก่อนอื่นผู้ใช้จะต้องใช้ดิสก์/แฟลชไดรฟ์สำหรับการติดตั้ง ลองดูทุกสิ่งโดยใช้ตัวอย่างง่ายๆ: ผู้ใช้ลบ Linux ออกจากคอมพิวเตอร์ของเขาโดยเหลือเพียง Windows ในตอนท้าย แต่ไม่สามารถโหลดได้เนื่องจากข้อผิดพลาด ข้อผิดพลาดด้วง- เพื่อแก้ไขปัญหานี้อย่างสมบูรณ์ คุณต้องคืนค่า bootloader ของ Windows x86/64 บิต:

  1. เราบูตจากไดรฟ์การติดตั้งโดยก่อนหน้านี้ได้ตั้งค่าเป็นลำดับความสำคัญอันดับแรกเมื่อโหลดเข้าสู่ BIOS
  2. หลังจากบูตจากสื่อการติดตั้ง ให้เลือกพาร์ติชันการกู้คืนระบบ
  3. จากรายการเครื่องมือที่ปรากฏขึ้น ให้เลือกบรรทัดคำสั่งที่เราเขียนคำสั่งต่อไปนี้ทีละคำสั่ง:
  • BOOTREC.EXE /FixBoot.
  • BOOTREC.EXE /FixMbr.

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

วันนี้ฉันอยากจะแสดงวิธีคืนค่า GRUB 2 หลังจากติดตั้งหรือติดตั้ง Windows ใหม่บนคอมพิวเตอร์ Linux

หากคุณใช้ดูอัลบูทจาก Windows และ Linux บนคอมพิวเตอร์ของคุณ คุณอาจรู้อยู่แล้วว่าเมื่อทำการติดตั้งระบบปฏิบัติการเพื่อที่จะได้ยุ่งยากน้อยลงควรติดตั้งก่อนแล้วจึงติดตั้งเฉพาะ Debian เท่านั้นหรือสิ่งที่คุณต้องการติดตั้งที่นั่น นี่เป็นเพราะความจริงที่ว่า Windows ไม่เห็นระบบปฏิบัติการอื่นนอกเหนือจากของตัวเองและเขียน bootloader ลงใน MBR ที่ด้านบนของ GRUB bootloader ดังนั้น หากคุณติดตั้ง Linux ก่อนแล้วจึงติดตั้ง Windows ในที่สุด คุณจะไม่สามารถบูต Linux ได้ในที่สุด เนื่องจากจะไม่อยู่ในรายการบูต แต่จะทำอย่างไรถ้าคุณยังต้องติดตั้ง Windows ใหม่หรือเพียงแค่ติดตั้งบนคอมพิวเตอร์ Linux? ทำไมไม่ติดตั้ง Linux ใหม่เพื่อสิ่งนี้? เลขที่ หลังจากทุกสิ่งที่คุณทำ คุณจะต้องกู้คืน GRUB bootloader

เพื่อสาธิตฉันจะมอบเคสของฉันด้วยเครื่องเสมือน แต่วิธีนี้ไม่แตกต่างจากการกู้คืน GRUB บนฮาร์ดแวร์จริง

ฉันติดตั้ง Ubuntu 14.04 และ Windows 7 ไว้บนฮาร์ดดิสก์เสมือนตัวเดียว ดังนั้นฉันจึงอยากลองใช้ Windows 10 เวอร์ชันสำหรับนักพัฒนา ฉันตัดสินใจติดตั้งบน Windows 7 ตามที่คาดไว้หลังจากการปรับเปลี่ยนทั้งหมด Windows 10 ก็เริ่มทำงาน แต่ Ubuntu ไม่ได้เริ่มทำงาน เนื่องจากฉันต้องการ Ubuntu เพื่อทำงาน ฉันจึงตัดสินใจคืนค่า GRUB ที่ชำรุด

การกู้คืนด้วง 2

ก่อนอื่นคุณต้องบูตจาก LiveDVD เมื่อระบบบู๊ต ให้เปิดเทอร์มินัล (Ctr+Alt+T) และดูโครงสร้างพาร์ติชั่นโดยใช้คำสั่ง:

ซูโด้ fdisk -l

อย่างที่คุณเห็นจากเอาต์พุตคำสั่ง ดิสก์ของฉันถูกแบ่งออกเป็น 6 พาร์ติชั่น: NTFS สองตัวสำหรับ Windows, Extended (ขยาย) และอีกสามพาร์ติชั่นทำเครื่องหมายเป็น Linux สำหรับ Ubuntu ในการติดตั้ง GRUB คุณต้องติดตั้งพาร์ติชันรูทของ Ubuntu - sda5 ของฉัน:

Sudo เมานต์ /dev/sda5 /mnt

และในการเขียน GRUB ลงในบันทึกการบูตคุณต้องรันคำสั่งในเทอร์มินัล:

Sudo grub-install --root-directory=/mnt /dev/sda

หลังจากนี้ คุณสามารถรีสตาร์ทคอมพิวเตอร์ได้:

ซูโดรีบูต

GRUB ได้รับการกู้คืนแล้ว แต่ยังเหลืออีกจุดหนึ่ง ตอนนี้ติดตั้ง Windows 10 บนเครื่องเสมือนแล้ว แต่ในเมนู bootloader มันยังคงแสดงเป็นเจ็ด ซึ่งเป็นสาเหตุที่ทำให้เกิดข้อผิดพลาดเมื่อฉันพยายามเริ่มต้น เพื่อแก้ไขปัญหานี้ เพียงแค่บูตเข้าสู่ Ubuntu (ไม่ใช่ LiveDVD) และอัปเดต bootloader ผ่านทางเทอร์มินัลก็เพียงพอแล้ว

ตามกฎแล้ว ไม่จำเป็นต้องกำหนดค่า GRUB เพิ่มเติม ไฟล์ที่จำเป็นทั้งหมดจะถูกติดตั้งบนคอมพิวเตอร์อย่างเป็นอิสระระหว่างการติดตั้ง Linux OS ไม่จำเป็นต้องติดตั้ง bootloader ใหม่หากผู้ใช้จำเป็นต้องดำเนินการกำหนดค่า เนื่องจากในกรณีนี้ควรแก้ไขเฉพาะเนื้อหาของ /boot/grub/menu.lst เท่านั้น

วิธีดำเนินการติดตั้งและกำหนดค่าที่ถูกต้อง - ในบทความด้านล่าง

แนะนำให้ติดตั้ง GRUB หากไม่มีอยู่ในอุปกรณ์หรือกล่าวอีกนัยหนึ่งสามารถลบได้หลังจากติดตั้งระบบอื่น (ส่วนใหญ่มักจะเป็น Windows) บางครั้งมันเกิดขึ้นที่สำเนาของ bootloader ทำงานไม่ถูกต้องหรือ GRUB ตามคำขอของเจ้าของพีซีจะถูกแทนที่ด้วย bootloader มาตรฐานอื่น ไม่ว่าจะด้วยเหตุผลใดก็ตาม การติดตั้ง GRUB ไม่ว่าในกรณีใด ควรทำจากระบบ "สด" เท่านั้น (เช่น Knoppix) ความจริงก็คือหากไม่มี bootloader ที่ใช้งานได้ก็ไม่สามารถเรียกใช้การแจกจ่าย Linux บนพีซีซึ่งอยู่บนฮาร์ดไดรฟ์ได้ ในบทความนี้เราจะดูวิธีการติดตั้งและกำหนดค่า GRUB boot loader

บูตเซกเตอร์คืออะไร?

หากเจ้าของพีซีมั่นใจในความสามารถและความรู้ของเขา เขาจะต้องอ่านเฉพาะส่วนที่อธิบายกระบวนการติดตั้ง GRUB boot loader ทีละขั้นตอน แต่สำหรับผู้ใช้ที่ประสบปัญหาคล้ายกันเป็นครั้งแรก ควรเรียนรู้เกี่ยวกับคุณสมบัติของ BIOS และ MS DOS ก่อน

ฮาร์ดดิสก์แบ่งออกเป็นหลายส่วน โดยส่วนแรกจะทำการบันทึกดิสก์หลัก (ผู้ใช้คุ้นเคยกับการเรียกมันว่า MBR) ต้องการเพียง 512 ไบต์ ซึ่งโปรแกรมขนาดเล็กจะถูก "ซ่อน" เซกเตอร์ถัดไปถูกครอบครองโดยตารางพาร์ติชันของดิสก์ซึ่งตามปกติประกอบด้วยสี่ส่วนหลักขนาด 64 ไบต์และลายเซ็นดิจิทัล (เพียง 2 ไบต์)

คุณสมบัติบูตเซกเตอร์

บูตเซกเตอร์สามารถเรียกได้ว่าเป็นกระดูกสันหลังของพื้นฐานเนื่องจากตั้งอยู่ใน MBR และในพาร์ติชันอื่นทั้งหมด ตามที่แสดงในทางปฏิบัติ มันถูกรวมอยู่ในเซกเตอร์ทั้งหมด 16 เซกเตอร์ซึ่งมีการแบ่งฮาร์ดไดรฟ์ออก แม้ว่าข้อเท็จจริงที่ว่าในระบบไฟล์สมัยใหม่ส่วนใหญ่ ข้อมูลที่บูตโหลดเดอร์รวมไว้นั้นไม่ได้อยู่ในเซกเตอร์แรก ตัวอย่างเช่น ระบบ XFS ต้องการเซกเตอร์ที่ถูกต้องทั้งหมดของดิสก์ ดังนั้นในกรณีที่ข้อมูล bootloader ถูกลบ ระบบไฟล์จะถูกทำลายโดยสิ้นเชิง

กำลังเปิดอุปกรณ์

เมื่อคอมพิวเตอร์เริ่มทำงาน BIOS จะเริ่มเปิดใช้งานก่อน ในขณะนี้ข้อมูลที่เก็บไว้ใน MBR ของดิสก์แผ่นแรกจะถูกอ่าน หลังจากนั้นไม่กี่วินาที เนื้อหาจะ "ไปที่" ไปที่ RAM ซึ่งจะตรวจสอบว่ามีรหัสเลขฐานสิบหก AA 55 ตัวในไบต์สุดท้ายหรือไม่ การตรวจสอบนี้เกี่ยวข้องกับความจำเป็นในการระบุสื่อสิ่งพิมพ์สำหรับการโหลดครั้งต่อไป จำเป็นต้องมีโปรแกรมขนาดเล็กที่จัดเก็บไว้ใน MBR เมื่อรหัสที่นำเสนอตรงกัน โปรแกรมแรก "จับ" โปรแกรมถัดไปซึ่งอยู่ในเซกเตอร์สำหรับบูตของพาร์ติชันที่ใช้งานอยู่เพื่อเปิดใช้งานในภายหลังและด้วยเหตุนี้จึงเปิด Windows OS

หากมีฮาร์ดไดรฟ์มากกว่าหนึ่งตัว ผู้ใช้สามารถกำหนดค่าใน BIOS ตามลำดับที่จะเปิดตัวฮาร์ดไดรฟ์เฉพาะในเวลาที่ระบบบู๊ต ด้วยคุณสมบัตินี้ พีซีใหม่จึงสามารถบูตระบบจากทั้งไดรฟ์ภายนอกและไดรฟ์ USB โดยปกติแล้ว การเปลี่ยนลำดับการบูตใน BIOS จะทำให้ผู้ใช้สามารถบูตระบบโดยใช้ซีดีและดีวีดีได้

เพื่อหลีกเลี่ยงการจัดการกับ bootloaders ในอนาคตและคิดถึงวิธีกำหนดค่า GRUB ผู้ใช้ควรรู้วิธีติดตั้งระบบปฏิบัติการสองระบบจากผู้ผลิตหลายรายเพื่อไม่ให้ขัดแย้งกัน ตามที่แสดงในทางปฏิบัติ วิธีที่ดีที่สุดคือติดตั้ง bootloader ระบบ Linux ในตอนแรก เพื่อให้คุณสามารถเลือกระบบที่จะเปิดตัวในภายหลังได้

อย่างไรก็ตาม หากอุปกรณ์ใช้ระบบปฏิบัติการเวอร์ชันล่าสุดจาก Microsoft (ภายหลัง 9x/ME) คุณสามารถสร้างโปรแกรมโหลดบูตระบบเพื่อให้ "กังวล" เกี่ยวกับ GRUB ได้อย่างอิสระ ข้อได้เปรียบอย่างมากของคุณสมบัตินี้คือไม่จำเป็นต้องเข้าใจคุณสมบัติของ MBR อีกครั้ง จริงอยู่ไม่ใช่ผู้ใช้สมัยใหม่ทุกคนจะสามารถทำการจัดการดังกล่าวได้อย่างอิสระเนื่องจากกระบวนการนี้ค่อนข้างซับซ้อน ทุกอย่างจะต้องดำเนินการด้วยตนเอง

ด้วยวิธีอื่น ๆ คุณสามารถกำหนดค่าการทำงานปกติของทั้งสองระบบได้โดยหันไปใช้การติดตั้ง GRUB เพิ่มเติม ต้องวาง bootloader โดยตรงในเซกเตอร์สำหรับเริ่มระบบของพาร์ติชันหลักและทำเครื่องหมายว่าใช้งานอยู่ วิธีนี้ยังขจัดความจำเป็นในการใช้ MBR แต่สามารถใช้ได้กับพาร์ติชันหลักและระบบไฟล์ที่ไม่ส่งผลต่อเซกเตอร์สำหรับเริ่มระบบของพาร์ติชันเท่านั้น

เหตุใดการสร้างสำเนา MBR จึงมีความสำคัญ

เมื่อตัดสินใจทำการติดตั้ง GRUB แล้ว ผู้ใช้จะต้องสร้างสำเนาสำรองของ MBR ความจริงก็คือการเปลี่ยนแปลงที่ทำไม่ถูกต้องจะ "ช่วยให้เกิดความผิดพลาด" ทั้ง Windows และ Linux ในกรณีนี้ คุณจะต้องใช้ระบบ Knoppix หรือดีวีดีการติดตั้ง Windows อย่างหลีกเลี่ยงไม่ได้เพื่อช่วยแก้ไขบูตเซกเตอร์ คุณสามารถแก้ไขการกระทำของคุณได้เร็วขึ้นหลายเท่าหากคุณมีข้อมูลสำรอง MBR เมื่อต้องการทำเช่นนี้ ให้รันคำสั่งต่อไปนี้:

root# dd if=/dev/sda of=/boot/bootsektor.scsi bs=1 นับ=446

การกู้คืนเซกเตอร์สำหรับบูตสามารถทำได้โดยใช้คำสั่งเท่านั้น:

root# dd if=/boot/bootsektor.scsi of=/dev/sda bs=1 นับ=446

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

การติดตั้งในฮาร์ดดิสก์ MBR

การติดตั้ง GRUB สามารถทำได้ทันทีที่สร้างไฟล์คอนฟิกูเรชันที่เกี่ยวข้อง (ตั้งค่าโดยใช้คำสั่ง /boot/grub/menu.lst) ไดเร็กทอรีด้วงต้องมีไฟล์เช่น stage1, stage2 และ *_stagel_5 หากหายไปควรเขียนไฟล์ที่อยู่ใน GRUB ลงในพาร์ติชันนี้

การปรับแต่งเพิ่มเติมประกอบด้วยการเปิดตัว GRUB bootloader และดำเนินการคำสั่งการตั้งค่า ค่า hdl,12 ต้องถูกแทนที่ด้วยชื่ออุปกรณ์ GRUB ของพาร์ติชันดิสก์ที่มี /boot คุณควรระวัง เนื่องจากพาร์ติชัน /boot อาจอยู่ในโฟลเดอร์อื่นที่ไม่ใช่โฟลเดอร์ระบบ Hd0 รับผิดชอบพื้นที่จัดเก็บข้อมูลของเซกเตอร์สำหรับบูตของฮาร์ดไดรฟ์หลัก

ระหว่างการติดตั้ง SUSE จะได้รับการอัปเดตด้วยไฟล์ /etc/grub.conf ซึ่งมีคำสั่งที่เกี่ยวข้องกับการติดตั้ง GRUB โดยตรง หากมีสิ่งผิดปกติเกิดขึ้น ผู้ใช้พีซีสามารถเริ่มการติดตั้งใหม่ได้ตลอดเวลาในระหว่างขั้นตอน คำสั่งด้วงสามารถช่วยได้< /etc/grub.conf.

วิธีการติดตั้ง Bootloader

การติดตั้ง GRUB สามารถทำได้ไม่เพียงแต่ใน MBR เท่านั้น หากต้องการ bootloader สามารถอยู่ในบูตเซกเตอร์ของฮาร์ดไดรฟ์ใดก็ได้ แม้ว่าจะมีสถานการณ์ที่โซลูชันดังกล่าวไม่ยุติธรรม แต่ในกรณีด้านล่างการติดตั้ง GRUB ในพาร์ติชันอื่นจะทำให้งานของผู้ใช้ง่ายขึ้นอย่างมาก

คุณสามารถหันไปใช้การติดตั้ง GRUB ได้หากเปิดตัว bootloader โดยใช้อุปกรณ์ Windows ที่คล้ายกัน นอกจากนี้วิธีแก้ปัญหาจะเหมาะสมหากมีการติดตั้ง Linux OS หลายเวอร์ชันบนคอมพิวเตอร์และผู้ใช้ไม่ได้ตั้งใจที่จะเปลี่ยน GRUB ที่ติดตั้งไว้ก่อนหน้านี้เป็น bootloader อื่น

ขอแนะนำให้เลือกพาร์ติชันระบบ Linux เพื่อปรับกระบวนการให้เหมาะสม กล่าวอีกนัยหนึ่ง หากระบบปฏิบัติการอยู่ใน /dev/sda7 เพื่อให้การติดตั้งถูกต้อง ผู้ใช้ต้องใช้คำสั่งด้านล่าง ข้อแตกต่างที่สำคัญระหว่างการติดตั้ง GRUB บน MBR หรือพาร์ติชันระบบคือคุณต้องระบุพาร์ติชันที่เลือกในการตั้งค่าแทน hd0

root# ด้วง ด้วง> รูท (hd1,12)

grub> การตั้งค่า (hd0,6) (การติดตั้งไปยังบูตเซกเตอร์ /dev/sda7) grub> ออก

ก่อนที่จะทำการติดตั้ง GRUB คุณควรคำนึงถึงคุณสมบัติหนึ่งของระบบไฟล์บางระบบเนื่องจากบางครั้งบูตเซกเตอร์ของพาร์ติชันไม่สามารถใช้โดย bootloader หรือแอปพลิเคชันทั่วไปอื่น ๆ ได้ โดยเฉพาะอย่างยิ่งหนึ่งในระบบดังกล่าวคือ XFS - GRUB ที่ติดตั้งในเซกเตอร์สำหรับบูตจะทำลายระบบไฟล์ทั้งหมด

การติดตั้งบนไดรฟ์ USB

ด้วยเทคโนโลยีสมัยใหม่ ทุกคนจึงสามารถบูตระบบปฏิบัติการผ่านไดรฟ์ USB ได้ หากการติดตั้ง GRUB จะดำเนินการโดยตรงจากสื่อบันทึกข้อมูลภายนอก และไม่ได้ใช้ Windows หรือ Linux ผู้ใช้จะต้องตรวจสอบว่ามาเธอร์บอร์ดรู้จักไดรฟ์อย่างถูกต้อง

ก่อนที่คุณจะเริ่ม คุณควรฟอร์แมตแฟลชไดรฟ์ด้วยวิธีใดวิธีหนึ่งจากสองวิธีที่ทราบ วิธีแรกจะถูกทำความสะอาดเหมือนซุปเปอร์ฟล็อปปี้ดิสก์ และวิธีอื่นเหมือนฮาร์ดไดรฟ์ คุณควรเลือกตัวเลือกการทำความสะอาดตามคุณสมบัติของ BIOS

ขั้นตอนต่อไปควรเปิดใช้งานการรองรับที่เก็บข้อมูล USB ซึ่งมีตัวเลือกแยกต่างหากใน BIOS เมื่อรู้จักไดรฟ์ USB ว่าเป็นดิสก์สำหรับบูตแยกต่างหาก BIOS จะเปลี่ยนรายการตามที่ GRUB เขียนข้อมูลจากสื่อทีละรายการ ดิสก์แรกจะเป็นไดรฟ์ USB ส่วนฮาร์ดไดรฟ์ที่เหลือจะสามารถเข้าถึงได้ผ่าน hdl และ hd2 หากจำเป็น คุณสามารถเปลี่ยน /boot/grub/devices.map ก่อนที่จะติดตั้ง GRUB

หากทุกอย่างถูกต้อง การติดตั้ง GRUB จากสื่อภายนอกจะประสบความสำเร็จมากกว่า GRUB รู้จักแฟลชไดรฟ์เป็น hdn+1 โดยที่ n คือตัวเลขที่ตรงกับฮาร์ดไดรฟ์ภายในตัวสุดท้าย การติดตั้ง GRUB ใน MBR ครั้งต่อไปผ่านอุปกรณ์จัดเก็บข้อมูลภายนอกจำเป็นต้องดำเนินการคำสั่งด้านล่าง:

root# ด้วง ด้วง> รูท (hd1,12)

ด้วง> การตั้งค่า (hd2) (การติดตั้งในแฟลชไดรฟ์ MBR) ด้วง> ออก

การรีบูทพีซีเพิ่มเติมควรอนุญาตให้ GRUB ปรากฏใน MBR และเริ่มระบบที่มีอยู่ทั้งหมดที่มีอยู่ใน menu.lst หากเกิดข้อผิดพลาดคุณควรไปที่เมนู bootloader ในโหมดโต้ตอบโดยกดปุ่ม C การเปิดใช้งานคำสั่งที่ประกอบด้วยคำว่า cat และกดปุ่ม tab จะช่วยให้ผู้ใช้เรียนรู้เกี่ยวกับชื่อที่ bootloader กำหนดให้กับฮาร์ดไดรฟ์ทั้งหมด การใช้ปุ่ม Esc คุณสามารถกลับไปที่เมนูได้ และปุ่ม E จะช่วยคุณเปลี่ยนคำสั่งที่เขียนไว้ก่อนหน้านี้เพื่อโหลดและดำเนินการอีกครั้ง

หากระบบปฏิบัติการ Linux ถูกจัดเก็บไว้ในแฟลชไดรฟ์หรือฮาร์ดไดรฟ์ภายนอกที่สามารถเชื่อมต่อกับคอมพิวเตอร์โดยเฉพาะผ่านพอร์ต USB ผู้ใช้ควรตระหนักถึงปัญหาที่สำคัญหลายประการ ความจริงก็คือการติดตั้ง GRUB อาจไม่สามารถทำได้ในครั้งแรก เป็นไปได้มากว่าคุณจะต้องเปลี่ยนการตั้งค่า BIOS และการกำหนดไดรฟ์หลายครั้ง จะดีกว่าหากคุณสมบัติทั้งหมดที่จัดเก็บไว้ในไฟล์ menu.lst ได้รับการกำหนดค่าด้วยตนเองเท่านั้น

นอกจากนี้ โมดูล USB ที่สำคัญทั้งหมดควรจัดเก็บไว้ในไฟล์ Initrd เมื่อทำงานกับ Ubuntu ในส่วน /etc/fstab และบรรทัดเคอร์เนลที่อยู่ใน menu.lst คุณจะต้องไม่ระบุชื่ออุปกรณ์ เนื่องจากสามารถเปลี่ยนแปลงได้หลังจากรีบูตระบบ แต่ต้องระบุหมายเลข UUID ผู้ใช้สามารถระบุได้อย่างอิสระใน menu.lst โดยใช้ uuid ไดเรกทอรีที่จะวางเคอร์เนลและไฟล์ Initrd ในภายหลัง

บทสรุป

แม้จะดูซับซ้อน แต่ใครๆ ก็สามารถติดตั้ง GRUB ได้ การรองรับเมนบอร์ดรุ่นใหม่ช่วยให้ระบบปฏิบัติการต่างๆ ใช้งานได้ง่ายและไร้ปัญหา รวมถึง Linux ซึ่งสามารถติดตั้งบนไดรฟ์ USB ได้โดยตรง ไม่ใช่เรื่องง่ายที่จะกำหนดค่าพารามิเตอร์ทั้งหมดอย่างถูกต้องและสร้างเงื่อนไขทั้งหมดสำหรับการมีอยู่ของระบบที่แตกต่างกันสองระบบอย่างต่อเนื่อง นอกเหนือจากเวลาว่างและความรู้แล้วผู้ใช้จะต้องมีประสบการณ์มากมายซึ่งผู้ที่เพิ่งเริ่มทำความคุ้นเคยกับ สภาพแวดล้อม Linux ไม่มี

ปัจจุบันรู้จักกันในชื่อ GRUB Legacy หากคุณต้องการกู้คืน GRUB Legacy เช่น เนื่องจากคุณมี Ubuntu เวอร์ชันเก่ากว่า 9.10 คุณต้องอ่าน

แม้ว่าจริงๆ แล้วจะเป็นแอปพลิเคชั่นเดียวกันสองเวอร์ชันที่เรียกว่า GRUB แต่ก็ไม่มีอะไรที่เหมือนกันและเป็นโปรแกรมที่แตกต่างกันโดยสิ้นเชิง

ฮาร์ดไดรฟ์ที่สามารถบู๊ตได้จะมีสิ่งที่เรียกว่า Master Boot Record (บันทึกการบูตหลักภาษาอังกฤษ, MBR)ซึ่ง BIOS จะเข้าถึงเมื่อคอมพิวเตอร์บู๊ต bootloader ของระบบจะต้องเขียนข้อมูลเกี่ยวกับไฟล์หลักที่จัดเก็บไว้ในพาร์ติชั่นฮาร์ดไดรฟ์ลงในพื้นที่นี้

ทุกครั้งที่คุณติดตั้งหรือกู้คืนระบบจาก Microsoft บูตโหลดเดอร์ Linux จะถูกแทนที่และจะต้องติดตั้งใหม่

กู้คืนโดยใช้ LiveCD/USB

วิธีแรก

เทอร์มินัล

ซูโด้ fdisk -l

จากตารางเราจะเห็นว่ามีการติดตั้ง Linux (ในกรณีของเรา) บนพาร์ติชัน /dev/sda1

ตอนนี้เรามาเชื่อมต่อส่วนนี้กับ /mnt ด้วยคำสั่งต่อไปนี้ (ให้ความสนใจกับเครื่องหมายวรรคตอน โดยเฉพาะช่องว่างระหว่างโค้ด):

Sudo เมานต์ /dev/sda1 /mnt

จากนั้น หากต้องการเขียนด้วงไปยัง MBR ให้ป้อนคำสั่งต่อไปนี้:

Sudo grub-install --root-directory=/mnt /dev/sda

หากคุณต้องการคืนค่าดิสก์ MBR เท่านั้น (เช่นหลังจากติดตั้ง Windows ใหม่) ก็เพียงพอแล้ว

หากคุณต้องการอัปเดตเมนูด้วง (เช่นหลังจากติดตั้ง Windows) คุณต้องทำดังนี้

Sudo update-grub --output=/mnt/boot/grub/grub.cfg

การบูรณะเสร็จสมบูรณ์!

การกู้คืนโดยใช้ chroot

เริ่มระบบจาก LiveCD/USB และเปิดเทอร์มินัล ในการดำเนินการนี้คุณสามารถกด Alt + F2 แล้วป้อนคำสั่ง:

ซูโด้ fdisk -l

ตารางที่คล้ายกันควรปรากฏบนหน้าจอ:

/dev/sda1 29 8369 66999082+ 83 Linux /dev/sda2 * 8370 13995 45190845 7 HPFS/NTFS /dev/sda3 13996 14593 4803435 5 ขยาย

ตอนนี้คุณต้องติดตั้งพาร์ติชัน Linux ของคุณ (นี่คือ sda1) และไดเร็กทอรีที่สำคัญอีกสองสามรายการ:

Sudo mount /dev/sda1 /mnt sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys

หากพาร์ติชัน /boot หรือ /var แยกจากกัน คุณจะต้องติดตั้งพาร์ติชันเหล่านั้นใน /mnt/boot และ /mnt/var

ตอนนี้เรามาดูสภาพแวดล้อม chroot กัน:

ซูโด้ chroot /mnt

ตอนนี้คุณต้องติดตั้ง GRUB โดยใช้คำสั่ง:

ด้วงติดตั้ง /dev/sda

หากคุณได้รับข้อความแสดงข้อผิดพลาด ให้ใช้คำสั่ง: grub-install --recheck /dev/sda

นอกจากนี้ ในบางกรณี ตัวเลือกต่อไปนี้อาจช่วยได้:

Grub-install --recheck --no-floppy /dev/sda

หากทุกอย่างเป็นไปด้วยดี ให้ออกจาก chroot ด้วยคำสั่ง:

ตอนนี้คุณต้องยกเลิกการต่อเชื่อมพาร์ติชัน:

sudo umount /mnt/dev sudo umount /mnt/proc sudo umount /mnt/sys sudo umount /mnt

หากคุณติดตั้งพาร์ติชัน /boot ให้ใช้คำสั่ง:

Sudo umount /mnt/boot.php

จากนั้นรีบูทคอมพิวเตอร์ของคุณด้วยคำสั่ง:

ซูโดรีบูต

หากจำเป็น คุณสามารถอัพเดตเมนู bootloader ด้วยคำสั่ง:

Sudo อัปเดตด้วง

การกู้คืนในโหมดช่วยเหลือ

หากคุณไม่มีดิสก์สำหรับบูต คุณสามารถกู้คืน Grub ได้จากคอนโซลของมัน การกู้คืนเกิดขึ้นดังนี้: ขั้นแรกคุณต้องโหลดโมดูลทั้งหมดเพื่อให้ฟังก์ชันการทำงานของ Grub ทั้งหมดพร้อมใช้งานจากนั้นเริ่มจากพาร์ติชันที่ต้องการ ดังที่คุณทราบ Grub ประกอบด้วยสองส่วน ส่วนแรกจะถูกบันทึกไว้ใน MBR ของดิสก์ มันมีฟังก์ชันพื้นฐานนั่นคือมีคอนโซลในโหมดช่วยเหลือและไม่มีอะไรเพิ่มเติม ขั้นแรกคุณต้องพิจารณาว่าส่วนที่สองของด้วงอยู่ที่พาร์ติชันใด (อยู่ในไดเร็กทอรี /boot/grub) โหลดโมดูลที่ขาดหายไป และจากนั้นจึงจะสามารถให้คำสั่งเรียกใช้จากพาร์ติชันที่ต้องการได้ มีเพียงสี่คำสั่งเท่านั้นในโหมดช่วยเหลือ:

Ls ตั้งค่ายกเลิกการตั้งค่า insmod

ก่อนอื่นคุณควรออกคำสั่ง:

ในการตอบสนอง มันจะส่งออกตัวอย่างต่อไปนี้:

(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,msdos2) (hd1,msdos1)

บางครั้ง Grub อาจระบุไม่ถูกต้องว่าระบบไฟล์ใดอยู่ในพาร์ติชันดิสก์ ในกรณีนี้จะกำหนดให้เป็น msdos เราต้องพยายามเดาว่าเราเห็นดิสก์ใด ในกรณีนี้จะมองเห็นดิสก์สองแผ่น ดัชนีดิสก์ 0 มีสามพาร์ติชัน ดัชนีดิสก์ 1 มีสองพาร์ติชัน เมื่อทราบโครงสร้างของดิสก์ของคุณแล้ว การระบุดิสก์ที่ต้องการจึงเป็นเรื่องง่าย

Grub ตั้งชื่อพาร์ติชันในลำดับย้อนกลับ และไม่ชัดเจนว่า (hd0,msdos3) หมายถึงอะไร - ส่วนแรกหรือส่วนที่สาม? ที่นี่คุณสามารถออกได้โดยใช้ไวยากรณ์ (hd0,1) ต้องจำไว้ว่าใน Grub จำนวนดิสก์เริ่มต้นจาก 0 และการนับพาร์ติชันเริ่มต้นจาก 1 สมมติว่ามีการติดตั้ง Linux บนดิสก์ตัวแรกในพาร์ติชันแรกนั่นคือ (hd0,1) เราให้คำสั่ง:

ตั้งค่าคำนำหน้า=(hd0,1)/boot/grub ตั้งค่า root=(hd0,1)

ด้วยคำสั่งเหล่านี้ เราระบุว่าจะใช้ดิสก์ (hd0,1) สำหรับคำสั่งเพิ่มเติม จากนั้นเราก็ต้องตรวจสอบว่าส่วนนี้มีสิ่งที่ต้องการจริงหรือไม่ เราให้คำสั่ง:

ls /boot/grub

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

Insmod ext2 insmod ปกติ ปกติ

ตรวจสอบการสะกดของคำสั่งแรกสำหรับระบบไฟล์ ext3 และ ext4

หากระบบปฏิบัติการอยู่บนพาร์ติชันที่ฟอร์แมตเป็น btrfs ให้รันคำสั่งต่อไปนี้: set prefix=(hd0,1)/@/boot/grub set root=(hd0,1)

กำลังโหลดโมดูล:

Insmod btrfs insmod ปกติ

เปิดตัวด้วง:

หลังจากนั้น Grub จะเข้าสู่โหมดการทำงานเต็มรูปแบบ มันจะค้นหาระบบปฏิบัติการทั้งหมดที่สามารถโหลดได้โดยอัตโนมัติและแสดงเมนูด้วง

การกู้คืนเพิ่มเติมนั้นขึ้นอยู่กับการโหลด Linux ที่เราต้องการ และให้คำสั่งจากรูท:

ติดตั้งด้วง /dev/sdX

sdX อยู่ที่ไหนไดรฟ์สำหรับติดตั้ง Grub

บอกเพื่อน