Посилання для перезавантаження з Windows на Ubuntu


10

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

Чи є спосіб створити якесь посилання в Windows, яке б:

  1. перезавантажте Windows
  2. завантажтесь в Ubuntu

Сумніваємось, що є спосіб
Тім

1
Це можливо, але не простим способом .... Не знаю про можливості цього: sourceforge.net/projects/grub2win/files спробуйте, якщо хочете, або de.mcbf.net/david/grubchoosedefault, і ви отримаєте 100 % потрібен цей ext2fsd.com . Ви також можете прочитати цей linuxquestions.org/questions/linux-software-2/…
RiddleMeThis

1
@ Тим, де є воля (або тонни грошей), є спосіб: D
Вільф

Відповіді:


8

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

Все, що вам потрібно зробити - це створити / скопіювати файл /boot/grub/grubenvіз наступним вмістом

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

Де next_entryзнаходиться рядок наступного пункту меню, який слід запустити наступного разу (починаючи з нуля). Так next_entry=2було б 3-й рядок.

Grub автоматично видалить значення після завантаження, тому наступного разу ви знову завантажитеся в вашу ОС за замовчуванням.

Так grub-rebootпрацює.


Це набагато зручніше рішення, дякую!
Дмитро Беркутов

Не знав про цю функціональність:) ... Як ви могли помітити, я зазначив, що возитися з grub.cfg - це не найрозумніше ...
RiddleMeThis

Ви впевнені, що 987 разів потрібно "#"? Я думаю, що 462 рази достатньо :-D
Jounathaen

2

Ось що я маю на увазі:

  • http://www.ext2fsd.com/ (він повинен мати можливість запису на розділ EXT, "монтаж" та присвоєння листа при завантаженні)
  • тоді я підготував би модифікований файл GRUB, де Ubuntu встановлений як ОС за замовчуванням (цей також буде зберігатися на розділі Linux)
  • Сценарій BATCH для Windows (виконується бажаним ярликом), який би:
    1. Резервне копіювання OLD GRUB (Windows за замовчуванням)
    2. скопіювати модифікований GRUB (за замовчуванням - Ubuntu) через OLD (за замовчуванням - Windows)
    3. Перезавантажте ПК
  • Сценарій Linux BASH, який би модифікував і оновлював GRUB при запуску (або перезавантаженні), щоб повернути Windows як ОС за замовчуванням

Я можу повністю помилитися з таким підходом, але не можу зрозуміти, чому він не повинен працювати.

Редагувати:

А також є: http://www.paragon-drivers.com/extfs-windows/ яких я ніколи не пробував.


ПРОГРЕС

1.Шорт-клавіша для перезавантаження Windows та завантаження Ubuntu

Гаразд, з нижньої сторони цього нам доведеться змінити grub.cfg (/boot/grub/grub.cfg) безпосередньо (рекомендується проти - https://askubuntu.com/a/437341/402801), тому що є немає можливості запустити 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, клацніть правою кнопкою миші на shortctur -> властивості -> вкладка ярлика -> Run: мінімізовано (це дозволить позбутися спливу CMD)

Я намагався це принаймні 8 разів, встановивши Windows за замовчуванням із grub-customizer...

Я не кажу, що це безпечно, але НЕ !, ми возимось із завантажувачем ... це не безпечно

Коли він повністю працює, ми можемо повністю позбутися меню GRUB, оскільки воно завжди завантажиться в потрібну ОС ...


Логіка виглядає добре, на жаль ext2fsd не повністю підтримує ext4.
Дмитро Беркутов

1
Крім того, якщо сценарій закривається (як би Windows коли-небудь робив це :), комп'ютер не завантажиться - хоч і гарна ідея. Хороший приклад - якщо сценарій Linux працює під час завантаження, але комп'ютер вимикається під час завантаження та просто виконує цей сценарій, то ....
Вілф

0

Ось як я налаштував свою конфігурацію:

Підсумовуючи це: Система перезавантажує за замовчуванням до останнього активного, перезавантажується з Windows на Linux та навпаки, використовуючи простий скрипт.

Налаштуйте grub для завжди завантаження останнього вибраного:

Під Linux:

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

Встановіть драйвер Paragons extfs

див. http://www.paragon-drivers.com/extfs-windows/

Створіть сценарії перезавантаження:

Якщо / boot / grub / grubenv не існує, створіть його за допомогою відповідь від Germar

Пакетний файл для перезавантаження з Windows на 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.