Fórum Root.cz

Hlavní témata => Software => Téma založeno: Mlocik97 03. 10. 2020, 20:40:34

Název: Nastavenie bootovania konkrétneho systému (.efi) vo virtuálke (virt-manager,KVM)
Přispěvatel: Mlocik97 03. 10. 2020, 20:40:34
zdravím,

KVM mám nastavené bootovanie z fyzického disku /dev/nvme0n1 na ktorom sa nachádzajú 2 systémy v dualboote. Keďže jeden systém je práve ten, v ktorom toto samotné KVM beží, a zároveň v GRUB ho mám nastavený ako default, tak potrebujem aby virtuálka nejak obišla GRUB a rovno zaviedla konkrétne .efi (teda druhý systém). Skúšal som hladať vo virt-manageri nastavenie, ktoré by mi to umožnilo, ale vidím tam na bootovanie len jednu položku, ktorá smeruje do GRUBu. Viem že vo virtualboxe som to nastavil tak, že som nasmeroval bootovanie na konkrétny .efi súbor. Ale netuším kde niečo také môžem urobiť vo virt-manageru. Vie mi niekto poradiť?

ďakujem za rady.
Název: Re:nastavenie bootovania konkrétneho systému (.efi) vo virtuálke (virt-manager,KVM)
Přispěvatel: Radek Zajíc 03. 10. 2020, 21:00:55
Podle me to nelze. Nelze ani pridat/preradit bootovaci menu (napr. do nej ulozit boot z IPv6 site). KVM/qemu vzdycky pri spusteni nastavi boot podle toho, co je v definici XML. Aspon tak se to chovalo mne...
Název: Re:nastavenie bootovania konkrétneho systému (.efi) vo virtuálke (virt-manager,KVM)
Přispěvatel: _Jenda 03. 10. 2020, 22:32:52
Prej nějak přes OVMF_VARS: https://unix.stackexchange.com/questions/530674/qemu-doesnt-respect-the-boot-order-when-booting-with-uefi-ovmf

Hacky: patchnout OVMF

Vyrobit malinký soubor který bude mít v sobě uefi boot filesystém a bootovat z něj. To současně vyřeší tu prasárnu, že do VM dáváš celý disk -- pak jí můžeš dát jenom tu partition/LV, protože nabootuješ z toho souboru.
Název: Re:nastavenie bootovania konkrétneho systému (.efi) vo virtuálke (virt-manager,KVM)
Přispěvatel: ja. 03. 10. 2020, 23:16:13
Vovnutri beziaceho virtualneho systemu nastavit EFI premenne cez efibootmgr. Zaujima ta BootOrder (-o).
Název: Re:Nastavenie bootovania konkrétneho systému (.efi) vo virtuálke (virt-manager,KVM)
Přispěvatel: Mlocik97 08. 10. 2020, 17:18:43
No skúšal som ako radí @ja. ale netuším čo tu zvoliť. (ak som teda správne)
Název: Re:Nastavenie bootovania konkrétneho systému (.efi) vo virtuálke (virt-manager,KVM)
Přispěvatel: Mlocik97 08. 10. 2020, 17:27:04
btw. už sa mi podarilo raz odpáliť filesystem, pretože som vo virtuálke nabootoval systém, ktorý už nabootovaný bol, ale naštastie to už opraviť viem. To už mám skúsenosti s fsck. Takže hlavne preto toto potrebujem vyriešiť. Akurát v tom boot managery vôbec neviem rozoznať ktoré .efi patrí ku ktorému systému. Tých .efi je tam rozhádzaných viacero v rôznych zložkách.
Název: Re:Nastavenie bootovania konkrétneho systému (.efi) vo virtuálke (virt-manager,KVM)
Přispěvatel: Mlocik97 08. 10. 2020, 17:38:10
keby som prepísal:

Kód: [Vybrat]
<disk type="block" device="disk">
  <driver name="qemu" type="raw" cache="none" io="native"/>
  <source dev="/dev/nvme0n1"/>
  <target dev="vda" bus="virtio"/>
  <address type="pci" domain="0x0000" bus="0x03" slot="0x00" function="0x0"/>
</disk>

na /dev/nvme0n1p3 tak by som to nevyriešil, že? lebo by mu chýbal zavádzač... že by som priamo ukázal na partíciu so systémom a nie celý disk.
Název: Re:Nastavenie bootovania konkrétneho systému (.efi) vo virtuálke (virt-manager,KVM)
Přispěvatel: _Jenda 08. 10. 2020, 18:30:43
btw. už sa mi podarilo raz odpáliť filesystem, pretože som vo virtuálke nabootoval systém, ktorý už nabootovaný bol
No vidíš, takže se ti dokonce to, čeho jsem se bál, už povedlo…

