Ссылка на перезагрузку с Windows на Ubuntu

8

У меня есть стандартная система с двойной загрузкой: Ubuntu и Windows. Grub настроен на запуск Windows по умолчанию.

Есть ли способ создать какую-либо ссылку в Windows, которая:

  1. перезагрузка Windows
  2. загрузиться в Ubuntu
задан Dmitriy Berkutov 11.06.2015 в 15:45
источник

3 ответа

5

Вам не нужно изменять /boot/grub/grub.cfg , как предположил Михал Хагара. Это может сломать Ubuntu, если вы устанавливаете новое ядро и не обновляете e:\home\user\Grubshift\ubuntudefault\grub.cfg .

Все, что вам нужно сделать, это создать / скопировать файл /boot/grub/grubenv со следующим контентом

# GRUB Environment Block
next_entry=2
###########################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################

Где next_entry - строка следующей записи меню grub, которая должна быть запущена в следующий раз (начиная с нуля). Таким образом, next_entry=2 будет 3-й строкой.

Grub автоматически удалит значение после загрузки, поэтому в следующий раз вы снова загрузитесь в ОС по умолчанию.

Вот как работает grub-reboot .

    
ответ дан Germar 11.06.2015 в 23:22
источник
2

Вот что я имею в виду:

  • Ссылка (он должен быть способен записывать на EXT-раздел, «монтировать» и назначать букву при загрузке)
  • , тогда я бы подготовил модифицированный файл GRUB, где Ubuntu установлен как ОС по умолчанию (этот файл также будет сохранен в разделе Linux)
  • Сценарий Windows BATCH (выполненный по вашему желаемому ярлыку), который:
    1. Резервное копирование OLD GRUB (Windows по умолчанию)
    2. копировать модифицированный GRUB (по умолчанию Ubuntu) поверх OLD (по умолчанию это Windows)
    3. Перезагрузите компьютер.
  • Сценарий Linux BASH, который будет модифицировать и обновлять GRUB при запуске (или перезагрузке), чтобы установить Windows в качестве ОС по умолчанию

Я могу совершенно ошибиться в этом подходе, но я не вижу, почему он не должен работать.

EDIT:

А также есть: Ссылка , которую я никогда не пробовал.

PROGRESS

1.Shortcut для перезагрузки Windows и загрузки Ubuntu

ОК, в нижней части этого мы должны будем напрямую отредактировать grub.cfg (/boot/grub/grub.cfg) (рекомендуется - Ссылка нет возможности запускать update-grub из Windows ... если вы можете жить с этим, читайте дальше.

  • Как я уже упоминал ранее, установите Ext2Fsd , сделайте его автомонтированным и назначьте письмо при запуске
  • Я создал свою «резервную папку» в /home/user/Grubshift с тремя подкаталогами: резервная копия (для резервного копирования фактического /boot/grub/grub.cfg), ubuntudefault (для хранения grub.cfg с Ubuntu по умолчанию), windowsdefault (у вас есть идея)

После установки Ubuntu устанавливается по умолчанию, поэтому скопируйте этот файл grub.cfg в нужный каталог. У меня есть конфигурация «Windows по умолчанию», изменив GRUB с помощью grub-customizer (на мой взгляд это безопаснее), после этого скопируйте Windows grub.cfg в нужный каталог

После этого откройте блокнот и вставьте:

copy e:\boot\grub\grub.cfg /y e:\home\user\Grubshift\backup
copy e:\home\user\Grubshift\ubuntudefault\grub.cfg /y e:\boot\grub
shutdown /r /t 0

/y - опция команды copy , подавляет запрос на подтверждение того, что вы хотите перезаписать существующий файл назначения

/r /t 0 - параметры выключения, 1. означает перезагрузку, 2. означает немедленно, без появления уродливых сообщений

Изменить путь соответственно.

  • Сохраните этот файл (я использовал UTF-8) и измените расширение на *.bat
  • Создать ярлык рабочего стола для shift.bat , щелкните правой кнопкой мыши на shorctur - > Свойства - > вкладка быстрого доступа - > Запуск: сведен к минимуму (что избавится от появления CMD)

Я пробовал это как минимум 8 раз, установив Windows по умолчанию с grub-customizer ...

Я не говорю, что это безопасно, но HEY !, мы возимся с загрузчиком ... это не безопасно

Когда он полностью работает, мы можем полностью избавиться от меню GRUB, потому что он всегда будет загружаться в правильную ОС ...

    
ответ дан RiddleMeThis 11.06.2015 в 17:13
0

Вот как я настроил свою конфигурацию:

Подводя итог: система перезагружает по умолчанию последнюю активность, перезагружается из окон в linux и наоборот, используя простой скрипт.

Настройте grub для загрузки последней выбранной загрузки:

Под linux:

  • введите GRUB_DEFAULT=saved и GRUB_SAVEDEFAULT=true в / etc / default / grub
  • обновить конфигурацию, используя sudo update-grub

Установить драйверы extgs Paragons

см. Ссылка

Создать перезагрузки-скрипты:

Если / boot / grub / grubenv не существует, создайте его, используя ответ от Germar

Пакетный файл для перезагрузки из окон в linux:

@echo off
"C:\Program Files (x86)\Paragon Software\ExtFS for Windows\extmounter" /mount disk1 L:

:CheckForFile
IF EXIST "L:\boot\grub\grubenv" GOTO FoundIt
GOTO CheckForFile
:FoundIt

sed -i -e '/next_entry/c\next_entry=0' L:/boot/grub/grubenv
"C:\Program Files (x86)\Paragon Software\ExtFS for Windows\extmounter" /umount disk1 L:
echo press enter to reboot
pause
shutdown -r -t 00
  • замените /mount disk1 L: на что-то конкретное для вашей системы. Вы можете найти доступные диски, используя команду extmounter /list и букву диска. Кроме того, L: не должно быть уже выполнено.
  • сохранить его, например. reboot-linux.bat
  • вы можете щелкнуть правой кнопкой мыши на bat и выбрать run as administrator для его выполнения.

Сценарий оболочки для перезагрузки из linux в windows:

sudo sed -i -e '/next_entry/c\next_entry=2' /boot/grub/grubenv
sudo reboot
  • замените next_entry=2 тем, что есть в вашей записи в Windows.
  • сохранить его, например. ~/reboot_windows и обозначить как исполняемый файл: chmod +x ~/reboot_windows
ответ дан dominik andreas 12.01.2018 в 15:19