„COMP::OmegaByte::Linux beállítás” változatai közötti eltérés

Innen: Farkas Attila Wiki
Ugrás a navigációhoz Ugrás a kereséshez
 
(14 közbenső módosítás ugyanattól a szerkesztőtől nincs mutatva)
83. sor: 83. sor:
* Aktiváljuk a ''Virtuális gép indítása a gép indulásakor'' opciót
* Aktiváljuk a ''Virtuális gép indítása a gép indulásakor'' opciót
* Kattintsunk a ''Befejezés'' gombra
* Kattintsunk a ''Befejezés'' gombra
{{ :outer:omegabyte:linux:kvm_autostart.png?nolink&600 |}}


=== Teljes képernyős megjelenítő ===
=== Teljes képernyős megjelenítő ===
89. sor: 88. sor:


Lépések:
Lépések:
* Hozzuk létre a ''/etc/profiles.d/virtviewer.sh'' állományt ''root'' joggal:\\ ''sudo nano /etc/profiles.d/virtviewer.sh''
* Hozzuk létre a ''/etc/profiles.d/virtviewer.sh'' állományt ''root'' joggal:  
* Írjuk bele az alábbi scriptet:\\ <sxh bash>sleep 30s && virt-viewer -f vm1 &</sxh>
sudo nano /etc/profiles.d/virtviewer.sh
* Írjuk bele az alábbi scriptet:
sleep 30s && virt-viewer -f vm1 &
* Mentsük el és lépjünk ki a szerkesztésből
* Mentsük el és lépjünk ki a szerkesztésből


=== Statikus IP cím beállítása ===
=== Statikus IP cím beállítása ===
'''''Végül nem ez a megoldás lett alkalmazva, a megoldás csak az információ megtartása miatt került bele a dokumentációba!'''''
Ahhoz, hogy a vendég OS megosztásait megbízhatóan fel tudjuk csatolni, szükségünk lesz egy statikus IP címre. Ezt a virtuális gép kezelőn keresztül tehetjük meg.
Ahhoz, hogy a vendég OS megosztásait megbízhatóan fel tudjuk csatolni, szükségünk lesz egy statikus IP címre. Ezt a virtuális gép kezelőn keresztül tehetjük meg.
* Másoljuk ki a virtuális gép konfigurációjából a MAC címet - NiC
* Másoljuk ki a virtuális gép konfigurációjából a MAC címet - NiC
99. sor: 102. sor:
* Nyissuk meg szerkesztésre a hálózati konfigurációt: ''virsh net-edit default''
* Nyissuk meg szerkesztésre a hálózati konfigurációt: ''virsh net-edit default''
* Szúrjuk be az alábbi sorokat (a range már létezik)
* Szúrjuk be az alábbi sorokat (a range már létezik)
<range start='192.168.122.100' end='192.168.122.254'/>
  <range start='192.168.122.100' end='192.168.122.254'/>
<host mac='<mac>' name='<vm_név>' ip='<vm_ip>'/>
  <host mac='<mac>' name='<vm_név>' ip='<vm_ip>'/>
** A <mac> helyére illesszük be a kimásolt MAC címet
* A <mac> helyére illesszük be a kimásolt MAC címet
** A <vm_név> helyére írjuk be a virtuális gép nevét (vm1)
* A <vm_név> helyére írjuk be a virtuális gép nevét (vm1)
** A <vm_ip> helyére írjuk be a virtuális gép kívánt IP címét (192.168.122.24)
* A <vm_ip> helyére írjuk be a virtuális gép kívánt IP címét (192.168.122.24)
* Mentsük el és lépjünk ki a szerkesztőből
* Mentsük el és lépjünk ki a szerkesztőből
* Indítsuk újra a hálózatot:
* Indítsuk újra a hálózatot:
  ''virsh net-destroy default && virsh net-start default''
  ''virsh net-destroy default && virsh net-start default''


'''A ''default'' mindenhol legyen az aktuális gépen elérhető hálózat neve!'''A hálózatok lekérése:  
'''A ''default'' mindenhol legyen az aktuális gépen elérhető hálózat neve!''' A hálózatok lekérése:  
  virsh net-list
  virsh net-list


114. sor: 117. sor:


