Cara mem-boot Ubuntu dari wakeup BIOS dan sebaliknya mem-boot Windows


2

Saya memiliki sistem dual boot. Partisi Ubuntu saya perlu boot secara otomatis pada BIOS yang dijadwalkan bangun (dan wakeonlan jika memungkinkan) Kalau tidak, saya ingin boot ke Windows secara default. (tombol power)

Bagaimana seseorang dapat mengkonfigurasi sistem untuk boot ke Ubuntu hanya setelah bangun BIOS atau wakeonlan, sementara jika tidak default ke Windows? Apakah mungkin untuk mengkonfigurasi atau skrip grub untuk melakukan ini?


Alih-alih hanya melihat GRUB, Anda juga dapat memeriksa pengaturan firmware Anda. Notebook ThinkPad saya memiliki daftar prioritas boot yang berbeda ketika dihidupkan oleh WoL.
Daniel B

Jawaban:


0

Ini telah ditanyakan beberapa kali selama bertahun-tahun tanpa jawaban yang memuaskan:

Diketahui bahwa OS dapat mendeteksi alasan bangun. Tampaknya masuk akal bahwa sesuatu seperti grubharus dapat melakukan hal yang sama, tetapi saat ini tidak demikian.

Satu-satunya "solusi" yang dapat saya temukan adalah pengaturan grubuntuk dual boot dengan Linux sebagai default. Bangun seperti biasa. Login ke komputer (jarak jauh atau sebaliknya) dan reboot secara manual ke Windows dengan sesuatu seperti sudo grub-reboot Windows. Pengaturan dan penggunaan dijelaskan di sini .


0

Dua (atau tiga) cara berbeda

Menggunakan boot jaringan melalui server PXE.

Saya telah menggunakan trik seperti ini untuk cadangan stasiun windows (dengan ntfscloneatau partclone) saat pengguna pergi, pada malam hari.

  1. Buat server boot PXE (dhcpd + tftpd) untuk booting melalui jaringan (Anda dapat membuat menu boot spesifik untuk setiap komputer di jaringan atau membuat grup. Menu boot jaringan dapat menunjuk ke hard drive lokal.)

  2. Siapkan dua menu boot yang berbeda di server ini: satu default ke ubuntu dan lainnya default ke jendela.

  3. Tautkan menu booting default ke jendela untuk dilayani oleh server pxe.

  4. Persiapkan skrip bangun untuk

    1. ) Tautkan menu booting default ke ubuntu untuk dilayani oleh server pxe.
    2. ) Kirim sinyal wake-on-lan untuk membangunkan komputer
    3. ) Tunggu permintaan menu boot dalam log TFTP (perhatikan batas waktu dan batas, dengan asumsi pengecualian).
    4. ) Tautkan menu booting default ke jendela untuk dilayani oleh server pxe.
  5. Anda bahkan dapat mencoba menjalankan yang sama melalui crontab untuk disinkronkan oleh BIOS wakup, tetapi jika dalam crontab, Anda bisa menjalankan skrip yang ditentukan di 4..

Ini akan melakukan pekerjaan.

(Nota a pxe boot server ringan dan dapat diinstal bahkan pada raspberry pi, NAS yang diretas atau pada router DD-WRT, untuk sampel.).

Menggunakan dmidecodeinfo

Anda bisa menggunakan dmidecode untuk menjalankan grub-reboot windowsketika boot dari saklar daya.

Cukup buat skrip yang berisi sesuatu seperti:

/bin/sh
dmidecode  | grep -q 'Wake-up Type: Power Switch' && echo grub-reboot windows
reboot

Anda dapat menjalankan skrip ini di setiap boot, dengan menambahkannya di crontab dengan @rebootarahan.

(Nota: untuk grub-reboot, Anda mungkin harus mengedit /etc/default/grub. Lihat man grub-reboot)

Ini akan bekerja tetapi akan meningkatkan waktu boot windows banyak!

Untuk menghindari ini, Anda dapat membuat khusus initramdiskyang dapat melakukan pekerjaan ini, tetapi ini tidak sesederhana itu.

Menggunakan ipxe(mungkin)

Saya tidak tahu alat ini , tetapi saya mendengar umpan balik yang bagus.

iPXE adalah firmware boot jaringan open source terkemuka. Ini memberikan implementasi PXE lengkap yang ditingkatkan dengan fitur tambahan


1
Mengapa Anda menurunkan versi ini, ini adalah jawaban yang benar (digunakan di suatu tempat dan berfungsi dengan baik)
F. Hauri

"Solusi" ini hanya mem-boot Linux ketika sebelumnya hibernasi. OP mana pun tidak menunjukkan bahwa ini akan menjadi kasusnya.
Daniel B

Jika seseorang dapat memposting komentar tentang iPXE, mereka akan disambut baik!
F. Hauri
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.