Comments 40
Вместо
systemrescuecd
можно использовать любую другую утилиту для клонирования разделов. Я использовал AOMEI backupper.Bootrec /RebuildBcd сможет автоматом скорректировать загрузочную запись?
Прошу прощения за глупый вопрос не по теме. Я слышал об UEFI лет 6-7 назад и говорил своим товарищам, что он в будущем заменит биос. На меня тогда смотрели как на чудака. А как с этим обстоит дело сейчас? Я отошел от железок и не в курсе, насколько широко представлена эта технология на новых компьютерах?
Есть ли в UEFI возможность выбора порядка приоритетов видеовыходов? (Например, чтобы из имеющихся DP, HDMI, DVI выходом по умолчанию был не DVI, а DP.) Спасибо.
Все зависит от реализации самого UEFI, в каждом конкретном случае.
Обычно этого нет. Но если сильно захотеть, можно написать efi скрипт (надо впихнуть его до загрузки вашей ОС). И уже в скрипте, выставлять нужные переменные (какие нужны, смотреть опять индивидуально).
В целом, UEFI предоставляет возможности, схожие с *nix shell.
Обычно этого нет. Но если сильно захотеть, можно написать efi скрипт (надо впихнуть его до загрузки вашей ОС). И уже в скрипте, выставлять нужные переменные (какие нужны, смотреть опять индивидуально).
В целом, UEFI предоставляет возможности, схожие с *nix shell.
Если коротко, то да, но только если производитель вашей платформы предоставляет соответсвующий драйвер. В произвольной реализации UEFI — скорее всего нет.
По сути, заменил. Материнки все с UEFI идут давным давно. В телефонах уже этот UEFI поселился.
Только она теперь и представлена, по больше части. Исключения крайне редки — хромобуки с coreboot, да машины Apple с EFI 1.10, все остальное — UEFI 2.1+ начиная с систем на чипсете P67.
Реализация UEFI сильно хромает. Видимо производители не могут осилить спецификацию http://www.uefi.org/sites/default/files/resources/UEFI%20Spec%202_6.pdf
На хабре даже серия статей была про то какие производители рукозады. https://habrahabr.ru/post/266935/
Например мой HP даже при включении SecureBoot позволяет грузить неподписанные ядра. :facepalm:
На хабре даже серия статей была про то какие производители рукозады. https://habrahabr.ru/post/266935/
Например мой HP даже при включении SecureBoot позволяет грузить неподписанные ядра. :facepalm:
Замечаение некорректно. Неподписанные ядра грузятся grub2, поставляемым Canonical. https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1401532
Вот только вчера такой же вопрос опубликовал: https://toster.ru/q/295662
Только я пытаюсь сделать это без переноса расзделов, а сразу на одном диске.
Только я пытаюсь сделать это без переноса расзделов, а сразу на одном диске.
Надеюсь статья вам помогла, если есть не очевидный нюанс, то я внесу его в статью.
Я не был в курсе этих команд (/? про это молчал, man'ов в винде тоже нет, печаль). Попробую, вдруг получится без переноса разделов.
P.S. Большинство туториалов на эту тему в интернете убоги и написаны школьниками. Не смог найти ни одного толкового. И часто вместо туториала предлагают просмотреть youtube видео. В 90% случаев предлагают скачать специальную графическую утилиту, да еще и платно. Мне после мира Linux это кажется дикостью :)
bcdboot E:\Windows /s s: /f BIOS
bootsect /nt60 s: /mbr
P.S. Большинство туториалов на эту тему в интернете убоги и написаны школьниками. Не смог найти ни одного толкового. И часто вместо туториала предлагают просмотреть youtube видео. В 90% случаев предлагают скачать специальную графическую утилиту, да еще и платно. Мне после мира Linux это кажется дикостью :)
Еще парочка дикостей (простите, накипело):
1) Windows 7 не имеет встроенной возможности создавать загрузочную флэшку. Только запись на CD/DVD, только хардкор.
2) Windows 8 имеет такую возможность, но всё еще нет варианта "создать образ". Например создал ISO'шник или IMG, перетащил куда надо и записал.
3) Почему нельзя параметры загрузки заключить в текстовый файл? Почему BCD всё хранит в бинарном формате? Или я что-то не понимаю?
1) Windows 7 не имеет встроенной возможности создавать загрузочную флэшку. Только запись на CD/DVD, только хардкор.
2) Windows 8 имеет такую возможность, но всё еще нет варианта "создать образ". Например создал ISO'шник или IMG, перетащил куда надо и записал.
3) Почему нельзя параметры загрузки заключить в текстовый файл? Почему BCD всё хранит в бинарном формате? Или я что-то не понимаю?
bcd это обычный файл реестра, это удобная нативная база данных, зачем им изобретать новый велосипед?
Нет, не получается. Делаю следующим образом:
Конвертирую MBR->GPT. Само собой система после этого не грузится. Но разделы в норме, можно примонтировать, всё читается (ntfs boot + ntfs windows).
Перезагружаюсь в recovery, там делаю следующее:
Затем:
Преезагружаюсь, результат тот же — при загрузке "Missing operating system"
Конвертирую MBR->GPT. Само собой система после этого не грузится. Но разделы в норме, можно примонтировать, всё читается (ntfs boot + ntfs windows).
Перезагружаюсь в recovery, там делаю следующее:
$ diskpart
select disk 0 # тот, что с GPT
select partition 1 # тот, что первый с NTFS boot, partition 2 это C:\Windows
assign letter=S
exit
Затем:
$ bcdboot C:\Windows /s s: /f BIOS
Boot files successfully created
$ bootsect /nt60 s: /mbr
Target volumes will be updated with BOOTMGR compatible bootcode
S: <\Device\HarddiskVolume1>
Successfully updated NTFS filesystem bootcode
\??\PhysicalDrive0
Bootcode is only updated on MBR partitioned disks. A different
partitioning scheme is used on this disk.
Bootcode was successfully updated on all targeted volumes.
Преезагружаюсь, результат тот же — при загрузке "Missing operating system"
Дак неудивительно, что не получается. Раз вы мигрируете на UEFI, то команда должна быть такой:
bcdboot E:\Windows /s s: /f UEFI
Самом собой, имена дисков смотрите в diskpart.
bcdboot E:\Windows /s s: /f UEFI
Самом собой, имена дисков смотрите в diskpart.
Да кто сказал, что я мигрирую на UEFI? Я хочу использовать раздел GPT + Legacy boot.
Я в последнем вашем комментарии прочитал.
«Конвертирую MBR->GPT.»
А что касается вашего вопроса, почему вы уверены, что в легаси можно загрузиться с GPT раздела?
«Конвертирую MBR->GPT.»
А что касается вашего вопроса, почему вы уверены, что в легаси можно загрузиться с GPT раздела?
А почему нет? При использовании grub само собой.
Windows, при обнаружении валидной MBR (а у HybridGPT она валидная), проверять наличие gpt уже не будет.
Если же у он находит Protective MBR (специально сформированную заглушку, а HybridGPT кроме раздела заглушки, имеет еще и другие разделы, что не по стандарту, и соответствует валидной MBR), то ищет gpt.
Но это все ерунда, когда выясняется, что код загрузчика Windows, загружаясь в режиме MBR, полностью игнорит существование gpt. Естественно его не находит, и выпадает в осадок.
Костыль: разместить загрузочный раздел на флешке или эмулировать его в памяти (должен быть с разметкой MBR).
Если же у он находит Protective MBR (специально сформированную заглушку, а HybridGPT кроме раздела заглушки, имеет еще и другие разделы, что не по стандарту, и соответствует валидной MBR), то ищет gpt.
Но это все ерунда, когда выясняется, что код загрузчика Windows, загружаясь в режиме MBR, полностью игнорит существование gpt. Естественно его не находит, и выпадает в осадок.
Костыль: разместить загрузочный раздел на флешке или эмулировать его в памяти (должен быть с разметкой MBR).
Я вот про костыль можно подробнее?
Сам такое не делал, но может прокатить. Идея такая:
GRUB4DOS умеет затягивать в память образы дисков (простые, линейные) и эмулировать из него рамдиск, который на уровне BIOS будет восприниматься вполне себе нормальным диском. А уже раз есть такой диск, который MBR, то на нем и размещайте загрузочные данные от Windows.
Тут только я не вполне уверен, в какой момент загружается код, умеющий работать с gpt
Идея растет из того, что можно грузить Windows с GPT, если раздел загрузки находится на флешке (тот самый раздел на 100 мегов). Его можно сделать по этой статье.
Можно попробовать это сделать и на чистом GRUB\GRUB2.
GRUB4DOS умеет затягивать в память образы дисков (простые, линейные) и эмулировать из него рамдиск, который на уровне BIOS будет восприниматься вполне себе нормальным диском. А уже раз есть такой диск, который MBR, то на нем и размещайте загрузочные данные от Windows.
Тут только я не вполне уверен, в какой момент загружается код, умеющий работать с gpt
Идея растет из того, что можно грузить Windows с GPT, если раздел загрузки находится на флешке (тот самый раздел на 100 мегов). Его можно сделать по этой статье.
Пример для floppy с DOS
title MS-DOS
find --set-root --ignore-floppies /boot_ntfs
map /boot/win98.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
map --floppies=1
Можно попробовать это сделать и на чистом GRUB\GRUB2.
Видимо вас сбила столка концовка статьи, теперь я ее отделил, чтобы больше никого не путать.
Так и не получилось завести legacy boot + GPT. Сделал возможной двойную загрузку с MBR (используя
bcdboot E:\Windows /s s: /f UEFI
). При отключенном EFI сохранена возможность грузиться в Legacy mode, при включенном EFI сохранена возможность грузиться в EFI. К сожалению SecureBoot не работает с Windows 7. Во время экспериментов также выяснился любопытный факт, что подписанный grub2, поставляемый с Ubuntu игнорирует проверку подписей для Linux ядер. Так что моё замечание об HP неверное.Там можно использовать параметр /f ALL. Он разместит оба типа загрузчиков, но это не гарантирует запуска. Как я уже писал, загрузчик до определенной стадии не воспринимает разметку GPT, а значит грузиться не будет.
Мне два загрузчика не требуется. Только UEFI, т.к. загрузка с MBR работала изначально.
Тогда по пунктам, что хочешь получить, и что для этого делал. А то я нифига уже не понимаю.
Да я уже получил. Просто не стал конвертировать раздел в GPT. EFI boot прекрасно работает с MBR.
Это при том, что скорее всего, он работает не совсем по стандарту (не гарантирует работу на другой версии прошивки). Для загрузки нужен раздел с fat (16/32), на котором будет правильно оформленный загрузчик. И очень желательно, чтобы был идентификатор раздела ef00 (что есть только в gpt).
Sign up to leave a comment.
Миграция Windows между BIOS <-> UEFI