Memuat Distribusi Linux yang berbeda setiap kali komputer dijalankan secara otomatis?

15

Saya memiliki dua distribusi Linux (OpenSuSE, Ubuntu) diinstal pada dua partisi yang berbeda. Setiap kali saya memulai mesin saya, GRUB dimuat, memungkinkan saya untuk memilih salah satu dari dua distribusi.

Saya tidak ingin GRUB muncul, jadi saya membatasi batas waktu ke nol di /boot/grub/menu.lst, yang kemungkinan besar akan membuat mesin saya memuat OpenSuSE setiap kali saya memulai PC saya karena ini adalah pilihan pertama dalam menu .lst.

Apakah mungkin kedua kalinya saya me-restart PC saya, Ubuntu dimuat secara otomatis? Ketiga kalinya saya me-restart lagi, OpenSuSE bisa di-boot sementara keempat kali saya restart, Ubuntu bisa memuat dan seterusnya?

Dengan kata lain, bagaimana saya bisa membuat mesin saya untuk mem-boot OS berikutnya di menu.lst, waktu berikutnya itu restart?

Usman
sumber
1
Maukah Anda menambahkan beberapa detail: Apakah Anda menggunakan Karmic (yang menggunakan Grub2)? Juga, apakah Anda berbagi partisi / boot antara kedua distro? Atau apakah salah satu distro boot menghubungkan ke kedua distro kernel / initrd, dll?
Sama sekali tidak aneh! Saya biasa melakukan ini dengan partisi Linux khusus yang akan memulihkan Windows menggunakan Partimage. Setiap boot lain akan pergi ke Linux untuk pemulihan, lalu reboot segera kembali ke Windows. (Tapi saya menggunakan LiLo kemudian dengan IIRC -R switch.)

Jawaban:

11

Masukkan sesuatu ke dalam skrip startup untuk ditulis ulang menu.lst.

Jadi mintalah Ubuntu menulis versi menu.lstyang memuat OpenSuSE, dan minta OpenSuSE menulis versi yang memuat Ubuntu.

Cara yang relatif aman untuk melakukan ini adalah memiliki 3 file menu.lst,, menu.lst.ubuntudan menu.lst.SuSEskrip melakukannya:

cp menu.lst.ubuntu menu.lst

pada SuSE dan:

cp menu.lst.SuSE menu.lst

di Ubuntu.

rjmunro
sumber
9

Saya mendapatkan fungsionalitas yang saya cari dengan menggunakan opsi 'Savedefault' dari GRUB. Saya biasa mengatur nilainya ke sistem operasi lain di akhir entri setiap OS di menu.lst.

Terima kasih banyak untuk semua orang yang mencoba membantu. :)

Usman
sumber
1
+1 Akan menyarankan penyelamatan, tetapi Anda mengalahkan saya untuk itu;)
chris
3

Lilo dapat melakukan ini.

Tetapi Anda dapat mempertimbangkan skrip sederhana di setiap OS yang menetapkan OS lain sebagai default grub. Misalnya, skrip berikut akan mengubah default 1pengaturan ke default 0:

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

(ed mirip dengan Vi. Jalankan hanya perintah pertama untuk melihat apa yang dilakukannya.)

Di OS lain, Anda bisa menjalankan rekanan:

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

sumber
Terima kasih jhs. Saya pikir itu akan berhasil untuk saya. Tetapi saya akan mendapatkan LILO jika saya gagal mencapai fungsionalitas dengan GRUB.
2

Apa alasan / tujuan Anda melakukan ini?

Sudahkah Anda mempertimbangkan untuk menjalankan dua mesin virtual yang berbeda ? Jika VM dapat dipertimbangkan, ada sejumlah cara berbeda untuk mencapai ini dari dalam mesin host itu sendiri, tanpa merusak para tamu.

sybreon
sumber