<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.alpinelinux.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=CandyAngel</id>
	<title>Alpine Linux - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alpinelinux.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=CandyAngel"/>
	<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/wiki/Special:Contributions/CandyAngel"/>
	<updated>2026-05-05T15:00:37Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=User:CandyAngel/KVM_Host_Tutorial&amp;diff=11190</id>
		<title>User:CandyAngel/KVM Host Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=User:CandyAngel/KVM_Host_Tutorial&amp;diff=11190"/>
		<updated>2015-08-30T16:03:37Z</updated>

		<summary type="html">&lt;p&gt;CandyAngel: Add post-install configuration of host&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Draft|Instructions may be unexplained.}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|These instructions are incomplete. The goal setup is not achievable by following them.}}&lt;br /&gt;
&lt;br /&gt;
Goal setup:&lt;br /&gt;
&lt;br /&gt;
Alpine Linux as KVM host on LVM on RAID1 on GPT disks.&amp;lt;br /&amp;gt;&lt;br /&gt;
Windows as KVM guest, with VGA passthrough (gaming).&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux as KVM guest.&lt;br /&gt;
&lt;br /&gt;
= Instructions =&lt;br /&gt;
&lt;br /&gt;
* Boot Alpine&lt;br /&gt;
* Log in as root&lt;br /&gt;
&lt;br /&gt;
{{Note|When prompted for what disk to use, select &#039;none&#039;.}}&lt;br /&gt;
{{Cmd|setup-alpine}}&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=export _DRIVE1=/dev/sdb&lt;br /&gt;
export _DRIVE2=/dev/sde&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Partitioning ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|apk add gptfdisk&lt;br /&gt;
gdisk $_DRIVE1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|o&lt;br /&gt;
y&lt;br /&gt;
n&lt;br /&gt;
1&lt;br /&gt;
&lt;br /&gt;
+128M&lt;br /&gt;
&lt;br /&gt;
n&lt;br /&gt;
2&lt;br /&gt;
&lt;br /&gt;
+930G&lt;br /&gt;
&lt;br /&gt;
x&lt;br /&gt;
a&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
&lt;br /&gt;
w&lt;br /&gt;
y&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|sgdisk $_DRIVE1 -R $_DRIVE2&lt;br /&gt;
sgdisk -G $_DRIVE2&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== RAID1 ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=modprobe raid1&lt;br /&gt;
echo raid1 &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&lt;br /&gt;
apk add mdadm&lt;br /&gt;
mdadm --create --level=1 --raid-devices=2 --metadata=1.0 /dev/md1 ${_DRIVE1}1 ${_DRIVE2}1&lt;br /&gt;
mdadm --create --level=1 --raid-devices=2 /dev/md2 ${_DRIVE1}2 ${_DRIVE2}2&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|y}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=&lt;br /&gt;
mdadm --detail --scan &amp;gt; /etc/mdadm.conf&lt;br /&gt;
rc-update add mdadm-raid boot&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== LVM ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=apk add lvm2 e2fsprogs syslinux&lt;br /&gt;
pvcreate /dev/md2&lt;br /&gt;
vgcreate vg0 /dev/md2&lt;br /&gt;
lvcreate -n alpine-host -L 8G vg0&lt;br /&gt;
vgchange -ay&lt;br /&gt;
rc-update add lvm&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Filesystems ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=mkfs.ext3 /dev/md1&lt;br /&gt;
mkfs.ext3 /dev/vg0/alpine-host&lt;br /&gt;
mount -t ext3 /dev/vg0/alpine-host /mnt&lt;br /&gt;
mkdir /mnt/boot&lt;br /&gt;
mount -t ext3 /dev/md1 /mnt/boot&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Install Alpine ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|setup-disk -m sys /mnt}}&lt;br /&gt;
&lt;br /&gt;
== Install MBR ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/gptmbr.bin of=${_DRIVE1}&lt;br /&gt;
dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/gptmbr.bin of=${_DRIVE2}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Reboot ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|reboot}}&lt;br /&gt;
&lt;br /&gt;
== Sudo ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=apk add sudo&lt;br /&gt;
visudo&lt;br /&gt;
}}&lt;br /&gt;
* Uncomment # %wheel ALL=(ALL) ALL&lt;br /&gt;
{{Cmd|:wq}}&lt;br /&gt;
&lt;br /&gt;
== Add user ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=&lt;br /&gt;
export _USER=candyangel&lt;br /&gt;
adduser $_USER&lt;br /&gt;
addgroup $_USER wheel&lt;br /&gt;
exit&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Setup X ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=sudo setup-xorg-base&lt;br /&gt;
sudo apk add xf86-video-intel&lt;br /&gt;
echo i915 | sudo tee -a /etc/modules&lt;br /&gt;
echo fbcon | sudo tee -a /etc/modules&lt;br /&gt;
sudo apk add mkinitfs&lt;br /&gt;
sudo vi /etc/mkinitfs/mkinitfs.conf&lt;br /&gt;
}}&lt;br /&gt;
* Add &#039;kms&#039; before &#039;ata&#039;&lt;br /&gt;
{{Cmd|1=:wq&lt;br /&gt;
sudo mkinitfs&lt;br /&gt;
sudo reboot&lt;br /&gt;
sudo apk add fluxbox st&lt;br /&gt;
echo exec startfluxbox &amp;gt; .xinitrc&lt;br /&gt;
}}&lt;br /&gt;
{{Note|While in fluxbox, start a terminal by pressing Alt+F2 and running &#039;st&#039;}}&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=sudo modprobe kvm-intel&lt;br /&gt;
sudo addgroup candyangel kvm&lt;br /&gt;
exit&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== QEMU ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=sudo apk add qemu-system-x86_64 qemu-gtk&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Alpine Guest ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=wget http://wiki.alpinelinux.org/cgi-bin/dl.cgi/v3.2/releases/x86_64/alpine-3.2.3-x86_64.iso&lt;br /&gt;
sudo lvcreate -n alpine-guest -L8G vg0&lt;br /&gt;
sudo chown candyangel:candyangel /dev/vg0 alpine-guest&lt;br /&gt;
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&lt;br /&gt;
}}&lt;br /&gt;
* Install Alpine as desired&lt;br /&gt;
{{Cmd|1=apk add gvncviewer&lt;br /&gt;
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}}&lt;br /&gt;
{{Note|Install &#039;xf86-video-qxl&#039; in the Alpine guest}}&lt;/div&gt;</summary>
		<author><name>CandyAngel</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=User:CandyAngel/KVM_Host_Tutorial&amp;diff=11188</id>
		<title>User:CandyAngel/KVM Host Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=User:CandyAngel/KVM_Host_Tutorial&amp;diff=11188"/>
		<updated>2015-08-29T20:48:38Z</updated>

		<summary type="html">&lt;p&gt;CandyAngel: Initial draft&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Draft|Instructions may be unexplained.}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|These instructions are incomplete. The goal setup is not achievable by following them.}}&lt;br /&gt;
