web-dev-qa-db-ja.com

WindowsとLinuxを別々のドライブにインストールして、起動が独立するようにする方法

UEFIファームウェアを搭載したシステムがあり、それに2つのドライブを追加します。 1つにWindows7をインストールし、もう1つにLinuxディストリビューションをインストールしたいと思います。 1つのドライブがオフラインになった場合に、他のOSを確実に起動して操作できるように設定したい、データパーティションの欠落に関する苦情を除いて。

私の計画では、最初にWindowsをインストールし、ドライブを1つだけ接続します。ドライブをGPTとしてパーティション分割し、インストールします。 WindowsはEFIパーティションを作成し、そのUEFIブートエントリを追加します。

次に、もう一方のドライブを接続し(両方がオンラインになるようにします)、Linuxインストーラーに2番目のドライブにitsEFIパーティションを作成し、そこにブートローダーをインストールするように指示します。 OpenSuseTumbleweedとArchベースのディストリビューションのどちらかを決定しています。インストール時にこれを実行できますか?

したがって、WindowsのUEFIブートエントリはDrive1\EFIを指し、LinuxのUEFIブートエントリはDrive2\EFIを指します。これらのエントリは、UUIDを介してパーティションを識別する必要があります。起動時にUEFIブートメニューを使用してOSを選択します。

私の計画は実行可能ですか? Linuxでは、ドライブが1つしかない場合、ドライブデバイスのアドレスは変更されますか(sdb-> sda)、問題が発生しますか?

これはBIOS/MBRモードで実行できますか?これがまったくできないのなら、どうしてですか?

ありがとう。

P.S.表示された関連する質問のほとんどをスキャンしましたが、同じ要件や状況を持っているものはなかったようです。 answerのあるものがある場合は、お知らせください。

1
Gyan

UEFIはそれを自動的に処理できると思います。少なくともそれshould挿入されたDVDまたはUSBスティック上のEFIパーティションを見つけるのと同じように、両方のEFIパーティションを見つけます。
UEFIで順序を手動で構成することも、起動時にボタンを押して起動するものを選択することもできます。
うん、ディストリビューションではインストール時にそれを行うことができますが、インストールするものによっては、多少の作業が必要になる場合があります。たとえば、Antergosは特に/ boot/efiパーティションを要求し、それが存在しない場合は作成できます-インストール時間でそれを理解できない場合はグーグルで検索してください。これはすべてのディストリビューションのどこかに言及する必要がある基本的なものです。

BIOS/MBRについてはわかりませんが、UEFIの代わりにそれでも可能だと思います。

編集:
それらを次々に接続する必要はありません。両方を最初から接続して問題なく動作するはずです。

1
clocktown

あなたが提案していることは、BIOSのみの起動の時代にはいくぶん一般的であり、そのコンテキストではかなりうまく機能しました。ただし、EFIモードの起動には複雑な問題があります。EFIでは、ブートローダーは半任意のファイル名を使用して EFIシステムパーティション(ESP) に格納されます。使用するブートローダーをコンピューターに指示するために、ブートローダーのファイル名(それらが存在するパーティションのIDを含む)がNVRAMに保存されます。複雑なのは、多くのEFIが、存在しないファイルを指すNVRAMエントリを自動的に削除することです。したがって、コンピュータからディスクを削除すると、EFImayはそのブートローダーへの参照を削除し、そのディスクを再び接続すると、起動できなくなります。少なくとも、NVRAMエントリを復元する方法がないわけではありません。

すべてのEFIがこれを行うわけではないことを強調したいと思います。一部のエントリは無効なNVRAMエントリをそのまま残します。つまり、ハードディスクを取り外して復元した後も引き続き機能します。 NVRAMエントリを削除するコンピュータの割合がわかりません。これを自分で確認する必要があります。

この問題を回避する1つの可能な方法は、ESPのEFI/BOOT/bootx64.efi(x86-64/AMD64/x64システムの場合)である「フォールバックファイル名」を利用することです。ファームウェアが他の有効なブートローダーを見つけることができない場合、このファイル名のブートローダーが起動されます。したがって、OSの通常のブートローダーをこの名前にコピーまたは名前変更して、機能させることができます。または、その場所にブートマネージャーを配置することもできます。 (ブートmanagerを使用すると、ブートするOSを選択できます;ブートローダーOSカーネルをメモリにロードします。GRUBのようないくつかのプログラムは両方のことを行います。)私の rEFIndブートマネージャ のようなものがこれに役立つかもしれません。理論的には、rEFIndを両方のディスクのフォールバック位置に配置し、WindowsとUbuntuのNVRAMエントリをクリアすることはかなりうまくいくはずですが、1つの問題があります。多くのEFIは、Windowsブートローダー(EFI/Microsoft/Boot/bootmgfw.efi)をあたかもそうであるかのように扱います。別のフォールバックファイル名。通常のフォールバックファイル名よりも昇格される可能性があるため、Windowsディスクがインストールされている場合、システムはWindowsで起動する可能性があります。

コンピュータが無効なNVRAMエントリを削除し、フォールバックファイル名に依存している場合、起動が予測できなくなる可能性があることに注意してください。つまり、最後に起動したもの、最後に起動したときに接続されたディスクなどに応じて、コンピューターがWindowsに移行し、Linuxに移行する可能性があります。コンピューターに組み込まれているものを使用できるはずです。 -ブートマネージャーで特定のOSを強制的に起動しますが、これらのツールは扱いにくいことが多く、信頼性が低い場合があります。

