github.com/u-root/u-root@v7.0.1-0.20200915234505-ad7babab0a8e+incompatible/cmds/exp/esxiboot/README.md (about) 1 # Running ESXi with u-root and QEMU/KVM 2 3 This is a simple set of commands to get ESXi in QEMU/kvm up and running. 4 5 To run ESXi in QEMU you'll need: 6 7 - QEMU/KVM 8 - Upstream u-root 9 - VMware installer image 10 - Linux kernel 11 12 Linux kernel should support: 13 14 - kexec system call 15 - Sysfs 16 - Vfat 17 - AHCI 18 - ATA 19 - CDROM (iso9660, SCSI) 20 21 Sample kernel config can be found 22 [here](https://github.com/u-root/u-root/blob/14104d15a19773171441f5667ed5d2dce7a7da07/.circleci/images/integration/config_linux4.17_amd64.txt). 23 24 Also add the following to your Kconfig: 25 26 ``` 27 # qemu -hda support 28 CONFIG_BLOCK=y 29 CONFIG_ATA=y 30 CONFIG_ATA_PIIX=y 31 32 # qemu -cdrom support 33 CONFIG_SCSI=y 34 CONFIG_BLK_DEV_SD=y 35 CONFIG_BLK_DEV_SR=y 36 CONFIG_ISO9660_FS=y 37 ``` 38 39 `VMware-VMvisor-Installer-6.7.0-8169922.x86_64.iso` was used to write this 40 manual. 41 42 ```shell 43 $ qemu-system-x86_64 --version 44 QEMU emulator version 2.11.93 (Debian 1:2.12~rc3+dfsg-1) 45 Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers 46 47 $ cat /etc/modprobe.d/kvm-intel.conf 48 options kvm-intel nested=y 49 50 $ uname -r 51 4.18.10-1rodete2-amd64 52 ``` 53 54 ## Preparing the VM 55 56 ```shell 57 $ mkdir $HOME/esxi 58 $ cd $HOME/esxi 59 60 $ cp <VMware installer image> ./vmware.iso 61 $ cp <bzImage> ./ 62 63 # Create QEMU disk image. 64 $ qemu-img create -f qcow2 -o nocow=on esxi.qcow2 16G 65 66 # Download and install u-root. 67 $ go get -u github.com/u-root/u-root 68 69 # Create initramfs. 70 $ u-root -o ./initramfs.linux_amd64.cpio --build=bb all github.com/u-root/u-root/cmds/exp/esxiboot 71 ``` 72 73 ## Installing ESXi 74 75 ```shell 76 # Run QEMU (8G RAM is required minimum, 2 CPUs minimum). 77 $ qemu-system-x86_64 -cpu host -smp 2 -m 8192 -enable-kvm -kernel ./bzImage \ 78 -initrd ./initramfs.linux_amd64.cpio -hda esxi.qcow2 \ 79 -cdrom vmware.iso 80 ``` 81 82 Now you are inside the QEMU VM. 83 84 ```shell 85 # Kexec ESXi installer. 86 $ esxiboot -r /dev/sr0 87 ``` 88 89 Follow GUI installer instructions. Shutdown QEMU after ESXi is installed. 90 91 ## Running ESXi 92 93 Run ESXi without the `-cdrom` boot disk: 94 95 ```shell 96 $ qemu-system-x86_64 -cpu host -smp 2 -m 8192 -enable-kvm -kernel ./bzImage \ 97 -initrd ./initramfs.linux_amd64.cpio -hda esxi.qcow2 98 ``` 99 100 Now you are inside the QEMU VM. 101 102 ```shell 103 # Kexec ESXi. ESXi is normally installed to partition 5. 104 $ esxiboot -d /dev/sda -p 5 105 ``` 106 107 In QEMU console (Ctrl+Alt+2): 108 109 ```shell 110 hostfwd_add tcp::4443-:443 111 ``` 112 113 In browser go to [https://localhost:4443](https://localhost:4443). 114 115 You're all set.