จะติดตั้ง GRUB อย่างถูกต้องบน soft RAID 1 ได้อย่างไร?


21

ในการตั้งค่าของฉันฉันมีดิสก์สองแผ่นที่ฟอร์แมตด้วยวิธีดังต่อไปนี้:

(GPT)
1)  1MB   BIOS_BOOT
2)  300MB LINUX_RAID   
3)  *     LINUX_RAID   

พาร์ติชันสำหรับเริ่มระบบถูกแมปใน / dev / md0 รูทใน / dev / md1 md0 ถูกจัดรูปแบบด้วย ext2, md1 ด้วย XFS (ฉันเข้าใจว่าการจัดรูปแบบต้องทำบนอุปกรณ์ md ไม่ใช่ใน sd - โปรดบอกฉันว่านี่เป็นสิ่งที่ผิดหรือเปล่า)

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

คำตอบ:


16

หากทั้งสองดิสก์/dev/sdaและ/dev/sdbเรียกใช้ทั้งสองและgrub-install /dev/sda grub-install /dev/sdbจากนั้นไดรฟ์ทั้งสองจะสามารถบูตได้เพียงอย่างเดียว

ตรวจสอบให้แน่ใจว่าการกำหนดค่า Grub ของคุณไม่ใช่ดิสก์โค้ดที่ต้องการ(hd0)แต่ค้นหา UUID ของการบู๊ตและรูทของระบบแทน

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


1
"ตรวจสอบให้แน่ใจว่าการกำหนดค่า Grub ของคุณไม่ใช่ดิสก์โค้ดอย่างเช่น (hd0) แต่ค้นหา UUIDs ของระบบบู๊ตและรูทแทน" อย่างไร?
lifeofguenter


1
gnu.org/software/grub/manual/grub/grub.html#GNU_002fLinuxหรือดูไฟล์การแจกจ่ายของคุณ
Gilles 'SO- หยุดความชั่วร้าย'

1
บนระบบบางอย่างมันเป็นแทนgrub2-install grub-install
ndemou

1
โปรดสังเกตว่า RAID อยู่ในระดับพาร์ติชันไม่ใช่ระดับดิสก์ หากเป็นเช่นนั้นจะไม่มีปัญหาเนื่องจากการมิร์เรอร์จะทำมิรเรอร์ MBR ด้วย
Marcos Dione

3

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

sudo grub-install /dev/sdb
sudo update-grub /dev/sdb

ปัญหาที่ฉันพบมักจะปรากฏขึ้นพร้อมกับข้อความแสดงข้อผิดพลาดเช่น

update-grub … update-grub failed with no such disk …

เพื่อแก้ไขปัญหานี้ฉันได้ทำงานแล้ว

sudo mv /boot/grub/device.map /boot/grub/device.map.old 
sudo update-grub 

และนี่ดูเหมือนว่าจะแก้ไขปัญหาได้แล้ว - เป็นการทดสอบในบางกรณีที่ฉันลบออก/sdv/sdaและเพิ่งใช้/dev/sdbในการบูตจาก แต่นี่ไม่เหมาะและเป็นไปไม่ได้ในสภาพแวดล้อมการผลิตส่วนใหญ่!


0

ประสบการณ์ของฉันที่ติดตั้ง CentOS 5 และ CentOS 6 คือในระหว่างขั้นตอนการติดตั้งฉันกำหนดค่า RAID-1 ในเวลานั้น - การติดตั้งช่วยให้คุณเลือกได้ สิ่งที่เกิดขึ้นมีดังนี้: 1. กำหนด / dev / sda1 เป็น 1 GB เป็นพาร์ติชั่น RAID 2. กำหนด / dev / sdb1 เป็น 1 GB เป็นพาร์ติชั่น RAID 3. สร้างอุปกรณ์ RAID / dev / md0 ที่สร้างขึ้นจาก / dev / sda1 และ / dev / sdb1 4. สร้าง / boot partition โดยใช้ / dev / md0 5. สร้างพาร์ติชันเพิ่มเติมโดยใช้ขั้นตอนที่ 1 - 3 6. ใช้งาน LVM บนพาร์ติชันที่สร้างในขั้นตอนที่ 5 โดยทำตามคำแนะนำ

หลังจากบูตระบบครั้งแรกใน grub.conf ฉันเปลี่ยนรายการ / dev / sda1 เป็น / dev / md0 จากนั้นฉันก็คัดลอกรายการ splashimage บรรทัดที่มี (hd0,0) และเพิ่ม # ที่จุดเริ่มต้นและเปลี่ยน (hd0,0) เป็น (hd1,0) ดูคำตอบข้างต้นแสดงวิธีการติดตั้งด้วงไปยัง / dev / sdb ติดตามพวกเขา ปรับเปลี่ยน fstab เพื่อให้จุดต่อบู๊ตใช้ / dev / md0 (โดยทำเช่นนี้เมื่อคุณทำการอัปเดต yum a มีบางสิ่งที่ได้รับการปรับปรุงในพาร์ติชัน / boot มันจะถูกเขียนลงในทั้ง / dev / sda1 และ / dev / sdb1 ) หากคุณมีความล้มเหลวของฮาร์ดไดรฟ์ a / dev / sda คุณจะต้องบูตโดยใช้การกู้คืนและใส่เครื่องหมายบรรทัด (hd0,0) และยกเลิกการใส่เครื่องหมาย (hd1,0) ระบบของคุณควรจะสามารถบู๊ตได้

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