na /dev/nvme0n1p3 tak by som to nevyriešil, že? lebo by mu chýbal zavádzač... že by som priamo ukázal na partíciu so systémom a nie celý disk.
No vždyť proto hned v předchozí větě píšu, že máš vyrobit malý soubor, který bude disk se zavaděčem.
Název: Re:Nastavenie bootovania konkrétneho systému (.efi) vo virtuálke (virt-manager,KVM)
Přispěvatel: Mlocik97 08. 10. 2020, 18:35:00
Môžeš ma presnejšie nasmerovať ako ten súbor vytvoriť?
Název: Re:Nastavenie bootovania konkrétneho systému (.efi) vo virtuálke (virt-manager,KVM)
Přispěvatel: ja. 08. 10. 2020, 19:28:29
Dá sa aj v UEFI boot manageri, nastav bootovanie shimx64.efi z adresára ubuntu, ja som myslel konkrétne rovno v nabootovanom systéme. Na screenshote nižšie vidíš, že priorita bootovania vo virtuálke je 4-2-0-3 a položka č. 4 je EFI/ubuntu/shimx64.efi. EFI vars pre hosta a guesta sú samostatné.

Ale ako ti už písali ostatní, nie je moc chytré používať rovnaký fyzický disk pre host aj guest; a určite nemountovať rovnakú partition v paralelne bežiacich systémoch.
Název: Re:Nastavenie bootovania konkrétneho systému (.efi) vo virtuálke (virt-manager,KVM)
Přispěvatel: Mlocik97 08. 10. 2020, 19:41:09
Citace
Dá sa aj v UEFI boot manageri, nastav bootovanie shimx64.efi z adresára ubuntu, ja som myslel konkrétne rovno v nabootovanom systéme.

V ktorom, v hlavnom alebo vo virtuálke čo chcem mať? Typujem v tom virtuálnom. Tam mám toto:


Název: Re:Nastavenie bootovania konkrétneho systému (.efi) vo virtuálke (virt-manager,KVM)
Přispěvatel: ja. 08. 10. 2020, 20:05:42
Otázky:

- Oba systémy, host aj guest, sú linux (ubuntu)? Majú spoločný boot loader?
- Ak áno, v čom konkrétne sa líšia? Iba v cestách v grub configu?
  - pokiaľ sa líšia iba v grub configu, tak to nevyriešime na úrovni host/guest. Buď im dať samostatné EFI partitions so samostanými boot loadermi, alebo guesta úplne odizolovať od partitions hosta.
- Je nejaký dôvod, prečo guest systém zdieľa partitions s hostom? Zvyčajne sa to robí tak, že guestovi sa podhodí nejaká partition alebo LVM volume ako jeho disk, a tam si narobí partitions a boot loader ako potrebuje. (Jediné obmedzenie je, že takýto guest už nenabootuje ako host OS, preto sa pýtam, že či je nejaký konkrétny dôvod, prečo je to riešené tak ako je).
Název: Re:Nastavenie bootovania konkrétneho systému (.efi) vo virtuálke (virt-manager,KVM)
Přispěvatel: Mlocik97 08. 10. 2020, 20:20:45
No na SSDčku /dev/nvme0n1 mám 4 partície... p1 je /boot/efi p2 je Ubuntu č. 1, p3. je Ubuntu č. 2, a p4 je SWAP... inštaloval som to ako dualboot z klasickej instalačky (ako mi instalačka ponúkla nainštalovať Ubuntu vedla Ubuntu). Typ partície sú Ext4 (v1.0) u oboch. Obe Ubuntu potrebujem ale vedieť bootovať aj napriamo (ako host), a druhý ale aj v KVM.
Název: Re:Nastavenie bootovania konkrétneho systému (.efi) vo virtuálke (virt-manager,KVM)
Přispěvatel: ja. 08. 10. 2020, 21:14:36
Aha, takže takto to je.

Obe Ubuntu majú spoločný GRUB, takže na úrovni UEFI už nespravíme nič, aby sme mu povedali, ktorý nabootovať. Riešiť sa to dá, ako to bolo spomenuté vyššie, virtuálnym UEFI diskom.

Keďže používaš KVM, najlepšie bude použiť virt-manager, kde sa to dá vyklikať.... Pridať ďalší disk, stačí maličký, 100-150 MB, jeho backing store nebude fyzický, ale qcow2 súbor v tom Ubuntu, ktoré je host (kam ho dáš je na tebe, najskôr do /var/lib/libvirt/images). Nabootovať virtuálne Ubuntu, to bude vidieť tento súbor ako ďalší disk, vytvoriť na ňom jednu GPT partition, označiť ju ako ESP (EFI System Partition), naformátovať (FAT32), nakopírovať tam EFI/ubuntu z fyzickej EFI, zmeniť v grubenv položku "saved_entry" (správne označenie budeš musieť nájsť v grub.cfg; toto sa stane aj automaticky, keď budeš bootovať vo virtuálke). Vo vlastnostiach virtuálky nastaviť prioritu bootovania z tohto disku.

