Скрипт для двойной загрузки

Скрипт для двойной загрузки

Я запускаю файловый сервер на сервере Ubuntu с двойной загрузкой с Windows 7, теперь мне нужен СКРИПТ, который может перезапустить сервер в полночь и запустить Windows 7, и я поместил несколько настраиваемых скриптов в свой Windows 7, чтобы он мог выполняться ночью из Windows 7, а утром, когда я запускаю сервер, он автоматически запускался с сервером Ubuntu.

Пожалуйста, помогите мне выполнить это с помощью скрипта.

Заранее спасибо.

решение1

Вот решение, с которым вы должны уметь работать. Оно некрасивое и требует некоторой работы, и может отличаться в зависимости от используемой версии Ubuntu. Я придумал это, используя 16.04. Я также только что протестировал это для загрузки другого ядра, поскольку у меня не установлена ​​Windows на этом компьютере. Поскольку у вас двойная загрузка, я должен предположить, что у вас уже отображается меню grub и, надеюсь, запись Windows в главном меню, а не в подменю, о котором я расскажу позже.

Сначала вам нужно отредактировать ваш /etc/default/grubфайл

Найдите запись, GRUB_DEFAULT="#"вероятно, это 0. Измените ее на следующую GRUB_DEFAULT="saved"и добавьте под ней строку, которая говорит:GRUB_SAVEDEFAULT="true"

Это должно выглядеть примерно так:

GRUB_DEFAULT="saved"
GRUB_SAVEDEFAULT="true"
...and so on...

Сохраните файл и в терминале запуститеsudo update-grub

Теперь наступает та часть, о которой я догадываюсь. Когда вы загружаете компьютер и он находится в меню GRUB ... На моем VM-боксе, который я использовал для тестирования, отображаются следующие записи

Ubuntu
Advanced options for Ubuntu
Memory test (memtest86+)
Memory test (memtest86+,serial console)
Test1

Мне пришлось создать, Test1 entryчтобы это работало, но у меня такое чувство, что у вас есть Windows entryгде-то в этом списке, но я не знаю, куда он попадает. Вам нужно посчитать, где этот пункт меню попадает в список. Например, если ваш Windows entryтам, где мой Test1 entry, то он будет на позиции 4 (Ubuntu находится на позиции 0, а не 1)

Теперь, когда у нас все есть, нам нужно создать файл. startwinВ этом примере я открою его startwinв вашем любимом редакторе и введу следующее:

#!/bin/bash
grub-reboot 4 
reboot now

(конечно, 4 - это то число, которое вы определили, что ваш Windows entryрасположен) сохраните файл и откройте терминал. Перейдите в каталог, где startwinнаходится и убедитесь, что он установлен как исполняемый.

sudo chmod +x startwin

Теперь вы готовы попробовать.. откройте терминал, перейдите в каталог, где находится файл, и введите, sudo ./startwinконечно, сохраните всю свою работу и закройте все открытое, потому что это перезагрузит компьютер. Он должен запуститься в Windows, и когда вы скажете Windows перезагрузиться, он должен снова вернуться в Ubuntu.

Если все сработало, вам нужно всего лишь настроить задание cron, чтобы оно запускалось в полночь.

Изменить /etc/crontabдобавить запись внизу

00 00 * * * root path/to/startwin/startwin

и создайте задачу Windows по перезагрузке, когда вы захотите переключиться обратно на Ubuntu, например, в 7 утра.

Теперь в 7 утра ваша задача Windows будет автоматически перезагружать в Ubuntu, а в полночь ваш сценарий Ubuntu будет автоматически перезагружать в Windows.

Связанный контент