Перезагрузитесь в другую ОС

Перезагрузитесь в другую ОС

У меня ноутбук с несколькими ОС.

Есть ли команда, с помощью которой я могу завершить работу текущей ОС и загрузить другую ОС?

windows->Ubuntu и наоборот

Спасибо

решение1

Да, это возможно, если вы используете Grub для выбора загрузки:-

  • Загрузите Linux.
  • Давать возможностькореньпривилегии, войдя в систему или используя suили sudo -s.
  • Копировать /boot/grub.cfgв /boot/grub.winили /boot/grub.lin, в зависимости от вашего значения по умолчанию.
  • Отредактируйте /etc/default/grub, чтобы изменить GRUB_DEFAULT=номер альтернативной ОС в списке загрузки (отсчет начинается с нуля).
  • Запустите update-grub, затем скопируйте /boot/grub.cfgв /boot/grub.linили /boot/grub.win, в зависимости от ситуации.
  • Восстановить GRUB_DEFAULT=предыдущее значение в /etc/default/grub.
  • Создать bootlinи bootwinсодержащий:
    cp /boot/grub.lin /boot.cfgилиcp /boot/grub.win /boot.cfg
    shutdown -r now

Теперь вы можете звонить bootlinили bootwinиз Ubuntu.

В Windows вам нужно будет сделать то же самое:

  • Первая установкаext2fsd.
  • Назначьте букву диска (например U:, ) разделу Ubuntu и сделайте его доступным для записи.
  • Теперь вы можете создать bootlin.cmdи bootwin.cmdсодержащий соответствующую copyкоманду для перезаписи U:\boot\grub.cfg, а затем:
    shutdown -r

Если вы загружаетесь с помощью, ntldrвы можете использовать похожую технику с двумя копиями boot.ini(возможно, вам сначала придется очистить атрибуты Только для чтения, Системный и Скрытый). Возможно, есть похожая техника, которую вы можете использовать с другими загрузчиками, но я оставляю другим возможность предложить, что будет работать с ними.

ВНИМАНИЕ: Я нахожуext2fsdхорошо работает в режиме только для чтения, но я никогда не использовал его в режиме записи: имейте в виду, что это может повредить вашу систему Ubuntu, поэтому убедитесь, что у вас есть резервная копия, пока вы не попробуете его несколько раз и не убедитесь, что он работает правильно. Возможно, безопаснее редактировать из Windowsgrub.cfg на месте, что не потребует смены каталога, но вам понадобится какой-то встроенный редактор Windows, который не использует рабочие файлы в той же файловой системе, или написать несколько строк, чтобы Cсделать это.

решение2

Эти сведения могут не совсем соответствовать тому, как UEFI обрабатывает системы GPT, но они описывают системы на основе MBR.

Официальный (старый) стандарт — использовать то, что находится в Master Boot Record. Команда "fdisk" может использоваться для изменения деталей MBR.

Традиционная MBR содержит несколько битов, которые определяют, помечен ли раздел. Стандарт определяет, что помечен только один раздел, хотя это не обязательно навязывается загрузочным кодом. Когда пользователь указывает, что определенный раздел должен быть помечен, традиционная программа fdisk обычно проверяет наличие другого помеченного раздела и, если он найден, снимает с него пометку. Могут быть альтернативные слова, используемые для описания «помеченного» раздела, например «выбранный» раздел.

Затем традиционный MBR содержит некоторый "код" (инструкции). Когда система загружается, этот код запускается. Код проверит MBR, чтобы увидеть, насколько велик каждый раздел, и какой раздел помечен. Затем он продолжит процесс загрузки, запустив некоторый дополнительный код, который находится в помеченном разделе.

Итак, это стандарт, который широко поддерживается. К сожалению, этот стандартный метод подразумевает вход в fdisk и взаимодействие с ним вручную. Так что это не просто одна программа, которую вы можете запустить. Однако это наиболее широко поддерживаемый стандарт.

ЦитироватьЧасто задаваемые вопросы по OpenBSD: Мультизагрузка:

Практически каждая ОС предлагает программу для этого; в OpenBSD это fdisk(8), похожие программы есть в Windows 9x и DOS, а также во многих других операционных системах. Это может быть очень желательно для ОС или систем, которые долго выключаются и перезагружаются — вы можете установить его и запустить процесс перезагрузки, затем отойти, выпить чашечку кофе и вернуться к системе, загруженной так, как вам нужно — не нужно ждать Волшебного Момента, чтобы выбрать следующую ОС.

