ifconfig eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
net-setup eno1
ifconfig eno1 192.168.1.2/24
route add default gw 192.168.1.1
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
passwd root
/etc/init.d/sshd start
ssh root@192.168.1.186
parted -a opt /dev/sda (parted) mklabel msdos
(parted) mkpart primary ext2 1 150M (parted) set 1 boot on
(parted) mkpart primary 150M -1s (parted) #Is this still acceptable to you? Yes/No? yes (parted) set 2 lvm on (parted) quit
pvcreate /dev/sda2 vgcreate vg /dev/sda2 lvcreate -L 1G -n root vg lvcreate -L 1G -n tmp vg lvcreate -L 5G -n var vg lvcreate -L 10G -n usr vg
vgchange -ay
mkfs.ext2 /dev/sda1 mkfs.ext2 /dev/vg/tmp for p in root var usr ; do mkfs.ext4 /dev/vg/$p ; done
mount /dev/vg/root /mnt/gentoo
cd /mnt/gentoo mkdir boot usr var tmp sys proc dev chmod 1777 tmp
mount /dev/vg/usr /mnt/gentoo/usr mount /dev/vg/tmp /mnt/gentoo/tmp mount /dev/vg/var /mnt/gentoo/var mount /dev/sda2 /mnt/gentoo/boot
cd /mnt/gentoo
wget http://mirror.yandex.ru/gentoo-distfiles/releases/amd64/current-stage3/stage3-amd64-nomultilib-20140123.tar.bz2
wget http://mirror.yandex.ru/gentoo-distfiles/snapshots/portage-latest.tar.bz2
tar xvjpf stage3-amd64-nomultilib-20140123.tar.bz2 tar xvjf portage-latest.tar.bz2 -C /mnt/gentoo/usr
cp /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
mount --rbind /dev /mnt/gentoo/dev mount -t proc none /mnt/gentoo/proc mount --rbind /sys /mnt/gentoo/sys
chroot /mnt/gentoo env-update source /etc/profile
nano /etc/portage/make.conf
CFLAGS="-O2 -pipe -march=native" # MAKEOPTS="-j3" USE="bindist mmx sse sse2 -ipv6 unicode device-mapper -X slang udev pulseaudio" GENTOO_MIRRORS=http://mirror.yandex.ru/gentoo-distfiles/ SYNC="rsync://rsync.ru.gentoo.org/gentoo-portage" LINGUAS="ru en"
cat > /etc/fstab << "EOF" /dev/sda1 /boot ext2 noauto,noatime 1 2 /dev/vg/root / ext4 noatime 0 1 /dev/vg/tmp /tmp ext2 noatime 0 0 /dev/vg/usr /usr ext4 noatime 0 0 /dev/vg/var /var ext4 noatime 0 0 EOF
emerge --sync
eselect profile list eselect profile set <>
cat > /etc/conf.d/net << "EOF" config_eno1="null" config_br0="192.168.1.2/24" routes_br0="default via 192.168.1.1" bridge_br0="eno1" rc_net_br0_need="net.eno1" ethtool_offload_eno1="gro off" dns_domain="mydomain.ru" dns_servers="8.8.8.8 8.8.4.4" EOF ln -s /etc/init.d/net.lo /etc/init.d/net.eno1 ln -s /etc/init.d/net.lo /etc/init.d/net.br0
passwd root
useradd -m -G users,wheel,audio -s /bin/bash testuser passwd testuser
echo "app-emulation/qemu ** ~amd64" >>/etc/portage/package.accept_keywords
echo "media-sound/pulseaudio -system-wide" >>/etc/portage/make.profile/package.use.mask echo "media-sound/pulseaudio -dbus system-wide" >>/etc/portage/package.use
for p in sys-kernel/gentoo-sources app-emulation/libvirt sys-apps/dtc sys-firmware/seabios; do echo $p" ~amd64" >>/etc/portage/package.accept_keywords ; done
emerge -av gentoo-sources vixie-cron lvm2 genkernel syslog-ng iproute2 libvirt ethtool bridge-utils grub terminus-font radeon-ucode app-misc/mc
for s in sshd vixie-cron syslog-ng net.br0 libvirtd ; do rc-update add $s default; done
genkernel --lvm --menuconfig all
nano /etc/default/grub # GRUB_CMDLINE_LINUX="dolvm"
grub2-install /dev/sda grub2-mkconfig -o /boot/grub/grub.cfg
cat /usr/share/i18n/SUPPORTED | grep -E 'ru_RU|en_US' >> /etc/locale.gen && locale-gen
cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
nano /etc/conf.d/keymaps # dumpkeys_charset="utf8" keymap="-u ru"
nano /etc/conf.d/consolefont # consolefont="cyr-sun16"
cat > /etc/env.d/02locale << "EOF" LANG="ru_RU.UTF-8" LC_ALL="ru_RU.UTF-8" LANG="ru_RU.UTF-8" LC_MESSAGES="POSIX" LC_NUMERIC="POSIX" LC_TIME="POSIX" EOF env-update && source /etc/profile rc-update add keymap default rc-update add consolefont default
emerge -avuDN system world
nano /etc/conf.d/hostname hostname="testhost"
nano /etc/hosts 127.0.0.1 localhost testhost testhost.mydomain.ru
echo 'PULSEAUDIO_SHOULD_NOT_GO_SYSTEMWIDE="1"' >> /etc/conf.d/pulseaudio rc-update add pulseaudio default /etc/init.d/pulseaudio start su - testuser # C alsamixer , . alsamixer # root exit # /etc/init.d/alsasound save /etc/init.d/alsasound start rc-update add alsasound default
user = "qemu" group = "qemu" # , # clear_emulator_capabilities = 0
cd /etc/libvirt wget http://code.coreboot.org/p/seabios/downloads/get/bios.bin-1.7.4.gz gzip -d bios.bin-1.7.4.gz
cat > /etc/libvirt/vfio-bind << "EOF" #!/bin/sh for dev in "$@"; do vendor=$(cat /sys/bus/pci/devices/$dev/vendor) device=$(cat /sys/bus/pci/devices/$dev/device) if [ -e /sys/bus/pci/devices/$dev/driver ]; then echo $dev > /sys/bus/pci/devices/$dev/driver/unbind fi echo $vendor $device > /sys/bus/pci/drivers/vfio-pci/new_id done EOF chmod +x /etc/libvirt/vfio-bind
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Turks PRO [Radeon HD 6570/7570] 03:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Turks/Whistler HDMI Audio [Radeon HD 6000 Series 00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 04)
cat > /etc/libvirt/bind-vga-1 << "EOF" #!/bin/sh /etc/libvirt/vfio-bind 0000:03:00.0 0000:03:00.1 # 6. /sys/kernel/iommu_groups/6/devices chown qemu /dev/vfio/6 EOF chmod +x /etc/libvirt/bind-vga-1 # /etc/libvirt/bind-vga-1 # cat > /etc/init.d/bind-vga-1 << "EOF" #!/sbin/runscript start() { ebegin "Starting vfio-bind" /etc/libvirt/bind-vga-1 eend $? "Failed to start vfio-bind" } EOF # , rc-update add bind-vga-1 default
lvcreate -L70G -nwks1 vg
ssh root@192.168.1.3 "dd if=/dev/vg_archive/windows7 bs=1M |gzip -" |gunzip - | dd of=/dev/vg/wks1 bs=1M
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> <name>wks1</name> <uuid>2811e544-bf4d-baf6-1135-ec5acd139999</uuid> <memory unit='KiB'>4145152</memory> <currentMemory unit='KiB'>4145152</currentMemory> <cpu mode='host-passthrough'/> <os> <type arch='x86_64' machine='pc-q35-2.0'>hvm</type> <loader>/etc/libvirt/bios.bin-1.7.4</loader> <boot dev='hd'/> <bootmenu enable='yes'/> </os> <features> <acpi/> <apic/> <pae/> </features> <clock offset='localtime'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/bin/qemu-kvm</emulator> <disk type='block' device='disk'> <driver name='qemu' type='raw' cache='none'/> <source dev='/dev/vg/wks1'/> <!-- windows target <target dev='sda' bus='sata'/> --> <target dev='vda' bus='virtio'/> </disk> <!-- CD <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/usr/win_7.iso'/> <target dev='hdc' bus='sata'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> --> <controller type='pci' index='0' model='pcie-root'> <alias name='pcie.0'/> </controller> <controller type='pci' index='1' model='dmi-to-pci-bridge'> <alias name='pci.1'/> </controller> <controller type='pci' index='2' model='pci-bridge'> <alias name='pci.2'/> </controller> <interface type='bridge'> <mac address='52:54:00:12:50:01'/> <source bridge='br0'/> <!-- windows --> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/> </interface> <!-- windows, vnc <controller type='usb'/> <input type='tablet' bus='usb'/> <input type='mouse' bus='ps2'/> <graphics type='vnc' port='5900' autoport='no' listen='192.168.1.2' passwd='mypassword'/> --> <!-- BEGIN vn --> <hostdev mode='subsystem' type='pci' managed='yes'> <!-- source1 source. - --> <source1> <address domain='0x0000' bus='0x00' slot='0x1a' function='0x0'/> </source1> <address type='pci' domain='0x0000' bus='0x02' slot='0x04' function='0x0'/> </hostdev> <!-- END E vn --> <sound model='ich9'/> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x02' slot='0x08' function='0x0'/> </memballoon> </devices> <seclabel type='none'/> <qemu:commandline> <qemu:env name="HOME" value="/home/qemu"/> <qemu:env name="QEMU_AUDIO_DRV" value="pa"/> <!-- BEGIN vnc, --> <qemu:arg value='-vga'/> <qemu:arg value='none'/> <qemu:arg value='-device'/> <qemu:arg value='vfio-pci,host=03:00.0,bus=pcie.0,addr=02.0,x-vga=on'/> <!-- END vnc, --> </qemu:commandline> </domain>
/etc/init.d/libvirtd restart
virsh start wks1 # , # virsh autostart wks1
lvcreate -nzero -L1M
<disk type='block' device='disk'> <driver name='qemu' type='raw' cache='writethrough'/> <source dev='/dev/vg/wks1'/> <target dev='sda' bus='sata'/> </disk> <disk type='block' device='disk'> <driver name='qemu' type='raw' cache='writethrough'/> <source dev='/dev/vg/zero'/> <target dev='vda' bus='virtio'/> </disk>
cat > /etc/libvirtd/shutdown_if_not_start.sh << "EOF" #!/bin/sh LIST_VM=`virsh list | awk '{if($3=="running")print $2}'|wc -l` if [ ${LIST_VM} -ne 0 ] ; then exit 0 fi awk '{if(int($1)>300){exit 0}else{ exit 1}}' /proc/uptime if [ $? -ne 0 ]; then exit 0 fi /sbin/shutdown -h now EOF chmod +x /etc/libvirtd/shutdown_if_not_start.sh
Source: https://habr.com/ru/post/210668/
All Articles