web-dev-qa-db-ja.com

GRUB)を使用したデュアルブートArchおよびWindows 10

私はしばらくUbuntuを使用していて、最近Archを使い始めることにしました。システムに120GBSSDと1TBHDDの両方があります。 SSDにArchをインストールするときに、/ boot/home /(root)用のパーティションとスワップパーティションを作成しました。また、デフォルトのパーティションを使用してWindows10をHDDにインストールしています。 2つのオペレーティングシステム間でデュアルブートできるようにしたいと思います。 GRUBを/ dev/sda上のSSDにインストールしましたが、GRUBで起動すると、Windowsではなく、Archで起動するオプションのみが表示されます。 GRUB経由のWindows。

デフォルトの「/etc/grub.d/40_custom」ファイルがあります。

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries
.  Simply type the
# menu entries you want to add after this comment.  Be care
ful not to change
# the 'exec tail' line above.

「lsblk」を実行すると、次のようになります。

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 111.8G  0 disk 
├─sda1   8:1    0   200M  0 part /boot
├─sda2   8:2    0    12G  0 part [SWAP]
├─sda3   8:3    0    25G  0 part /
└─sda4   8:4    0  74.6G  0 part /home
sdb      8:16   0 931.5G  0 disk 
├─sdb1   8:17   0   499M  0 part 
├─sdb2   8:18   0   100M  0 part 
├─sdb3   8:19   0    16M  0 part 
└─sdb4   8:20   0 930.9G  0 part

「fdisk -l」を実行すると、次のようになります。

Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 1953525168 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: 47A5839B-C531-4BEE-A083-BD0C5CF4524A

Device       Start        End    Sectors   Size Type
/dev/sdb1     2048    1023999    1021952   499M Windows rec
/dev/sdb2  1024000    1228799     204800   100M EFI System
/dev/sdb3  1228800    1261567      32768    16M Microsoft r
/dev/sdb4  1261568 1953523711 1952262144 930.9G Microsoft b


Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 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: 0x1c797ba1

Device     Boot    Start       End   Sectors  Size Id Type
/dev/sda1           2048    411647    409600  200M 83 Linux
/dev/sda2         411648  25577471  25165824   12G 83 Linux
/dev/sda3       25577472  78006271  52428800   25G 83 Linux
/dev/sda4       78006272 234441647 156435376 74.6G 83 Linux

助けていただければ幸いです、ありがとう!

2
Jake

説明されているように ここ 、次のことを行う必要があります(以下は、Arch OSのrootとして実行する必要があります)。

私があなたの出力から推測できるように/dev/sdb2はWindowsブートローダーのようですので、最初のステップは次のようになります。

$ mkdir /mnt/windows
$ mount /dev/sdb2 /mnt/windows
$ grub-probe --target=fs_uuid /mnt/windows/EFI/Microsoft/Boot/bootmgfw.efi

最後のコマンドの出力をファイルにコピーし、これを続行します。

$ grub-probe --target=hints_string /mnt/windows/EFI/Microsoft/Boot/bootmgfw.efi

また、出力をファイルにコピーします。その後、次を実行してパーティションをアンマウントします

$ umount /mnt/windows
$ rmdir /mnt/windows

その後、ファイルを開きます/boot/grub/custom.cfgお好みのエディターを使用して、次の行を追加します。

if [ "${grub_platform}" == "efi" ]; then
    menuentry "Microsoft Windows Vista/7/8/8.1 UEFI/GPT" {
        insmod part_gpt
        insmod fat
        insmod search_fs_uuid
        insmod chain
        search --fs-uuid --set=root $hints_string $fs_uuid
        chainloader /EFI/Microsoft/Boot/bootmgfw.efi
    }
fi

どこ $hints_stringは2番目の出力であり、$fs_uuidが最初のものです。

少なくともこれを実行して、Grubを更新します。

$ grub-mkconfig -o /boot/grub/grub.cfg

再起動後、GrubにはWindows用のエントリが含まれているはずです。Grubの構成方法の詳細については、これを参照してください ページ

1
Biskit1943