首页 > 系统相关 >Qemu仿真----(10)运行ArchLinux Rootfs

Qemu仿真----(10)运行ArchLinux Rootfs

时间:2023-05-30 21:14:18浏览次数:82  
标签:10 ext4 tar aarch64 ---- ArchLinux linux qemu rootfs

平台: ubuntu-22.04-desktop-amd64.
对象: archlinux rootfs、qemu.
文件: linux-6.1.26.tar.xz、ArchLinuxARM-2023.03-aarch64-rootfs.tar.gz.

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

1.安装依赖

$ sudo apt install qemu-system-aarch64 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]

ArchLinuxARM-2023.03-aarch64-rootfs.tar.gz

[http://mirrors.ustc.edu.cn/archlinuxarm/os/multi/ArchLinuxARM-2023.03-aarch64-rootfs.tar.gz]

或者从官方下载rootfs:

[http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-aarch64-latest.tar.gz]

Note: 如果下载rpi的版本,请去除其中的/etc/fstab里的默认内容。

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=archlinux-base.ext4 bs=4096 count=512K
$ mkfs.ext4 archlinux-base.ext4
$ sudo mount -t ext4 archlinux-base.ext4 /mnt
$ sudo tar -xf ArchLinuxARM-2023.03-aarch64-rootfs.tar.gz -C /mnt
$ sync
$ sudo rm -rf /mnt/boot/
$ sudo rm -rf /mnt/lib/modules/6.2.1-1-aarch64-ARCH/

安装内核模块:

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

使用默认的rootfs即可,不需要chroot修改和配置。

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=archlinux-base.ext4,if=none,format=raw,id=hd0 \
    -device virtio-blk-device,drive=hd0

运行start-qemu.sh,正常启动,登录界面默认有两个账号:

1).用户名:root,密码:root;

2).用户名:alarm,密码:alarm;

登录进入后,进行pacman-key的初始化:

$ pacman-key --init
$ pacman-key --populate archlinuxarm

之后,就可以使用了。

标签:10,ext4,tar,aarch64,----,ArchLinux,linux,qemu,rootfs
From: https://www.cnblogs.com/phoebus-ma/p/17444468.html

相关文章

  • Pytorch多分类问题实战
    多分类问题实战定义一个简单的神经网络模型,并使用SGD优化算法进行训练和测试MNIST数据集importtorchimporttorch.nn.functionalasFimporttorch.optimasoptim"""torchvision可以帮助简化计算机视觉任务的实现,包括图像分类、目标检测、语义分割等。它提供了一些预训......
  • Pytorch高级api搭建多层感知机实战
    Pytorch高级api搭建多层感知机实战代码importtorchimporttorch.nn.functionalasFimporttorch.optimasoptimfromtorchvisionimportdatasets,transformsbatch_size=200learning_rate=0.01epochs=10train_loader=torch.utils.data.DataLoader(da......
  • go 执行ssh 报错ssh: handshake failed: read tcp xxx:->xxx:22: read: connection re
    需求:解决报错go执行ssh报错ssh:handshakefailed:readtcpxxx:->xxx:22:read:connectionresetbypeer 10个以内,没有问题。10以上就报错解决:我的远程(192.168.49.171)服务器ssh默认最大限制10解除限制,下面的操作都是在49.171上操作的。1.编辑sshd_confi......
  • less7
    闭合类型 双引号,然后看到回显了一个useoufile,查了一下,好像是用sql语法进行文件上传。 用锤子,烦死了,上传了一万年,权限不够,又找不到那个提权的文件在哪。真醉了,直接给他sqlmap一把梭了。pythonsqlmap.py-u"http://127.0.0.1/sqli-labs-master/Less-7/?id=1"" 首先就是......
  • [重读经典论文]YOLOv7
    参考视频:YOLOv7论文,网络结构,官方源码,超详细解析参考博客:YOLOV7详细解读(一)网络架构解读总体来说框架也是没有大的变化,但是Block应该是精心设计过的,ELAN有点像Inception模块,加上RepVgg的结构重参数化,还有SPP魔改,总体感觉就是网络过于复杂,而且和v6同期,反而性能低于v6,有点尴尬。......
  • StringBuilder
               ......
  • 实验6
    实验任务4#include<stdio.h>#include<string.h>#defineN100typedefstruct{charnum[10];//学号ints1;//期末成绩ints2;//平时成绩doublesum;//总评charlevel[10];//等级}STU;......
  • 开源许可证 GPL、BSD、MIT、Mozilla、Apache和LGPL的区别
    开源(OpenSource):开源是指公开软件的源代码。开源软件在发行的时候会附上软件的源代码,并授权允许用户更改、传播或者二次开发。软件的分类:商业:收费,源码不公开共享:免费,源码不公开自由:源码公开开源协议:世界上的开源许可证(OpenSourceLicense)大概有上百种,我们常用的开源软件......
  • cache,SRAM,flash辨析
     寄存器:CPU的内部组成单元,是CPU运算时取指令和数据的地方,速度很快cache:缓存即就是用于暂时存放内存中的数据(TLB快表)Cache又分为一级Cache(L1Cache)和二级Cache(L2Cache),L1Cache集成在CPU内部。L2比L1慢,L3比L2慢 CPU <--->寄存器<--->缓存<--->内存Cache通常......
  • install baidunetdisk-bin
    yay-Sbaidunetdisk-binAURExplicit(1):baidunetdisk-bin-4.17.7-1::(1/1)下载了PKGBUILD:baidunetdisk-bin1baidunetdisk-bin(构建文件已存在)==>清理哪些软件包的构建文件?==>[N]没有[A]全部[Ab]中止[I]已安装[No]未安装或(123,......