==== Követelmények ====
==== Követelmények ====
^Program ^Leírás Telepítés^
{| class="wikitable"
|iptables |Tűzfal szabályok manipulálása | ''Nem kell''|
| Program || Leírás || Telepítés
|iptables-persistent |Tűzfal szabályok mentése fájlba és visszaállítása | sudo apt install iptables-persistent|
|-
| iptables || Tűzfal szabályok manipulálása || ''Nem kell''
|-
| iptables-persistent || Tűzfal szabályok mentése fájlba és visszaállítása || sudo apt install iptables-persistent
|}


==== Használat ====
==== Használat ====
124. sor: 131. sor:


==== Követelmények ====
==== Követelmények ====
^Program ^Leírás Telepítés^
{| class="wikitable"
|samba |Megosztások létrehozása | sudo apt install samba|
| Program || Leírás || Telepítés
|cifs-tools |Csatlakozás távoli megosztásokhoz | sudo apt install cifs-tools|
|-
| samba || Megosztások létrehozása || sudo apt install samba
|-
| cifs-tools || Csatlakozás távoli megosztásokhoz || sudo apt install cifs-tools
|}


==== Megosztás létrehozás ====
==== Megosztás létrehozás ====
  * Nyissuk meg a konfigurációs állományt: ''nano /etc/samba/smb.conf''
* Nyissuk meg a konfigurációs állományt: ''nano /etc/samba/smb.conf''
  * Hozzuk létre benne az alábbi kódrészletet:\\ <sxh text>[shared]
* Hozzuk létre benne az alábbi kódrészletet:
comment = XP mount point sharing
[shared]
browseable = yes
comment = XP mount point sharing
path = /media/virt/xp01
browseable = yes
guest ok = no
path = /media/virt/xp01
public = no
guest ok = no
writable = yes
public = no
read only = no
writable = yes
valid users = vm</sxh>
read only = no
    * A kódrészletnek köszönhetően létrejön a ''"shared"'' nevű megosztás, amit a ''"vm"'' felhasználóval nyithatunk meg. Írási és olvasási joggal.
valid users = vm</sxh>
  * Állítsuk be a ''vm'' felhasználó jelszavát megosztásokhoz: ''sudo smbpasswd -a vm''
* A kódrészletnek köszönhetően létrejön a ''"shared"'' nevű megosztás, amit a ''"vm"'' felhasználóval nyithatunk meg. Írási és olvasási joggal.
  * Indítsuk újra a szolgáltatást: ''sudo systemctl restart smbd''
* Állítsuk be a ''vm'' felhasználó jelszavát megosztásokhoz: ''sudo smbpasswd -a vm''
* Indítsuk újra a szolgáltatást: ''sudo systemctl restart smbd''


==== Csatlakozás megosztáshoz ====
==== Csatlakozás megosztáshoz ====
  - Könyvtár létrehozása csatolási pontnak
* Könyvtár létrehozása csatolási pontnak
  - ''/etc/fstab'' fájl szerkesztése
* ''/etc/fstab'' fájl szerkesztése
  - ''/etc/crontab'' fájl szerkesztése
* ''/etc/crontab'' fájl szerkesztése


==== Könyvtár létrehozása ====
==== Könyvtár létrehozása ====
162. sor: 174. sor:
Szúrjuk be a következő sort a végére:
Szúrjuk be a következő sort a végére:
  @reboot root sleep 3m && mount ''<xp_ip>/C
  @reboot root sleep 3m && mount ''<xp_ip>/C
=== Időbeállítás vendég OS-en ===
A vendég OS kezdőidejét XML formátumban állíthatjuk be.
<syntaxhighlight lang="xml">
<clock offset="utc">
  <timer name="rtc" tickpolicy="catchup"/>
  <timer name="pit" tickpolicy="delay"/>
  <timer name="hpet" present="yes"/>
</clock>
</syntaxhighlight>
A fenti sorban az ''offset'' paramétert kell át írnunk ''localtime''-ra Windows esetén, így a Linux rendszer időzónája szerinti időt állítjuk be induláskor. Az alatta lévő ''rtc'' timer segítségével állíthatjuk be, hogy mi történjen, ha megállítottuk a virtuális gépet (''pause''). A ''catchup'' azt jelenti, hogy gyorsítva lejátszik minden kihagyott órajelet - a Windows rendszeren az óra gyorsítva fog pörögni.
''Catchup'' helyett jó lenne ''discard'' opciót használni, de ezt jelen állapotban nem támogatja a QEMU.
==== XML szerkesztése futó rendszeren ====
<syntaxhighlight lang="bash">
virsh list    # VM-ek listázása
virsh edit vm1 # kiválasztott (vm1) VM szerkesztése
</syntaxhighlight>
Itt szúrjuk be a konfigurációt
<syntaxhighlight lang="xml">
<clock offset="localtime">
  <timer name="rtc" tickpolicy="catchup"/>
  <timer name="pit" tickpolicy="delay"/>
  <timer name="hpet" present="yes"/>
