私はしばらく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
助けていただければ幸いです、ありがとう!
説明されているように ここ 、次のことを行う必要があります(以下は、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の構成方法の詳細については、これを参照してください ページ