1

Предположим, у меня есть хост Linux с Windows-7, установленной в разделе на том же диске.

Можно ли загрузить Linux, сохранить его состояние в памяти (в основном Hibernate), затем загрузить Windows рядом с ним, закрыть окна, когда я закончу, и восстановить Linux (все без перезагрузки).

Цель состоит в том, чтобы использовать Linux в качестве основной ОС, и когда мне нужно приложение Windows, используйте программное обеспечение моментальных снимков, чтобы загрузить снимок состояния системы Windows для использования приложения, а затем закройте его и продолжите работу в Linux.

Я избегаю использования технологий виртуализации любой ценой, так как я также использую установку Windows для запуска игр (если только вы не найдете мне виртуальное решение с открытым исходным кодом, которое имеет 100% -ный доступ к оборудованию хоста, никаких ifs и ands, или но), пожалуйста, избегайте виртуальных технологий.

4 ответа4

0

Может быть, kexec - это то, что вы ищете. Kexec просто загружает новое ядро + аргументы и необязательный initrd, а затем переходит к точке выполнения ядра. Должна быть возможность мягкой загрузки Grub (хотя бы Grub4Dos).

Посмотрите на https://wiki.ubuntu.com/RapidReboot#Reboot_into_GRUB

Сценарии могут нуждаться в некоторой настройке для перехода в спящий режим вместо перезагрузки, но это примерно соответствует тому, что вы хотели: программная загрузка другой ОС / ядра

Это, вероятно, будет работать только в одном направлении, от Linux до Windows. Другое направление будет немного сложнее, если не невозможно.

0

«В вычислениях kexec (выполнение ядра) - это механизм ядра Linux, который позволяет" загружать "загрузку нового ядра" поверх "запущенного в данный момент ядра. Kexec пропускает этап загрузчика (этап инициализации аппаратного обеспечения микропрограммой или BIOS) и непосредственно загружает новое ядро в память, где оно сразу начинает выполняться. Это позволяет избежать длительного времени, связанного с полной перезагрузкой, и может помочь системам соответствовать требованиям высокой доступности за счет минимизации времени простоя ». -Wikipedia

но я надеюсь, что он не поддерживает NT Kernals, хотя ресурсы здесь указывают, что kexec loader поддерживает Linux/multiboot.

Я надеюсь, что нет какого-либо хорошо разработанного механизма, который мог бы загружать ядра Linux и NT без перезагрузки.

если вы предпочитаете выполнить «горячую» загрузку, если у вас есть оба раздела linux/windows на одном диске, и если вы используете загрузчик Windows, он возобновит работу без отображения меню загрузки.

Я не могу сказать ту же ситуацию с загрузчиками Linux, так как я не проверял их.Я обновлю это, как только узнаю.

если вы предпочитаете использовать «горячую» загрузку и если вы можете использовать два отдельных диска для каждого раздела, вы можете использовать режим приостановки на диск, который, насколько мне известно, является единственным методом, который может работать успешно (если вы не предпочитаете методы визуализации). .)

0

Основной проблемой будет Windows:

Под Vista (я еще не проверял это под Windows 7) есть следующее поведение:

Если вы используете диспетчер загрузки Windows для переключения между Linux и Windows, то Windows автоматически загрузится после спящего режима Windows. Это означает: вы не можете переходить в спящий режим Windows и переключаться на Linux.

При использовании GRUB в качестве менеджера загрузки Windows (Vista, но, возможно, и 7) отказывалась переходить в спящий режим. Только если MBR содержал "стандартную MBR" (которая загружает активный раздел) и если активный раздел был разделом Windows, тогда гибернация работала.

Однако был обходной путь, который работал на моей системе:

  • GRUB был установлен в (основной) раздел Linux, а не в MBR
  • Перед спящим режимом я сделал активный раздел Windows (используя команду diskpart)
  • Затем я запустил "bcdedit" без аргументов командной строки. Это было необходимо для Vista, чтобы "увидеть", что раздел Windows активен (поэтому в спящем режиме отказано не было)
  • Я переключил активный раздел на раздел Linux (используя "diskpart")
  • Из-за того, что "bcdedit" снова не запущен, Vista не упомянула, что раздел Windows больше не активен
  • Результат: Hibernating сработал, а GRUB загрузился в следующий раз!

Я написал программу, которая выполнила все эти шаги, но она была очень специфична для моей системы. К сожалению, я не знаю, работает ли этот обходной путь под Windows 7 или только под Vista.

Машина переходит в состояние "гибернация". Я не знаю, соответствует ли это требованию "перезагрузка не требуется".

0

Существует возможность иметь один и тот же раздел Windows, который вы можете запускать виртуально в VKM или запускаться как вариант загрузки GRUB.

Таким образом, в обычных условиях вы запускаете Linux с Windows на виртуальной машине. Если вы хотите запускать игры для Windows, просто перезагрузите компьютер и выберите Windows в меню загрузки GRUB.

Это может лишить вас причин избегать технологий виртуализации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .