Я запускаю файловый сервер на сервере 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.