この状況でGrubを修正する最良の方法

この状況でGrubを修正する最良の方法

最初は、Windows 10とUbuntuのデュアルブートを使用しました。詳細:
- /dev/sda1のWindows EFIファイル
- /dev/sda8のUbuntu

を学ぶために、私はLinux From Scratchプロジェクトに従い始めて、独自のLinuxを作成しました。私はこのために/ dev / sda9パーティションを使用しました。完了したら、grubメニューでWindowsとUbuntuを見つけることができず、Linuxで最初から始める必要がありました。ただし、Live CDから起動しようとすると、UbuntuとWindowsの両方でLive CDオプションが表示されます。
以下は、Live CDオプションを使用した場合のいくつかのコマンドの出力です。

ls -l /dev/disk/by-label/

total 0
lrwxrwxrwx 1 root root 10 Mar 19 10:15 DELLSUPPORT -> ../../sda7
lrwxrwxrwx 1 root root 10 Mar 19 10:15 ESP -> ../../sda1
lrwxrwxrwx 1 root root 10 Mar 19 10:15 Image -> ../../sda6
lrwxrwxrwx 1 root root 10 Mar 19 10:15 New\x20Volume -> ../../sda4
lrwxrwxrwx 1 root root 10 Mar 19 10:15 OS -> ../../sda3
lrwxrwxrwx 1 root root 10 Mar 19 10:15 UBUNTU\x2017_1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Mar 19 10:15 WINRETOOLS -> ../../sda5


sudo fdisk -l コマンドの場合

    Disk /dev/loop0: 1.3 GiB, 1425731584 bytes, 2784632 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sda: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: B128B55E-BDDA-4F19-8CBA-8FAD8E802736

Device          Start        End    Sectors   Size Type
/dev/sda1        2048    1026047    1024000   500M EFI System
/dev/sda2     1026048    1288191     262144   128M Microsoft reserved
/dev/sda3     1288192 1722216447 1720928256 820.6G Microsoft basic data
/dev/sda4  1722216448 2656086015  933869568 445.3G Microsoft basic data
/dev/sda5  3879495680 3880417279     921600   450M Windows recovery environment
/dev/sda6  3880417280 3904839679   24422400  11.7G Windows recovery environment
/dev/sda7  3904841728 3907028991    2187264     1G Windows recovery environment
/dev/sda8  2752610304 3879495679 1126885376 537.3G Linux filesystem
/dev/sda9  2656086016 2752610303   96524288    46G Linux filesystem

Partition table entries are not in disk order.




Disk /dev/sdb: 14.7 GiB, 15744892928 bytes, 30751744 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xcf80b994

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1  *     2048 30751743 30749696 14.7G  c W95 FAT32 (LBA)


コマンドの場合 sudo blkid:

/dev/sda1: LABEL="ESP" UUID="C496-69E5" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="4950763d-c24d-4680-927a-1e595c303648"
/dev/sda3: LABEL="OS" UUID="9254944E54943747" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="b16a3bfb-16fb-4275-a3fe-6e3dbcb689a1"
/dev/sda4: LABEL="New Volume" UUID="48103B2D103B20FC" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="25545acb-af8e-4230-a6d8-24337815dde9"
/dev/sda5: LABEL="WINRETOOLS" UUID="5018B15D18B14330" TYPE="ntfs" PARTUUID="c1f4defe-71d1-46fd-a501-cabfd279c132"
/dev/sda6: LABEL="Image" UUID="B23AB2C13AB281C1" TYPE="ntfs" PARTUUID="cfa18786-2f02-4b3a-ae6e-d44dc0364e50"
/dev/sda7: LABEL="DELLSUPPORT" UUID="6CE0AEC7E0AE973C" TYPE="ntfs" PARTUUID="82b58d3a-141a-4134-91cb-f41c3994121c"
/dev/sda8: UUID="972bea99-5b5f-410b-830b-b3c248d54062" TYPE="ext4" PARTUUID="3ee28255-1737-405c-8bf7-90695a0ce8b2"
/dev/sda9: UUID="180af068-75e7-4fb4-b459-271231cec69f" TYPE="ext4" PARTUUID="5dfc33a2-73a5-4ebb-994e-c1cc7d655d21"
/dev/sdb1: LABEL="UBUNTU 17_1" UUID="D29D-D873" TYPE="vfat" PARTUUID="cf80b994-01"
/dev/loop0: TYPE="squashfs"
/dev/sda2: PARTLABEL="Microsoft reserved partition" PARTUUID="6eec3d1c-1f7f-46a9-9d7a-fa7b75775a1f"

sdaXをすべてインストールして実行した後grub-install --boot-directory=/mnt/boot /dev/sda、次のエラーが発生します。

Installing for i386-pc platform.
grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
grub-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: error: will not proceed with blocklists.

私はたくさん検索しましたが、何も動作しないようです。どんな助けでもいいでしょう。

ベストアンサー1

システムはUEFIとGPTを使用し、レガシーBIOS用のGRUBバージョンをインストールしようとしますが、レガシー互換BIOSブートパーティションはありません。これは有効な組み合わせではありません。

UEFIは開発環境をはるかに超えているため、既存のスタイルのブートローダにはUEFIブートスキームを使用するオペレーティングシステムを含めることはできません。一部のUEFIブートローダ可能UEFIブートローダの作成者がこの特定のUEFI実装でレガシー互換性を呼び出す方法を知っている場合は、古いオペレーティングシステムを起動するオプションを提供できます。

最善の方法はGRUBのUEFIバージョンを使用することです(Installing for x86_64-efi platformi386-pcに似たものを表示する必要があります)。

これにより、挿入やブロックリストなどのBIOSスタイルのトリックを必要とせずに、GRUBを\ EFI [選択した名前] \ grubx64.efiなどのディレクトリの/ dev / sda1にファイルとしてインストールできます。grub-installGRUBコマンドのUEFIバージョンはそれを自動的に処理する必要があります。

Live CDから起動するときは、システムが既存のBIOSとUEFIという2つの方法でCDから起動できることに注意してください。重要なことは、ブートローダのインストールに重要なUEFIファームウェア起動変数は、システムがUEFIモードで起動したときにのみアクセスできることです。一部のオペレーティングシステムインストーラは実際にUEFIブート変数にアクセスできるかどうかを検出し、その変数を使用してUEFIまたはブートローダのレガシーBIOSバージョンをインストールするかどうかを決定します。レガシーブートCD / DVDからUEFIブータブルオペレーティングシステムをインストールする必要がある場合は、この決定を上書きする方法を見つける必要があります。

GPTパーティションディスクにBIOSブートパーティションを作成するには、ファームウェア設定(Windows用のUEFIブート、Linuxインストール用のレガシーブート)を継続的に置き換える必要があります。これは理想的なわけではなく、すべてのシステムがBIOS + GPTの組み合わせをサポートしているわけではありません。

新しいハードウェアのプロセスを学ぶことが目標であれば、レガシー全体の作業のためにシステムを完全に再インストールすることは、多くの作業を必要とし、非生産的です。

おすすめ記事