У меня есть следующие настройки: я установил Win7 Ultimate в Dos Disklabel (не Gpt). На свободном месте в конце диска я установил Arch Linux. Я установил grub на Arch Linux с помощью этих команд:

grub-install --target=i386-pc --disk-module=native /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

Мне пришлось добавить --disk-module=native потому что Linux находится в конце /sda, который является большим диском (250 ГБ) и не будет загружен в противном случае.

Linux загружается правильно, но Windows не загружается, и я получаю следующую ошибку.

Windows has encountered a problem communicating with a device connected to your computer.

This error can be caused by unplugging a removable storage device such as an external USB drive while the device is in use, or by faulty hardware such as a hard drive or CD-ROM drive that is failing. Make sure any removable is properly connected and then restart your computer

If you continue to receive this error message, contact the hardware manufacturer

File: \Boot\BCD
Status: 0xc00000e9
Info: An expected I/O error has occurred

Для загрузки обоих я должен был восстановить стандартную MBR Win7 и установить grub на отдельном USB-накопителе, чтобы я мог по-прежнему загружать Linux. Любые предложения о том, что действительно означает ошибка загрузки Windows и как ее избежать? У меня не было подключенного USB-устройства, когда я пытался загрузить Windows из grub и получил эту ошибку. Я просто хотел бы загрузить Windows и Linux с одной и той же MBR.

Конечно, это не поврежденный диск, потому что, как только я запускаю ms-sys --mbr7 /dev/sda для восстановления Win MBR, Windows все еще загружается. Это совершенно новый твердотельный диск, и у меня не было никаких других проблем, кроме загрузки. Кстати, опция восстановления загрузки на установочном диске Windows не смогла восстановить Win MBR! Если бы не Linux linux, мне пришлось бы переустанавливать всю Windows, чтобы восстановить MBR ...

Является ли Windows ревнивой ОС, так что если вы измените маленькую программу в MBR, она больше не загружается? Есть обходные пути?

PS: это часть моего grub.cfg, который должен загружать Windows. Это было автоматически сгенерировано grub-mkconfig:

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows 7 (loader) (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-1A30667530665831' {
    insmod part_msdos
    insmod ntfs
    set root='hd0,msdos1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  1A30667530665831
    else
      search --no-floppy --fs-uuid --set=root 1A30667530665831
    fi
    parttool ${root} hidden-
    chainloader +1
}
### END /etc/grub.d/30_os-prober ###

0