マルチブートシステム grub 問題 - 編集 - 修正

マルチブートシステム grub 問題 - 編集 - 修正

編集/編集 基本的に「grubで見るのは偽です」という長い再生を受けた後、問題を放棄しました。ほとんどのUbuntuエントリを削除する必要があり、コンピュータはまだ実行できます。

私はこの質問に対する答えを得たいと思います。 (お届けすることもあります)

私の偽の「grub」は、Ubuntu 5.15.0.50 GENERICがインストールされていることを伝えます。オペレーティングシステムオプションまたは「詳細オプション」のいずれも、対応する汎用オプションを起動できることを示していません。現在「突っ込んでいる」 22.04.1 一般バージョンは 5.13.0.46 で徐々に悪化しているので、少なくとも 5.15.0.50 を試してみたかったです。

合理的な解決策はありますか? (5.15.0.50実行) - ISOからクリーンロードするのは無理です。私は動作するOSよりC ++コードをもっと重要に思っています。どんな助けでもいただければ幸いです。

「今月のLinuxバージョンに切り替える」ことは避けてください。

乾杯。

複数の質問がある投稿です。

  1. 私のマルチブートシステム(すべてUbuntu、Windowsはありません)はからロード(および「df」を使用して実行)です/dev/sde14が、「grub」メニューには実際にロードされていることが表示されます/dev/sdd3。どうやってこれができますか?
  2. 私は未使用またはロードできないOSパーティションをクリーンアップするのが好きです。 「grub」メニューには表示されますが、dev/sde31「gparted」にはそのようなパーティションは表示されません。 「grub」メニューから手動で削除するには、どのファイルを編集できますか?
