首页 > 系统相关 >Qemu仿真----(7)运行Ubuntu Core

Qemu仿真----(7)运行Ubuntu Core

时间:2023-05-21 23:23:34浏览次数:40  
标签:Core img 22 core Ubuntu ---- ssh ubuntu amd64

平台: ubuntu-22.04-desktop-amd64.
对象: ubuntu core、qemu、raspberry pi、generic x86 pc.
文件: ubuntu-core-22-amd64.img.xz、ubuntu-core-22-arm64+raspi.img.xz

详细介绍通过Qemu运行ubuntu core,简单介绍x64电脑和树莓派上的使用方法。

1.账号

1.1 注册ubuntu账号

由于Ubuntu Core不使用用户名和密码登录系统,而是使用ssh和上传到Ubuntu One的ssh-key进行登录,所以需要注册Ubuntu One账号.

登录以下地址,进行注册:

[https://login.ubuntu.com]

1.2 添加ssh-key

向 https://login.ubuntu.com/ssh-keys 添加本地ssh-key信息,它支持:rsa、dsa、ecdsa、ed25519格式的key。

这里以ed25519为例,设置其它格式也可:

$ sudo apt install ssh
$ mkdir -p ~/.ssh
$ chmod 770 ~/.ssh
$ cd ~/.ssh
$ ssh-keygen -t ed25519 -C "t460@ubuntu22"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/phoebus/.ssh/id_ed25519): id_ubuntucore
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in id_ubuntucore
Your public key has been saved in id_ubuntucore.pub
[...]

上面:"t460@ubuntu22",就是个名字,随便起,这里含义是:t460电脑型号,ubuntu22系统。
上面:ssh的名字设置成了id_ubuntucore,会生成两个文件id_ubuntucore和id_ubuntucore.pub,前者是私钥,后者是公钥。
上面:Enter passphrase,ssh-key密码,不设置就直接回车,也可以设置字符串密码。

