Двойная загрузка (Win7+Ubuntu14) перестала работать для Win 7 после добавления SSD с Ubuntu 16

У меня есть ноутбук ASUS с жестким диском и двойной загрузкой через grub2: Windows 7, Ubuntu 14.

Когда после 5 лет жесткий диск начал перестать работать со сбойными блоками, я добавил SSD к порту SATA 2. Я сделал SSD единственной начальной загрузкой Ubuntu 16 с ее собственным разделом EFI - чтобы удалить жесткий диск однажды, когда это перестало работать полностью и возобновлять SSD только.

Я разделил SSD вручную при установке Ubuntu 16 на нем от Живого USB: выбранный "Что-то еще" в диалоговом окне установки, заботился для монтирования /boot/efi, /boot, / и /home к разделам SSD я только что создал из Живого USB и проверил, что разделы жесткого диска находятся в, "Не используют этот раздел".

К сожалению, я не проверял раздел EFI на жестком диске. Таким образом несмотря на определение sdb1 (/boot/efi SSD) как Use as: EFI System Partition и несмотря на выбор/dev/sdb (SSD) как a Device for boot loader installation, загрузчики закончились в жестком диске, не в SSD, когда я запланировал его. Это вызвано тем, что раздел EFI на жестком диске также оставили настроенным как Use as: EFI System Partition.

2 получающихся проблемы:

  1. ESP (EFI) находится на жестком диске, не на SSD.

  2. Windows 7 попадает в спасение личинки, в то время как и прекрасная начальная загрузка Ubuntu 16 и Ubuntu 14. Интересно, связаны ли эти 2 проблемы.

Для решения проблемы 1 я скопировал содержание EFI жесткого диска к EFI SSD и изменился /boot/efi отображение в /etc/fstab указать на EFI SSD (UUID=E2A1-9FFE, /dev/sdb1):

# /boot/efi was on /dev/sda1 during installation
#UUID=40BE-2040  /boot/efi       vfat    umask=0077      0       1
# redirecting /boot/efi from /dev/sda1 to /dev/sdb1
UUID=E2A1-9FFE  /boot/efi       vfat    umask=0077      0       1

Теперь корректный раздел EFI (на SSD) смонтирован к /boot/efi когда Ubuntu загружается (хотя я не проверял, привыкает ли корректный EFI во время начальной загрузки). Это - OK для решения проблемы 1 этот путь: путем копирования файлов + изменяющийся fstab?

И как я решаю проблему 2? При выборе Windows Boot Manager (on /dev/sda1) в личинке я вижу эту ошибку и эту конфигурацию от set:

error: symbol `grub_term_highlight_color` not found.
grub rescue> set
lang=
locale_dir=
prefix=(hd0,gpt6)/grub
root=hd0,gpt6
secondary_locale_dir=

При выборе Windows Boot Manager (on /dev/sdb1) в личинке я вижу эту ошибку и эту конфигурацию от set:

error: file `/grub/x86_64-efi/normal.mod` not found.
grub rescue> set
prefix=(hd1,gpt6)/grub
root=hd1,gpt6

В BIOS (UEFI) устройства загрузки называют, соответственно:

Windows Boot Manager (P0: ST1000...)
Windows Boot Manager (P1: Samsung SSD 850 PRO ...)

Однако, когда наличие Живого USB в USB-порту, выбор устройств загрузки от BIOS (Esc) производят set вывод с hd числа смещаются на одно:

error: symbol `grub_term_highlight_color` not found.
grub rescue> set
lang=
locale_dir=
prefix=(hd1,gpt6)/grub
root=hd1,gpt6
secondary_locale_dir=

и

error: file `/grub/x86_64-efi/normal.mod` not found.
grub rescue> set
prefix=(hd2,gpt6)/grub
root=hd2,gpt6

Я чувствую, что это в порядке, хотя не 100%, уверенных, это не причина сбоя начальной загрузки Win7.

Вот информация от восстановления начальной загрузки: Вставка от восстановления начальной загрузки в pastebin.

Я боюсь выполнения восстановления начальной загрузки, поскольку его Предложенное восстановление, кажется, фиксирует начальную загрузку Ubuntu, не того из Win. (Я должен все еще учиться что rename-ms-efi средства.)

