Mac上安装xhyve

检出代码

git clone https://github.com/mist64/xhyve.git
cd xhyve
make
# 启动自带的测试Tiny Core Linux
./xhyverun.sh

安装Debian

mkdir debian
cd debian

dd if=/dev/zero bs=2k count=1 of=/tmp/debian.iso
dd if=debian-xx.iso bs=2k skip=1 >> /tmp/debian.iso
hdiutil attach /tmp/debian.iso

cp /Volumes/Debian/install/vmlinuz .
cp /Volumes/Debian/install/initrd.gz .

# 创建一个 10GB 大小的硬盘文件当作 ubuntu 虚拟机的硬盘:
dd if=/dev/zero of=debian.img bs=1g count=10
cd ..

# 创建启动脚本
vi debian.sh

启动脚本

#!/bin/sh

KERNEL="debian/vmlinuz"
INITRD="debian/initrd.gz"
CMDLINE="earlyprintk=serial console=ttyS0 acpi=off"

MEM="-m 1G"
#SMP="-c 2"
NET="-s 2:0,virtio-net"
IMG_CD="-s 3,ahci-cd,/tmp/debian.iso"
IMG_HDD="-s 4,virtio-blk,debian/debian.img"
PCI_DEV="-s 0:0,hostbridge -s 31,lpc"
LPC_DEV="-l com1,stdio"

build/xhyve $MEM $SMP $PCI_DEV $LPC_DEV $NET $IMG_CD $IMG_HDD -f kexec,$KERNEL,$INITRD,"$CMDLINE"

开始安装

chmod +x debian.sh

# 需要 sudo 权限
sudo ./debian.sh

# 省略无数字...(安装过程)

安装结束

选择 ,回到 Execute a shell,把启动文件COPY出来。 这里使用nc建立连接拷贝。

# 查看ip地址
/target/sbin/ifconfig
# 虚机建立发送服务
tar c boot | nc -l -p 9000
# Mac接受文件
cd xhyve/debian
nc 192.168.64.3 9000 | tar x
# 获得 vmlinux-xxx和initrd.img-xxx 内核文件,用于启动。

修改启动文件

#!/bin/sh

KERNEL="debian/boot/vmlinuz-xxx"
INITRD="debian/boot/initrd.img-xxx"
CMDLINE="earlyprintk=serial console=ttyS0 acpi=off root=/dev/vda1 ro"

MEM="-m 1G"
#SMP="-c 2"
NET="-s 2:0,virtio-net"
#IMG_CD="-s 3,ahci-cd,/tmp/debian.iso"
IMG_HDD="-s 4,virtio-blk,debian/debian.img"
PCI_DEV="-s 0:0,hostbridge -s 31,lpc"
LPC_DEV="-l com1,stdio"

build/xhyve $MEM $SMP $PCI_DEV $LPC_DEV $NET $IMG_CD $IMG_HDD -f kexec,$KERNEL,$INITRD,"$CMDLINE"

启动

sudo ./debian.sh