Pozor, grub.cfg sa mení po každom update jadra; aby ti to ostalo funkčné, budeš musieť zmeny synchronizovať. Po každom update jadra. Keď ho updatneš vo virtuálke, musíš ho dokopírovať do hosta, keď na hoste, musíš dokopírovať do virtuálky.
Název: Re:Nastavenie bootovania konkrétneho systému (.efi) vo virtuálke (virt-manager,KVM)
Přispěvatel: Mlocik97 08. 10. 2020, 21:25:48
Predpokladám že to je v tomto, akurát netuším ako s týmy fondami/poolami a zväzkami pracovať. V poolu nvram už ale mám nejaký _VARS.fd súbor, môžem aj do toho poolu to dať?
Název: Re:Nastavenie bootovania konkrétneho systému (.efi) vo virtuálke (virt-manager,KVM)
Přispěvatel: LarryLin 08. 10. 2020, 21:49:56
Viem že vo virtualboxe som to nastavil tak, že som nasmeroval bootovanie na konkrétny .efi súbor.
Jestli to správně chápu, tak ty máš pro obě Ubuntu jeden .efi soubor, takže ve Virtualboxu by ti to nasměřování na .efi soubor nepomohlo.
Název: Re:Nastavenie bootovania konkrétneho systému (.efi) vo virtuálke (virt-manager,KVM)
Přispěvatel: ja. 08. 10. 2020, 22:09:02
Daj ho do poolu default, s poolom nvram nič nerob.
Název: Re:Nastavenie bootovania konkrétneho systému (.efi) vo virtuálke (virt-manager,KVM)
Přispěvatel: Mlocik97 09. 10. 2020, 11:48:21
Viem že vo virtualboxe som to nastavil tak, že som nasmeroval bootovanie na konkrétny .efi súbor.
Jestli to správně chápu, tak ty máš pro obě Ubuntu jeden .efi soubor, takže ve Virtualboxu by ti to nasměřování na .efi soubor nepomohlo.

Netuším, ale viem že som to vo virtualboxe mal vyriešené nejak, a myslím že to bolo práve cez .efi. Pamätám si že pred tým som mal niečo podobné riešené keď som mal d vdualboote ešte Linux a Windows stejným spôsobom inštalované, a vtedy som mal v BIOSe možnosť nabootovať GRUB, priamo Ubuntu a priamo Windows. Skúsim sa pozrieť do BIOSu a poviem čo tam mám za položky.
Název: Re:Nastavenie bootovania konkrétneho systému (.efi) vo virtuálke (virt-manager,KVM)
Přispěvatel: LarryLin 09. 10. 2020, 21:00:23
Pamätám si že pred tým som mal niečo podobné riešené keď som mal d vdualboote ešte Linux a Windows stejným spôsobom inštalované, a vtedy som mal v BIOSe možnosť nabootovať GRUB, priamo Ubuntu a priamo Windows.
No to jo, protože v tomto případě jsou v EFI partišně 2 adresáře:
/EFI/ubuntu
/EFI/Microsoft
a v každém adresáři je soubor *.efi, ale nyní máš jen jeden adresář a to /EFI/ubuntu ve kterém všechny *.efi vedou na jediný Grub.

Není nějaká možnost v Ubuntu, aby každá z těch dvou instalací používala vlastní adresář v /EFI (tzn. samostatný Grub)? Když by např. Ubuntu č. 1 používalo Grub a Ubuntu č. 2 rEFInd, tak by mělo každé Ubuntu svoje *.efi, ale už by to nebylo tak friendly.
Název: Re:Nastavenie bootovania konkrétneho systému (.efi) vo virtuálke (virt-manager,KVM)
Přispěvatel: _Jenda 09. 10. 2020, 23:15:48
Môžeš ma presnejšie nasmerovať ako ten súbor vytvoriť?
Vyrobíš soubor s nulama (head -c $(( 100*1000*1000 )) /dev/zero > soubor), vyrobíš v něma partition typu EFI VFAT (to si inspituj tím existujícím) (cfdisk soubor, kpartx -a soubor, mkfs.vfat /dev/mapper/loopXp1, mount /dev/mapper/loopXp1 /mnt/foo), do oddílu zkopíruješ ty EFI soubory (cp /boot/něco.efi /mnt/foo) a případně i grub podle toho jak to máš konkrétně nastavené.