q5@q5-desktop:~$ lsblk
NAME    MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
loop0     7:0    0   5.2M  1 loop  /snap/bluez/334
loop1     7:1    0     4K  1 loop  /snap/bare/5
loop2     7:2    0   5.2M  1 loop  /snap/bluez/302
loop3     7:3    0 114.9M  1 loop  /snap/core/13741
loop4     7:4    0   115M  1 loop  /snap/core/13886
loop5     7:5    0  55.6M  1 loop  /snap/core18/2560
loop6     7:6    0  55.6M  1 loop  /snap/core18/2566
loop7     7:7    0    62M  1 loop  /snap/core20/1611
loop8     7:8    0  63.2M  1 loop  /snap/core20/1623
loop9     7:9    0  86.8M  1 loop  /snap/crossover/16
loop10    7:10   0 238.1M  1 loop  /snap/firefox/1918
loop11    7:11   0 236.8M  1 loop  /snap/firefox/1943
loop12    7:12   0 346.3M  1 loop  /snap/gnome-3-38-2004/115
loop13    7:13   0 164.8M  1 loop  /snap/gnome-3-28-1804/161
loop14    7:14   0 346.3M  1 loop  /snap/gnome-3-38-2004/119
loop15    7:15   0  91.7M  1 loop  /snap/gtk-common-themes/1535
loop16    7:16   0  81.3M  1 loop  /snap/gtk-common-themes/1534
loop17    7:17   0 107.5M  1 loop  /snap/logs/13
loop18    7:18   0  45.9M  1 loop  /snap/snap-store/592
loop19    7:19   0  45.9M  1 loop  /snap/snap-store/599
sda       8:0    1 465.8G  0 disk  
└─sda1    8:1    1 465.8G  0 part  
sdb       8:16   0   1.8T  0 disk  
├─sdb1    8:17   0   512M  0 part  
├─sdb2    8:18   0    17G  0 part  
├─sdb3    8:19   0  41.9G  0 part  
├─sdb4    8:20   0 195.3G  0 part  
│ └─md127
│         9:127  0 390.4G  0 raid5 /mnt/md127
│                                  /mnt/MDI_RAID_5
├─sdb6    8:22   0  41.3G  0 part  
├─sdb7    8:23   0  97.7G  0 part  
├─sdb8    8:24   0  97.7G  0 part  
├─sdb9    8:25   0   977M  0 part  
├─sdb10   8:26   0    98G  0 part  
├─sdb12   8:28   0 147.2G  0 part  
├─sdb14   8:30   0  38.1G  0 part  
├─sdb15   8:31   0  97.7G  0 part  
├─sdb16 259:2    0  61.7G  0 part  
├─sdb17 259:3    0 195.3G  0 part  
│ └─md127
│         9:127  0 390.4G  0 raid5 /mnt/md127
│                                  /mnt/MDI_RAID_5
├─sdb18 259:4    0 146.5G  0 part  
├─sdb26 259:5    0   9.9G  0 part  
└─sdb30 259:6    0  96.8G  0 part  
sdc       8:32   0 298.1G  0 disk  
├─sdc1    8:33   0   512M  0 part  
├─sdc3    8:35   0  19.5G  0 part  
├─sdc5    8:37   0     4G  0 part  
├─sdc6    8:38   0     7G  0 part  
├─sdc7    8:39   0  24.9G  0 part  
├─sdc8    8:40   0    35G  0 part  
├─sdc16 259:0    0     7G  0 part  
└─sdc17 259:1    0  79.6G  0 part  
sdd       8:48   0 931.5G  0 disk  
├─sdd1    8:49   0 147.2G  0 part  
├─sdd4    8:52   0 147.2G  0 part  
├─sdd5    8:53   0 147.2G  0 part  
├─sdd6    8:54   0 147.2G  0 part  
└─sdd7    8:55   0 146.7G  0 part  
sde       8:64   0   2.7T  0 disk  
├─sde1    8:65   0   512M  0 part  /boot/efi
├─sde2    8:66   0 301.6G  0 part  /media/q5/7309e060-4c31-462d-89e2-e2a2d9d051571
├─sde3    8:67   0  96.8G  0 part  /media/q5/eaf6611c-a53c-4b45-9c2c-7bb0f57d1b956
├─sde4    8:68   0     5G  0 part  /media/q5/eaf6611c-a53c-4b45-9c2c-7bb0f57d1b955
├─sde5    8:69   0 188.6G  0 part  /media/q5/eaf6611c-a53c-4b45-9c2c-7bb0f57d1b954
├─sde7    8:71   0 212.3G  0 part  /media/q5/TEMP+PHOTOS1
├─sde8    8:72   0     1M  0 part  
├─sde9    8:73   0  96.8G  0 part  /media/q5/272a5fa3-385b-46c5-9107-109ea3b7fd0c1
├─sde10   8:74   0  33.6G  0 part  /media/q5/0d1ba4f5-9db9-491b-a83e-03670b2913c6
├─sde11   8:75   0     7G  0 part  /media/q5/07fb0647-7d13-44da-bf01-6f4a48f2c8a61
├─sde14   8:78   0 324.2G  0 part  /var/snap/firefox/common/host-hunspell
│                                  /
├─sde16 259:7    0 147.2G  0 part  /media/q5/1T_NEW_COPY
├─sde17 259:8    0 114.5G  0 part  
├─sde18 259:9    0 195.3G  0 part  
│ └─md127
│         9:127  0 390.4G  0 raid5 /mnt/md127
│                                  /mnt/MDI_RAID_5
├─sde19 259:10   0 116.6G  0 part  /media/q5/07fb0647-7d13-44da-bf01-6f4a48f2c8a6
├─sde20 259:11   0  96.8G  0 part  /media/q5/eaf6611c-a53c-4b45-9c2c-7bb0f57d1b957
├─sde21 259:12   0 224.9G  0 part  /media/q5/04ab946c-a6e6-4e56-b952-bbd652caf6111
└─sde22 259:13   0    14G  0 part  /media/q5/0537ec3b-5c68-4951-90a5-536ad44f2cbd1
sdf       8:80   1     0B  0 disk  
sdg       8:96   1     0B  0 disk  
sdh       8:112  1     0B  0 disk  
sdi       8:128  1     0B  0 disk  
sdj       8:144  1  14.4G  0 disk  
├─sdj1    8:145  1   512M  0 part  
└─sdj2    8:146  1  13.9G  0 part  /media/q5/4835fa9c-77a4-490a-94bf-80f40b432366
sdk       8:160  0 149.1G  0 disk  
└─sdk1    8:161  0   149G  0 part  /media/q5/MDI
q5@q5-desktop:~$ 

リクエストに応じて公開