これらすべてが、なぜディスクを取り外せるようにしたいのかという質問に対する答えを重要なものにします。 EFIでは、両方のディスクを常に接続したままにしておく方が、必要に応じて交換するよりも簡単な場合があります。一方のOSが他方のファイルを破棄する可能性を減らしたい場合は、適切なバックアップと、各OSが読み取りと書き込みを許可されるパーティションを適切に計画することをお勧めします。

必要に応じて、中間のオプションとして、1つのディスクを永続的にインストールしたままにして、両方のOSのブートローダーをそのディスクに配置します。その後、必要に応じて2番目のディスクのプラグを抜くことができます。ただし、多くのディストリビューションはLinux /bootディレクトリ内のファイルに依存するようにGRUBを構成するため、Linuxディスクをプラグを抜くことができるようにする場合は、永続的にインストールされたディスク上の/bootパーティション。または、GRUBのエキスパートになって、ESPに構成ファイルとサポートファイルを保持するか、他の何かを使用することもできます。 GRUBよりも。極端な場合の代替手段として、ESPと、必要に応じて/bootパーティション、および)を備えた非常に小さなディスク(USBフラッシュドライブでも)を使用できます。各OSのインストールの大部分に個別のディスクを使用します。

もう1つのオプションは、BIOSモード(別名「レガシー」)ブートのサポートを提供する互換性サポートモジュール(CSM)に依存することです。 WindowsとLinuxの両方をBIOSモードでインストールし、10年前と同じようにコンピューターを起動できます。ただし、CSMの制御にはある程度の専門知識が必要です。 BIOSモードではなくEFIモードで誤って起動する(またはその逆)のは簡単です。また、OSに慣れていない場合は、OSを完全にインストールして終了するまで、何をしたかさえわからない可能性があります。期待どおりに起動しません。このテーマの詳細については、 私のこのページ を参照してください。

1
Rod Smith

結果

できます。

各OS(Windows7およびOpenSuseTumbleweed)は、起動して動作します。

  • 両方のハードドライブがオンライン
  • 他のハードドライブがオフライン

私がしたこと

1)UEFIでハードドライブ2を無効にし、ハードドライブ1にWindows 7をインストールしました。他のハードドライブを無効にする必要はありませんが、Windowsは見つけたものにフラグを立てるのが好きなので、それは避けたいと思いました。 HD1はGPTとしてフォーマットされています。

2)ハードドライブ2を有効にします。これで両方のドライブがオンラインになります。ドライブ2にOpenSuseをインストールしました。HD2はGPTとしてフォーマットされています。 SuseインストーラーでLinux用に作成されたすべてのパーティションは、このドライブにあります。 EFI、スワップ、OS /ルート、およびユーザーパーティション。すべてのパーティションは[〜#〜] uuid [〜#〜](重要)を介してマウントされます。ドライブ1は変更されません。選択されたブートローダーはEFIのGrub2です。

3)両方のドライブを有効にし、もう一方のドライブを無効にして起動することにより、各OSをテストしました。正常に動作します。小さな問題の1つは、Windowsドライブが無効になっている場合、Tumbleweedの初期化に少し時間がかかることです。これは、スワップパーティションに関連するスタートアップジョブがタイムアウトするためです。パーティション自体はUUIDを介してマウントされますが、一部のsystemdジョブはデバイスアドレスを介してパーティションを参照します。両方のドライブを有効にすると、スワップデバイスのアドレスは/dev/sdb2、そしてLinuxドライブだけを有効にすると、それは/dev/sda2。初期化時間を延長する以外は、起動後の動作に影響を与えないようです。両方のドライブがオンラインであるため、通常の使用では問題になりません。それを調べます。

1
Gyan

UEFIおよびBIOSファームウェアと同様に、完全に独立したLinuxおよびWindowsインストールを別々のハードディスクに作成できます。

同じことはドライブには当てはまりません(ドライブは通常、Windowsの用語ではパーティションです)。

初心者およびあまり上級でないユーザーの場合は、空のハードディスクからOSのインストールを開始することをお勧めします(ディスクが1つだけ接続されている)。 OS(Windows/Linux)は、必要なすべてのパーティションを作成し、必要なすべてのフォーマットを実行して、OSをインストールします。

ただし、UEFIには共通のリソースがあります-NVRAM(不揮発性メモリ)!

NVRAMでは、OSをインストールするとブートエントリが作成されます(デフォルトでブートできるようになります)。 2つのOS(LinuxとWindows)をインストールすると、2つのブートエントリ(OSごとに1つ)があり、そのうちの1つがデフォルト(通常は最後にインストールされたOSのブートエントリ)になります。

MBRファームウェアでは、最初のディスクが最初のブート候補であり、デフォルトで選択されています。 MBR(マスターブートレコード)にブートコードがなく、アクティブパーティション(Windowsのみ)がない場合、ブートは失敗します。

両方のOSをインストールしたら、両方のハードディスクを安全に接続し、起動選択キー(通常はF12キー)を使用して、起動するOSを選択できます。選択しない場合、デフォルトでOSの1つが選択されます。

UEFIファームウェアでは、通常、(ファームウェアセットアップを使用して)NVRAMのブートエントリを並べ替えることができるはずです(最初のエントリはデフォルトのエントリです)。

コンピューターにUEFIファームウェアがある場合は、MBRスタイルのディスクとMBRの起動/インストールを忘れることをお勧めします。 UEFIは今日のデファクトスタンダードであり、多くの利点があります(「セキュアブート」を使用すると、ブートチェーンのセキュリティを強化でき、GPTスタイルのディスクパーティションは多くのMBRの欠点を解決します)。

不明な点がないか、遠慮なくお尋ねください。

0
snayob