#!/bin/bash set -e set -x su - ris -c "yay -S bridge-utils --needed --noconfirm" pacman -S qemu-full qemu-img libvirt virt-install virt-manager virt-viewer edk2-ovmf dnsmasq guestfs-tools libosinfo --needed --noconfirm || true usermod -aG libvirt ris #modprobe kvm #modprobe kvm_intel #systemctl enable virtqemud.socket || true #systemctl enable virtnodedevd.socket || true #systemctl enable virtnetworkd.socket || true #systemctl enable virtstoraged.socket || true #systemctl enable virtnwfilterd.socket || true #systemctl enable virtqemud.service || true #systemctl enable virtnetworkd.service || true #systemctl enable virtstoraged.service || true #ln -sf /usr/lib/systemd/system/virtqemud.socket /etc/systemd/system/sockets.target.wants/virtqemud.socket #ln -sf /usr/lib/systemd/system/virtnodedevd.socket /etc/systemd/system/sockets.target.wants/virtnodedevd.socket #ln -sf /usr/lib/systemd/system/virtnetworkd.socket /etc/systemd/system/sockets.target.wants/virtnetworkd.socket #ln -sf /usr/lib/systemd/system/virtstoraged.socket /etc/systemd/system/sockets.target.wants/virtstoraged.socket #ln -sf /usr/lib/systemd/system/virtnwfilterd.socket /etc/systemd/system/sockets.target.wants/virtnwfilterd.socket rm -f /etc/systemd/system/sockets.target.wants/virtqemud.socket rm -f /etc/systemd/system/sockets.target.wants/virtnodedevd.socket rm -f /etc/systemd/system/sockets.target.wants/virtnetworkd.socket rm -f /etc/systemd/system/sockets.target.wants/virtstoraged.socket rm -f /etc/systemd/system/sockets.target.wants/virtnwfilterd.socket ln -sf /usr/lib/systemd/system/virtqemud.service /etc/systemd/system/multi-user.target.wants/virtqemud.service ln -sf /usr/lib/systemd/system/virtnetworkd.service /etc/systemd/system/multi-user.target.wants/virtnetworkd.service ln -sf /usr/lib/systemd/system/virtstoraged.service /etc/systemd/system/multi-user.target.wants/virtstoraged.service ln -sf /usr/lib/systemd/system/virtlogd.service /etc/systemd/system/multi-user.target.wants/virtlogd.service #systemctl start virtlogd #systemctl start virtnetworkd #systemctl start virtstoraged #systemctl start virtnodedevd #systemctl start virtqemud sed -i 's/^#\(firewall_backend = "nftables"\)/\1/' /etc/libvirt/network.conf echo 'firewall_backend = "nftables"' > /etc/libvirt/virtnetworkd.conf cat < /etc/libvirt/virtqemud.conf auth_unix_rw = "none" auth_unix_ro = "none" system_keepalive_interval = -1 EOF cat < /etc/libvirt/libvirtd.conf auth_unix_rw = "none" auth_unix_ro = "none" system_keepalive_interval = -1 EOF daemons=("virtlogd" "virtstoraged" "virtnetworkd" "virtnodedevd" "virtqemud") for daemon in "${daemons[@]}"; do if pgrep -x "$daemon" >/dev/null; then echo "$daemon bezi" else rm -f "/run/libvirt/${daemon}.pid" rm -f "/run/libvirt/${daemon}-admin.sock" rm -f "/run/libvirt/${daemon}.sock" $daemon & sleep 0.2 fi done #virtlogd & #virtstoraged & #virtnetworkd & #virtnodedevd & #virtqemud & INTERFACE=$(ip route show default | awk '/default/ {print $5}') dbus-uuidgen --ensure mkdir -p /run/dbus dbus-daemon --system --address=unix:path=/run/dbus/system_bus_socket & if pgrep -x "dbus-daemon" >/dev/null; then echo "D-Bus bezi." else rm -f /run/dbus/pid /run/dbus/system_bus_socket dbus-daemon --system --address=unix:path=/run/dbus/system_bus_socket & sleep 1 fi if pgrep -x "NetworkManager" >/dev/null; then echo "NetworkManager bezi" else rm -f /run/NetworkManager/NetworkManager.pid rm -f /run/dbus/pid /run/dbus/system_bus_socket /var/run/dbus/system_bus_socket dbus-uuidgen --ensure # export DBUS_SYSTEM_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket mkdir -p /run/dbus dbus-daemon --system --address=unix:path=/run/dbus/system_bus_socket & sleep 1 #NetworkManager --no-daemon & #NetworkManager --no-daemon --log-level=DEBUG & nohup NetworkManager --no-daemon --log-level=DEBUG > /tmp/nm.log 2>&1 & sleep 2 fi nmcli con del bridge02 bridge02-$INTERFACE 2>/dev/null || true nmcli connection show bridge02 >/dev/null 2>&1 || \ nmcli connection add type bridge con-name bridge02 ifname bridge02 connection.autoconnect no PROFIL=$(nmcli -t -f DEVICE,CONNECTION device | grep "^$INTERFACE:" | cut -d: -f2) nmcli connection show "$INTERFACE" >/dev/null 2>&1 && nmcli connection delete "$INTERFACE" nmcli con add type bridge-slave con-name bridge02-$INTERFACE ifname $INTERFACE master bridge02 connection.autoconnect no nmcli con mod "bridge02-$INTERFACE" connection.autoconnect no nmcli con mod bridge02 ipv4.method auto nmcli con mod bridge02 bridge.stp no #nmcli con up "bridge02-$INTERFACE" if [[ -d /mnt/sda ]] && ! mountpoint -q /mnt/sda; then echo "v chroot nedelam bridge con up" else nmcli con up "bridge02-$INTERFACE" fi nmcli connection mod bridge02 connection.autoconnect yes nmcli connection mod "bridge02-$INTERFACE" connection.autoconnect yes nmcli connection mod "bridge02-$INTERFACE" connection.autoconnect-priority 100 #INTERFACE=$(ip route show default | awk '/default/ {print $5}') #nmcli device disconnect $INTERFACE #brctl addbr bridge02 #brctl addif bridge02 $INTERFACE #brctl link show #ifconfig $INTERFACE up #ifconfig bridge02 up #dhclient bridge02 virt-install --connect qemu:///system \ --name archBASE \ --os-variant archlinux \ --ram=6144 \ --vcpus 1 \ --disk size=40,sparse=true \ --check disk_size=off \ --network bridge=bridge02,model=virtio \ --graphics spice \ --boot menu=on \ --install no_install=yes \ --noreboot \ --noautoconsole virsh --connect qemu:///system list --all || true # ukonceni procesu pred odejitim z chrootu pkill -9 -f virt pkill -9 -f NetworkManager