@ Тим, где есть воля (или тонны денег), есть способ: D
Уилф
Ответы:
8
Вам не нужно изменять, /boot/grub/grub.cfgкак предложил Михал Хагара. Это может сломать Ubuntu, если вы установите новое ядро и не обновите e:\home\user\Grubshift\ubuntudefault\grub.cfg.
Все, что вам нужно сделать, это создать / скопировать файл /boot/grub/grubenvсо следующим содержанием
Где next_entryнаходится строка следующего пункта меню grub, которая должна быть запущена в следующий раз (начиная с нуля). Так next_entry=2будет 3-я строка.
Grub автоматически удалит это значение после загрузки, поэтому в следующий раз вы снова загрузитесь в свою ОС по умолчанию.
Не знал об этой функциональности:) ... Как вы могли заметить, я указывал, что возиться с grub.cfg не самый мудрый ...
RiddleMeThis
Вы уверены, что требуется 987 раз #? Я думаю, что 462 раза достаточно :-D
Jounathaen
2
Вот что я имею в виду:
http://www.ext2fsd.com/ (он должен иметь возможность записи в раздел EXT, «монтирования» и назначения буквы при загрузке)
Затем я подготовил бы модифицированный файл GRUB, где Ubuntu установлена в качестве ОС по умолчанию (этот файл также будет храниться в разделе Linux)
Скрипт Windows BATCH (выполняется по желаемому ярлыку), который:
Резервное копирование OLD GRUB (Windows по умолчанию)
скопировать измененный GRUB (по умолчанию Ubuntu) поверх старого (по умолчанию Windows)
Перезагрузите компьютер
Linux BASH-скрипт, который изменяет и обновляет GRUB при запуске (или перезагрузке), чтобы вернуть Windows в качестве ОС по умолчанию
Я могу быть совершенно неправ с этим подходом, но я не понимаю, почему он не должен работать.
1. Сочетание клавиш для перезагрузки Windows и загрузки Ubuntu
Хорошо, минусом этого является то, что нам придется изменить grub.cfg (/boot/grub/grub.cfg) напрямую (рекомендуется против - https://askubuntu.com/a/437341/402801), так как есть нет способа запустить update-grubиз Windows ... если вы можете жить с этим, читайте дальше.
Как я уже упоминал ранее, установите Ext2Fsd , сделайте его автоматическое монтирование и назначьте букву при запуске
Я создал свою «Папку резервного копирования» /home/user/Grubshiftс 3 подкаталогами: резервное копирование (для резервного копирования фактического /boot/grub/grub.cfg), ubuntudefault (для хранения grub.cfg с Ubuntu по умолчанию), windowsdefault (у вас есть идея)
После установки Ubuntu устанавливается по умолчанию, поэтому скопируйте его grub.cfgв нужный каталог. У меня есть конфигурация «Windows по умолчанию», изменив GRUB с помощью grub-customizer (на мой взгляд, это безопаснее), после этого скопируйте Windows grub.cfgв нужный каталог
/y- опция copyкоманды, подавляет запрос на подтверждение, что вы хотите перезаписать существующий файл назначения
/r /t 0 - варианты выключения, 1. означает перезагрузку, 2. означает немедленно, без появления неприятных сообщений
Измените путь соответственно !!!
Сохраните этот файл (я использовал UTF-8) и измените расширение на *.bat
Создать ярлык на рабочем столе для shift.bat, щелкните правой кнопкой мыши по Shortctur -> Свойства -> вкладка ярлыка -> Выполнить: свернуто (это избавит от появления CMD)
Я пробовал это по крайней мере 8 раз, устанавливая Windows по умолчанию с grub-customizer...
Я не говорю, что это безопасно, но ЭЙ !, мы возимся с загрузчиком ... это не безопасно
Когда он полностью заработает, мы сможем полностью избавиться от меню GRUB, потому что оно всегда будет загружаться в нужную ОС ...
Логика выглядит хорошо, к сожалению, ext2fsd не полностью поддерживает ext4.
Дмитрий Беркутов
1
Также, если сценарий испортится (как будто Windows когда-либо сделает это), компьютер не загрузится - хорошая идея. Хороший пример: сценарий Linux запускается при загрузке, но компьютер выключается во время загрузки и просто выполняет этот сценарий, а затем ...
Уилф
0
Вот как я настроил свою конфигурацию:
Подводя итог: система перезагружает систему по умолчанию до последней активной, перезагружается из windows в linux и наоборот, используя простой скрипт.
Установите grub, чтобы всегда загружать последний выбранный:
Если / 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
Вы можете щелкнуть правой кнопкой мыши на летучей мыши и выберите, 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
Ответы:
Вам не нужно изменять,
/boot/grub/grub.cfg
как предложил Михал Хагара. Это может сломать Ubuntu, если вы установите новое ядро и не обновитеe:\home\user\Grubshift\ubuntudefault\grub.cfg
.Все, что вам нужно сделать, это создать / скопировать файл
/boot/grub/grubenv
со следующим содержаниемГде
next_entry
находится строка следующего пункта меню grub, которая должна быть запущена в следующий раз (начиная с нуля). Такnext_entry=2
будет 3-я строка.Grub автоматически удалит это значение после загрузки, поэтому в следующий раз вы снова загрузитесь в свою ОС по умолчанию.
Вот как это
grub-reboot
работает.источник
Вот что я имею в виду:
Я могу быть совершенно неправ с этим подходом, но я не понимаю, почему он не должен работать.
РЕДАКТИРОВАТЬ:
А также есть: 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 ... если вы можете жить с этим, читайте дальше./home/user/Grubshift
с 3 подкаталогами: резервное копирование (для резервного копирования фактического /boot/grub/grub.cfg), ubuntudefault (для хранения grub.cfg с Ubuntu по умолчанию), windowsdefault (у вас есть идея)После установки Ubuntu устанавливается по умолчанию, поэтому скопируйте его
grub.cfg
в нужный каталог. У меня есть конфигурация «Windows по умолчанию», изменив GRUB с помощью grub-customizer (на мой взгляд, это безопаснее), после этого скопируйте Windowsgrub.cfg
в нужный каталогПосле этого откройте блокнот и вставьте:
/y
- опцияcopy
команды, подавляет запрос на подтверждение, что вы хотите перезаписать существующий файл назначения/r /t 0
- варианты выключения, 1. означает перезагрузку, 2. означает немедленно, без появления неприятных сообщенийИзмените путь соответственно !!!
*.bat
shift.bat
, щелкните правой кнопкой мыши по Shortctur -> Свойства -> вкладка ярлыка -> Выполнить: свернуто (это избавит от появления CMD)Я пробовал это по крайней мере 8 раз, устанавливая Windows по умолчанию с
grub-customizer
...Я не говорю, что это безопасно, но ЭЙ !, мы возимся с загрузчиком ... это не безопасно
Когда он полностью заработает, мы сможем полностью избавиться от меню GRUB, потому что оно всегда будет загружаться в нужную ОС ...
источник
Вот как я настроил свою конфигурацию:
Подводя итог: система перезагружает систему по умолчанию до последней активной, перезагружается из windows в linux и наоборот, используя простой скрипт.
Установите grub, чтобы всегда загружать последний выбранный:
Под Linux:
GRUB_DEFAULT=saved
иGRUB_SAVEDEFAULT=true
в / etc / default / grubsudo update-grub
Установите драйвер Paragons extfs
см. http://www.paragon-drivers.com/extfs-windows/
Создать reboot-скрипты:
Если / boot / grub / grubenv не существует, создайте его, используя ответ Germar
Пакетный файл для перезагрузки из Windows в Linux:
/mount disk1 L:
что-то конкретное для вашей системы. Вы можете найти доступные диски, используяextmounter /list
команду и букву диска. Кроме того,L:
не должны быть уже приняты.reboot-linux.bat
run as administrator
чтобы выполнить егоСценарий оболочки для перезагрузки из Linux в Windows:
next_entry=2
на то, что ваша запись Windows.~/reboot_windows
и отметьте как исполняемый файл:chmod +x ~/reboot_windows
источник