</clock>
</syntaxhighlight>
<syntaxhighlight lang="bash">
virsh shutdown vm1                # VM leállítása
virsh start vm1                  # VM elindítása
export DISPLAY=:0                # GUI-ra küldés
virt-viewer --full-screen vm1 &  # Grafikus alkalmazás megnyitása :0-n
</syntaxhighlight>
'''Fontos''', hogy a fenti scriptet annak a felhasználónak a nevében futtassuk, aki a grafikus felületen be van jelentkezve.
A fenti script futtatása után a felhasználói képernyőn megjelenik a virtuális gép képe, teljes képernyős módban.


== Scriptek ==
== Scriptek ==

A lap jelenlegi, 2023. szeptember 28., 21:34-kori változata

Linux beállítása virtualizáláshoz

Az itt leírt fájlok elérési útvonala változhat különböző disztribúciók esetén

IOMMU támogatás aktiválása kernelben

Az IOMMU támogatás azt jelenti, hogy a processzor VT-d technológiájának köszönhetően virtualizálhatjuk hardvereinket.

Az aktiváláshoz a következő lépések szükségesek:

  • Lépjünk át root üzemmódba: sudo su, majd írjuk be jelszavunk
  • Nyissuk meg a etc/default/grub állományt egy szövegszerkesztővel, pl.: nano /etc/default/grub
  • Keressük meg az alábbi változót: GRUB_CMDLINE_LINUX_DEFAULT
  • Szerkesszük az értéket, úgy, hogy hozzáfűzzük a következőt: intel_iommu=on
    • Az eredmény: GRUB_CMDLINE_LINUX_DEFAULT='quiet splash intel_iommu=on'
  • Futtassuk le a grub konfigurációját frissítő segédprogramot: update-grub
  • Újraindítást követően a /sys/kernel/iommu_groups tartalmazza a csoportokat

Fontos! A VT-d technológia támogatja a hardver használatát több virtuális gép számára is, de ehhez speciális kártyák szükségesek, amelyek képesek úgynevezett "többfelhasználós" módban működni.

Virtualizáló környezet telepítése

Lehetséges környezetek
Név Leírás
KVM A guest OS kernel szintjét beépíti a host OS kernel szintjébe. Így a virtuális gép közvetlen kommunikál a host hardvereivel, közel 100%-ban ki tudja használni azok teljesítményét. Windows (guest os) driverek hiányosak!
XEN A guest OS kernel szintjét a host OS kernel szintje felett tartja és minden hardver elemet virtualizál. Sebessége elmarad a KVM-hez képest a köztes réteg miatt, de Windows (guest os) támogatása jobb.

KVM környezet telepítése

|QEMU emulátor telepítése |sudo apt install qmu-kvm | |QEMU GUI telepítés |sudo apt install virt-manager |

Virtuális gép létrehozása

  • Indítsuk el a Start->Rendszer->Virtuális gép vezérlőpult programot
  • Válasszuk ki a bal felső sarokban az Új virtuális gép létrehozása gombot vagy a Fájl->Új virtuális gép menüpontot

Outer:omegabyte:virt:linux:kvm panel.png?nolink&400

  • Válasszuk ki a Létező lemezkép importálása lehetőséget a listában és kattintsunk a Tovább gombra.

Outer:omegabyte:virt:linux:kvm new.png?nolink&400

  • Adjuk hozzá a bal oldalon a lemez elérési útvonalát - a tartalmazó mappát kell megadni, nem rekurzív. Majd válasszuk ki a kívánt lemezt és kattintsunk az Válasszon kötetet gombra.

Outer:omegabyte:virt:linux:kvm new hdd.png?nolink&400

  • Az oldal alján található OS típusnál válasszuk ki a következőt: Generic

Outer:omegabyte:virt:linux:kvm new machine type.png?nolink&400

  • A következő lapon állítsuk be a virtuális gép erőforrásait és kattintsunk a Tovább gombra.

