私は「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」と呼ばれ、Boot
bootmgrというフォルダとファイルがあります。/dev/sda2
これは「オペレーティングシステム」と呼ばれ、Windows 7が含まれます。 /dev/sda3
HP回復パーティションです。/dev/sda4
「HP_TOOLS」と呼ばれます。
grubでwindows7エントリを操作する方法、または少なくとも別の方法でWindows 7を起動する方法を知っている人はいますか?
修正する
実際にESCを押してからF9を押してWindowsから起動でき、システムに起動デバイスメニューがロードされました。リストには2つのUbuntuオプションがあり、「ノートブックハードドライブ」などの他のオプションがありました。後者のオプションを選択すると、ウィンドウが開きます。これはやや面倒なプロセスなので、可能であればまだグラブオプションを使用することをお勧めします。
答え1
問題は、grub2が言うと、本質的に「EFIアプリケーション」であるということです。
Grub2ベースのBIOSパーティショニングには、ファイル名の代わりにセクタマッピング構文をchainloader
理解するコマンドがあります。+1
BIOS上で実行できる機械語であると仮定し、これらのセクターをロードして実行します。
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パーティションに置き換える