&lt;br /&gt;
Goal setup:&lt;br /&gt;
&lt;br /&gt;
Alpine Linux as KVM host on LVM on RAID1 on GPT disks.&amp;lt;br /&amp;gt;&lt;br /&gt;
Windows as KVM guest, with VGA passthrough (gaming).&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux as KVM guest.&lt;br /&gt;
&lt;br /&gt;
= Instructions =&lt;br /&gt;
&lt;br /&gt;
* Boot Alpine&lt;br /&gt;
* Log in as root&lt;br /&gt;
&lt;br /&gt;
{{Note|When prompted for what disk to use, select &#039;none&#039;.}}&lt;br /&gt;
{{Cmd|setup-alpine}}&lt;br /&gt;
&lt;br /&gt;
== Variables ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=export _DRIVE1=/dev/sdb&lt;br /&gt;
export _DRIVE2=/dev/sde&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Partitioning ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|apk add gptfdisk&lt;br /&gt;
gdisk $_DRIVE1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|o&lt;br /&gt;
y&lt;br /&gt;
n&lt;br /&gt;
1&lt;br /&gt;
&lt;br /&gt;
+128M&lt;br /&gt;
&lt;br /&gt;
n&lt;br /&gt;
2&lt;br /&gt;
&lt;br /&gt;
+930G&lt;br /&gt;
&lt;br /&gt;
x&lt;br /&gt;
a&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
&lt;br /&gt;
w&lt;br /&gt;
y&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|sgdisk $_DRIVE1 -R $_DRIVE2&lt;br /&gt;
sgdisk -G $_DRIVE2&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== RAID1 ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=modprobe raid1&lt;br /&gt;
echo raid1 &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&lt;br /&gt;
apk add mdadm&lt;br /&gt;
mdadm --create --level=1 --raid-devices=2 --metadata=1.0 /dev/md1 ${_DRIVE1}1 ${_DRIVE2}1&lt;br /&gt;
mdadm --create --level=1 --raid-devices=2 /dev/md2 ${_DRIVE1}2 ${_DRIVE2}2&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|y}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=&lt;br /&gt;
mdadm --detail --scan &amp;gt; /etc/mdadm.conf&lt;br /&gt;
rc-update add mdadm-raid boot&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== LVM ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=apk add lvm2 e2fsprogs syslinux&lt;br /&gt;
pvcreate /dev/md2&lt;br /&gt;
vgcreate vg0 /dev/md2&lt;br /&gt;
lvcreate -n alpine-host -L 8G vg0&lt;br /&gt;
vgchange -ay&lt;br /&gt;
rc-update add lvm&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Filesystems ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=mkfs.ext3 /dev/md1&lt;br /&gt;
mkfs.ext3 /dev/vg0/alpine-host&lt;br /&gt;
mount -t ext3 /dev/vg0/alpine-host /mnt&lt;br /&gt;
mkdir /mnt/boot&lt;br /&gt;
mount -t ext3 /dev/md1 /mnt/boot&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Install Alpine ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|setup-disk -m sys /mnt}}&lt;br /&gt;
&lt;br /&gt;
== Install MBR ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/gptmbr.bin of=${_DRIVE1}&lt;br /&gt;
dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/gptmbr.bin of=${_DRIVE2}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Reboot ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|reboot}}&lt;/div&gt;</summary>
		<author><name>CandyAngel</name></author>
	</entry>
</feed>