美文网首页
qemu debian

qemu debian

作者: 413x | 来源:发表于2018-04-30 15:16 被阅读0次

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

相关文章

网友评论

      本文标题:qemu debian

      本文链接:https://www.haomeiwen.com/subject/tknzlftx.html