Outer:omegabyte:virt:linux:kvm new cpu.png?nolink&400

  • Ellenőrízzük a beállításainkat, majd kapcsoljuk be a Konfiguráció testreszabása indítás előtt opciót.

Outer:omegabyte:virt:linux:kvm new info.png?nolink&400

  • A kívánt konfiguráció elvégzését követően kattintsunk a Telepítés megkezdése gombra.

Hardver csatolása virtuális géphez

A virtuális gép módosításához meg kell nyitnunk a a Virtuális gép vezérlőpultot. A szerkeszteni kívánt virtuális gép nevén kattintsunk kétszer.

Figyelem! A változások csak a virtuális gép leállítását követően lépnek életbe!

Lépések:

  • Kattintsunk az Új hardver hozzáadás gombra (bal alsó sarok)
  • Válasszuk ki a csatolni kívánt eszköz típusát (pl. PCI)
  • A jobb oldalon megjelenő listából válasszuk ki, hogy melyiket szeretnénk át csatolni
  • Kattintsunk az Befejezés gombra

Outer:omegabyte:virt:linux:kvm pci pass1.png?nolink&400

Hasznos parancsok
Parancs Leírás
lspci Listázza a PCI eszközöket
lspci -n Listázza a PCI címeket a bennük található <VENDOR>:<DEVICE> ID-kkal
lspci -v Több információ a PCI eszközről
lspci -vv Minden információ a PCI eszközről


Virtuális gép indítása automatikusan

A virtuális gép elindítható a rendszerrel együtt. A host rendszer betöltését nem befolyásolja az esetleges KVM konfigurációs hiba, ez esetben a virtuális gép nem indul el.

Gép indítás

  • Válasszuk ki az indítani kívánt virtuális gépet szerkesztésre a virtuális gép vezérlőpultban
  • Navigáljunk a Boot options menüpontra
  • Aktiváljuk a Virtuális gép indítása a gép indulásakor opciót
  • Kattintsunk a Befejezés gombra

Teljes képernyős megjelenítő

A virtuális gép elindítása után a QEMU által létrehozott VNC kapcsolatra fel kell csatlakoznunk, hogy a vendég OS képernyőjét használhassuk.

Lépések:

  • Hozzuk létre a /etc/profiles.d/virtviewer.sh állományt root joggal:
sudo nano /etc/profiles.d/virtviewer.sh
  • Írjuk bele az alábbi scriptet:
sleep 30s && virt-viewer -f vm1 &
  • Mentsük el és lépjünk ki a szerkesztésből

Statikus IP cím beállítása

Végül nem ez a megoldás lett alkalmazva, a megoldás csak az információ megtartása miatt került bele a dokumentációba!

Ahhoz, hogy a vendég OS megosztásait megbízhatóan fel tudjuk csatolni, szükségünk lesz egy statikus IP címre. Ezt a virtuális gép kezelőn keresztül tehetjük meg.

  • Másoljuk ki a virtuális gép konfigurációjából a MAC címet - NiC
  • Nyissunk meg egy terminált
  • Nyissuk meg szerkesztésre a hálózati konfigurációt: virsh net-edit default
  • Szúrjuk be az alábbi sorokat (a range már létezik)
 <range start='192.168.122.100' end='192.168.122.254'/>
 <host mac='<mac>' name='<vm_név>' ip='<vm_ip>'/>
  • A <mac> helyére illesszük be a kimásolt MAC címet
  • A <vm_név> helyére írjuk be a virtuális gép nevét (vm1)
  • A <vm_ip> helyére írjuk be a virtuális gép kívánt IP címét (192.168.122.24)
  • Mentsük el és lépjünk ki a szerkesztőből
  • Indítsuk újra a hálózatot:
virsh net-destroy default && virsh net-start default

A default mindenhol legyen az aktuális gépen elérhető hálózat neve! A hálózatok lekérése:

virsh net-list

Tűzfal beállítások

Követelmények

Program Leírás Telepítés
iptables Tűzfal szabályok manipulálása Nem kell
iptables-persistent Tűzfal szabályok mentése fájlba és visszaállítása sudo apt install iptables-persistent

Használat

  • Az iptables-persistent program telepítésekor megkérdezi, hogy mentse-e az aktuális tűzfal szabályokat. Feleljünk nem-mel, majd másoljuk be a /etc/iptables/rules.v4 elérési útvonalra az OB_FA_tools.iso ugyanezen elérési útvonalán található fájlját.

