У меня есть система с прошивкой UEFI, к которой я буду добавлять два диска. Я хочу установить Windows 7 на одном и дистрибутив Linux на другом. Мне бы хотелось, чтобы он был настроен таким образом, чтобы, если бы один диск находился в автономном режиме, я мог надежно загрузить и использовать другую ОС, за исключением жалоб на отсутствующие разделы данных.

Я планирую сначала установить Windows, подключив только один диск. Разбейте диск как GPT и установите. Windows создаст раздел EFI и добавит свою загрузочную запись UEFI.

Затем подключите другой диск - чтобы оба были в сети - и попросите установщика linux создать его раздел EFI на втором диске и установить там загрузчик. Я выбираю между OpenSuse Tumbleweed и одним из дистрибутивов на основе Arch. Позволят ли они мне сделать это во время установки?

Таким образом, загрузочная запись UEFI для Windows указывает на Drive1\EFI, а для Linux - на Drive2\EFI. Эти записи должны идентифицировать разделы через UUID. Я буду использовать загрузочное меню UEFI при запуске, чтобы выбрать ОС.

Мой план жизнеспособен? В Linux, изменится ли адрес устройства накопителя (sdb -> sda), если только один диск будет разрушен?

Это можно сделать через режимы BIOS/MBR? Если это вообще невозможно, почему бы и нет?

Благодарю.

PS Я просмотрел большинство связанных вопросов, но ни у одного из них не было таких же требований или обстоятельств. Если есть, с ответом, дайте мне знать.

4 ответа4

1

То, что вы предлагаете, было несколько распространено в дни загрузки только с BIOS и работало достаточно хорошо в этом контексте. Однако при загрузке в режиме EFI возникает сложность: в EFI загрузчики хранятся в системном разделе EFI (ESP) с использованием полу произвольных имен файлов. Чтобы сообщить компьютеру, какой загрузчик использовать, имена файлов загрузчика (включая идентификацию раздела (ов), в котором они находятся) хранятся в NVRAM. Сложность состоит в том, что многие EFI автоматически удаляют записи NVRAM, которые указывают на файлы, которые не существуют. Таким образом, после удаления диска с компьютера EFI может удалить ссылки на свой загрузчик (и), а когда вы снова подключите этот диск, он больше не будет загрузочным - по крайней мере, без какого-либо способа восстановления его запись NVRAM.

Я хотел бы подчеркнуть, что не все EFI делают это; некоторые оставляют недействительные записи NVRAM на месте, что означает, что они будут продолжать работать после того, как вы удалите, а затем восстановите жесткий диск. Я не уверен в процентах компьютеров, которые удаляют записи NVRAM; Вы просто должны проверить это сами.

Одним из возможных способов решения этой проблемы является использование «запасного имени файла» - EFI/BOOT/bootx64.efi (для систем x86-64/AMD64/x64) в ESP. Загрузчик с этим именем запускается, если микропрограмма не может найти другие допустимые загрузчики. Таким образом, вы можете скопировать или переименовать обычный загрузчик ОС на это имя, чтобы оно работало; или вы могли бы поставить менеджер загрузки в этом месте. (Диспетчер загрузки позволяет выбрать, какую ОС загружать; загрузчик загружает ядро ОС в память. Некоторые программы, такие как GRUB, выполняют обе функции.) Для этого может пригодиться что-то вроде моего менеджера загрузки rEFInd . Теоретически перевод rEFInd в резервное положение на обоих дисках и очистка записей NVRAM для Windows и Ubuntu должны работать достаточно хорошо, но есть одно осложнение: многие EFI относятся к загрузчику Windows (EFI/Microsoft/Boot/bootmgfw.efi) как будто это было другое запасное имя файла. Его можно продвигать по обычному резервному имени файла, поэтому система может загружаться с Windows, если установлен диск Windows.

Обратите внимание, что если компьютер удаляет недопустимые записи NVRAM, и поэтому вы используете резервное имя файла, загрузка может стать непредсказуемой. То есть компьютер может переходить на Windows один раз, а Linux - на другой, в зависимости от того, что он загружался в последний раз, какие диски были подключены во время последней загрузки и т.д. Вы должны иметь возможность использовать встроенный компьютер. - в диспетчере загрузки, чтобы принудительно запустить загрузку для конкретной ОС, но эти инструменты часто бывают неловкими и иногда ненадежными.

Все это делает ответ на вопрос, почему вы хотите иметь возможность удалять диски важно. В рамках EFI оставить оба ваших диска подключенными всегда, вероятно, проще, чем их заменять, как вы и говорите. Если вы хотите уменьшить вероятность того, что одна ОС испортит файлы другой, вам лучше иметь хорошие резервные копии и хорошо спланировать, какой раздел (ы) каждой ОС разрешено читать и записывать.

В зависимости от ваших потребностей, промежуточный вариант - оставить один диск постоянно установленным и поместить на него загрузчики обеих ОС. Затем вы можете отключить второй диск по мере необходимости. Однако имейте в виду, что во многих дистрибутивах GRUB полагается на файлы в каталоге Linux /boot , поэтому, если вы хотите отключить диск Linux, вам может потребоваться разместить раздел /boot на постоянно установленном диске. В качестве альтернативы, вы можете стать экспертом в GRUB, чтобы хранить его файлы конфигурации и поддержки в ESP; или вы могли бы использовать что-то, кроме GRUB. В качестве альтернативы в крайнем случае вы могли бы иметь очень маленький диск (даже флэш-накопитель USB) с ESP и, при необходимости, раздел /boot и использовать отдельные диски для основной части установки каждой ОС.