我们把~/.ssh/id_ubuntucore.pub公钥的内容设置到[https://login.ubuntu.com/ssh-keys]中。

2.下载地址

Ubuntu Core 22:
[https://cdimage.ubuntu.com/ubuntu-core/22/stable/current/]

Ubuntu Core 20:
[https://cdimage.ubuntu.com/ubuntu-core/20/stable/current/]

Ubuntu Core 18:
[https://cdimage.ubuntu.com/ubuntu-core/18/stable/current/]

3.Qemu

3.1 安装依赖

$ sudo apt install qemu-kvm ovmf
$ snap install --edge test-snapd-swtpm

3.2 下载资源

$ wget https://cdimage.ubuntu.com/ubuntu-core/22/stable/current/ubuntu-core-22-amd64.img.xz
$ xz -d ubuntu-core-22-amd64.img.xz

3.3 启动方式

以下方式2选1:

1).带TPM:

sudo qemu-system-x86_64 \
    -enable-kvm \
    -smp 1 \
    -m 2048 \
    -machine q35 \
    -cpu host \
    -global ICH9-LPC.disable_s3=1 \
    -net nic,model=virtio \
    -net user,hostfwd=tcp::8022-:22,hostfwd=tcp::8090-:80  \
    -drive file=/usr/share/OVMF/OVMF_CODE.secboot.fd,if=pflash,format=raw,unit=0,readonly=on \
    -drive file=/usr/share/OVMF/OVMF_VARS.ms.fd,if=pflash,format=raw,unit=1 \
    -chardev socket,id=chrtpm,path="/var/snap/test-snapd-swtpm/current/swtpm-sock" \
    -tpmdev emulator,id=tpm0,chardev=chrtpm \
    -device tpm-tis,tpmdev=tpm0 \
    -drive "file=ubuntu-core-22-amd64.img",if=none,format=raw,id=disk1 \
    -device virtio-blk-pci,drive=disk1,bootindex=1 \
    -serial mon:stdio

2).不带TPM:

sudo qemu-system-x86_64 \
    -enable-kvm \
    -smp 1 \
    -m 2048 \
    -machine q35 \
    -cpu host \
    -global ICH9-LPC.disable_s3=1 \
    -net nic,model=virtio \
    -net user,hostfwd=tcp::8022-:22,hostfwd=tcp::8090-:80  \
    -drive file=/usr/share/OVMF/OVMF_CODE.secboot.fd,if=pflash,format=raw,unit=0,readonly=on \
    -drive file=/usr/share/OVMF/OVMF_VARS.ms.fd,if=pflash,format=raw,unit=1 \
    -drive "file=ubuntu-core-22-amd64.img",if=none,format=raw,id=disk1 \
    -device virtio-blk-pci,drive=disk1,bootindex=1 \
    -serial mon:stdio

其中8022-:22、8090-:80 :

虚拟机的22端口转发到主机的8022,80端口转发到主机的8090。

3.4 配置Ubuntu core

Ubuntu首次启动会自动安装系统,安装完成后,会提示:

Press enter to configure.

按下回车后,就会进入设置界面,我们做如下设置:

3.4.1 进入配置

直接点击OK.

3.4.2 配置网络

qemu的虚拟有线网络,会自动获取IP,不需要设置,直接"Done".

3.4.3 输入账号

输入邮件地址,邮件地址就是我们注册的Ubuntu One的账号且账号已设置ssh-key.

3.4.4 完成设置

出现此页面,我们就可以通过ssh就行连接了:

# 以下方式任选其一:
ssh <sso-username>@localhost -p 8022

# 或,指定私钥,如ssh -i ~/.ssh/id_ubuntucore hello@localhost -p 8022:
ssh -i <path-to-private-key> <sso-username>@localhost -p 8022

这里使用localhost,而非提示的10.0.2.15,因为后者连不上,如果非要用IP连,就设置Qemu的桥接网络。

4. Raspberry pi

测试机为: Raspberry pi 3b,插了一个USB无线wifi,接了显示器和键盘。

$ wget https://cdimage.ubuntu.com/ubuntu-core/22/stable/current/ubuntu-core-22-arm64+raspi.img.xz
$ xz -d ubuntu-core-22-arm64+raspi.img.xz
# 在电脑上插上SD卡,假设设备节点为:/dev/sdb
$ sudo dd if=ubuntu-core-22-arm64+raspi.img of=/dev/sdb status=progress; sync

写入完成后,把SD插到树莓派上,首次启动,会自动安装系统,步骤和"3. Qemu"类似,不过没有使用有线网,使用的是无线网,所以配置网络步骤如下:

选择wlan0 --> Edit Wifi --> 输入wifi网络ID和密码,之后会自动获取IP。其它步骤与第3步一样。

所有配置完成之后,显示类似下图:

就可以连接了,这里没有使用端口转发,所以直接:

# 如ssh [email protected]
ssh <sso-username>@<ip-address>

5. x64电脑

以下方式均可尝试:

5.1 安装到U盘

$ wget https://cdimage.ubuntu.com/ubuntu-core/22/stable/current/ubuntu-core-22-amd64.img.xz
$ xz -d ubuntu-core-22-amd64.img.xz
# 假设U盘节点为/dev/sdb
$ sudo dd if=ubuntu-core-22-amd64.img of=/dev/sdb status=progress; sync

写完之后,电脑以U盘方式启动,首次启动自动安装,操作步骤参考第3、第4步,就可以通过有关联ubuntu one账号的ssh-key密钥的计算机就可以连接了:

ssh <sso-username>@<ip-address>

5.2 安装到硬盘

$ wget https://www.releases.ubuntu.com/jammy/ubuntu-22.04.2-desktop-amd64.iso
# 先安装到U盘/dev/sdb
$ sudo dd if=ubuntu-22.04.2-desktop-amd64.iso of=/dev/sdb status=progress; sync

电脑通过U盘启动,选择"Try or Install Ubuntu" --> "Try Ubuntu",联网,然后启动命令行:

$ wget https://cdimage.ubuntu.com/ubuntu-core/22/stable/current/ubuntu-core-22-amd64.img.xz
$ xz -d ubuntu-core-22-amd64.img.xz
# 假设硬盘节点为:/dev/nvme0
$ sudo dd if=ubuntu-core-22-amd64.img of=/dev/nvme0 status=progress; sync

写完后,重启计算机,拔下U盘,首次启动会自动安装Ubuntu core,然后配置网络和登录账号,即可使用。

标签:Core,img,22,core,Ubuntu,----,ssh,ubuntu,amd64
From: https://www.cnblogs.com/phoebus-ma/p/17419456.html

相关文章

  • 学习笔记-Java8新特性-第五节-Optional类
    Optional类Optional<T>是一个容器类代表一个值存在或不存在致力于解决空指针异常问题(NPE)可以快速锁定发生NPE的位置(这东西真的好用吗?)常用方法Optional.of(Tt)创建一个Optional实例不能传入空指针,会报NPE使用Optional,报空指针了,说明就是这里的问题?......
  • 学习笔记-Java8新特性-第六节-接口中的默认方法与静态方法
    接口中的默认方法与静态方法默认方法在接口中可以使用default修饰方法,为方法提供默认实现publicinterfaceMyInterface{defaultvoidgetName(){System.out.println("DEFAULT");}}一般情况下,继承了接口的子类,可以不提供接口的实现类优先......
  • 学习笔记-Java8新特性-第七节-新时间与日期API
    新时间与日期API本地时间类LocalDateLocalTImeLocalDateTime简介人读的时间提供以ISO-8601为标准的日期和时间提供简单的日期或时间并不包含当前的时间信息也不包含与时区相关的信息示例publicvoidtest1(){LocalDateTimelocalD......
  • react-create-app 创建的项目添加保存自动格式化
    前言首先,react-create-app创建的项目是自带安装eslint的,所以我们要安装prettier及相关插件参考=>https://juejin.cn/post/6844903901544742925安装的包这些都是开发时依赖,注意安装位置eslint-config-react-app打开modules文件,可以看到是已经预安装的,无需重复......
  • 5、21
    一周没写了还是慢慢总结一下本周的收获part1:新知识:1)斜率优化(好像不会考),用斜率的思想求解最值(其实有点像线性规划),一般来讲核心是转化为维护一个坐标系上的凸包2)剪枝:1排除等效冗余2最优化剪枝3可行性剪枝4搜索顺序剪枝3)双端搜......
  • 学习笔记-Java8新特性-第三节-方法引用与构造器引用
    方法引用与构造器引用什么是方法引用对方法的引用若Lambda体中的内容,已经有方法实现了,我们可以使用该方法的方法引用作为替代已经有方法实现了是指,该方法的参数列表和返回值类型和lambda的一致可以将方法引用理解成Lambda表达式的另外一种表现形式语法格式对象......
  • 学习笔记-Java8新特性-第二节-Lambda表达式
    Lambda表达式Lambda表达式是什么Lambda是一个匿名函数是一段可以传递的代码是一种语法糖使用Lambda可以写出更简洁、更灵活的代码如果要使用Lambda表达式,需要函数式接口的支持Lambda的语法格式基础语法Java8中引入了一个新的操作符->称为箭头操作符或La......
  • 使用ln命令在Linux系统中创建连接文件
    在Linux中ln命令用来为文件创建连接,连接类型分为硬连接(HardLink)和符号连接(SymbolicLink)两种,默认的连接类型是硬连接。如果要创建符号连接必须使用"-s"选项。关于软硬连接解释硬连接硬连接是指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是......
  • 搜狗输入法介绍与分析
      关于对我电脑上的搜狗输入法的使用评价搜狗输入法是一款中文输入法,其主要优点和特点包括:用户选择:搜狗输入法拥有丰富的输入方式,包括拼音、五笔、手写、语音等多种输入方式,满足了用户不同习惯和需求的选择。记住用户选择:搜狗输入法会根据用户的使用习惯和输入历史记录记......
  • Wave Particles(波动粒子) - Cem Yuksel
    参考:http://www.cemyuksel.com/research/waveparticles/Thisiscapturedfromourreal-timesimulation,showingthreeboatsintheopenocean.Thedynamicsurfacewavesgeneratedduetoboatmotionaresimulatedusingwaveparticles.Inaddition,boatmotion......