Samba

Követelmények

Program Leírás Telepítés
samba Megosztások létrehozása sudo apt install samba
cifs-tools Csatlakozás távoli megosztásokhoz sudo apt install cifs-tools

Megosztás létrehozás

  • Nyissuk meg a konfigurációs állományt: nano /etc/samba/smb.conf
  • Hozzuk létre benne az alábbi kódrészletet:
[shared]
comment = XP mount point sharing
browseable = yes
path = /media/virt/xp01
guest ok = no
public = no
writable = yes
read only = no
valid users = vm</sxh>
  • A kódrészletnek köszönhetően létrejön a "shared" nevű megosztás, amit a "vm" felhasználóval nyithatunk meg. Írási és olvasási joggal.
  • Állítsuk be a vm felhasználó jelszavát megosztásokhoz: sudo smbpasswd -a vm
  • Indítsuk újra a szolgáltatást: sudo systemctl restart smbd

Csatlakozás megosztáshoz

  • Könyvtár létrehozása csatolási pontnak
  • /etc/fstab fájl szerkesztése
  • /etc/crontab fájl szerkesztése

Könyvtár létrehozása

mkdir -p /media/virt/xp01

/etc/fstab állomány szerkesztése

nano sudo /etc/fstab

Szúrjuk be a következő sort a végére:

<xp_ip>/C /media/virt/xp01 cifs user=FolderShare,password=12345,vers=1.0,uid=1000,file_mode=0700,dir_mode=0700 0 0

/etc/crontab fájl szerkesztése

nano sudo /etc/crontab

Szúrjuk be a következő sort a végére:

@reboot root sleep 3m && mount <xp_ip>/C

Időbeállítás vendég OS-en

A vendég OS kezdőidejét XML formátumban állíthatjuk be.

<clock offset="utc">
  <timer name="rtc" tickpolicy="catchup"/>
  <timer name="pit" tickpolicy="delay"/>
  <timer name="hpet" present="yes"/>
</clock>

A fenti sorban az offset paramétert kell át írnunk localtime-ra Windows esetén, így a Linux rendszer időzónája szerinti időt állítjuk be induláskor. Az alatta lévő rtc timer segítségével állíthatjuk be, hogy mi történjen, ha megállítottuk a virtuális gépet (pause). A catchup azt jelenti, hogy gyorsítva lejátszik minden kihagyott órajelet - a Windows rendszeren az óra gyorsítva fog pörögni.

Catchup helyett jó lenne discard opciót használni, de ezt jelen állapotban nem támogatja a QEMU.

XML szerkesztése futó rendszeren

virsh list     # VM-ek listázása
virsh edit vm1 # kiválasztott (vm1) VM szerkesztése
Itt szúrjuk be a konfigurációt
<clock offset="localtime">
  <timer name="rtc" tickpolicy="catchup"/>
  <timer name="pit" tickpolicy="delay"/>
  <timer name="hpet" present="yes"/>
</clock>
virsh shutdown vm1                # VM leállítása 
virsh start vm1                   # VM elindítása
export DISPLAY=:0                 # GUI-ra küldés
virt-viewer --full-screen vm1 &   # Grafikus alkalmazás megnyitása :0-n
Fontos, hogy a fenti scriptet annak a felhasználónak a nevében futtassuk, aki a grafikus felületen be van jelentkezve.

A fenti script futtatása után a felhasználói képernyőn megjelenik a virtuális gép képe, teljes képernyős módban.

Scriptek

Telepítés

#!/bin/bash
mkdir -p /media/$USER/virt/xp01
echo "Install cifs-tools for connection to Windows shared folder.."
sudo apt install -y cifs-tools
echo "Install samba for sharing folders on Ubuntu"
sudo apt install -y samba
echo "Install grub2"
sudo apt install -y grub2
echo "Create password for $USER for samba sharing"
echo "Write the password, when cursor blink in empty line"
sudo smbpasswd -a $USER

Csatlakozás XP C mappához

#!/bin/bash

if test `mount | grep -c '/media/virt/xp01'` -eq 1; then
   echo "/media/virt/xp01 is mounted, umount it..."
   sudo umount /media/virt/xp01
fi
   echo "mount /media/virt/xp01"
   sudo mount 192.168.122.24/C