LINUX.ORG.RU

UEFI windows + arch dualboot

 ,


0

2

Пытаюсь выпилить из загрузочного списка windows и впихнуть туда GRUB, в итоге получаю следующее:

[root@mobile-pc romashev]# efibootmgr -v
BootCurrent: 003D
Timeout: 0 seconds
BootOrder: 3001,2001,2002,2003
Boot0001* Windows Boot Manager	HD(1,GPT,9d7e1488-6477-4eca-b82a-12bf2b15e40c,0x800,0x100000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...M................
Boot2001* USB Drive (UEFI)	RC
Boot2002* Internal CD/DVD ROM Drive (UEFI)	RC
Boot3001* Internal Hard Disk or Solid State Disk	RC
[root@mobile-pc romashev]# efibootmgr -b 1 -B
BootCurrent: 003D
Timeout: 0 seconds
BootOrder: 3001,2001,2002,2003
Boot2001* USB Drive (UEFI)
Boot2002* Internal CD/DVD ROM Drive (UEFI)
Boot3001* Internal Hard Disk or Solid State Disk
[root@mobile-pc romashev]# efibootmgr --create --gpt --disk /dev/sda --part 1 --write-signature --label "GRUB2" --loader "\EFI\arch\grubx64.efi"
efibootmgr: Could not set variable Boot0000: No space left on device
efibootmgr: Could not prepare boot variable: No space left on device

В итоге после перезагрузки винда возвращается на своё место, grub не загружается автоматом. Что не так этому барахлу?) Понаделали всяких там UEFI, а я разбирайся. Была идея напрямую работать с файлами прошивки, но говорят так можно прошивку сломать.

Диск размечен вот так:

[root@mobile-pc romashev]# fdisk -l
Диск /dev/sda: 465,8 GiB, 500107862016 байт, 976773168 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт
Тип метки диска: gpt
Идентификатор диска: 99756FC4-1D95-4F19-8056-679B50068F23

Устр-во    начало Конец Секторы Размер Тип
/dev/sda1       2048   1050623   1048576   512M EFI
/dev/sda2    1050624 210765823 209715200   100G Файловая система Linux
/dev/sda3  210765824 227543039  16777216     8G Linux своп
/dev/sda4  227543040 767057919 539514880 257,3G Домашний раздел Linux
/dev/sda5  767057920 767090687     32768    16M Зарезервированный раздел Microso
/dev/sda6  767090688 976773119 209682432   100G Microsoft basic data

И всё барахло намонтировано вот так:

[root@mobile-pc romashev]# mount
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sys on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
dev on /dev type devtmpfs (rw,nosuid,relatime,size=2782272k,nr_inodes=695568,mode=755)
run on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
/dev/sda2 on / type ext4 (rw,relatime,data=ordered)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=23,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
tmpfs on /tmp type tmpfs (rw)
mqueue on /dev/mqueue type mqueue (rw,relatime)
configfs on /sys/kernel/config type configfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
/dev/sda1 on /boot/EFI type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
/dev/sda4 on /home type ext4 (rw,relatime,data=ordered)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=557000k,mode=700,uid=1000,gid=100)

Deleted

для чего здоровому человеку, не курильщику — груб, если есть UEFI, который может грузить ядро лоликса напрямую?

kep ()
Ответ на: комментарий от Deleted

а в чем проблема грузить через UEFI винду и лоликс, как это например делаю я, причем с одного и того же диска? Закинь Clover на EFI-раздел и всего-то делов.

Но если ты оголтелый нуб, то это может быть проблемой, конечно.

kep ()
Ответ на: комментарий от Deleted

вот моя разметка:

Device         Start       End   Sectors   Size Type
/dev/sda1       2048    411647    409600   200M EFI System
/dev/sda2     411648    673791    262144   128M Microsoft reserved
/dev/sda3     673792 205211647 204537856  97.5G Microsoft basic data
/dev/sda4  205211648 500117503 294905856 140.6G Linux filesystem

kep ()
Ответ на: комментарий от kep

А чем твой clover лучше груба? Груб я хоть знаю и привык.

Deleted ()
Ответ на: комментарий от Deleted

ну типо «нативнее». Я когда-то долбясь с грабом под уэфи и гентой - забил на это всё, и заставил уэфи грузить генту. На хабре какой-то обзор был с описанием того, как это сделать.

Груб я хоть знаю и привык

отчего такая боязнь ко всему новому? «В современном мире умным будет считаться не тот, у кого много знаний, а тот, кто открыт новым» ©

Crystal_HMR ★★★ ()
Ответ на: комментарий от Crystal_HMR

Потому что заново искать конфиги и читать кучу доков. И мне нравится как grub выглядит. Да и чем он старый?

Deleted ()
Ответ на: комментарий от kep

для чего здоровому человеку, не курильщику — UEFI, если есть груб, который может грузить и linux и windows, без всяких UEFI-зондов?

fixed

Jackson_ ()
Ответ на: комментарий от Deleted

