Windows Boot Manager пока не поддерживается grub-mkconfig.
Добавлено: 16 июн 2016, 11:35
del
Forum about ROSA Linux Distros
http://forum.rosa.ru/
Нет. Есть еще ПК со старыми биосами (у меня, например)... а разница в настройке очень значительная.bevlam писал(а):Вопрос был риторический?keleg писал(а):а у вас Роса под EFI?
Код: Выделить всё
menuentry 'Windows ля-ля' --class windows {
insmod part_gpt
insmod fat
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 <здесь то, что выдаст sudo blkid в UUID="что-то" перед TYPE="vfat" PARTLABEL="EFI system partition">
else
search --no-floppy --fs-uuid --set=root <аналогично>
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
Код: Выделить всё
### BEGIN /etc/grub.d/30_os-prober ###
/usr/sbin/grub2-probe: ошибка: не удалось найти привод GRUB для Microsoft/Boot/bootmgfw.efi. Проверьте device.map.
Найден Windows Boot Manager на Microsoft/Boot/bootmgfw.efi
Windows Boot Manager пока не поддерживается grub-mkconfig.
### END /etc/grub.d/30_os-prober ###
...
### BEGIN /etc/grub.d/42_efi ###
grub2-efi-probe: предупреждение: unknown device type mmcblk0.
menuentry "Microsoft Windows Vista/7/8 UEFI-GPT" {
savedefault
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
search --fs-uuid --set=root B4CB-8FBE
chainloader /EFI/MICROSOFT/BOOT/BOOTMGFW.EFI
}
### END /etc/grub.d/42_efi ###
Код: Выделить всё
PACKAGE_NAME=GRUB
PACKAGE_VERSION=2.02~beta3
Да я в теме http://forum.rosalab.ru/viewtopic.php?f ... ger#p66209. 'Windows ля-ля' - это то, что Вы хотите видеть на экране в качестве пункта меню. Это просто текст. Что Вы там напишите я не знаю. Моих телепатических способностей для этого явно не достаточно.bevlam писал(а):Для размышления: вчера установил до кучи "Kubuntu-16.04". Поводом для этого послужила не решённая проблема с запуском игры "Luxor" из под "Playonlinux" http://forum.rosalab.ru/viewtopic.php?f=53&t=7221, хотелось удостовериться, что это не проблема "ROSA". В результате получил сразу два подтверждения своих сомнений, а именно: игры в "Kubuntu-16.04" запустились корректно и "Kubuntu-16.04" подхватила сама и "ROSA" и "Windows", естественно "EFI".notauser писал(а):Не в "разметке" дело. Проблема с добавлением в "загрузочное меню" Windows(все права защищены) при использовании UEFI в ROSA есть давно. Не могу привести точную инструкцию, но в /etc/grub.d/40_custom
я бы дописал что-то типа (что-то вроде UUID EFI-диска (раздела))Хотя можно проще и жестче. И да, поиском по форуму и вопросами "особенно риторическими" надо пользоваться умеючи.Код: Выделить всё
menuentry 'Windows ля-ля' --class windows { insmod part_gpt insmod fat set root='hd0,gpt2' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 <здесь то, что выдаст sudo blkid в UUID="что-то" перед TYPE="vfat" PARTLABEL="EFI system partition"> else search --no-floppy --fs-uuid --set=root <аналогично> fi chainloader /EFI/Microsoft/Boot/bootmgfw.efi }
efi может грузить ("исполнять") любую дрянь "строго" определенного формата, включая, но не ограничиваясь, bootmgfw.efi
Это "все запускаются хоть из главного загрузчика, хоть из своего." я не понял. Что мне надо почитать, посмотреть в Ваших сообщениях (картинках и прочих "сполерах"), что бы разобраться? Ведь Вы прекрасно понимаете, что у желающих помочь Вам решить Вашу проблему, нет никаких других забот:)
Вам же уважаемый отвечу в Вашем ключе, прямо по предложениям. Вы правы на все 100%, что дело не в разметке. А здесь усомнюсь в Вашей правоте: "Kubuntu-16.04" плевать хотела на (все права защищены). Если правильно Вас понял про: "UEFI в ROSA есть давно", почитайте все мои сообщения, я не подвергал сомнению это умение "ROSA", больше того, я им прекрасно воспользовался на стационарном компьютере! Зачем Вы лезете с советами, если: "Не могу привести точную инструкцию, но в /etc/grub.d/40_custom
я бы дописал что-то типа (что-то вроде... ...menuentry 'Windows ля-ля' --class windows ..."? Вы читали моё первое сообщение? Там говорилось о людях в теме и просьба не песни петь "ЛЯ-ЛЯ", а команды написать, которые можно на основании приведённого мной листинга из терминала набросать. Про жёсткость не осилил - пропущу. Дальше то же связи не нащупал, где вытекает не умение пользоваться поиском по форуму и опять же отправлю к первому сообщению, а именно: "Обращаюсь потому, что ответы, которые я нашёл слишком не..., короче боюсь эксперимента". Глаза Вы, что ли сударь забываете дома? А, что здесь то: "Это "все запускаются хоть из главного загрузчика, хоть из своего." я не понял.", не понятно? Видите ли, при загрузке системы, у меня есть право нажать клавишу "F12" - это такая функциональная клавиша, если Вы опять мимо темы. Так вот: после нажатия на ту клавишу, открывается меню загрузки и там, в моём случае, есть несколько пунктов, а именно: "rosa", "windows", "ubuntu", когда активируешь пункт "rosa", то появляется "GRUB" из "ROSA", когда активируешь пункт "ubuntu", то появляется "GRUB" из "Ubuntu" - противненький такой, когда активируешь пункт "windows", то происходит старт "Windows". Конкретно Вам, ничего читать, смотреть в моих сообщениях не надо и тем более не утруждайтесь в этом всём разнообразии разбираться. Где это мои призывы, бросить всё и разбираться в моих проблемах?:),:),:).
Код: Выделить всё
update-grub2
Скорее всего.trs писал(а):Мне тоже пишет "не поддерживается", но пункт создаёт:Дело в этом? (фрагмент /usr/sbin/grub2-mkconfig)Код: Выделить всё
### BEGIN /etc/grub.d/30_os-prober ### /usr/sbin/grub2-probe: ошибка: не удалось найти привод GRUB для Microsoft/Boot/bootmgfw.efi. Проверьте device.map. Найден Windows Boot Manager на Microsoft/Boot/bootmgfw.efi Windows Boot Manager пока не поддерживается grub-mkconfig. ### END /etc/grub.d/30_os-prober ### ... ### BEGIN /etc/grub.d/42_efi ### grub2-efi-probe: предупреждение: unknown device type mmcblk0. menuentry "Microsoft Windows Vista/7/8 UEFI-GPT" { savedefault insmod part_gpt insmod fat insmod search_fs_uuid insmod chain search --fs-uuid --set=root B4CB-8FBE chainloader /EFI/MICROSOFT/BOOT/BOOTMGFW.EFI } ### END /etc/grub.d/42_efi ###
Код: Выделить всё
PACKAGE_NAME=GRUB PACKAGE_VERSION=2.02~beta3
Код: Выделить всё
PACKAGE_NAME=GRUB
PACKAGE_VERSION=2.00
Код: Выделить всё
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 B65C-785A
search --no-floppy --fs-uuid --set=root B65C-785A
В Debiantrs писал(а):Мне тоже пишет "не поддерживается", но пункт создаёт:Дело в этом? (фрагмент /usr/sbin/grub2-mkconfig)Код: Выделить всё
### BEGIN /etc/grub.d/30_os-prober ### /usr/sbin/grub2-probe: ошибка: не удалось найти привод GRUB для Microsoft/Boot/bootmgfw.efi. Проверьте device.map. Найден Windows Boot Manager на Microsoft/Boot/bootmgfw.efi Windows Boot Manager пока не поддерживается grub-mkconfig. ### END /etc/grub.d/30_os-prober ### ... ### BEGIN /etc/grub.d/42_efi ### grub2-efi-probe: предупреждение: unknown device type mmcblk0. menuentry "Microsoft Windows Vista/7/8 UEFI-GPT" { savedefault insmod part_gpt insmod fat insmod search_fs_uuid insmod chain search --fs-uuid --set=root B4CB-8FBE chainloader /EFI/MICROSOFT/BOOT/BOOTMGFW.EFI } ### END /etc/grub.d/42_efi ###
Код: Выделить всё
PACKAGE_NAME=GRUB PACKAGE_VERSION=2.02~beta3
Код: Выделить всё
PACKAGE_NAME=GRUB
PACKAGE_VERSION=2.02~beta2-22+deb8u1
Код: Выделить всё
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (на /dev/sda2)' --class windows --class os $menuentry_id_option 'osprober-efi-1C9C-D571' {
insmod part_gpt
insmod fat
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 1C9C-D571
else
search --no-floppy --fs-uuid --set=root 1C9C-D571
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
Спасибо. Тут пункт меню генерируется скриптом 30_os-prober, который вызывает одноимённую программу. В моём случае (с grub-2.02~beta3), как и со стандартным для ROSA grub-2.00, данный скрипт завершался с ошибкой. В Debian пакет os-prober новее.notauser писал(а): В DebianиКод: Выделить всё
PACKAGE_NAME=GRUB PACKAGE_VERSION=2.02~beta2-22+deb8u1
Код: Выделить всё
### BEGIN /etc/grub.d/30_os-prober ### menuentry 'Windows Boot Manager (на /dev/sda2)' --class windows --class os $menuentry_id_option 'osprober-efi-1C9C-D571' { insmod part_gpt insmod fat set root='hd0,gpt2' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 1C9C-D571 else search --no-floppy --fs-uuid --set=root 1C9C-D571 fi chainloader /EFI/Microsoft/Boot/bootmgfw.efi }
Код: Выделить всё
efibootmgr -v | grep -E '(WINDOWS|Windows Boot Manager)'
Код: Выделить всё
#!/bin/sh
# Do nothing if EFI is not present or if os-prober is disabled (user doesn't want any secondary systems)
if [ ! -d /sys/firmware/efi -o "${GRUB_DISABLE_OS_PROBER}" = "true" ]; then
exit 0
fi
. "/usr/share/grub/grub-mkconfig_lib"
# Get complete list of boot manager data
#grub_probe=grub2-efi-probe
OSPROBED="`os-prober | tr ' ' '^' | paste -s -d ' '`"
if [ -z "${OSPROBED}" ] ; then
# empty os-prober output, nothing doing
exit 0
fi
# Get all EFI Windows entries
WIN_ENTRIES=$(echo "${OSPROBED}" | grep -E '(Windows\^Boot\^Manager)')
if [ -z "$WIN_ENTRIES" ]; then
exit 0
fi
for OS in ${OSPROBED} ; do
LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
if [ "${LONGNAME}" == "Windows Boot Manager" ];
then
WIN_EFI_FILE1="`echo ${OSPROBED} | cut -d ':' -f 1`"
DEVICE_EFI="$(/sbin/blkid | grep "EFI system partition" | sed 's/^\([^:]\+\):.*/\1/')"
DEVICE_EFI_MNT1="$(df -h | grep "${DEVICE_EFI}" | gawk '{print$6}' | sed -e 's/\//\\\//g')"
DEVICE_EFI_MNT="$(df -h | grep "${DEVICE_EFI}" | gawk '{print$6}')"
WIN_EFI_FILE="$(find ${DEVICE_EFI_MNT} -print0 | grep -FzZ "${WIN_EFI_FILE1}" | sed -e "s/${DEVICE_EFI_MNT1}//" | cut -c 1-)"
else exit 0
fi
done
cat << EOF
menuentry '$(echo "${LONGNAME} on ${DEVICE_EFI}" | grub_quote)' 'osprober-efi-$(grub_get_device_id "${DEVICE_EFI}")' {
EOF
save_default_entry | sed -e "s/^/ /"
prepare_grub_to_access_device ${DEVICE_EFI} | sed -e "s/^/\t/"
cat << EOF
chainloader $WIN_EFI_FILE
}
EOF
Почему и для чего прошитый в ПЗУ загрузчик получает такую информацию из иного, отдельного хранилища?notauser писал(а):> Ubuntu и Debian определяют наличие Windows, читая файловую систему
И это правильно.
Там предустановленная Windows и выхлоп подходящий для /etc/grub.d/42_efi.notauser писал(а): Если бы кто привел выхлоп efibootmgr, справился быстрее. Возможно. Вы пробовали это "решение"?
Проблема возникла в частном случае, подразумевающем наличие такой записи, и, подозреваю, ключевой момент -- отсутствующее прилагательное в словах: "винду восьмую нельзя было накатывать".notauser писал(а):эти "записи" не стандартизированы, т.е. "WINDOWS|Windows Boot Manager" там быть не обязано.
Техническая сторона вопроса лишь его грань, а обсуждение политики выходит за рамки форума, да и слишком много деталей в этой гениальной, но не сыгравшей, комбинации.notauser писал(а): Да, а как Вы думали, зачем они придумали security boot?
Как-то слишком просто...keleg писал(а): 16 июн 2016, 12:53 Загрузиться в Росе, потом открыть в дельфине диск с виндой.
Если откроется нормально и видны файлы, после этого под рутом
update-grub2