Другим вариантом является использование модуля поддержки совместимости (CSM), который обеспечивает поддержку загрузки в режиме BIOS ("устаревший"). Вы можете установить как Windows, так и Linux в режиме BIOS и загрузить компьютер так же, как и десять лет назад. Управление CSM требует некоторого опыта, хотя; Легко случайно загрузиться в режиме EFI, а не в режиме BIOS (или наоборот), и если вы не знакомы с ним, вы можете даже не осознавать, что вы сделали, пока вы полностью не установили ОС, и это закончится не загружается так, как вы ожидали. Смотрите эту страницу для получения дополнительной информации по этому вопросу.

1

Я думаю, что UEFI может автоматически справиться с этим. По крайней мере, он должен найти оба раздела EFI, точно так же, как он найдет любой раздел EFI на DVD-диске, который вставлен, или на USB-накопителе.
Вы можете настроить порядок в UEFI вручную или в большинстве случаев нажать кнопку при запуске, чтобы вы могли выбрать, что загружать.
Да, дистрибутивы позволят вам сделать это во время установки, но в зависимости от того, что вы устанавливаете, вам, возможно, придется выполнять больше или меньше работы. Например, Antergos специально запрашивает раздел /boot /efi, и вы можете создать его, если он не существует - просто Google, если вы не можете понять это во время установки, это основные вещи, которые должны быть упомянуты где-то для каждого дистрибутива ,

Я не знаю насчет BIOS/MBR, но думаю, что это возможно даже с этим вместо UEFI.

Редактировать:
Там не должно быть никакой необходимости соединять их один за другим. Он должен нормально работать с обоими подключенными с самого начала.

0

Как и с UEFI, так и с прошивкой BIOS вы можете создавать полностью независимые установки Linux и Windows на отдельных жестких дисках.

То же самое НЕ справедливо для дисков (диск обычно является разделом в терминологии Windows).

Для начинающих и менее опытных пользователей всегда лучше начинать установку ОС на пустой жесткий диск (только с одним подключенным диском). ОС (Windows/Linux) создаст все необходимые разделы, выполнит все необходимое форматирование и установит ОС.

Однако в UEFI у нас есть общий ресурс - NVRAM (энергонезависимая память)!

В NVRAM загрузочные записи создаются при установке любой ОС (поэтому она может загружаться по умолчанию). При установке двух ОС (Linux и Windows) будет две загрузочные записи (по одной на ОС), и одна из них будет использоваться по умолчанию (обычно это загрузочная запись для последней установленной ОС).

В прошивке MBR первый диск является первым кандидатом на загрузку и выбран по умолчанию. Если в MBR(основной загрузочной записи) нет загрузочного кода и нет активного раздела (только для Windows), загрузка завершится неудачно.

После установки обеих ОС вы можете безопасно подключить оба жестких диска и использовать клавишу выбора загрузки (обычно клавиша F12), чтобы выбрать, какую ОС загружать. Если вы не сделаете выбор, по умолчанию будет выбрана одна из ОС.

На прошивке UEFI обычно должна быть возможность (с помощью настройки прошивки) изменить порядок загрузочных записей в NVRAM (первая запись - запись по умолчанию).

Я бы посоветовал, если на компьютере установлена прошивка UEFI, чтобы забыть о дисках в стиле MBR и загрузке / установке MBR. UEFI сегодня является стандартом де-факто и имеет много преимуществ (безопасность цепочки загрузки может быть обеспечена при использовании "безопасной загрузки", разбиение диска в стиле GPT устраняет многие недостатки MBR).

Не стесняйтесь спрашивать, если что-то неясно.

0

Результаты

Оно работает.

Каждая ОС - Windows 7 и OpenSuse Tumbleweed - загружается и работает, с

  • оба жестких диска онлайн
  • другой жесткий диск в автономном режиме

Что я сделал

1) Отключил жесткий диск 2 в UEFI и установил Windows 7 на жесткий диск 1. Не должно быть необходимости отключать другие жесткие диски, но Windows любит устанавливать свой флаг во всем, что только может найти, так что я подумала, что этого избежать. HD1 отформатирован как GPT.

2) Включен жесткий диск 2. Теперь оба диска в сети. Установленный OpenSuse на диске 2. HD2 отформатирован как GPT. Все разделы, созданные для Linux в установщике Suse, находятся на этом диске, а именно. EFI, Swap, OS/root и пользовательские разделы. Все разделы монтируются через UUID (важно). На диске 1 не производится никаких изменений. Выбранный загрузчик - Grub2 на EFI.

3) Протестировал каждую ОС, загрузившись с включенными обоими дисками и с отключенным другим диском. Работает отлично. Одна небольшая проблема заключается в том, что если диск Windows отключен, Tumbleweed занимает немного больше времени для инициализации. Это потому, что есть задание запуска, связанное с разделом подкачки, которое истекло. Даже если сам раздел монтируется через UUID, некоторые системные задания ссылаются на раздел через адрес устройства. Когда оба диска включены, адрес устройства подкачки - /dev/sdb2 , а с включенным только диском linux - /dev/sda2 . Похоже, не влияет на работу после загрузки, кроме продления времени инициализации. Не проблема при обычном использовании, так как оба диска подключены к сети. Посмотрим на это.

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