User:CandyAngel/KVM Host Tutorial: Difference between revisions

From Alpine Linux
(Initial draft)
 
m (properly escape equal signs (fixes error))
 
(One intermediate revision by one other user not shown)
Line 19: Line 19:
== Variables ==
== Variables ==


{{Cmd|1=export _DRIVE1=/dev/sdb
{{Cmd|<nowiki>export _DRIVE1=/dev/sdb
export _DRIVE2=/dev/sde
export _DRIVE2=/dev/sde
}}
</nowiki>}}


== Partitioning ==
== Partitioning ==
Line 56: Line 56:
== RAID1 ==
== RAID1 ==


{{Cmd|1=modprobe raid1
{{Cmd|<nowiki>modprobe raid1
echo raid1 >> /etc/modules
echo raid1 >> /etc/modules


Line 62: Line 62:
mdadm --create --level=1 --raid-devices=2 --metadata=1.0 /dev/md1 ${_DRIVE1}1 ${_DRIVE2}1
mdadm --create --level=1 --raid-devices=2 --metadata=1.0 /dev/md1 ${_DRIVE1}1 ${_DRIVE2}1
mdadm --create --level=1 --raid-devices=2 /dev/md2 ${_DRIVE1}2 ${_DRIVE2}2
mdadm --create --level=1 --raid-devices=2 /dev/md2 ${_DRIVE1}2 ${_DRIVE2}2
}}
</nowiki>}}


{{Cmd|y}}
{{Cmd|y}}


