首页 > 其他分享 >Qemu仿真----(11)运行Gentoo Rootfs

Qemu仿真----(11)运行Gentoo Rootfs

时间:2023-05-30 23:00:22浏览次数:55  
标签:11 gentoo Gentoo sudo mnt ---- arm64 linux qemu

平台: ubuntu-22.04-desktop-amd64.
对象: gentoo rootfs、qemu.
文件: linux-6.1.26.tar.xz、stage3-arm64-systemd-20230528T234658Z.tar.xz.

本例通过qemu运行gentoo rootfs for arm64。

1.安装依赖

$ sudo apt install qemu-user-static qemu-system-aarch64 systemd-container gcc-aarch64-linux-gnu

2.下载文件

linux-6.1.26.tar.xz

[https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/linux-6.1.26.tar.xz]

stage3-arm64-systemd-20230528T234658Z.tar.xz

[http://mirrors.ustc.edu.cn/gentoo/releases/arm64/autobuilds/current-install-arm64-minimal/stage3-arm64-systemd-20230528T234658Z.tar.xz]

3.编译内核

$ make defconfig ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
$ make -j8 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-

4.创建文件系统

$ dd if=/dev/zero of=gentoo-base.ext4 bs=4096 count=512K
$ mkfs.ext4 gentoo-base.ext4
$ sudo mount -t ext4 gentoo-base.ext4 /mnt
$ sudo tar -xf stage3-arm64-systemd-20230528T234658Z.tar.xz -C /mnt
$ sudo cp /usr/bin/qemu-aarch64-static /mnt/usr/bin/
$ sudo cp /etc/resolv.conf /mnt/etc/resolv.conf
$ sudo vim /mnt/etc/portage/repos.conf

在repos.conf中添加如下内容:

[DEFAULT]
main-repo = gentoo

[gentoo]
location = /usr/portage
sync-type = rsync
sync-uri = rsync://rsync.mirrors.ustc.edu.cn/gentoo-portage/
auto-sync = yes

进入chroot环境:

$ sudo systemd-nspawn -D /mnt/

chroot环境中做如下配置:

# 修改root密码,3种不同字符, 11~72长度字符.
>$ passwd
>$ exit

安装内核模块:

$ cd linux-6.1.26/
$ sudo make modules_install INSTALL_MOD_PATH=/mnt ARCH=arm64
$ cd ..

卸载gentoo-base.ext4:

$ sudo umount /mnt

5.运行

$ touch start-qemu.sh
$ chmod +x start-qemu.sh
$ vim start-qemu.sh

填入如下内容:

#!/bin/sh

qemu-system-aarch64 \
    -M virt \
    -cpu cortex-a53 \
    -nographic \
    -smp 1 \
    -m 512M \
    -kernel linux-6.1.26/arch/arm64/boot/Image \
    -append "rootwait root=/dev/vda rw console=ttyAMA0" \
    -netdev user,id=eth0 \
    -device virtio-net-device,netdev=eth0 \
    -drive file=gentoo-base.ext4,if=none,format=raw,id=hd0 \
    -device virtio-blk-device,drive=hd0

顺利的话,就可以正常使用了。

标签:11,gentoo,Gentoo,sudo,mnt,----,arm64,linux,qemu
From: https://www.cnblogs.com/phoebus-ma/p/17444805.html

相关文章

  • R数据类型
    数值(Numeric):用于表示实数,包括整数和浮点数。例如,3、3.14等。整数(Integer):用于表示整数值。在R中,整数可以通过在数字后面加上"L"或使用函数as.integer()进行显式转换。例如,3L、as.integer(5.8)等。字符串(Character):用于表示文本数据。字符串需要使用引号(单引号或双引号)括起来......
  • 5.30 模拟赛小记
    A.求1-N每个数的约数集合求1-N每个数字约数集合,显然用试除法不合适,在这里用倍数法。对于每个数字找到范围内它的倍数,则这个倍数就可以标记约数了。但是这是syoj,作为一个成熟的oier,你要学会高效输出,指本题卡scanf,需要优化输出,否则你只能得到40pts的好成绩。对了今......
  • 扩展操作码
    扩展操作码指令格式:定长指令字结构+可变长操作码。设计操作码指令格式时,必须关注:不允许短码是长码的前缀,就是短的操作码不能与长的操作码的前面部分的代码相同。数据结构:哈夫曼树是一个左子节点永远小于右子节点的二叉树,哈夫曼编码是一种数据压缩手段,该原理就是:假设向左......
  • SD协议-基本概念
    1.SD协议版本SD1.1SD2.0SD3.0在看协议的时候,需要注意协议的版本,注意版本之间的差别SD协议是常见的数据通信和存储卡之间的协议HDMI是显示相关的协议,遵循HDMI协议USB遵循USB协议,USB3.0协议的复杂度高于USB2.0主要学习的是协议的分析方法2.systemfeatureSD存储......
  • Docker CLI docker container cp常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • 《用户故事与敏捷方法》阅读笔记3
    第十六章:敏捷方法的度量和指标本章讨论了敏捷开发中用于度量和跟踪进展的指标。作者指出,度量和指标对于追踪项目进展、监测项目健康状况以及预测项目完成时间等方面都非常重要。本章列举了许多有效的度量工具和指标,如增量发布、代码质量、回归测试等等。第十七章:敏捷项目管理敏捷......
  • 6
    task4程序源码#include<stdio.h>#include<string.h>#include<stdlib.h>#defineN100typedefstruct{ charnum[10]; ints1; ints2; doublesum; charlevel[10];}STU;intfun(STUa[],intn,STUh[]);intmain(){ STUs[N]={{"GA......
  • 计算机网络(一)
    一、HTTP长连接和短连接的区别?长连接:在一个TCP连接上可以发送多个数据包,但是如果没有数据包发送时,也要双方发检测包以维持这个长连接。短连接:当双方需要数据交互的时候,就建立一个TCP连接,本次交互完之后就断开这个连接。Socket心跳包机制:像心跳一样,每隔固定时间向服务器发送一个......
  • (三)linux同时安装pytorch和tensorflow1.14,忽略错误
    一、命令catrequirements.txt|xargs-n1pipinstall环境python3.7二、requirements.txtabsl-py==1.4.0astor==0.8.1autograd==1.5backcall==0.2.0Bottleneck==1.3.5certifi==2022.12.7chainer==7.8.1charset-normalizer==3.1.0click==8.1.3colorama==0.4.6......
  • python二维数组切片
    随堂测试这道题错了,于是怒而发blog,是分割维度的标识符,如果对象是二维数组,则切片应当是x[,]的形式,逗号之前和之后分别表示对象的第0个维度和第1个维度;如果对象是三维数组,则切片应当是x[,,],里面有两个逗号,分割出三个间隔,三个间隔的前、中和后分别表示对象的第0、1、2个维度。每个......