Забавно, как при всех этих причудливых заменах, которые придумали люди, преимущества наиболее широко поддерживаемого официального процесса так часто упускаются из виду.

Я знаю, что это может быть не совсем автоматизировано, как хотелось бы, хотя в заданном вопросе не было указано отсутствие интерактивности. Поэтому простой ответ: да, такая команда есть. Это "fdisk".

Теперь, есть некоторые другие вариации, и поэтому автоматизация, вероятно, возможна, если вы ищете такое решение. Вы можете захотеть проверить свои операционные системы на наличие команды с названием "boot" или что-то в этом роде; я знаю, что старая операционная система OS/2 содержала команду "BOOT", которая могла изменить, какая операционная система была запущена. Точная команда(ы), которую вам нужно будет запустить, зависит от того, какой загрузочный код вы фактически используете. Доступно несколько программ "менеджера загрузки", и эта функциональность теперь встроена в большее количество операционных систем. Это хорошие новости. Плохая новость в том, что процесс не совсем стандартизирован, поэтому я не могу просто предоставить вам один конкретный процесс, который хорошо интегрируется с различными вариациями каждого. По сути, вам нужно выбрать решение и использовать его. Основная проблема, вероятно, заключается в том, чтобы найти процесс, который можно выполнить из нескольких операционных систем, и который можно использовать для записи в разделы диска, которые обрабатываются во время загрузки системы. Эти разделы обычно не являются частью файловой системы, и антивирусные функции могут попытаться ограничить возможность пользователя записывать данные в эти критические разделы диска.

По сути, процесс будет включать изменение флаговых битов раздела, или изменение загрузочного кода MBR, или изменение поведения кода, который находится в разделе, который MBR использует для продолжения загрузки. Так что это три разных подхода, и каждый из этих подходов фактически используется некоторыми из различных доступных опций.

Четвертый подход может заключаться в изменении диска, с которого загружается BIOS. Однако этот подход традиционно был гораздо менее совместим между различными системами, поэтому этот подход является скорее теоретической возможностью, чем чем-то, что фактически используется. (Хотя многие пользователи использовали этот подход интерактивно, часто нажимая F12 или что-то еще, чтобы вызвать меню загрузки; иногда они просто входят в настройки BIOS и меняют диск по умолчанию, который будет использоваться при последующих загрузках.)

Самый распространенный метод, вероятно, заключается в создании 512-байтового образа всей MBR, когда система загружается в одной операционной системе, а затем сохранении 512-байтового образа всей MBR, когда система загружается в другой операционной системе. Затем используйте любое необходимое вам программное обеспечение, чтобы напрямую записать эти 512 байтов в первые 512 байтов диска. (Что-то вроде "dd" подойдет.) Самая большая проблема с этим может заключаться в получении разрешения от операционной системы.

Ответ AFH, похоже, показывает, как это можно сделать из Linux с помощью grub. Менеджер загрузки Windows времен XP/2003 использовал бы такого рода образы секторов (на которые ссылался бы файл "Boot.ini"), поэтому выход из Windows можно было бы осуществить, изменив текстовый файл Boot.ini. (Этот процесс мог измениться в Vista/2008, поэтому проверьте новый менеджер загрузки, прежде чем пробовать его на новых системах.) Точный способ реализации любого из этих решений будет зависеть от того, какую операционную систему вы пытаетесь прекратить использовать. (Например: какую версию Microsoft Windows.)

решение3

в то время как когда мы вызываем аппаратную перезагрузку, это более или менее идентично выключению и включению питания последовательно. Таким образом, вся оперативная память теряется. А когда мы включаем питание, процесс загрузки обрабатывается прошивкой материнской платы. Если мы хотим сообщить прошивке материнской платы некоторыесообщениеМы не должны оставлять такие сообщения в оперативной памяти. Но мы можем записать что-нибудь (что угодно) на диск (или какой-либо другой постоянный носитель, и я считаю, что EFI предоставляет механизм для установки энергонезависимых переменных).

Помимо вышеупомянутых подходов, ядра Linux имеюткексекфункциональность для «передачи управления» другой системе без выхода оборудования из строя. Хотя ядро ​​Windows не может быть напрямую загружено с помощью kexec, существует обходной путь, заключающийся в загрузке с помощью kexec в программу-загрузчик и позволении программе-загрузчику инициализировать систему Windows.

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