virtualbox命令行启动、关闭虚拟机
启动:
VBoxManage startvm "ubuntu16.04"
关机:
VBoxManage controlvm "ubuntu16.04" poweroff
说明:
1、"ubuntu16.04"是虚拟机的名称;
2、如果无法识别VBoxManage命令,需要添加环境变量;
WSL dd命令使用
dd if=/mnt/c/Users/zkai/Desktop/OsDevLab/boot/bootsec.com of=/mnt/c/Users/zkai/VirtualBox\ VMs/OsDev/OsDev.vhd conv=notrunc
dd if=/mnt/c/Users/zkai/Desktop/OsDevLab/loader/loader.com of=/mnt/c/Users/zkai/VirtualBox\ VMs/OsDev/OsDev.vhd bs=512 count=15 seek=1 conv=notrunc
dd if=/mnt/c/Users/zkai/Desktop/OsDevLab/c/bin/kernel.bin of=/mnt/c/Users/zkai/VirtualBox\ VMs/OsDev/OsDev.vhd bs=512 count=15 seek=19 conv=notrunc
notrunc:不截断输出文件。
安装虚拟机选择的虚拟硬盘格式时注意
1、选择VHD
2、固定大小
VirtualBox不支持Raw格式的镜像(img),固定大小的VHD格式是最接近Raw格式的镜像。
否则,像那种压缩格式的,dd命令写入的达不到预期的效果。
WSL 编译命令
wsl内部使用:
nasm /mnt/c/Users/zkai/Desktop/OsDevLab/boot/reset/boot_reset.asm -o /mnt/c/Users/zkai/Desktop/OsDevLab/boot/reset/boot_reset.com
wsl外部使用:
wsl nasm /mnt/c/Users/zkai/Desktop/OsDevLab/boot/reset/boot_reset.asm -o /mnt/c/Users/zkai/Desktop/OsDevLab/boot/reset/boot_reset.com
reset虚拟机【写一个仅打印的boot到引导扇区,为了验证后面的修改是否有效】
1、关闭虚拟机
VBoxManage controlvm "OsDev" poweroff
2、写引导扇区
wsl dd if=/mnt/c/Users/zkai/Desktop/OsDevLab/boot/reset/boot_reset.com of=/mnt/c/Users/zkai/VirtualBox\ VMs/OsDev/OsDev.vhd conv=notrunc
3、启动虚拟机
VBoxManage startvm "OsDev"
4、reset&run.bat
VBoxManage controlvm "OsDev" poweroff
timeout 3
wsl dd if=/mnt/c/Users/zkai/Desktop/OsDevLab/boot/reset/boot_reset.com of=/mnt/c/Users/zkai/VirtualBox\ VMs/OsDev/OsDev.vhd conv=notrunc
timeout 3
VBoxManage startvm "OsDev"
pause
5、install&run.bat
VBoxManage controlvm "OsDev" poweroff
timeout 3
wsl dd if=/mnt/c/Users/zkai/Desktop/OsDevLab/boot/bootsec.com of=/mnt/c/Users/zkai/VirtualBox\ VMs/OsDev/OsDev.vhd conv=notrunc
wsl dd if=/mnt/c/Users/zkai/Desktop/OsDevLab/loader/loader.com of=/mnt/c/Users/zkai/VirtualBox\ VMs/OsDev/OsDev.vhd bs=512 count=15 seek=1 conv=notrunc
wsl dd if=/mnt/c/Users/zkai/Desktop/OsDevLab/c/bin/kernel.bin of=/mnt/c/Users/zkai/VirtualBox\ VMs/OsDev/OsDev.vhd bs=512 count=15 seek=19 conv=notrunc
timeout 3
VBoxManage startvm "OsDev"
pause
【注意】上述脚本能成功执行的前提是VirtualBox管理程序是关闭的。
6、c_make.bat【只编译c目录】
wsl rm /mnt/c/Users/zkai/Desktop/OsDevLab/c/bin/*
wsl nasm -f elf -o /mnt/c/Users/zkai/Desktop/OsDevLab/c/bin/kernel.o /mnt/c/Users/zkai/Desktop/OsDevLab/c/kernel.asm
wsl nasm -f elf -o /mnt/c/Users/zkai/Desktop/OsDevLab/c/bin/klib.o /mnt/c/Users/zkai/Desktop/OsDevLab/c/klib.asm
wsl gcc -m32 -c -o /mnt/c/Users/zkai/Desktop/OsDevLab/c/bin/start.o /mnt/c/Users/zkai/Desktop/OsDevLab/c/start.c
wsl ld -m elf_i386 -s -Ttext 0x30400 -o /mnt/c/Users/zkai/Desktop/OsDevLab/c/bin/kernel.bin /mnt/c/Users/zkai/Desktop/OsDevLab/c/bin/kernel.o /mnt/c/Users/zkai/Desktop/OsDevLab/c/bin/start.o /mnt/c/Users/zkai/Desktop/OsDevLab/c/bin/klib.o
pause
网友评论