q5@q5-desktop:~$  sudo efibootmgr -v 
[sudo] password for q5: 
BootCurrent: 0005
Timeout: 1 seconds
BootOrder: 0005,0000,0006,0009,000C,000D,000E,000F,000B,0002
Boot0000* ubuntu    HD(1,GPT,2051a2c4-274c-4564-8d21-f272138c9284,0x800,0x100000)/File(\EFI\ubuntu\shimx64.efi)
Boot0002  USB   BBS(USB,,0x0)..GO..NO........].e.M. .B.a.y. .R.e.a.d.e.r. .1...0.0....................A...................................$..Gd-.;.A..MQ..L.9.2.0.3.1.1.1........BO..NO........e.e.M. .B.a.y. .R.e.a.d.e.r. .1...0.1....................A...........................................$..Gd-.;.A..MQ..L.9.2.0.3.1.1.1........BO..NO........e.e.M. .B.a.y. .R.e.a.d.e.r. .1...0.2....................A...........................................$..Gd-.;.A..MQ..L.9.2.0.3.1.1.1........BO..NO{.......Y.S.e.a.g.a.t.e....................A.............................&..Gd-.;.A..MQ..L.N.A.8.3.3.B.D.C........BO..NO.........K.i.n.g.s.t.o.n.D.a.t.a.T.r.a.v.e.l.e.r. .3...0.P.M.A.P....................A...................................F..Gd-.;.A..MQ..L.6.C.6.2.6.D.7.C.2.7.E.6.B.1.2.1.6.9.2.4.0.0.6.E........BO..NO........g.W.D.C. .W.D.1.6.0.0.A.B.-.2.2.D.Y.A.0....................A......................................Gd-.;.A..MQ..L.7.D.1.6.0.0.A.B.5.2.2.D........BO..NO........e.e.M. .B.a.y. .R.e.a.d.e.r. .1...0.3....................A...........................................$..Gd-.;.A..MQ..L.9.2.0.3.1.1.1........BO..NO........o.S.e.a.g.a.t.e. .B.U.P. .U.l.t.r.a. .T.o.u.c.h. .0.0.0.4....................A...................................6..Gd-.;.A..MQ..L.0.0.0.0.0.0.0.0.N.A.B.1.3.3.H.H........BO
Boot0005* ubuntu    HD(1,GPT,0621e243-4a24-4e6d-bdbb-cd02425977f8,0x800,0x100000)/File(\EFI\ubuntu\grubx64.efi)..BO
Boot0006* Hard Drive    BBS(HD,,0x0)..GO..NO........u.S.T.3.3.2.0.4.1.8.A.S....................A.................................>..Gd-.;.A..MQ..L. . . . . . . . . . . . .V.6.P.M.D.L.P.Z........BO..NO........u.H.i.t.a.c.h.i. .H.D.S.7.2.1.0.1.0.C.L.A.3.3.2....................A.................................>..Gd-.;.A..MQ..L. . . . . . .P.J.9.6.0.4.D.H.T.2.G.1.F.P........BO..NO........o.W.D.C. .W.D.5.0.0.0.A.A.K.S.-.7.5.V.0.A.0....................A...........................>..Gd-.;.A..MQ..L. . . . .W. .-.D.C.W.W.A.8.F.5.3.6.8.8.8........BO..NO........o.W.D.C. .W.D.2.0.E.Z.A.Z.-.0.0.G.G.J.B.0....................A...........................>..Gd-.;.A..MQ..L. . . . .W. .-.D.X.W.2.K.9.A.1.0.4.L.P.H........BO
Boot0009* UEFI: Seagate PciRoot(0x0)/Pci(0x1d,0x0)/USB(1,0)/USB(3,0)/HD(1,GPT,bdea077f-9c43-4715-93c9-25136563c691,0x800,0x100000)..BO
Boot000B  ubuntu    HD(1,GPT,6854ec75-d77f-4e3e-b98c-fd028c46e45b,0x800,0x100000)/File(\EFI\ubuntu\grubx64.efi)..BO
Boot000C* UEFI: KingstonDataTraveler 3.0PMAP    PciRoot(0x0)/Pci(0x1d,0x0)/USB(1,0)/USB(4,0)/USB(5,0)/HD(1,GPT,2051a2c4-274c-4564-8d21-f272138c9284,0x800,0x100000)..BO
Boot000D* UEFI: Seagate BUP Ultra Touch 0004    PciRoot(0x0)/Pci(0x1d,0x0)/USB(1,0)/USB(1,0)/USB(4,0)/HD(1,GPT,7149cebc-a872-4fa7-bf45-e75ea1672895,0xffff,0xefff1)..BO
Boot000E* UEFI: Seagate BUP Ultra Touch 0004    PciRoot(0x0)/Pci(0x1d,0x0)/USB(1,0)/USB(1,0)/USB(4,0)/HD(10,GPT,66537b42-4255-4eef-886f-7f0d54024f1f,0x803c8000,0x39fbc000)..BO
Boot000F* UEFI: Seagate BUP Ultra Touch 0004    PciRoot(0x0)/Pci(0x1d,0x0)/USB(1,0)/USB(1,0)/USB(4,0)/HD(12,GPT,eaa6938b-2fda-41b8-a307-6eaa95e594e4,0xba384000,0x3a98000)..BO
q5@q5-desktop:~$ 

ベストアンサー1

1. これはどのように可能ですか?

GRUBブートメニュー項目のすべてのテキストはテキストにすぎません。これは Linux デバイスと直接関係しません。 GRUBが実行中の場合、Linuxデバイスはまだ存在しません。ディスク/パーティション/起動可能なOSのリストをファームウェア/ブートローダからカーネルに渡すことは必ずしも役に立ちません。Linuxカーネルがファームウェアと同じ順序でディスクを検出するという一般的な保証はありません。

あなたのようなUEFIシステム(ファイルシステムのため/boot/efi)では、ファームウェアはUEFI NVRAM変数の情報に基づいてブートローダをロードします。を使って見ることができますsudo efibootmgr -v。これらの変数は、ブート用のEFIシステムパーティション(ESP)とその中のファイルを識別するためにいくつかの方法で使用できますが、おそらく最も一般的な方法はPARTUUIDとWindowsスタイルのパス名を使用することです。

ファームウェアがブートローダをロードすると、ブートローダはデフォルトで必要なすべての操作を実行できます。通常、GRUBは実行する操作と表示するメニューを示す設定ファイルを読み取ります。構成ファイルの場所は、a)ファイルに含まれるか、b)grubx64.efiファイルと同じディレクトリにあるミニファイルによって間接的に指定できます。grub.cfggrubx64.efi

