qemu debian

qemu debian

本文记录了通过qemu在ubuntu18上运行debian

参考博客
https://www.collabora.com/news-and-blog/blog/2017/01/16/setting-up-qemu-kvm-for-kernel-development/
https://wiki.debian.org/zh_CN/Debootstrap
https://www.codevoila.com/post/26/fix-authentication-token-manipulation-error-when-changing-user-password-in-ubuntu

简介

安装qemu什么的就不赘述了,主要分为以下几个步骤

  1. 添加根文件系统rootfs
  2. 构建kernel
  3. ssh连接

构建rootfs

cd到一个文件夹下

IMG=qemu-image.img
DIR=mount-point.dir
qemu-img create $IMG 1g
mkfs.ext2 $IMG
mkdir $DIR
sudo mount -o loop $IMG $DIR
# jessie是debian的一个发行版,这里我选择当前的稳定版Stretch,ebootstrap可以指定
# 下载源,加快速度,发行版列表见下面的链接
# https://wiki.debian.org/DebianReleases
sudo debootstrap --arch amd64 jessie $DIR #在这里添加源
sudo umount $DIR
rmdir $DIR

qemu-image.img就是root file system

重置root用户密码,添加新用户

由于我选择的版本是stretch,需要像下面这样添加init=/bin/bash

sudo qemu-system-x86_64 -kernel ./bzImage   -hda ~/debian_build/qemu-image.img  -append "root=/dev/sda console=tty1 single init=/bin/bash"

还可能会出现一些无法修改密码,无法增添用户的问题,很容易找到解决方法

构建linux kernel

git clone --depth=1 git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
cd linux
make x86_64_defconfig
make kvmconfig
make -j 8

运行

注意如果是在debug状态下似乎无法重定向输出到终端,搞了好久终于发现

qemu-system-x86_64 -kernel bzImage
                     -append "root=/dev/sda console=ttyS0"
                     -hda qemu-image.img
                     --enable-kvm
                     --nographic

所以改成如下

#!/bin/bash

sudo kvm \
        -nographic \
        -kernel ~/linux_kernel/linux-4.1.39/arch/x86_64/boot/bzImage \
        -append "root=/dev/sda console=ttyS0" \  #必须是ttyS0
        -hda ~/debian_build/qemu-image.img \
        -gdb tcp::1234 \                                        #不能为-gdb tcp::1234 -S因为上面console已经占据了S

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容