тем, что через жопу работает с UEFI. Мне тоже не нравится это поделие (сама UEFI система). Куча параноидальных тем про него. Но он есть, и никуда не денется. Лучше прочитать кучу доков сейчас, медленно и уверено, или когда пригорит и надо будет срочно?

Crystal_HMR ★★★ ()
Ответ на: комментарий от Crystal_HMR

efibootmgr через жопу работает, а груб работает с efibootmgr. Альтернативы есть? efi файл грузится и создаётся грубом замечательно, а прописать в систему я его не могу.

Deleted ()
Ответ на: комментарий от Deleted

А чем твой clover лучше груба?

тем, что Clover — нативный и pure UEFI загрузчик, а не матросня, к тому тебе не придется его настраивать для винды и макоса, т.к. он автоматически определяет и загружает, но правда в случае лоликса придется чуток указать откуда грузить ядро.

kep ()

[root@mobile-pc romashev]# efibootmgr --create --gpt --disk /dev/sda --part 1 --write-signature --label «GRUB2» --loader «\EFI\arch\grubx64.efi»

емнип, --write-signature пишет уникальный ключик в mbr. Как это сочетается с --gpt?

Crystal_HMR ★★★ ()
Ответ на: комментарий от Crystal_HMR

Хз, в арчевики сказали так. Обычно там не обманывают.) Я вообще думал это подпись для secure boot.

Deleted ()
Ответ на: комментарий от Crystal_HMR
[root@mobile-pc romashev]# efibootmgr --create --disk /dev/sda --part 1 --label "GRUB2" --loader '\EFI\arch\grubx64.efi' --verbose
efibootmgr: Could not set variable Boot0001: No space left on device
efibootmgr: Could not prepare boot variable: No space left on device

Убрал вообще эти два ключа, история та же.

Deleted ()

Между тем загрузочная запись винды походу опять перезаписалась

 efibootmgr -v
BootCurrent: 003D
Timeout: 0 seconds
BootOrder: 3000,2001,2002,2003
Boot0000* Windows Boot Manager	HD(1,GPT,9d7e1488-6477-4eca-b82a-12bf2b15e40c,0x800,0x100000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)RC
Boot2001* USB Drive (UEFI)	RC
Boot2002* Internal CD/DVD ROM Drive (UEFI)	RC
Boot3000* Internal Hard Disk or Solid State Disk	RC

Deleted ()
Ответ на: комментарий от kep

Закинь Clover на EFI-раздел и всего-то делов.

А как дела обстоят с обновами винды, клевер не затирается? А то я тут с rEFInd'ом мучаюсь!

julixs ()
Ответ на: комментарий от Deleted

efibootmgr через жопу работает

Это еще почему вдруг? У меня на двух компах работает, все ок.

matrixd ()
Ответ на: комментарий от matrixd

я же не сказал, что не работает :) у меня тоже на двух компах работало... пока я не решился и не запилил без граба, еще и сэкономил несколько секунд в загрузке

Crystal_HMR ★★★ ()
Ответ на: комментарий от julixs

Нет, не затирается вообще, виндовый фуфел там рядышком с кловером же лежит на EFI-разделе, что винде надо, то себе и обнвляет, диру кловера не трогает, раздел EFI таков:

EFI/BOOT
EFI/CLOVER
EFI/Microsoft
EFI/gentoo
EFI/gentoo-msata
gentoo — это ядро от генты для ssd, а gentoo-msata это гента на msata-ssd, запасная.

kep ()

я, правда, не совсем понимаю схему разметки. Я по старой памяти всегда делал:

(parted)unit mib

(parted)mkpart primary 1 3
(parted)name 1 grub
(parted)set 1 bios_grub on

(parted)mkpart primary 3 131
(parted)name 2 boot
(parted)set 2 boot on
т.е. раздел в 2мб для записи в которые я не лезу, а потом ставился grub:
 grub2-install --target=x86_64-efi --efi-directory=/boot 
#в гентухэндбуке еще заметка: Измените параметр efi-directory на корневой каталог vfat системного раздела EFI. Это необходимо если раздел /boot не был отформатирован как vfat.
а вот efibootmgr ставился во второй раздел:
 efibootmgr --create --disk /dev/sda --part 2 --label "Gentoo" --loader "\efi\boot\bootx64.efi" 

Crystal_HMR ★★★ ()
Последнее исправление: Crystal_HMR (всего исправлений: 1)
Ответ на: комментарий от kep

ок, натолкнул на мысль спс! Уже замучался после каждой обновы в chroot лазить.

julixs ()

Добрый человек посоветовал rm /sys/firmware/efi/efivars/dump-*, сказал вроде как безопасно. Записалось. Как теперь винду выпилить из списка, чтобы та не возвращалась туда?

Deleted ()
Ответ на: комментарий от Crystal_HMR