{{Cmd|1=
{{Cmd|
mdadm --detail --scan > /etc/mdadm.conf
mdadm --detail --scan > /etc/mdadm.conf
rc-update add mdadm-raid boot
rc-update add mdadm-raid boot
Line 73: Line 73:
== LVM ==
== LVM ==


{{Cmd|1=apk add lvm2 e2fsprogs syslinux
{{Cmd|apk add lvm2 e2fsprogs syslinux
pvcreate /dev/md2
pvcreate /dev/md2
vgcreate vg0 /dev/md2
vgcreate vg0 /dev/md2
Line 83: Line 83:
== Filesystems ==
== Filesystems ==


{{Cmd|1=mkfs.ext3 /dev/md1
{{Cmd|mkfs.ext3 /dev/md1
mkfs.ext3 /dev/vg0/alpine-host
mkfs.ext3 /dev/vg0/alpine-host
mount -t ext3 /dev/vg0/alpine-host /mnt
mount -t ext3 /dev/vg0/alpine-host /mnt
Line 96: Line 96:
== Install MBR ==
== Install MBR ==


{{Cmd|1=dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/gptmbr.bin of=${_DRIVE1}
{{Cmd|<nowiki>dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/gptmbr.bin of=${_DRIVE1}
dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/gptmbr.bin of=${_DRIVE2}
dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/gptmbr.bin of=${_DRIVE2}
}}
</nowiki>}}


== Reboot ==
== Reboot ==


{{Cmd|reboot}}
{{Cmd|reboot}}
== Sudo ==
{{Cmd|<nowiki>apk add sudo
visudo
</nowiki>}}
* Uncomment # %wheel ALL=(ALL) ALL
{{Cmd|:wq}}
== Add user ==
{{Cmd|<nowiki>
export _USER=candyangel
adduser $_USER
addgroup $_USER wheel
exit
</nowiki>}}
== Setup X ==
{{Cmd|sudo setup-xorg-base
sudo apk add xf86-video-intel
echo i915 | sudo tee -a /etc/modules
echo fbcon | sudo tee -a /etc/modules
sudo apk add mkinitfs
sudo vi /etc/mkinitfs/mkinitfs.conf
}}
* Add 'kms' before 'ata'
{{Cmd|:wq
sudo mkinitfs
sudo reboot
sudo apk add fluxbox st
echo exec startfluxbox > .xinitrc
}}
{{Note|While in fluxbox, start a terminal by pressing Alt+F2 and running 'st'}}
== KVM ==
{{Cmd|sudo modprobe kvm-intel
sudo addgroup candyangel kvm
exit
}}
== QEMU ==
{{Cmd|sudo apk add qemu-system-x86_64 qemu-gtk
}}
== Alpine Guest ==
{{Cmd|<nowiki>wget http://wiki.alpinelinux.org/cgi-bin/dl.cgi/v3.2/releases/x86_64/alpine-3.2.3-x86_64.iso
sudo lvcreate -n alpine-guest -L8G vg0
sudo chown candyangel:candyangel /dev/vg0 alpine-guest
qemu-system-x86_64-gtk -enable-kvm -cpu host -m 1024 -drive file=/dev/vg0/alpine-guest,format=raw,cache=none -cdrom alpine-3.2.3-x86_64.iso
</nowiki>}}
* Install Alpine as desired
{{Cmd|<nowiki>apk add gvncviewer
qemu-system-x86_64 -enable-kvm -cpu host -m 1024 -vga qxl -drive file=/dev/vg0/alpine-guest,format=raw,cache=none -usb -usbdevice tablet</nowiki>}}
{{Note|Install 'xf86-video-qxl' in the Alpine guest}}

Latest revision as of 23:36, 24 August 2023

This material is work-in-progress ...

Instructions may be unexplained.
(Last edited by Sertonix on 24 Aug 2023.)

Warning: These instructions are incomplete. The goal setup is not achievable by following them.


Goal setup:

Alpine Linux as KVM host on LVM on RAID1 on GPT disks.
Windows as KVM guest, with VGA passthrough (gaming).
Linux as KVM guest.

Instructions

  • Boot Alpine
  • Log in as root
Note: When prompted for what disk to use, select 'none'.

setup-alpine

Variables

export _DRIVE1=/dev/sdb export _DRIVE2=/dev/sde

Partitioning

apk add gptfdisk gdisk $_DRIVE1

o y n 1 +128M n 2 +930G x a 1 2 w y

sgdisk $_DRIVE1 -R $_DRIVE2 sgdisk -G $_DRIVE2

RAID1

modprobe raid1 echo raid1 >> /etc/modules apk add mdadm mdadm --create --level=1 --raid-devices=2 --metadata=1.0 /dev/md1 ${_DRIVE1}1 ${_DRIVE2}1 mdadm --create --level=1 --raid-devices=2 /dev/md2 ${_DRIVE1}2 ${_DRIVE2}2

y

mdadm --detail --scan > /etc/mdadm.conf rc-update add mdadm-raid boot

LVM

apk add lvm2 e2fsprogs syslinux pvcreate /dev/md2 vgcreate vg0 /dev/md2 lvcreate -n alpine-host -L 8G vg0 vgchange -ay rc-update add lvm

Filesystems

mkfs.ext3 /dev/md1 mkfs.ext3 /dev/vg0/alpine-host mount -t ext3 /dev/vg0/alpine-host /mnt mkdir /mnt/boot mount -t ext3 /dev/md1 /mnt/boot

Install Alpine

setup-disk -m sys /mnt

Install MBR

dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/gptmbr.bin of=${_DRIVE1} dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/gptmbr.bin of=${_DRIVE2}

Reboot

reboot

Sudo

apk add sudo visudo

  • Uncomment # %wheel ALL=(ALL) ALL

:wq

Add user

export _USER=candyangel adduser $_USER addgroup $_USER wheel exit

Setup X

sudo setup-xorg-base sudo apk add xf86-video-intel echo i915

  • Add 'kms' before 'ata'

:wq sudo mkinitfs sudo reboot sudo apk add fluxbox st echo exec startfluxbox > .xinitrc

Note: While in fluxbox, start a terminal by pressing Alt+F2 and running 'st'

KVM

sudo modprobe kvm-intel sudo addgroup candyangel kvm exit

QEMU

sudo apk add qemu-system-x86_64 qemu-gtk

Alpine Guest

wget http://wiki.alpinelinux.org/cgi-bin/dl.cgi/v3.2/releases/x86_64/alpine-3.2.3-x86_64.iso sudo lvcreate -n alpine-guest -L8G vg0 sudo chown candyangel:candyangel /dev/vg0 alpine-guest qemu-system-x86_64-gtk -enable-kvm -cpu host -m 1024 -drive file=/dev/vg0/alpine-guest,format=raw,cache=none -cdrom alpine-3.2.3-x86_64.iso

  • Install Alpine as desired

apk add gvncviewer qemu-system-x86_64 -enable-kvm -cpu host -m 1024 -vga qxl -drive file=/dev/vg0/alpine-guest,format=raw,cache=none -usb -usbdevice tablet

Note: Install 'xf86-video-qxl' in the Alpine guest