FEMU安装与使用

1 安装 femu

1.1 安装 femu 依赖库

1
2
3
4
5
6
7
8
9
10
git clone https://github.com/ucare-uchicago/femu.git
cd femu
mkdir build-femu
# Switch to the FEMU building directory
cd build-femu
# Copy femu script
cp ../femu-scripts/femu-copy-scripts.sh .
./femu-copy-scripts.sh .
# only Debian/Ubuntu based distributions supported
sudo ./pkgdep.sh

1.2 编译安装 femu

1
./femu-compile.sh

1.3 准备虚拟机镜像

使用官方镜像

1
2
3
4
mkdir -p ~/images/
cd ~/images
wget http://people.cs.uchicago.edu/~huaicheng/femu/femu-vm.tar.xz
tar xJvf femu-vm.tar.xz

自制镜像

1
2
3
4
5
6
7
8
9
# Download a Ubuntu server ISO file
mkdir -p ~/images/
cd ~/images
wget https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/16.04/ubuntu-16.04.7-server-amd64.iso
sudo apt-get install qemu-system-x86
# Create a QCOW2 disk image
qemu-img create -f qcow2 femu.qcow2 80G
# install guest OS to femu.qcow2 (You need a GUI environment to prepare the VM image)
sudo qemu-system-x86_64 -cdrom ubuntu-16.04.7-server-amd64.iso -hda femu.qcow2 -boot d -net nic -net user -m 4096 -localtime -smp 4 -cpu host -enable-kvm

虚拟机创建完成后,可使用以下命令验证系统是否正确安装

1
sudo qemu-system-x86_64 -hda femu.qcow2 -net nic -net user -m 4096 -localtime -smp 4 -cpu host -enable-kvm

1.4 启动 femu

1
2
3
cd /path/to/femu
cd build-femu
./run-blackbox.sh

2 共享文件夹配置

为便于进行文件管理,可以通过 9p 文件系统在虚拟机中挂载宿主机文件夹。这种方式要求虚拟机和宿主机的内核都开启了对 9p 文件系统的支持。

如果内核没有开启该功能,可通过 scp 命令进行主机间文件的共享

2.1 准备共享文件夹

1
mkdir -p $HOME/share

2.2 修改femu-compile.sh

编译 femu 时增加--enable-virtfs

1
2
sudo apt-get install -y libcap-ng-dev libattr1-dev
../configure --enable-kvm --target-list=x86_64-softmmu --enable-virtfs

2.3 修改run-blackbox.sh

在启动命令上方增加一个环境变量

1
SHARE_DIR=$HOME/share

启动 femu 时增加以下内容

1
2
-fsdev local,path=$SHARE_DIR,id=share_dir,security_model=none \
-device virtio-9p-pci,fsdev=share_dir,mount_tag=hostshare \

2.4 挂载文件夹

方式一:

1
sudo mount -t 9p -o trans=virtio hostshare ~/share/ -oversion=9p2000.L

方式二:

1
2
3
# vim /etc/fstab
# 在文件末尾追加一行
hostshare /path/to/share 9p trans=virtio,version=9p2000.L 0 0

FEMU安装与使用
https://zdawng.github.io/posts/e9ca848d/
作者
ZDawnG
发布于
2023年7月9日
许可协议