内部的には、GRUBはディスクとパーティション識別子(たとえば)を使用します(hd0,gpt1)。これへの参照は/dev/sd*起動時にGRUBに意味がありません。起動メニュー項目にLinuxデバイス名が含まれている場合歴史情報せいぜいまさに推測最悪のシナリオ。 GRUBにはLinuxカーネルとinitramfs機能の小さなサブセットしかないため、GRUB構成が作成されたときにLinuxデバイス名がどのように存在したかを記録する以外は何も記録しません。

Boot_repairが推奨するリカバリを実行した場合は、Boot_repairによって生成された構成ファイルを使用して、Boot_repairからインストールされているGRUBバージョンを呼び出す新しいUEFIブート変数が追加された可能性があります。これはGRUBインスタンスのすべてのデプロイメントを効果的に扱うため、システムを再起動する必要がある場合に役立ちます。生成されたGRUB構成などの更新Boot_repairによる解決は永続的な解決策ではなく、むしろ一時的な解決策メインブートローダを管理する必要があるマルチブートオペレーティングシステムと、他のオペレーティングシステム/ブートローダをメインブートローダに接続する方法を決定できます。

grubあるパーティションからロードし、OSが実際に別のパーティションで実行されている」は、実際には完全に正常な状況になる可能性があります。

  • UEFIシステムでは、ファームウェア(またはセキュアブートシム)は、ESP(Debian / Ubuntuでは通常次の場所/boot/efiにインストールされている別のファイルシステム)からGRUBをロードします。
  • GRUB は、1 つ以上のファイルシステムの場所から構成を読み取ります。 (通常、/boot/grubこれはLinuxルートファイルシステムまたは別々の/bootファイルシステムの一部である可能性がありますが、もちろんより難しい構成も可能です。)
  • GRUB構成は、GRUBにカーネルファイルとinitramfsファイルを読み取る場所と、カーネルに提供するカーネルブートパラメータを指示します。通常、カーネルファイルとinitramfsファイルは場所です/bootが、カスタムGRUB設定を使用すると、GRUBでサポートされているすべてのファイルシステムに配置できます。 )GRUBおよび/またはシステムファームウェア)。
  • 最終的にinitramfsの内容によって、Linuxルートファイルシステムとしてマウントされるファイルシステムが決まります(ほとんどのディストリビューションのinitramfs実装はカーネルブートオプションを尊重しますが、それをroot=完全に無視し、initramfsが実行するように設定されたすべての操作を実行できます) 。

2. 「grub」メニューからこの項目を手動で削除するには、どのファイルを編集できますか?

お客様がこの問題を特定するために必要な情報を提供していなかったため、これは不明です。ただし、この問題を直接解決する方法についていくつかのアドバイスをすることができます。

まず、明らかにUEFIシステムがあるので幸運です。 BIOSブートシステムでは、これはより難しいかもしれません。

で始めてくださいsudo efibootmgr -v。この行は、システムが現在の状態に到達するために使用した適切なブート変数をBootCurrent: NNNN識別します。BootNNNNこのBootNNNN行はさまざまな形式を取ることができますが、ブートローダファイルをロードしたESPのPARTUUIDとMicrosoftスタイルのブートローダファイルパス名(ESPファイルシステムのルートに相対的)を含めることができます。を使用してパーティションのPARTUUIDを表示できます。lsblk -o +partuuid必要ありません。sudo

