กำลังโหลดการกระจาย Linux ที่แตกต่างกันทุกครั้งที่คอมพิวเตอร์เริ่มอัตโนมัติ


15

ฉันมีลินุกซ์สองตัว (OpenSuSE, Ubuntu) ติดตั้งอยู่ในสองพาร์ติชั่นที่ต่างกัน ทุกครั้งที่ฉันเปิดเครื่อง GRUB จะโหลดขึ้นทำให้ฉันเลือกการกระจายแบบใดแบบหนึ่งจากสองแบบ

ฉันไม่ต้องการให้ GRUB แสดงผลดังนั้นฉันจึง จำกัด การหมดเวลาเป็นศูนย์ใน /boot/grub/menu.lst ซึ่งส่วนใหญ่จะทำให้เครื่องของฉันโหลด OpenSuSE ทุกครั้งที่ฉันเริ่มพีซีเนื่องจากเป็นตัวเลือกแรกในเมนู .lst

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

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


1
คุณจะช่วยเพิ่มรายละเอียด: คุณใช้ Karmic (ซึ่งใช้ Grub2) หรือไม่ นอกจากนี้คุณยังแชร์ a / boot partition ระหว่าง distros ทั้งสองหรือไม่ หรือพาร์ทิชันสำหรับบูตหนึ่งของ distro เชื่อมโยงกับทั้ง distros kernel / initrd, etc?

มันไม่แปลกเลย! ฉันเคยทำเช่นนี้กับพาร์ติชัน Linux เฉพาะที่จะคืนค่า Windows โดยใช้ Partimage การบู๊ตอื่น ๆ จะไปที่ Linux เพื่อคืนค่าจากนั้นรีบูตทันทีกลับเข้าสู่ Windows ( แต่ผมใช้ Lilo แล้วกับสวิทช์ -R IIRC.)

คำตอบ:


11

menu.lstใส่บางสิ่งบางอย่างในสคริปต์การเริ่มต้นที่จะเขียน

ดังนั้นให้อูบุนตูเขียนรุ่นmenu.lstที่โหลด OpenSuSE และให้ OpenSuSE เขียนเวอร์ชันที่โหลดอูบุนตู

เป็นวิธีที่ค่อนข้างปลอดภัยในการทำเช่นนี้จะมี 3 ไฟล์menu.lst, menu.lst.ubuntuและmenu.lst.SuSEและมีสคริปต์ทำ:

cp menu.lst.ubuntu menu.lst

ใน SuSE และ:

cp menu.lst.SuSE menu.lst

บน Ubuntu


9

ฉันได้ฟังก์ชั่นที่ฉันค้นหาโดยใช้ตัวเลือก 'saveefault' ของ GRUB ฉันเคยตั้งค่ามันให้กับระบบปฏิบัติการอื่น ๆ ในตอนท้ายของแต่ละระบบปฏิบัติการในเมนู

ขอบคุณมากสำหรับทุกคนที่พยายามช่วยเหลือ :)


1
+1 กำลังจะแนะนำข้อผิดพลาดที่บันทึกไว้ แต่คุณเอาชนะฉันได้)
chris

3

Lilo สามารถทำได้

แต่คุณอาจพิจารณาสคริปต์ง่ายๆในแต่ละระบบปฏิบัติการที่ตั้งค่าระบบปฏิบัติการอื่นเป็นค่าเริ่มต้นด้วง ตัวอย่างเช่นสคริปต์ต่อไปนี้จะแก้ไขการdefault 1ตั้งค่าเป็นdefault 0:

echo -e "g/default 1/d\ni\ndefault 0\n.\nw" | ed /boot/grub/menu.lst

(ed คล้ายกับ Vi รันคำสั่งแรกเพื่อดูว่ามันทำอะไรอยู่)

บนระบบปฏิบัติการอื่นคุณสามารถเรียกใช้งานคู่กันได้:

echo -e "g/default 0/d\ni\ndefault 1\n.\nw" | ed /boot/grub/menu.lst

ขอบคุณ jhs ฉันคิดว่ามันจะได้ผลสำหรับฉัน แต่ฉันจะไป LILO ถ้าฉันไม่สามารถใช้ฟังก์ชันการทำงานกับด้วงได้

2

เหตุผล / วัตถุประสงค์ของคุณคืออะไร

คุณได้พิจารณาใช้เครื่องเสมือนสองเครื่องที่แตกต่างกันหรือไม่? หากพิจารณา VMs มีหลายวิธีที่จะทำให้สิ่งนี้สำเร็จจากภายในเครื่องโฮสต์โดยไม่ต้องยุ่งกับแขก

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