Я также имел идею удалить SSD и попытаться загрузиться с жестким диском только, но боюсь, что раздел EFI будет завинчен еще больше (например, путем автофиксации себя), и я не смогу загрузиться к Ubuntu 14 больше. Звучит глупым, вероятно. Но в конце концов, представление Ubuntu 14 рядом с оригиналом Win7 ведет для расчистки неспособности возобновить Win7 от спящего режима. Так, я боюсь личинки, делающей "хорошее задание" снова.

Любая справка высоко ценилась бы!

Я буду создавать резервные копии для разделов SSD в это время.

0
задан 24 September 2017 в 13:44

1 ответ

Большое спасибо за подсказки, @oldfred!

Я начал рыть в цепочечные записи и обнаружил это /boot/grub/grub.cfg файлы расходятся в sda и sdb. Оригинал grub.cfg от жесткого диска (sda) содержавший запись меню я раньше загружался в Win7, в то время как grub.cfg из sdb не имел его. Я не помню, были ли записи пользовательского меню созданы мной или личинкой после установки Ubuntu 12 рядом с Win7. Это и это могли быть полезны другим для создания записи пользовательского меню вручную.

Вот 2 шага, которые я сделал, чтобы заставить Win7 загрузиться снова:

  1. Пропавшие без вести копии /etc/grub.d/25_custom к sdb от sda.

Содержание /etc/grub.d/25_custom:

#!/bin/sh
exec tail -n +3 $0

menuentry "Windows UEFI bkpbootmgfw.efi" {
search --fs-uuid --no-floppy --set=root 40BE-2040
chainloader (${root})/EFI/Microsoft/Boot/bkpbootmgfw.efi
}

menuentry "Windows Boot UEFI loader" {
search --fs-uuid --no-floppy --set=root 40BE-2040
chainloader (${root})/EFI/Boot/bkpbootx64.efi
}

menuentry "efi/EFI/Boot/bkpbootx64.efi" {
search --fs-uuid --no-floppy --set=root 84ba8463-a7a4-4a32-a429-f28e606435f2
chainloader (${root})/efi/EFI/Boot/bkpbootx64.efi
}

где 40BE-2040 и 84ba8463-a7a4-4a32-a429-f28e606435f2 раздел EFI и / раздел начальной загрузки Ubuntu 14 на жестком диске, соответственно:

/dev/sda1: LABEL="SYSTEM" UUID="40BE-2040" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="41d1ad3d-8c17-44cd-9e4f-e6554d3c532b"
/dev/sda6: UUID="84ba8463-a7a4-4a32-a429-f28e606435f2" TYPE="ext4" PARTUUID="7f61e2e3-7b36-49a0-a357-90032497db30"

sudo update-grub затем обновления grub.cfg.

Для начальной загрузки Win7, я использую 2-ю запись меню: Windows Boot UEFI loader.

  1. Если Ваш зашифрованный раздел подкачки был поврежден, восстановите его путем выполнения этих шагов: punygeek.blogspot.com.ee/2012/10/ubuntu-1204-how-to-solve-disk-drive-for.html

Подкачка была прервана мой случай, вероятно, из-за того, чтобы менять имя и маркировку раздела EFI на sdb при исследовании, если групповое имя раздела / маркировка могло бы быть причиной для Win7, не загружающегося. Раздел подкачки начал просить пароль на начальной загрузке Ubuntu 16. Я не мог зафиксировать его путем обновления UUID в /etc/fstab, /etc/crypttab и /etc/initramfs-tools/conf.d/resume. Только вышеупомянутая ссылка помогла зафиксировать зашифрованный раздел подкачки. Выполнение sudo ecryptfs-setup-swap действительно перестал работать, но после перезагрузки подкачки был зашифрован правильно:

> lsblk
├─sdb3           8:19   0     8G  0 part  
│ └─cryptswap1 253:0    0     8G  0 crypt [SWAP]

И вывод swapon -s отличается от показанного в вышеупомянутой ссылке:

Filename                Type        Size    Used    Priority
/dev/dm-0                               partition   8388092 0   -1

Но кажется, что это - корректный раздел подкачки:

> ls -l /dev/mapper/cryptswap1
lrwxrwxrwx 1 root root 7 sept  25 14:02 /dev/mapper/cryptswap1 -> ../dm-0
0
ответ дан 2 November 2019 в 05:19

Другие вопросы по тегам:

Похожие вопросы: