Bagaimana mengontrol jarak jauh OS Grub mana yang melakukan boot?

10

Pertimbangkan pengaturan dual-boot berikut:

  • Grub diinstal ke /dev/sda
  • /dev/sda1 sudah terpasang sebagai /boot
  • /dev/sda6 sudah terpasang sebagai /
  • Windows 10 diinstal ke /dev/sdb2

Seperti yang ada sekarang, Grub memilih Ubuntu secara default ketika boot dan saya dapat login dari jarak jauh melalui SSH. Dimungkinkan juga untuk memilih Windows ketika Grub mulai dan saya bisa login jarak jauh melalui RDP.

Masalahnya adalah saya tidak punya cara untuk memilih OS mana yang akan di-boot ketika saya tidak hadir secara fisik.

Pertanyaan ini menjelaskan metode agar Grub secara otomatis mem-boot sistem operasi yang terakhir dipilih. Namun, ini tidak akan berhasil . Jika saya memilih Windows, saya tidak memiliki cara untuk me-restart PC dan mem-boot Ubuntu dari jarak jauh.

Apakah ada cara untuk mengontrol OS yang dari jarak jauh?

Nathan Osman
sumber
@Takkat dari sisi Windows? (Dapatkah saya menjalankan Windows dan meminta semacam program atau skrip menginstruksikan Grub untuk mem-boot Ubuntu?)
Nathan Osman
@ Takkat oh, saya mengerti apa yang Anda katakan ... itu mungkin berhasil.
Nathan Osman
Pernahkah Anda berpikir tentang booting melalui PXE? Kemudian Anda dapat meninggalkan konfigurasi boot Anda di server lain yang dapat Anda akses kapan saja dan sesuaikan kemudian kemudian reboot mesin lain untuk memulai OS yang ditentukan?
Ziazis

Jawaban:

11

Kita bisa reboot ke entri boot menu Grub yang diberikan menggunakan grub-reboot . Ini juga dapat dilakukan dari sesi jarak jauh misalnya melalui SSH.

Untuk mem-boot ke OS lain, pilih posisi yang direpresentasikan dalam menu Grub mulai dari 0:

sudo grub-reboot <num>

masukkan deskripsi gambar di sini

Dalam hal ini Windows saya ada di posisi 4. Jadi saat menerbitkan

sudo grub-reboot 4 && sudo reboot

Mesin akan reboot ke Windows setelah batas waktu yang kita tentukan dalam pengaturan Grub.

Setelah reboot dari Windows, mesin akan boot ke OS default. Ini dapat didefinisikan dengan

sudo grub-set-default <num>

Untuk membuat ini berfungsi, kita mungkin harus mendefinisikan GRUB_DEFAULT=saveddi kita /etc/default/grubtetapi pada sistem saya itu juga bekerja dengan pengaturan default.

Sayangnya me-reboot Windows dari Windows tidak dapat dilakukan dengan ini.

Takkat
sumber
3

Gagasan lain berkat jawaban takkat :

  1. Boot default adalah Ubuntu
  2. grub-reboot Ndi mana Nentri boot Windows
  3. Mem-boot ulang Windows akan membawa Anda kembali ke boot default: Ubuntu.

Kekurangan : untuk reboot Windows Anda harus reboot dua kali: Reboot Windows, biarkan Ubuntu boot dan grub-reboot Nlagi! :-(

Fabby
sumber
Tolong, ada lebih banyak ide. :)
AB
1

Anda dapat mengatur OS default dengan grub tergantung pada waktu, lihat Bisakah GRUB dijadwalkan? Ini berarti: mengubah 'entri' default (login otomatis) pada periode waktu yang ditentukan secara otomatis? . Jadi, misalnya, Anda dapat mengonfigurasi grub untuk boot ke Windows saat $ MINUTE aneh dan boot ke Linux ketika $ MINUTE genap.

insmod datehook
if [ $MINUTE -eq 0 -o $MINUTE -eq 2  -o $MINUTE -eq 4 -o $MINUTE -eq 6 -o $MINUTE -eq 8]; then
    set default="Ubuntu"
else
    set default="Windows"
fi

Jika Anda ingin OS tertentu; tunggu saja sampai waktunya tiba.

Menggunakan metode ini harus memperhitungkan waktu yang diperlukan untuk mencapai Grub. Menggunakan kerangka waktu 5 menit mungkin lebih dapat diandalkan.


Saya pikir itu juga mungkin untuk bergantian di antara entri boot. Sesuatu seperti :

if [ $default = "Ubuntu" ]; then
  set default="Windows"
else
  set default="Ubuntu"
fi

ketika grub dikonfigurasi untuk mengingat OS terakhir yang di-boot ( Bagaimana agar grub2 mengingat pilihan terakhir? )

Jika PC Anda tidak bisa boot ke OS yang Anda inginkan, reboot saja.

Maks
sumber