# Arch Headless Virt Install ## virt-install ubuntu16.04 Create the disk image `qemu-img create -f qcow2 /var/lib/libvirt/images/xenial.qcow2 20G` Command to run the install ```bash virt-install \ --name xenial \ --ram 4096 \ --disk path=/var/lib/libvirt/images/xenial.qcow2,size=20 \ --vcpus 4 \ --os-type linux \ --os-variant ubuntu16.04 \ --network bridge=br0 \ --graphics none \ --console pty,target_type=serial \ --location ./ubuntu-16.04.3-server-amd64.iso \ --extra-args 'console=ttyS0,115200n8 serial' ``` ## virt-install Arch Linux The `--extra-args` option lets you use a serial console. But the `--extra-args` option only works if you also use an `--location` option. But the `--location` option can only be used with certain isos. So use `--cdrom` instead of `--location`, drop the `--extra-args`, and instruct the kernel to boot with a serial console with a parameter at the boot splash screen. ```bash qemu-img create -f qcow2 /var/lib/libvirt/images/arch.qcow2 20G virt-install --name arch --ram 4096 \ --disk path=/var/lib/libvirt/images/arch.qcow2,size=20 \ --vcpus 2 \ --os-type linux \ --os-variant ubuntu16.04 \ --network bridge=virbr0 \ --graphics none \ --console pty,target_type=serial \ --cdrom /var/lib/libvirt/images/archlinux-2018.02.01-x86_64.iso ``` the arch boot splash screen will appear in your terminal and you can tap the "tab" key to edit boot parameters add "console=ttyS0" to kernel command line parameters before ```bash > .linux boot/x86_64/vmlinuz archisobasedir=arch archisolabel=ARCH_201802 initrd=boot/intel_ucode.img,boot/x86_64/archiso.img ``` after ```bash > .linux boot/x86_64/vmlinuz archisobasedir=arch archisolabel=ARCH_201802 initrd=boot/intel_ucode.img,boot/x86_64/archiso.img console=ttyS0 ``` ![alt text](https://gist.githubusercontent.com/TrentSPalmer/57e9999a3a7aaecfd4dd8de3eca63a1b/raw/2018-02-13-051950_722x452_scrot.png) ```bash arch boots ... ... ... ... root@archiso ~ # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 432M 1 loop /run/archiso/sfs/airootfs sr0 11:0 1 539M 0 rom /run/archiso/bootmnt vda 254:0 0 20G 0 disk root@archiso ~ # ```