• 基于ARM架构openEuler系统通过qemu模拟器自动安装启动ARM架构的openEuler虚拟机


    【原文链接】基于ARM架构openEuler系统通过qemu模拟器自动安装启动ARM架构的openEuler虚拟机

    一、基础准备工作

    (1)下载ARM架构的openEuler操作系统镜像

    mkdir -p /opt/os
    cd /opt/os
    wget https://repo.openeuler.org/openEuler-22.03-LTS/ISO/aarch64/openEuler-22.03-LTS-aarch64-dvd.iso --no-check-certificate
    chmod 777 /opt/os/openEuler-22.03-LTS-aarch64-dvd.iso
    
    • 1
    • 2
    • 3
    • 4

    (3)下载ARM架构的EFI
    路径为 /usr/share/AAVMF/AAVMF_CODE.fd

    yum install -y http://mirror.centos.org/altarch/7/os/aarch64/Packages/AAVMF-20180508-6.gitee3198e672e2.el7.noarch.rpm
    
    • 1

    (4)安装基础依赖

    yum install -y kvm qemu virt-viewer virt-manager libvirt libvirt-python python-virtinst
    yum install libguestfs-tools -y
    yum install virt-install.noarch -y
    systemctl enable libvirtd
    systemctl start libvirtd
    usermod -aG libvirt $(whoami)
    yum install virt-install virt-viewer virt-manager -y
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    (5)修改配置文件
    将如下两行放开注释

    vi /etc/libvirt/qemu.conf
    
    • 1


    然后搜索 nvram,并将如下几行放开注释

    然后重启

    reboot
    
    • 1

    (6)下载qemu

    cd /opt
    wget https://download.qemu.org/qemu-4.2.0.tar.xz
    
    • 1
    • 2

    (7)安装基础依赖

    yum install zlib-devel glib2-devel pixman-devel gcc -y
    
    • 1

    (8)解压qemu

    cd /opt/
    tar xf qemu-4.2.0.tar.xz
    
    • 1
    • 2

    (9)安装qemu

    cd qemu-4.2.0/
    ./configure --target-list=aarch64-softmmu --prefix=/usr
    make -j8
    make install
    
    • 1
    • 2
    • 3
    • 4

    二、自动创建基于dhcp自动获取ip地址的openEuler虚拟机

    (1)创建磁盘

    rm -rf /var/lib/libvirt/images/test.qcow2
    systemctl restart libvirtd
    qemu-img create -f qcow2 /var/lib/libvirt/images/test.qcow2 30G
    
    • 1
    • 2
    • 3

    (2)创建ks文件

    rm -rf /opt/openEuler/dhcp/ks.cfg
    mkdir -p /opt/openEuler/dhcp/
    vi /opt/openEuler/dhcp/ks.cfg
    
    • 1
    • 2
    • 3

    ks文件内容如下:

    #version=DEVEL
    # System authorization information
    auth --enableshadow --passalgo=sha512
    # Use CDROM installation media
    cdrom
    # Use graphical install
    text
    # Run the Setup Agent on first boot
    firstboot --enable
    ignoredisk --only-use=sda
    # Keyboard layouts
    keyboard --vckeymap=cn --xlayouts='cn'
    # System language
    lang zh_CN.UTF-8
    # Network information
    network  --bootproto=dhcp
    network  --hostname=test
    # Root password
    rootpw --iscrypted $6$iqWsh8SEbDTI2rvb$ri6nTjR79jQ9MDrzcKGkEhy6k8TQg2jV3P8JJ4E.WNaIfL1kFSUlIWBtA5bDjCajH213TKUeBQT6SaYbtnKzN/
    # System services
    services --enabled="chronyd"
    # System timezone
    timezone Asia/Shanghai --isUtc
    # System bootloader configuration
    bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
    # Partition clearing information
    clearpart --none --initlabel
    # Disk partitioning information
    part /boot --fstype="xfs" --ondisk=sda --size=1024
    part /boot/efi --fstype="efi" --ondisk=sda --size=600 --fsoptions="umask=0077,shortname=winnt"
    part pv.252 --fstype="lvmpv" --ondisk=sda --size=18050
    volgroup centos --pesize=4096 pv.252
    logvol swap  --fstype="swap" --size=2048 --name=swap --vgname=centos
    logvol /  --fstype="xfs" --size=16000 --name=root --vgname=centos
    %packages
    @^minimal-environment
    @standard
    @core
    chrony
    kexec-tools
    %end
    reboot
    %anaconda
    pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
    pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
    pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
    %end
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47

    (3)通过virt-install启动虚拟机

    virt-install\
         --name test\
         --memory 2048\
         --vcpus=1\
         --os-type linux\
         --location /opt/os/openEuler-22.03-LTS-aarch64-dvd.iso \
         --disk path=/var/lib/libvirt/images/test.qcow2,size=20,format=qcow2  \
         --graphics=none \
         --console pty,target_type=serial \
         --initrd-inject ks.cfg --extra-args "inst.ks=file:/ks.cfg console=ttyS0,115200n8"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    三、自动创建配置静态IP地址的openEuler虚拟

    (1)创建磁盘,在创建之前如果已经存在则先删除

    rm -rf /var/lib/libvirt/images/test.qcow2
    qemu-img create -f qcow2 /var/lib/libvirt/images/test.qcow2 30G
    
    • 1
    • 2

    (2)创建ks.cfg文件

    rm -rf /opt/openEuler/static/ks.cfg
    mkdir -p /opt/openEuler/static/
    vi /opt/openEuler/static/ks.cfg
    
    • 1
    • 2
    • 3

    然后向ks.cfg中写入如下内容

    #version=DEVEL
    # System authorization information
    auth --enableshadow --passalgo=sha512
    # Use CDROM installation media
    cdrom
    # Use graphical install
    text
    # Run the Setup Agent on first boot
    firstboot --enable
    ignoredisk --only-use=sda
    # Keyboard layouts
    keyboard --vckeymap=cn --xlayouts='cn'
    # System language
    lang zh_CN.UTF-8
    
    # Network information
    network  --bootproto=static --device=ens3 --gateway=192.168.1.1 --ip=192.168.1.100 --nameserver=8.8.8.8 --netmask=255.255.255.0
    network  --hostname=test
    
    # Root password
    rootpw --iscrypted $6$iqWsh8SEbDTI2rvb$ri6nTjR79jQ9MDrzcKGkEhy6k8TQg2jV3P8JJ4E.WNaIfL1kFSUlIWBtA5bDjCajH213TKUeBQT6SaYbtnKzN/
    # System services
    services --enabled="chronyd"
    # System timezone
    timezone Asia/Shanghai --isUtc
    # System bootloader configuration
    bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
    # Partition clearing information
    clearpart --none --initlabel
    # Disk partitioning information
    part /boot --fstype="xfs" --ondisk=sda --size=1024
    part /boot/efi --fstype="efi" --ondisk=sda --size=600 --fsoptions="umask=0077,shortname=winnt"
    part pv.252 --fstype="lvmpv" --ondisk=sda --size=19455
    volgroup centos --pesize=4096 pv.252
    logvol swap  --fstype="swap" --size=2048 --name=swap --vgname=centos
    logvol /  --fstype="xfs" --size=17404 --name=root --vgname=centos
    
    %packages
    @^minimal-environment
    @standard
    @core
    chrony
    kexec-tools
    
    %end
    reboot
    
    %anaconda
    pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
    pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
    pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
    %end
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53

    (3)然后通过virt-install命令启动虚拟机

    virt-install \
         --name test \
         --memory=1024 \
         --vcpus=1 \
         --os-type linux \
         --location /opt/os/openEuler-22.03-LTS-x86_64-dvd.iso \
         --disk path=/var/lib/libvirt/images/test.qcow2,size=20,format=qcow2  \
         --graphics=none \
         --console pty,target_type=serial \
         --initrd-inject ks.cfg --extra-args "inst.ks=file:/ks.cfg console=ttyS0,115200n8"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    (4)比如这里配置了创建的虚拟机的ip地址为192.168.1.100,则虚拟机创建完成后,不需要登录查看ip,直接使用ip进行ping或者ssh均是可以的。

  • 相关阅读:
    第十二天最大重复子字符串
    好用的爬取静态页面谷歌浏览器工具:Save All Resources
    linux安装Redis
    java-web阶段的总结
    【Java】采用 Tabula 技术对 PDF 文件内表格进行数据提取
    Air780E小程序远程开关-LuatOS版本
    数据集快速生成方法集合
    京东云开发者|代码评审的价值和规范
    解决js+canvas使用ttf格式字体,首次加载不生效。
    景联文科技:高质量AI数据标注助力大语言模型训练,推动人工智能落地应用
  • 原文地址:https://blog.csdn.net/redrose2100/article/details/128206555