
最近、Windows 7 と一緒にラップトップに Ubuntu 15.04 をインストールしました。Samsung SSD のパーティションにインストールされ、すべて正常にインストールされたようです。パーティションは正しいようで、すべて問題ないように見えますが、何らかの理由で、コンピューターを起動すると、GRUB メニューが読み込まれずに直接 Windows が起動します。
Live CD のブート修復ツールを何度も試しましたが、この問題は解決しませんでした。また、オンラインで提案されているように、ターミナルを使用して手動で修正する方法もいくつか試しましたが、それでもうまくいきませんでした。Ubuntu は初めてなので、初めてインストールし、助けを求めています。
私は Ubuntu がとても好きで、Linux コマンドにもかなり精通しているので、完全な初心者ではありませんが、システムを正しく設定する方法を理解するには助けが必要です。
現在のセットアップのブート情報の概要は、ここ
ご協力いただければ幸いです。
答え1
ブート情報の概要によると
=> Windows 7/8/2012 は /dev/sda の MBR にインストールされています。
Windows ブートローダが MBR にインストールされ、grub がパーティション /dev/sda6 にインストールされています。そのため、コンピュータは、grub、Linux などについて何も知らない Windows ブートローダに直接起動します。
grub をパーティション (sda6) ではなく、sda に直接インストールする必要があります。
そのためには、Linuxを任意の方法で起動します(Plop ブート マネージャーCD または任意のものから) をコピーし、コンソールで実行しますsudo grub-install /dev/sda
(これにより、mbr にインストールされます)。次にsudo update-grub
(これにより、grub メニューが更新されます)。
sda6 にある grub.conf から判断すると、update-grub は Windows ブート エントリをメニューに自動的に追加します。
その後、インストールされている OS や Linux も起動できます (これがデフォルトのオプションになるようです)。
答え2
この問題を解決するために何度も試みた後、さまざまな情報源から得たいくつかのヒントでようやく解決できました。まず、この問題を解決しようとしていただいた皆様のご協力に感謝します。どの回答も直接は役に立ちませんでしたが、問題の解決策を見つけるのに役立ちました。ありがとうございます。
GRUB を /dev/sda の MBR に直接インストールしてもうまくいきませんでした。Windows と Sony が私のマシンで Windows が実際に起動する方法を非常にうまく隠蔽したためだと思います。結局、Windows のブート マネージャー ファイルに「grubx64.efi」ファイルをコピーする必要がありました。これを安全かつ効率的に実行するために私が実行した手順は次のとおりです。同様の問題を抱えている人が完全な回答を必要としている場合に備えて、Ubuntu のインストールで実行したすべての手順を説明します。
Windows 7 搭載の Sony Vaio S に Ubuntu 15.04 をインストールする手順
注意: このプロセスは、他のすべての可能なオプションを試したと思われる場合にのみ使用してください。このプロセスは機能しますが、Windows ブート ファイルの名前を変更する必要があり、適切に実行しないと危険な場合があります。続行する前に、重要な情報をバックアップすることを強くお勧めします。
Ubuntu インストール用のハードドライブを準備する
- Windowsを起動する
- 必要に応じてハードドライブをデフラグすることもできますが、これは必須ではありません。
- Windows パーティションを必要な量だけ縮小します。すべてのファイルやインストールなどに必要なスペースを決定し、その量に RAM のサイズを追加することをお勧めします。
- パーティションを縮小する方法のビジュアルチュートリアルについては、ここをクリックしてくださいここ
- 例: Ubuntu システム用に 50GB を予約したいのですが、RAM は 16GB あります。そのため、パーティションを 66GB 縮小しました。ただし、Windows は縮小を MB 単位で計算するため、希望するサイズに 1024 を掛ける必要があります。私の場合、66 x 1024 = 67584MB
- 注意: 現在のインストールでないすでに ESP (EFI システム パーティション) がある場合は、インストール用の別のチュートリアルに従うことをお勧めします。このチュートリアルは、Windows のセキュリティ対策により起動の問題を引き起こす ESP を搭載したコンピューターへのインストールを特に対象としています。UEFIとESPについて詳しく知るここ
ライブCDまたはUSBからUbuntuを起動する
- GRUB メニューが表示されたら、「インストールせずに Ubuntu を試す」をクリックします。Ubuntu に慣れていない場合は、しばらく試してみて、インストールする価値があるかどうかを確認することをお勧めします。CD または USB スティックから操作しているため、すべてが非常にゆっくりと読み込まれることに注意してください。
Ubuntu がようやく起動したら、インストールするバージョンに応じて「Ubuntu XX.XX をインストール」と書かれたデスクトップのロゴをクリックします。私の場合は 15.04 でした。
指示に従ってメニューをクリックします (インターネット接続が高速で、特に SSD にインストールする場合は、「サードパーティ ドライバー」および「更新プログラムのインストール」チェック ボックスをクリックすることをお勧めします)。
より速くインストールしたい場合は、これらの手順を後でいつでも実行できるため、これらのボックスをチェックしないでください。
重要:「ドライブ領域の割り当て」というメニューに到達したら、「その他」というオプションをクリックします。これは、手順 1 で準備したパーティションを設定する場所だからです。
パーティションの作成:
- スワップ用のパーティションを作成します。空き領域のパーティションを選択し、左下のプラス ボタンをクリックします。サイズは RAM のサイズと同じにします。私の場合は 16 GB (16384 MB) でした。パーティションの種類には「プライマリ」、場所には「スペースの先頭」、セクションとして使用するには「スワップ」を選択します。注: 「スワップ」を選択するとマウント ポイント オプションは消えます。「OK」をクリックします。
すべてのファイルとルート用のパーティションを作成します。これは、すべてのファイルとプログラムが配置されるメイン パーティションです。空き領域を選択し、左下のプラス ボタンをクリックします。残りの空き領域と同じサイズにします (エディターはこれを自動的に行います)。パーティション タイプに「プライマリ」、場所に「この領域の先頭」、用途に「Ext4 ジャーナリング ファイル システム」を選択し、最後にマウント ポイントに「/」(ルート) を選択します。「OK」をクリックします。
注意: 「空き領域」はもう残っていないはずです。残っている場合は、すべてのパーティション サイズの合計が、手順 1 でウィンドウを縮小した MB の合計数と一致していることを確認してください。
重要:「ブート ローダーのインストール用デバイス」オプションを選択するときは、「/boot」ディレクトリと同じ場所を選択します。これは ESP システムへのインストールなので、ブート ディレクトリは Windows ブート マネージャーと同じ場所になります。
私の場合、これは「/dev/sda3」でしたが、ESP がどのデバイス上にあるかがわかるように、「Windows Boot Manager」などの説明があるはずです。
インストーラーに説明がない場合は、GParted を開いて、ラベル セクションで Windows ブート マネージャーについて説明しているものを探します。これが探している場所です。「ブート ローダーのインストール用デバイス」でそのデバイスを選択します。
次に、右下にある「今すぐインストール」ボタンをクリックします。ここは後戻りできない地点です。すべてを正しく設定したと確信できる場合にのみ続行してください。
インストールが完了したら、「再起動」をクリックしないでください。「Ubuntu を試し続けよう」リンクをクリックして手順 7 に進みます。
開いているプログラムとウィンドウをすべて閉じます。
注意: このセクションでは、「/dev/sda3」を、手順 6 の最後にブート ローダーのインストール用に選択したデバイスに置き換えます。
ターミナルを開き、注意深く読みながら時間をかけて次の操作を実行してください。
Windows ブート マネージャー ファイルがどこにあるかを特定する必要があります。私の場合と同様に、パスは「/EFI/Microsoft/Boot/bootmgfw.efi」にある可能性が高いですが、確認する必要があります。
これを実行する唯一の方法は、grub を更新して、ブート マネージャーが見つかった場所を知らせてもらうことです。これを行うには、次のように入力します。「/dev/sda3」をブート ローダーをインストールしたデバイスに置き換えることを忘れないでください。
sudo mount /dev/sda3 /mnt cd /mnt sudo update-grub
この
cd /mnt
コマンドは、grub がインストールされているディレクトリに入るために必要であり、後で別のディレクトリに移動するときにも役立ちます。コマンドはupdate-grub
次のような出力を出します。これが私の出力です:jrichter@RICKY:~$ sudo update-grub Generating grub configuration file ... Found linux image: /boot/vmlinuz-3.19.0-22-generic Found initrd image: /boot/initrd.img-3.19.0-22-generic Found linux image: /boot/vmlinuz-3.19.0-15-generic Found initrd image: /boot/initrd.img-3.19.0-15-generic Found Windows Boot Manager on /dev/sda3@/EFI/Microsoft/Boot/bootmgfw.efi done
最後の行、つまり「done」の前の行を見ると、ブート マネージャーが見つかった場所がわかります。私の場合、Windows ブート マネージャーは
/dev/sda3
次の場所で見つかりました。/EFI/Microsoft/Boot/bootmgfw.efi
これは、システムが正常に起動したときに呼び出されるブート ファイルの正確な場所であり、これを置き換える必要があります。注記:GRUB の更新中にエラーが発生した場合、または Windows ブート マネージャーの場所が見つからない場合は、インストール中に間違ったデバイスをマウントしたか、ブート ローダーを間違ったデバイスにインストールした可能性があります。
すべてがエラーなく実行され、Windows が起動するファイルと場所がわかったら、次に進む準備は完了です。残りの手順では、私のブート ファイルの場所を、あなたのブート ファイルの場所に置き換えることを忘れないでください。ただし、おそらく同じでしょう。
次のコマンドを入力して続行します。
ブート ファイルが配置されているディレクトリに移動します。
cd EFI/Microsoft/Boot
通常の Windows ブート ファイルをバックアップにコピーし、GRUB 内で Windows 7 を起動するように設定する「bootwin.efi」という新しいファイルを作成します。
sudo cp bootmgfw.efi bootmgfw.efi.bkp sudo cp bootmgfw.efi bootwin.efi
GRUB ローダー ファイルを通常の Windows ブート ファイルにコピーします。これは、マシンが Windows をロードしていると偽装し、代わりに GRUB メニューをロードするようにするためです。次のように入力します。
cd /mnt/EFI sudo cp ubuntu/grubx64.efi Microsoft/Boot/bootmgfw.efi
メインディレクトリに戻り、ブートローダーデバイスをアンマウントしてコンピュータを再起動します。アンマウントするコマンドは次のように呼び出され
umount
ないことに注意してくださいunmount
。cd sudo umount /dev/sda3 sudo reboot
コンピュータを再起動すると、GRUB メニューが起動するはずです。
注: Live CD または USB はもう使用しないので、これらが削除されていることを確認してください。GRUB が起動しない場合は、おそらく途中でミスを犯したか、コピーしたファイル (「bootmgfw.efi」) が、Windows ブート マネージャーの起動時に実際に呼び出されるファイルではありません。
- このエラーが発生した場合は、rEFInd をブート可能な CD にダウンロードすることをお勧めします。ブート可能な CD を挿入し、コンピューターを起動します。rEFInd はすべてのブート ファイルを表示し、ブートのオプションを提供します。これらのオプションを調べて、Windows を正常にブートできるオプションを見つけることをお勧めします。注: ブート時に呼び出されるファイルは、rEFInd のオプション選択の下にあります。これを「grubx64.efi」でコピーするファイルとして使用します。
GRUB メニューを読み込んだら、Ubuntu を起動してください。
注: すべての手順が正しく実行された場合、Windows ブート マネージャー オプションを選択すると、GRUB メニューに戻ります。これは、Windows ブート マネージャーを起動するファイルを GRUB を起動するファイルと一緒にコピーしたためです。
Ubuntuに戻ったら、ターミナルを開いて次のコマンドを入力します。
次のように入力して管理者ターミナルを起動します。
sudo -s
これにより、毎回 sudo を入力しなくてもルート レベルのコマンドを実行できるようになります。次に、次のように入力して、Windows エントリを追加するファイルを見つけます。
cd /etc/grub.d ls
これでファイルのリストが表示されます。「XX_custom」のようなファイルを探します。XX は数字で、おそらく 10 の倍数です。私の場合は「40_custom」でした。ファイルは次のようになります。
#!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above.
Windows のメニュー エントリを追加するには、次のコマンドを入力します (「40_custom」を適切なファイル名に置き換えます)。
nano 40_custom
すべてのコメントの下にメニュー エントリを追加します (# で表されます)。
注意: 'hd0,gpt3' を、ブート ローダーがインストールされている適切なハード ドライブとデバイスに置き換えます (これは、インストール時にブート ローダーをインストールした場所と同じ場所で、たとえば gpt3 は sda3 を表します)。また、"chainloader" の後の行を、Windows ブート ファイルが存在すると特定した場所と同じ場所に置き換えます。
次に、末尾のファイル名が、先ほど「bootmgfw.efi」をコピーして作成したファイル名であることを確認しながら、次のように入力します。私の場合は「bootwin.efi」という名前を付けました。
menuentry "Windows 7" { root='hd0,gpt3' chainloader /EFI/Microsoft/Boot/bootwin.efi }
次に、「Ctrl-X」を押してから「Y」を押し、「Enter」を押して変更を保存します。ターミナルにいることを確認してください。
sudo -s
そうでないと変更を行うことができません。最後に、新しいエントリで GRUB を更新し、システムを再起動してすべてが機能することを確認する必要があります。これを行うには、次のように入力します。
update-grub reboot
システムの起動時に、GRUB がデフォルトでロードされ、「XX_custom」ファイルで指定した名前の新しいエントリが表示されます。私の場合は、「Windows 7」です。Windows オプションを選択して、インストール前と同じように Windows が起動されるので、正しくロードされることを確認します。
再起動して、Ubuntu オプションが引き続き機能することを確認します。
おめでとうございます! これですべて完了です。すべてが正しく行われた場合、Windows と並行して ESP を搭載したマシンに Ubuntu が正式にインストールされました。これで、最高の 2 つのオペレーティング システムをデュアル ブートできます :)