Ну как я делал. Я отпилил раздел /dev/sda1 в 512 мб под EFI, что кстати дофига, ну да ладно. В /dev/sda2 лежит всё остальное. /dev/sda3 - своп, /dev/sda4 - home. И оставалось неразмеченное пространство, которое автоматом разметил установщик винды, ибо я ей никогда не пользовался толком и не знаю как лучше.

Deleted ()
Ответ на: комментарий от Crystal_HMR

я же не сказал, что не работает :) у меня тоже на двух компах работало... пока я не решился и не запилил без граба, еще и сэкономил несколько секунд в загрузке

Так у меня без граба. Просто efibootmgr юзал

matrixd ()

Короче перезагрузил, опять винда на месте, груба нет. Я не знаю в чём дело.

Deleted ()
Ответ на: комментарий от kep

Я решил рискнуть, потому что у меня материнка легко шьётся.

Deleted ()

Короче сделал я так:

[root@mobile-pc romashev]# efibootmgr -v
BootCurrent: 003D
Timeout: 0 seconds
BootOrder: 3002,2001,2002,2003
Boot0002* Windows Boot Manager	HD(1,GPT,9d7e1488-6477-4eca-b82a-12bf2b15e40c,0x800,0x100000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...M................
Boot2001* USB Drive (UEFI)	RC
Boot2002* Internal CD/DVD ROM Drive (UEFI)	RC
Boot3002* Internal Hard Disk or Solid State Disk	RC
[root@mobile-pc romashev]# efibootmgr -b 2 -B
BootCurrent: 003D
Timeout: 0 seconds
BootOrder: 3002,2001,2002,2003
Boot2001* USB Drive (UEFI)
Boot2002* Internal CD/DVD ROM Drive (UEFI)
Boot3002* Internal Hard Disk or Solid State Disk
[root@mobile-pc romashev]# efibootmgr --create --disk /dev/sda --part 1 --label GRUB2 --loader \EFI\arch\grubx64.efi
BootCurrent: 003D
Timeout: 0 seconds
BootOrder: 0000,3002,2001,2002,2003
Boot2001* USB Drive (UEFI)
Boot2002* Internal CD/DVD ROM Drive (UEFI)
Boot3002* Internal Hard Disk or Solid State Disk
Boot0000* GRUB2

Перезагрузился и

[root@mobile-pc romashev]# efibootmgr -v
BootCurrent: 003D
Timeout: 0 seconds
BootOrder: 3000,2001,2002,2003
Boot0000* Windows Boot Manager	HD(1,GPT,9d7e1488-6477-4eca-b82a-12bf2b15e40c,0x800,0x100000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)RC
Boot2001* USB Drive (UEFI)	RC
Boot2002* Internal CD/DVD ROM Drive (UEFI)	RC
Boot3000* Internal Hard Disk or Solid State Disk	RC
Boot3002* Internal Hard Disk or Solid State Disk	RC
Deleted ()
Ответ на: комментарий от kep

Довольно таки обширный конфиг по сравнению с тем что в арчвики, сохранил как пример, чтоб было с чем сравнить спс. Пока что переустановил rEFInd, в каталог efi/refind, он зараза по умолчанию в efi/microsoft/boot писался оказалось, дождусь обновы если не поможет, попробую на клевер уйти, я так понял определение загрузочных носителей в нем тоже автоматическое?

julixs ()
Последнее исправление: julixs (всего исправлений: 2)
Ответ на: комментарий от julixs

Довольно таки обширный конфиг по сравнению с тем что в арчвики

я арчвики не смотрел, но ведь в моём конфиге 95% это настройка макоса, а линукс это только строки 182-225, потому что лично у меня кловер автоматически ядра не определяет, хотя вроде по задумке должен, но мне проще самому всё четко настроить.

Т.е. если у тебя нет макоса, насколько я понимаю, остальное не нужно.

определение загрузочных носителей в нем тоже автоматическое?

Да.

kep ()
Ответ на: комментарий от kep

Да уже разобрался, там под linux только секция GUI в принципе.

у меня кловер автоматически ядра не определяет, хотя вроде по задумке должен, но мне проще самому всё четко настроить.

Refind на ура определяет, только с mbr не помню, вроде как тоже может если botch в uefi выставить.

julixs ()
Последнее исправление: julixs (всего исправлений: 1)
Ответ на: комментарий от julixs

я кажется просто не включил определение ядер.

kep ()
Ответ на: комментарий от julixs

но мне проще самому всё четко настроить.

Бывает по работе нужно загрузится с кова нить диска быстро, без копания в биосе и boot-menu, так сказать без лишних перезагрузок. Вот тут автоопределение очень на руку.

julixs ()

Короче решил проблему. Во-первых больше не нужно писать путь к файлу .efi с обратным слешем, во вторых это тупая прошивка, которая восстанавливала запись, находя виндовый efi файл по дефолтному пути. Переименовал папку с виндовым барахлом, всё перестало восстанавливаться. Среди загрузчиков один граб, в нём строчка с виндой, всё грузится, всё работает, в том числе и режим восстановления.

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.