寻找mount源码来源util-linux-xxx/sys-utils/mount.c中mk_exit_code函数
结论:
如代码所示,当底层存储返回EACCES或EROFS错误返回码,会给出相应的提示,然后通过goto try_readonly;重新以readonly的方式尝试挂载。
所以mount只是在第一次挂载是感知到错误后,尝试以readonly的方式挂载。
qemu要运行aarch64必须先安装aarch64支持:qemu-system-aarch64,centos/rhel下该包需要自己编译安装,Fedora源带该包,为简单操作本文直接在Fedora上实践
宿主机选用的Fedora版本 : Fedora-Server-dvd-x86_64-30-1.2.iso
虚拟机选用的rhel-7.4-aarch64版本 : rhel-alt-server-7.4-aarch64-dvd.iso (用centos的aarch64也可以)
配置桥接目的是在后面安装好的aarch64系统里面可以配置和宿主机Fedora在同一个网段的IP,如果不需要桥接,该章节可以跳过
1.配置dns,保证机器可以使用公网网络源
2.额外添加几个盘,作为数据盘,此处我加了/dev/vdb /dev/vdc /dev/vdd三块100G的盘
添加centos源和epel源,本文全部使用阿里云的源
添加ceph源,在/etc/yum.repos.d/目录下创建ceph.repo文件,粘贴以下内容
先将.vmdk格式转换为.qcow2
安装依赖包后就可以挂载了,/tmp/x目录下就是镜像里面的文件了
问题一,找不到libvirt服务,可能是libvirtd没有启动,启动一下即可
点击 “文件->新建” 此处的ip改成你自己服务器的IP,上面的名称无所谓

购买云主机时,如果选的密钥验证的话,此处必须使用密钥登录,.pem是你在阿里云控制台创建密钥的时候生产的,在阿里云控制台上应该也可以下载
一个小博客也没啥重要内容,本来不想搞证书,最近竟然发现页面有被劫持篡改的情况,折腾一下吧
https会使用443端口,所以无论是centos的防火墙,还是云主机提供商的防火墙,都必须开放443端口
后面第3步操作会临时占用80端口,如果nginx等其他服务占用该端口,将导致无法生成证书
猜测下面工具的实现过程是用-d的域名,临时启动了一个web服务器用于向机构申请证书
在安装openstack-queens时,提示缺少qemu-kvm-rhev
网上没有找到qemu-kvm-rhev的rpm包,只找到了源码包
只好自己打包了,编译环境使用的是CentOS Linux release 7.4.1708
OpenStack的release列表可以参照https://releases.openstack.org
对于还在支持的版本,可以在https://repos.fedorapeople.org/openstack/找到rpm列表
对于已经EOL的版本,上述地址已经不再提供下载,可以在http://ftp.riken.jp/Linux/cern/centos/7/cloud/x86_64/找到rpm列表,但是太老的版本这里也没有
上述rpm列表已经做好了repo,只要在自己的机器上创建一个.repo文件,修改其中的baseurl地址到你要安装的版本地址即可
比如要安装queens版本
之前分配给公司实习生一个任务,需要制作一个带python脚本的rpm包,在制作时后发现他的rpm编译过程不会自动编译出.pyc和.pyo文件,所以安装出来的就不带.pyc和.pyo文件,他的.py脚本安装目录为/usr/local/bin/test
rpmbuild在编译时用到的脚本都在/usr/lib/rpm这个目录下的脚本,通过在rpmbuild时的输出看出,当制作带python脚本的rpm包时,具体执行/usr/lib/rpm/brp-python-bytecompile这个脚本,猫腻就在这个脚本的最后一段
在使用compileall模块的compile_dir函数时,使用了一个正则表达式参数: