最近、USBからUbuntu 18.04をインストールしました。 14から16、16から17にアップグレードするときと同じようにすべてを行いましたが、今まではいつもうまくいきました。 USBイメージから18を実行しているときに「ubuntu 17を消去してubuntu 18をインストールする」を選択しました。これが私の問題です:Grub2は読み込まれますが、間違ったパーティションで間違った設定ファイルを使用しているようです。 ubuntuを実行するには、ルートディレクトリを/dev/sda8
に設定し、/dev/sda8/boot
にある適切なlinux
およびinitrd
ファイルを設定する必要があります(これは、 grub.cfg
ファイルライブを使用したい)。 BIOSパーティションであるgrub.cfg
を指し示すdev/sda1/EFI/ubuntu/grub.cfg
に/dev/sda5
ファイルがあることがわかります。私の質問は、ubuntuから更新した構成ファイル(/dev/sda8/boot
にあるファイル)をgrubで使用するにはどうすればよいですか? /dev/sda1
のファイルを変更すると深刻な問題が発生するのではないかと心配していますが、そうでない場合はsda8
のcfgファイルの内容を使用するだけで十分でしょうか。
参考のためにfdisk -l
の端末出力を次に示します。
Device Start End Sectors Size Type
/dev/sda1 2048 206847 204800 100M EFI System
/dev/sda2 206848 468991 262144 128M Microsoft reserved
/dev/sda3 468992 816990982 816521991 389.4G Microsoft basic data
/dev/sda4 816992256 818726911 1734656 847M Windows recovery environment
/dev/sda5 818726912 818728959 2048 1M BIOS boot
/dev/sda6 935913472 939819007 3905536 1.9G Linux swap
/dev/sda7 942651392 976773119 34121728 16.3G Microsoft basic data
/dev/sda8 818728960 935913471 117184512 55.9G Linux filesystem
ファイル/dev/sda1/EFI/ubuntu/grub.cfg
の内容は次のとおりです。(hd0,5)
はBIOSパーティションであることに注意してください。
search.fs_uuid 7e076866-97b4-4d3c-b864-491137212645 root hd0,gpt5
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg
私を助けてくれた@ Time4Teaに感謝します。結局のところ、これに対する非常に非常に単純な修正がありました。以前に投稿した、grub.cfg
別名(hd0,1)/EFI/ubuntu/grub.cfg
にある/dev/sda1/EFI/ubuntu/grub.cfg
ファイルでは、プレフィックスを(hd0,gpt5)
から(hd0,8)
に変更する必要がありました。ここに、grub.cfg
で作成したSudo update-grub2
ファイルがありました。私はそれをnanoで上書きし、ubuntuから/dev/sda1/
をマウントして保存しました(手動でgrubターミナルを使用してubuntuを起動した後)。以下は、1つの小さな変更を加えた新しいファイルです。
search.fs_uuid 7e076866-97b4-4d3c-b864-491137212645 root hd0,gpt5
set prefix=(hd0,8)'/boot/grub'
configfile $prefix/grub.cfg
コメントで述べたように、 'BIOSブート'パーティションの目的と、複数の異なるgrub.cfg
ファイルが複数のパーティションに分散している理由について混乱しています。必要なのは1つのgrub.cfg
ファイルだけで、LinuxとWindowsの両方を起動できるはずです。
もう1つは、アップデート元のライブUSBが作成され、EFIモードでブートされたことを完全に確認することですnotレガシーBIOSブートモード。これを確認する簡単な方法は、USBから起動し、/ sys/firmware/efiファイルが存在するかどうかを確認することです。表示されない場合は、EFIモードで起動されていません。
私はWindows/Linuxでかなり似たデュアルブートシステムを使用しています。私はそれを確認しましたが、Linuxシステムのルートパーティションの/ boot/grubフォルダーにはgrub.cfg
ファイルが1つしかありません。 EFIシステムパーティションは、起動時に/ boot/efiにマウントされます。
EFIパーティションのgrub.cfg
の変更に関する質問に関しては、それを行うことに害はありません。実際、何らかの理由で複数のgrub.cfg
ファイルが必要な場合は、とにかく自分でファイルを保守することをお勧めします(自動更新ツールで正しく処理されることを期待するのではなく)。最初に自動作成されたファイルをバックアップします。ファイルを変更する前に、grubコマンドラインでブートコマンドをテストすることもできます。何かを台無しにした場合に発生する可能性が最も高いのは、GRUBコマンドプロンプトにダンプされることです。この場合、ブートコマンドを手動で入力する必要があります。それを行う方法がわからない場合は、ライブUSB経由で起動し、ファイルを修正または復元する必要があります。
もう1つは、手動でgrub.cfg
を変更すると、次回GRUBが自動更新を行うときに上書きされる可能性があることです(その場合、おそらくLinuxディストリビューションのupdate-grub command
を無効にします)。