• OpenStack云平台ARM版Ubuntu镜像制作


    一、启动镜像

    1、创建一块启动镜像的系统盘

    进入母机的 /data 目录下

    qemu-img create -f qcow2 ubuntu20.04.qcow2 20G

    2、启动一个镜像

    virt-install --virt-type kvm --name ubuntu20.04 --ram 2048 --cdrom=/data/ubuntu-20.04.1-live-server-arm64.iso --disk /data/ubuntu20.04.qcow2,format=qcow2 --network bridge=br0 --graphics vnc,listen=0.0.0.0,port=5912 --os-type=linux

    3、查看创建好的虚拟机信息

    virsh  list  --all

    virsh  dumpxml  ubuntu20.04  |  grep  vnc

    virsh  dumpxml  ubuntu20.04  |  grep  qcow

     

    二、设置root密码和sshd配置

    1、终端输入命令

    以普通用户登录系统,创建root用户的密码 ,然后输入你要设置的密码,这样就完成了设置root用户密码的步骤

    sudo  passwd  root

    2、修改sshd远程服务的配置

    使用 vi 打开文件 /etc/ssh/sshd_config,

    sudo vi /etc/ssh/sshd_config

    注意两点:

    Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-59-generic x86_64) 上

    PermitRootLogin without-password 变成了 PermitRootLogin prohibit-password

    如果 PasswordAuthentication 这一项是开启的,务必从 no 改成 yes

    三、设置一个IP地址作为母机临时IP设置

    本次制作镜像在物理机上进行操作,其它环境可以酌情参考类比

    物理机服务器:192.1.1.111

    1、配置网卡文件

    注意:不同的Linux系统,网卡配置文件是不同的,这里Ubuntu的网卡配置文件是/etc/network/interfaces

    输入下面命令进行编辑网卡文件

    sudo  vi  /etc/network/interfaces

    默认的文件内容如下:

    auto lo

    Iface  lo  inet  loopback

    现在修改配置文件,修改方式有两种

    方式一:静态IP

    修改内容如下:

    下面的enp0s3需要改成自己的网卡名称,就是上面IP地址:192.1.1.111,掩码 网关自己合理配置就行了最后记得wq!保存退出

    auto enp1s0

    iface enp1s0 inet static

    address 192.1.1.111

    netmask  255.255.255.0

    gateway 192.1.1.1

    编辑interfaces之后,使用 IP命令进行配置和启动网卡:

    ip  a  add  192.1.1.111/255.255.255.0  dev  enp1s0

    ip  link  set  dev  enp1s0  down

    ip  link  set  dev  enp1s0  up

    ip  a  

    2、【问题描述】解决在无任何互联网的环境下,安装软件时缺少依赖包的问题

    方法一:搭建临时本地软件源

    进行iso挂载:

    执行下面三条命令进行iso挂载

    如果这一步有报错找不到CD-romm,可以将上一步的CD/DVD删掉重新添加一次,重启系统再执行下面命令

    mkdir  /media/cdrom

    mount 挂载镜像到本地目录

    mount -t iso9660 -o loop /dev/sr0 /media/cdrom

     (或者:mount -t auto /dev/cdrom /media/cdrom)

    备注:

    /dev/cdrom 与 /dev/sr0都是系统文件名,两个在光盘挂载时是一样的,所以用哪个都行

    /media/cdrom是挂载点,是自定义的也可以是手动创建的目录

    如果用完想退出光盘镜像文件的话,必须先解除挂载

    umount命令加系统文件名或挂载点,如:

    umount  /dev/sr0

    添加本地目录到软件源

    sudo  apt-cdrom  -m  -d=/media/cdrom add

    查看apt源地址:

    cat  /etc/apt/sources.list

    测试是否成功:

    进行本地库依赖更新

    apt-get  update

    升级软件包

    apt-get  upgrade

    方法二:本地apt源配置

    1、创建目录

    mkdir  /mnt/iso/

    chmod  -R  777  /mnt/iso

    2、将镜像文件ubuntu-16.04.2-server-amd64.iso上传到目录/mnt下

    scp  -P  22  /data/ubuntu-20.04.1-live-server-arm64.iso   root@192.1.1.111:/mnt/

    ll  /mnt/iso/

    挂载iso镜像到目录下

    挂载命令

    sudo  mount  -t  iso9660  -o  loop  /mnt/ubuntu-16.04.2-server-amd64.iso  /mnt/iso

    ll  /mnt/iso/

    操作之后,即可将iso文件挂载到 /mnt/iso 目录下,我们可以查看下 /mnt/iso 目录已经有ubuntu-16.04.2-server-amd64.iso 的文件了

    3. 配置软件源

    在线源修改本地的apt源地址,这里修改的是 /etc/apt/ 下的 sources.list 文件,修改之前记得先备份一份,将文件中的deb在线apt源注释掉(deb hppt://ports.XXX),修改完成后保存文件

    执行命令 :

    sudo  cp  /etc/apt/sources.list  /etc/apt/sources.list.back

    4. 添加本地软件源

    sudo  apt-cdrom  -m  -d=/mnt/iso  add

    1. 测试本地软件是否已经设置成功

    sudo  apt-get update

    sudo  apt-get upgrade

    显示如下则说明已经成功了安装本地源。

    update 是更新了软件列表,upgrade 是更新软件

    dpkg -l                         // 列出已安装的所有软件包

    apt-cache search PackageName    // 搜索软件包

    apt-cache show PackageName    // 获取软件包的相关信息, 如说明、大小、版本等

    apt-cache depends PackageName    // 查看该软件包需要哪些依赖包

    apt-cache rdepends PackageName   // 查看该软件包被哪些包依赖

    apt-get check               // 检查是否有损坏的依赖

    命令:

       update - 取回更新的软件包列表信息

       upgrade - 进行一次升级

       install - 安装新的软件包(注:软件包名称是 libc6 而非 libc6.deb)

       remove - 卸载软件包

       autoremove - 卸载所有自动安装且不再使用的软件包

       purge - 卸载并清除软件包的配置

       source - 下载源码包文件

       build-dep - 为源码包配置所需的编译依赖关系

       dist-upgrade - 发布版升级,见 apt-get(8)

       dselect-upgrade - 根据 dselect 的选择来进行升级

       clean - 删除所有已下载的包文件

       autoclean - 删除已下载的旧包文件

       check - 核对以确认系统的依赖关系的完整性

       changelog - 下载指定软件包,并显示其changelog

       download - 下载指定的二进制包到当前目录

    四、安装基本软件与其它默认设置

    1、安装基础软件

    apt-get  install  openssh-server vim net-tools lrzsz unzip dos2unix telnet sysstat iotop pciutils lsof tcpdump psmisc bc

    2、核查安全策略

    selinux默认ubuntu系统是不安装的,iptables默认也是全开放的

    可用getenforce和iptables -L命令核实查看两个组件的状态

    ll  /etc/selinux/

    iptables  -L

    selinux默认未安装,防火墙关闭,执行命令

    sudo  ufw  disable

    3、Ubuntu以DHCP方式配置网卡自动获取ip地址

    编辑文件 /etc/network/interfaces

    sudo  vi  /etc/network/interfaces

    并用下面的行来替换有关eth0的行:

    # The primary network interface - use DHCP to find our address

    auto  enp1s0

    iface  enp1s0  inet  dhcp

    五、清理记录

    echo  >  /var/log/wtmp

    echo  >  /var/log/btmp

    echo  >  ~/.bash_history

    history  -c

    关机

    init  0

    六、转换镜像文件格式

    qemu-img  convert  -f  qcow2  ubuntu20.04.qcow2  -O  raw  Ubuntu20.04.raw

    七、上传镜像到OpenStack云平台

    glance image-create --name "Ubuntu20.04" --file /root/Ubuntu20.04.raw --disk-format raw --container-format bare --property hw_qemu_guest_agent=yes --visibility  public --progress

     

    写在最后:

    神话是人生的隐喻,每个人身上,都隐藏着自己独特的英雄力量(神话学大师 坎贝尔)

    你每天学习一点点,每天只进步1%,一年以后你的水平值是多少呢?
    37.78(1.01×365=37.78)

    相信概率,不要相信运气,在过程中提升概率

    《礼记·中庸》:凡事豫则立,不豫则废。言前定则不跲,事前定则不困,行前定则不疚,道前定则不穷

    详情请见,微信公众号:

  • 相关阅读:
    【论文整理1】On the Continuity of Rotation Representations in Neural Networks
    CompletableFuture学习总结
    TI Sitara系列AM64x开发板(双核ARM Cortex-A53)软硬件规格书
    XML 解析器
    demo_xml.cpp
    把c盘的文件移到d盘后找不到了怎么办
    Redis 是什么和使用场景概述(技术选型)
    PLC数据采集案例
    考证必看 | PMP扫盲贴+PMP材料
    git常用命令
  • 原文地址:https://blog.csdn.net/KEYMA/article/details/125549841