- 默认登录用户
ubuntukylin
的用户密码是ubuntukylin
root
用户密码可在登录后通过sudo passwd
自行设置
ubuntukylin RISC-V 20.04 的镜像可以在华为云镜像站下载
wget https://mirrors.huaweicloud.com/ubuntukylin-cdimage/20.04/ubuntukylin-20.04-pro-sp2-riscv64-qemu.img.xz
已验证启动脚本在Ubuntu 22.04环境下正常运行
sudo apt install xz-utils -y
xz -dk ubuntukylin-20.04-pro-sp2-riscv64-qemu.img.xz
sudo apt install qemu-system-misc opensbi u-boot-qemu qemu-utils -y
参考openEuler-riscv的qemu启动文件进行可修改为如下
#!/bin/bash
# start.sh
# The script is created for starting a riscv64 qemu virtual machine with specific parameters
## Configuration
vcpu=8 # CPU 核心数。
memory=8 # 运行存储大小,单位 GiB。
memory_append=`expr $memory \* 1024`
drive="ubuntukylin-20.04-pro-sp2-riscv64-qemu.img" # 根文件系统路径
kernel="/usr/lib/u-boot/qemu-riscv64_smode/uboot.elf" # 内核文件路径
bios="/usr/lib/riscv64-linux-gnu/opensbi/generic/fw_jump.elf" # BIOS 文件路径,设置为 none 表示 kernel 已包含相关文件。
ssh_port=12055 # 控制端口映射:将虚拟机内部的端口 22 映射到外部的 ssh_port。设置为空表示不启用该功能。
vnc_port=12056 # 控制 VNC 端口。设置为空表示不启用该功能。
spice_port=12057 # 控制 spice 端口。设置为空表示不启用该功能。
remoteip=localhost # 控制随后显示脚本的本机地址。
[[ $spice_port ]] && audiobackend="spice" || audiobackend="none" # 当 Spice 启用时,设置音频后端为 spice,否则为 none。可按需改动。
sleeptime=0 # 启动前等待时间
cmd="qemu-system-riscv64 \
-nographic -machine virt \
-smp "$vcpu" -m "$memory"G \
-audiodev "$audiobackend",id=snd0 \
-kernel "$kernel" \
-bios "$bios" \
-drive file="$drive",format=raw,id=virtio \
-object rng-random,filename=/dev/urandom,id=rng0 \
-device virtio-vga \
-device virtio-rng-device,rng=rng0 \
-device virtio-blk-device,drive=virtio \
-device virtio-net-device,netdev=usernet \
-device qemu-xhci -usb -device usb-kbd -device usb-tablet -device usb-audio,audiodev=snd0 \
-append 'root=/dev/vda1 rw console=ttyS0 swiotlb=1 loglevel=3 systemd.default_timeout_start_sec=600 selinux=0 highres=off mem="$memory_append"M earlycon' "
echo -e "\033[37mUsing the following configuration: \033[0m"
echo ""
echo -e "\033[37mvCPU Cores: \033[0m \033[34m"$vcpu"\033[0m"
echo -e "\033[37mMemory: \033[0m \033[34m"$memory"\033[0m"
echo -e "\033[37mDisk Path: \033[0m \033[34m"$drive"\033[0m"
echo -e "\033[37mKernal Path: \033[0m \033[34m"$kernel"\033[0m"
echo -e "\033[37mBIOS Path: \033[0m \033[34m"$bios"\033[0m"
if [ $ssh_port ]
then
echo -e "\033[37mSSH Port: \033[0m \033[34m"$ssh_port"\033[0m"
cmd="${cmd} -netdev user,id=usernet,hostfwd=tcp::"$ssh_port"-:22 "
else
cmd="${cmd} -netdev user,id=usernet "
fi
if [ $vnc_port ]
then
echo -e "\033[37mVNC Port: \033[0m \033[34m"$vnc_port"\033[0m"
cmd="${cmd} -vnc :"$((vnc_port-5900))
fi
if [ $spice_port ]
then
echo -e "\033[37mSPICE Port: \033[0m \033[34m"$spice_port"\033[0m"
cmd="${cmd} -device virtio-serial-pci \
-device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0 \
-chardev spicevmc,id=spicechannel0,name=vdagent \
-spice port=${spice_port},disable-ticketing=on"
fi
echo ""
if [ $ssh_port ]
then
echo -e "\033[37mUse the following command to connect SSH server:\0\033[0m\033[34m ssh root@"$remoteip" -p "$ssh_port"\033[0m"
fi
if [ $vnc_port ]
then
echo -e "\033[37mUse the following address to connect VNC server:\0\033[0m\033[34m "$remoteip":"$vnc_port"\033[0m"
fi
if [ $spice_port ]
then
echo -e "\033[37mUse the following address to connect SPICE server:\0\033[0m\033[34m spice://"$remoteip":"$spice_port"\033[0m"
fi
echo ""
echo -e "\033[37mUsing the following command to start VM: \033[0m"
echo ""
echo $cmd
echo ""
sleep $sleeptime
echo -e "\033[37mStarting VM... \033[0m"
eval $cmd
echo -e "Exit."
在参考了KotorinMinami同学的openKylin启动教程后,发现ubuntuKylin的磁盘空间比较小,下也需要进行类似的qemu扩容操作,遂对文档进行该部分的补充
操作如下:
1.宿主机安装qemu-img
,以Debian系为例,apt install qemu-img -y
2.UbuntuKylin Risc-V虚拟机上安装growpart
,apt install cloud-initramfs-growroot -y
值得注意的是growpart在默认语言为中文的操作系统下执行会出现问题,所以进行如下操作(注销重新登陆即可生效)
加载英文模块
locale-gen en_US.UTF-8 && update-locale
更改语言(建议LANG LANGUAGE LC_ALL全部更改)
update-locale LANG=en_US.UTF-8
update-locale LANGUAGE=en_US.UTF-8
update-locale LC_ALL=en_US.UTF-8
3.关闭虚拟机,在宿主机上进行扩容操作,此处扩容20G
qemu-img resize ubuntukylin-20.04-pro-sp2-riscv64-qemu.img +20G
4.打开虚拟机,执行lsblk
查看分区情况
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 29G 0 disk
├─vda1 252:1 0 1M 0 part
├─vda2 252:2 0 4M 0 part
├─vda3 252:3 0 500M 0 part /boot
└─vda4 252:4 0 8.5G 0 part /
此处执行growpart /dev/vda 4
进行扩展
再次执行lsblk
可以看到已经成功扩展
之后扩展文件系统,执行 resize2fs /dev/vda4
执行 df -h
验证 / 分区的大小
可选用spice/ssh连接
sudo apt install virt-viewer #安装virt-viewer
remote-viewer spice://localhost:12057 #使用spice连接虚拟机
在虚拟机中vi /etc/ssh/sshd_config
修改sshd_config ,找到#PermitRootLogin一行将后面那个改为yes并取消注释,PermitRootLogin yes 然后重启sshd
systemctl restart sshd
在宿主机中直接执行ssh -p 12055 ubuntukylin@127.0.0.1
即可连接