1

Я использовал Ubuntu некоторое время и недавно решил начать использовать Arch. В моей системе есть как 120 ГБ SSD, так и 1 ТБ HDD. При установке Arch на мой SSD я создал разделы для /boot /home / (root), а также раздел подкачки. На моем жестком диске также установлена Windows 10 с использованием разделов по умолчанию. Я хотел бы иметь возможность двойной загрузки между двумя операционными системами. Я установил GRUB на свой SSD в / dev / sda, но теперь, когда я загружаюсь в GRUB, я вижу только вариант загрузки в Arch, а не в Windows. Мне было интересно, как я могу загрузиться в Windows через GRUB.

У меня есть файл по умолчанию /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

Любая помощь будет оценена, спасибо!

1 ответ1

0

Как описано здесь, вам нужно сделать следующее (следующее должно быть сделано как root в вашей Arch OS):

Как я могу предположить из вашего Output /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 - второй результат, а $fs_uuid - первый.

По крайней мере, запустите это, чтобы обновить ваш Grub:

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

После перезагрузки ваш Grub должен содержать Entry for Windows, более подробную информацию о том, как настроить ваш Grub, смотрите на этой странице.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .