Windows 7パーティションを起動するためにGrubをインポートできません。 「エラー:無効なEFIファイルパス」

Windows 7パーティションを起動するためにGrubをインポートできません。 「エラー:無効なEFIファイルパス」

私は「HP pavilion 7008tx dv7」ラップトップを持っています。 Windows 7にバンドルされており、1TB HHD 2個と32G SSDが含まれています。

これは「sudo parted -l」の出力です。

Model: ATA TOSHIBA MQ01ABD1 (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos


Number  Start   End     Size    Type     File system  Flags
 1      1049kB  210MB   209MB   primary  ntfs         boot
 2      210MB   977GB   977GB   primary  ntfs
 3      977GB   1000GB  23.1GB  primary  ntfs
 4      1000GB  1000GB  113MB   primary  fat32        lba


Error: /dev/sdb: unrecognised disk label                                  

Model: ATA TOSHIBA MQ01ABD1 (scsi)
Disk /dev/sdc: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt


Number  Start   End     Size    File system     Name  Flags
 1      1049kB  538MB   537MB   fat32                 boot
 2      538MB   992GB   991GB   ext4
 3      992GB   1000GB  8474MB  linux-swap(v1)

そしてsudo blkid

/dev/sda1: LABEL="SYSTEM" UUID="A0A08877A08855A6" TYPE="ntfs" 
/dev/sda2: LABEL="OS" UUID="1A041783041760D5" TYPE="ntfs" 
/dev/sda3: LABEL="Recovery" UUID="6E301CC5301C95E5" TYPE="ntfs" 
/dev/sda4: LABEL="HP_TOOLS" UUID="04AD-78C7" TYPE="vfat" 
/dev/sdb: TYPE="isw_raid_member" 
/dev/sdc1: UUID="A857-0A03" TYPE="vfat" 
/dev/sdc2: UUID="869d2800-385c-4a90-9ecb-dfca61632257" TYPE="ext4" 
/dev/sdc3: UUID="67cd5e66-fad6-4b70-b295-5536283ab10f" TYPE="swap" 

すべてのデフォルトオプションを使用してUbuntuをインストールし、上記のように/dev/sdcにインストールしました。興味深いことに、UbuntuをインストールしたときにWindows 7が見つかったというメッセージは表示されませんでした。 Grub画面を表示し、以下のようにいくつかの項目を追加するには、Grubを手動で編集する必要がありました。/etc/grub.d/40_custom

menuentry "Windows 7 (loader) (on /dev/sda1)" {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
chainloader +1
}

ただし、 grub 項目から選択するとerror: invalid EFI file path

/dev/sda1「SYSTEM」と呼ばれ、Bootbootmgrというフォルダとファイルがあります。/dev/sda2これは「オペレーティングシステム」と呼ばれ、Windows 7が含まれます。 /dev/sda3HP回復パーティションです。/dev/sda4「HP_TOOLS」と呼ばれます。

grubでwindows7エントリを操作する方法、または少なくとも別の方法でWindows 7を起動する方法を知っている人はいますか?

修正する

実際にESCを押してからF9を押してWindowsから起動でき、システムに起動デバイスメニューがロードされました。リストには2つのUbuntuオプションがあり、「ノートブックハードドライブ」などの他のオプションがありました。後者のオプションを選択すると、ウィンドウが開きます。これはやや面倒なプロセスなので、可能であればまだグラブオプションを使用することをお勧めします。

答え1

問題は、grub2が言うと、本質的に「EFIアプリケーション」であるということです。

Grub2ベースのBIOSパーティショニングには、ファイル名の代わりにセクタマッピング構文をchainloader理解するコマンドがあります。+1BIOS上で実行できる機械語であると仮定し、これらのセクターをロードして実行します。

UEFI-GPT パーティションベースの grub2 には、スタイル構文をchainloader理解できないコマンドがあります。+1それはEFIパスを解釈しており、それがエラーメッセージが出てくる場所だと思います。

実行しようとしている操作が不可能な場合があります。つまり、UEFIブートローダ内からBIOSの世界に再接続することです。

BIOSはディスク上のレガシーパーティションテーブルを検出し、それに応じて特性を調整するため、BIOSからWindowsパーティションを直接起動できます。

したがって、Michael Shigorinの答えが示すように、rEFIndブートマネージャはあなたが探しているより良いデュアルブートエクスペリエンスを提供できます。http://www.rodsbooks.com/refind/

答え2

あなたは見つけることができますRodのEFI関連の書籍便利です。インストール中です。再検索彼が書いた内容が役に立つかもしれません(含まれています)ALT Linux構造また、この画像の「ピラミッド」スキャンオプションを使用して、役に立つことを確認してください。

efibootmgrこれで、ユーティリティを介して起動リストを使用できるファームウェアの起動マネージャを使用しています。 refind:ファームウェアをインストールすると、1つ以上のレコードが取得されます(おそらくそれをデフォルト値に設定しようとします)、起動してgrubまたはWindowsブートマネージャを起動し、カーネルを起動します(少なくとも理由は、Linuxカーネルはファームウェアの起動管理者によって直接起動できます。

答え3

Windows用のGRUBエントリはBIOSモードの起動には適していますが、EFIモードの起動には適していません。 GRUBエラーです。アイテムを次のように置き換えることができます。

menuentry "Windows 7" {
insmod part_msdos
insmod chain
set root='(hd0,msdos1)'
chainloader /EFI/Microsoft/Boot/bootmgfw.efi

}

これがうまくいくという保証はありませんが、そうかもしれません。その場合は、そのエントリを/etc/grub.d/40_customに追加して、UbuntuがGRUB設定を更新するたびに再生成するようにしてください。

答え4

まず、Linuxリカバリモードに入りますls。鉱山には次のものが表示されます。(hd1、gpt1)(hd1、gpt ...)ここで、gptXはハードディスクの各パーティションであり、msdos1、msdos2 ...と表記することもできます。

次に、このエントリを/boot/grub/grub.cfgに入れます。

    menuentry "Windows 7" {
insmod part_msdos
insmod chain
set root='(hd0,gpt1)'
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

gpt1をEFIパーティションに置き換える

関連情報