ブートローダファイルがある場合、shimと同じディレクトリにロードされますshimx64.efigrubx64.efiブートローダファイルがある場合は、セキュアブートシムなしでgrubx64.efi直接ロードされます。grub.cfgESPと同じディレクトリにファイルがある場合は、お読みください。ほとんどの場合、実際のGRUB構成、またはGRUBに実際の構成ファイルがある場所を知らせるミニ構成(おそらくファイルシステムUUIDを使用)です。そしてパス名。ファイルシステムを表示するために使用されるファイルシステムUUID lsblk -o +uuid

ただし、GRUB は構成ファイルのパス名をgrubx64.efiバイナリに含め、いくつかのあいまいな場所を指すことがあります。この場合はstrings grubx64.efi | grep -B 1 '^sbat,1,SBAT Version' | head -1手がかりを提供できますが、GRUBバイナリで初期設定ファイルパスを確実に見つけるためにバイナリデータ構造を解析する必要があるため、これが機能することを保証することはできません。


3.efibootmgr -v出力の観点から

出力によると、efibootmgr -vシステムには現在3つの別々のGRUBインスタンスがあります(またはあった可能性があります)。すべてubuntuBIOSの起動順序メニューで区別されないように名前が付けられています。

BootCurrent: 0005システムが現在Boot0005次の項目から始まっていることを示します。

Boot0005* ubuntu    HD(1,GPT,0621e243-4a24-4e6d-bdbb-cd02425977f8,0x800,0x100000)/File(\EFI\ubuntu\grubx64.efi)..BO

0621e243-4a24-4e6d-bdbb-cd02425977f8ここでは、一意のPARTUUIDがブートローダを含むEFIシステムパーティションであり、おそらくディスクの最初のパーティション(GPTパーティション)であることがわかりますHD(1,GPT...。実行するlsblk -o +partuuid | grep -i 0621e243-4a24-4e6d-bdbb-cd02425977f8と、アクティブなブートローダを含むディスクを識別できます。

もしそうならいいえ現在実行中のUbuntuインスタンスにディスクがマウントされている/boot/efi場合、私の理論は正しいです。現在、sudo update-grub最後の実行で作成されたGRUB構成ファイルを使用して、他のUbuntuインスタンスからGRUBから起動しています。それオペレーティングシステムインスタンス。そのOSインスタンスで起動してsudo update-grubそこから実行し、現在OSで再起動すると、現在os-prober実行中のUbuntuインスタンスに5.15.0-50カーネルがあり、それに応じて起動メニューが更新されたことを認識する可能性が高くなります。

ただし、現在実行中のUbuntuインスタンスが「デフォルト」インスタンスの場合は、そのブートローダをデフォルトインスタンスにすることができます。これを行うには、/boot/efi現在のファイルシステムのPARTUUIDを確認する必要があります。

lsblk -o +partuuid |grep /boot/efi

BootNNNN出力で、sudo efibootmgr -vこのPARTUUIDを含む行を見つけます。次にsudo efibootmgr --bootorder NNNN,0005,0000,006,0009,000C,000D,000E,000F,000B,0002NNNNにBootNNNN現在/boot/efi

これは 1 回限りの操作であり、成功すると、アクティブなsudo update-grubブートローダがこの Ubuntu インスタンスで正常に更新され、すべてのカーネル更新が GRUB ブートメニューに自動的に再表示されます。しかし、その他Ubuntuインスタンスは、「起動メニューのデフォルト管理者」の役割とカーネルの更新を失います。それsudo update-grubUbuntuインスタンスは実行されるまで起動できません。現在のUbuntuのインスタンス。

この変更後、GRUBブートメニューは他の起動可能なオペレーティングシステムインスタンスのリストを再構築するためにsudo update-grub実行されるため、大きく異なるように見えることがあります。os-proberこれにより、GRUBメニューに存在しないパーティションが表示される問題を解決できます。ただし、「ゴースト」インスタンスがまだ存在する場合は、/boot/grub/grub.cfg現在のUbuntuインスタンスで見つけることができ、それをカスタマイズするか、スクリプトを選択して/etc/grub.d/30_os-prober減らすことができます。リストされているオペレーティング・システム・インスタンスの数。

デフォルトのオペレーティングシステムと一致するGRUBインスタンスをデフォルトのブートローダとして正常に作成した後(上記のガイドラインを使用)満足できるほどその効果をテストしました。BootNNNNその後、ファームウェア起動変数から追加のエントリを削除するために使用することを検討できますsudo efibootmgr --delete-bootnum -b NNNN。これは、少なくともファームウェア起動順序メニュー(「BIOS設定」)の混乱を最小限に抑えます。

おすすめ記事