Linux: GRUB — добавить загрузку Windows

Автор: | 10/31/2016
 

linux_logoВо время установки Arch LinuxGRUB (grub-mkconfig) не определил раздел с Windows 7 и не создал соответствующий пункт в меню.

Добавляем вручную.

Находим раздел с Windows:

# fdisk -l /dev/sda
Disk /dev/sda: 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: dos
Disk identifier: 0x8af9a9b7

Device     Boot     Start        End   Sectors   Size Id Type
/dev/sda1  *         2048     206847    204800   100M  7 HPFS/NTFS/exFAT
/dev/sda2          206848  819202047 818995200 390.5G  7 HPFS/NTFS/exFAT
/dev/sda3       819202048  986974207 167772160    80G 83 Linux
/dev/sda4       986974208 1953525167 966550960 460.9G 83 Linux

/dev/sda1  * — 100M раздел с загрузчиком Windows.

Можно использовать os-prober:

# pacman -S os-prober
resolving dependencies...
looking for conflicting packages...

Packages (1) os-prober-1.71-1

Total Download Size:   0.02 MiB
Total Installed Size:  0.05 MiB

Запускаем:

# os-prober 
/dev/sda1:Windows 7 (loader):Windows:chain

Теперь, когда раздел известен — создаём файл /etc/grub.d/40.custom, в который добавляем загрузку с первого раздела диска:

# (2) Windows 7
menuentry "Windows 7" {
  set root=(hd0,1)
  chainloader (hd0,1)+1
}

Генерируем новый конфиг для GRUB:

# grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-linux
Found initrd image(s) in /boot: initramfs-linux.img
Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img
Found Windows 7 (loader) on /dev/sda1
done

Перезагружаемся — готово.