首页 > 系统相关 >Qemu仿真----(13)运行Alpine Linux Rootfs

Qemu仿真----(13)运行Alpine Linux Rootfs

时间:2023-06-02 15:57:57浏览次数:66  
标签:13 sudo aarch64 Linux mnt ---- linux qemu alpine

平台: ubuntu-22.04-desktop-amd64.
对象: alpine linux rootfs、qemu.
文件: linux-6.1.26.tar.xz、alpine-minirootfs-3.18.0-aarch64.tar.gz.

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

1.安装依赖

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

2.下载文件

linux-6.1.26.tar.xz

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

alpine-minirootfs-3.18.0-aarch64.tar.gz

[https://dl-cdn.alpinelinux.org/alpine/v3.18/releases/aarch64/alpine-minirootfs-3.18.0-aarch64.tar.gz]

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=alpine-base.ext4 bs=4096 count=128K
$ mkfs.ext4 alpine-base.ext4
$ sudo mount -t ext4 alpine-base.ext4 /mnt
$ sudo tar -xf alpine-minirootfs-3.18.0-aarch64.tar.gz -C /mnt
$ sudo cp /usr/bin/qemu-aarch64-static /mnt/usr/bin/
$ sudo cp /etc/resolv.conf /mnt/etc/
$ sudo systemd-nspawn -D /mnt

进入chroot环境,执行:

>$ passwd
>$ apk add alpine-base
>$ exit

做如下修改:

$ sudo vim /mnt/etc/inittab

在其中添加如下内容:

ttyAMA0::respawn:/sbin/getty -L ttyAMA0 115200 vt100

安装内核模块:

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

卸载文件系统:

$ 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 \
    -smp 1 \
    -m 512M \
    -nographic \
    -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=alpine-base.ext4,if=none,format=raw,id=hd0 \
    -device virtio-blk-device,drive=hd0

账号:root,密码:执行passwd时自己设置的。顺利的话,通过账密登录就可以使用了。

标签:13,sudo,aarch64,Linux,mnt,----,linux,qemu,alpine
From: https://www.cnblogs.com/phoebus-ma/p/17452001.html

相关文章

  • 软件工程课程个人总结
        先说一下这学期这门课程的收获吧,本学期所学习的软件工程这门科目让我从理论上掌握软件工程的一些相关知识(大部分还是得靠自学),还有从不同的实例,让理论和实践得到了很好的结合。整一个学期下来,总的来说还是学到了很多东西的,有很多地方是值得肯定的,其实在我看来,软件工......
  • linux服务器cache占用内存过高导致内存不足
    问题描述linux服务器内存不足触发监控报警。K8S在创建pod之后启动失败,日志报错如下: 问题检查登录服务器发现服务器8G内存正在被使用的和空闲内存大概4G,还有大概4G被cache占用   这个cache占用了大量内存,那么这个cache时干什么用的?Linux中的缓存称为PageCache。它......
  • log4j2高级应用
    依赖配置<!--排除默认日志配置--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><exclusions><exclusion><groupId>org.springf......
  • Java应用架构演变史
    垂直应用架构以MVC的垂直架构举例,MVC架构通常分为3层,展示层、控制层、模型层。通常基于MVC架构开发的应用代码会打成一个war包,部署在Tomcat等Web容器中。不同的业务模块间通过本地API进行调用,基本不存在跨进程的远程服务调用。垂直应用架构面临的挑战:复杂应用的开发和......
  • PHP大文件分片上传/多线程上传
    ​ PHP用超级全局变量数组$_FILES来记录文件上传相关信息的。1.file_uploads=on/off 是否允许通过http方式上传文件2.max_execution_time=30 允许脚本最大执行时间,超过这个时间就会报错3.memory_limit=50M 设置脚本可以分配的最大内存量,防止失控脚本占用过多内存,此......
  • Win11 MySQL 5.7 安装
    Win11MySQL5.7下载MySQLDownload我下载的是5.7.4m14解压解压到你指定的目录这是我解压到的目录D:\App_Install\mysql-5.7设置环境变量在环境PATH添加D:\App_Install\mysql-5.7\bin创建文件在D:\App_Install\mysql-5.7创建my.ini文件......
  • 利用APIFOX对ABAP函数进行调用
    1.安装APIFOX,当然也可以使用在线版,无需下载官网地址:https://apifox.com/ 2.新建项目 3.为项目起一个名称,为相关开发测试人员授权 4.在根目录新增子目录 5.编辑开发/测试/生产环境的地址信息以及默认全局变量 6.将SAP提供的ABAPAPI地址配置进APIFOX,有关ABAP提......
  • 杂项题解
    JOISC2017_JAbduction2由于权值较高的路不会被权值较低的路线影响,所以首先考虑将\(h+w\)条边按照权值降序排序,再考虑应该的最优决策方案。注意到每一条路都横跨原始的矩形,这样以出发点为中心向上下左右发散就会有4条边构成一个小矩形。考虑维护这个矩形每条边的最大路径......
  • java中 static 关键词
    在Java中,static是一个关键字,可以用于变量、方法和代码块上。1.静态变量(staticvariable)静态变量是被声明为static的变量。它属于类,而不是属于任何一个对象的。因此,无论创建了多少个类的对象,静态变量只有一份拷贝,所有对象共享同一个静态变量。静态变量可以通过"类名.变量名"的方......
  • Docker常见问题
    1、容器内无法输入中文当在Docker容器内输入中文或者复制中文内容时,有时会出现无法识别的情况。以下是解决方案:进入容器时在命令中添加环境变量:dockerexec-itcontainer_nameenvLANG=C.UTF-8/bin/bash在Dockerfile中使用ENV命令设置环境变量:ENVLANG=C.UTF-8这个......