web-dev-qa-db-ja.com

間違った/ bootパーティションを使用するgrub2

最近、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のc​​fgファイルの内容を使用するだけで十分でしょうか。

参考のために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
3
ThisGuyCantEven

私を助けてくれた@ 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
1
ThisGuyCantEven

コメントで述べたように、 '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を無効にします)。

0
Time4Tea