Làm thế nào để điều khiển từ xa mà khởi động OS Grub?


10

Hãy xem xét các thiết lập khởi động kép sau đây:

  • Grub được cài đặt để /dev/sda
  • /dev/sda1 được gắn kết như /boot
  • /dev/sda6 được gắn kết như /
  • Windows 10 được cài đặt để /dev/sdb2

Hiện tại, Grub chọn Ubuntu theo mặc định khi khởi động và tôi có thể đăng nhập từ xa qua SSH. Cũng có thể chọn Windows khi Grub khởi động và tôi có thể đăng nhập từ xa qua RDP.

Vấn đề là tôi không có cách nào chọn hệ điều hành nào để khởi động khi tôi không có mặt thực tế.

Câu hỏi này mô tả một phương pháp để Grub tự động khởi động hệ điều hành được chọn cuối cùng. Tuy nhiên, điều này sẽ không hoạt động . Nếu tôi chọn Windows, tôi không có cách nào để khởi động lại PC từ xa và khởi động Ubuntu.

Có cách nào để điều khiển từ xa mà khởi động hệ điều hành?


@Takkat từ phía Windows mặc dù? (Tôi có thể chạy Windows và có một số loại chương trình hoặc tập lệnh hướng dẫn Grub khởi động Ubuntu không?)
Nathan Osman

@Takkat oh, tôi thấy những gì bạn đang nói ... có thể hoạt động.
Nathan Osman

Bạn đã nghĩ về việc khởi động thông qua PXE? Sau đó, bạn có thể để cấu hình khởi động của mình trên một máy chủ khác mà bạn có thể truy cập bất kỳ lúc nào và điều chỉnh cho phù hợp và sau đó khởi động lại máy khác để khởi động HĐH được chỉ định?
Ziazis

Câu trả lời:


11

Chúng ta có thể khởi động lại vào một mục khởi động menu Grub đã cho bằng cách sử dụng grub-restart . Điều này cũng có thể được thực hiện từ một phiên từ xa, ví dụ như thông qua SSH.

Để khởi động vào hệ điều hành khác, chọn vị trí được thể hiện trong menu Grub bắt đầu từ 0:

sudo grub-reboot <num>

nhập mô tả hình ảnh ở đây

Trong trường hợp này, Windows của tôi đang ở vị trí 4. Vì vậy, khi phát hành

sudo grub-reboot 4 && sudo reboot

Máy sẽ khởi động lại vào Windows sau khi hết thời gian chúng tôi xác định trong cài đặt Grub.

Sau khi khởi động lại từ Windows, máy sẽ khởi động vào hệ điều hành mặc định. Điều này có thể được định nghĩa với

sudo grub-set-default <num>

Để thực hiện công việc này, chúng tôi có thể phải xác định GRUB_DEFAULT=savedtrong /etc/default/grubhệ thống của mình nhưng trên hệ thống của tôi, nó cũng hoạt động với các cài đặt mặc định.

Đáng buồn là khởi động lại Windows từ Windows không thể được thực hiện bằng cách này.


3

Một ý tưởng khác nhờ câu trả lời của takkat :

  1. Khởi động mặc định là Ubuntu
  2. grub-reboot NNmục khởi động Windows ở đâu
  3. Khởi động lại Windows sẽ đưa bạn trở lại khởi động mặc định: Ubuntu.

Nhược điểm : để khởi động lại Windows, bạn phải khởi động lại hai lần: Khởi động lại Windows, để Ubuntu khởi động grub-reboot Nlại và một lần nữa! :-(


Xin vui lòng thêm ý tưởng. :)
AB

1

Bạn có thể đặt HĐH mặc định với grub tùy theo thời gian, xem GRUB có thể được lên lịch không? Điều này có nghĩa là: tự động thay đổi 'mục nhập' (đăng nhập tự động) vào các khoảng thời gian xác định? . Vì vậy, ví dụ, bạn có thể định cấu hình grub để khởi động vào Windows khi $ MINUTE là số lẻ và khởi động lên Linux khi $ MINUTE chẵn.

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

Nếu bạn muốn một hệ điều hành cụ thể; Chỉ cần đợi cho đến khi thời gian của nó đến.

Sử dụng phương pháp này sẽ tính đến thời gian cần thiết để tiếp cận Grub. Sử dụng khung thời gian 5 phút có lẽ đáng tin cậy hơn.


Tôi nghĩ rằng nó cũng có thể xen kẽ giữa các mục khởi động. Cái gì đó như :

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

khi grub được cấu hình để ghi nhớ hệ điều hành cuối cùng được khởi động ( Làm cách nào để grub2 ghi nhớ lựa chọn cuối cùng? )

Nếu PC của bạn không khởi động vào HĐH mà bạn muốn, chỉ cần khởi động lại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.