guestfish是在宿主机里编辑虚拟机镜像的工具,guestfish命令只是对libguestfs接口的封装。 guestfish打开和操作vm镜像的过程如下: 首先libguestfs调用febootstrap取宿主机的资源准备vm环境,包括 ①在临时目录中建立到取宿主机内核的链接。 ②取基本内核模块、init、modules列表打包为启动内存盘initrd ③建立稀疏文件准备制作vm启动磁盘镜像 ④取宿主机的基本命令程序、配置文件和libguestfs的集成命令等等在vm镜像中构建rootfs 然后启动kvm,命令如下:
Erasure code
Erasure code(删除码、容删码)即forward error correction(FEC,前向纠错)是FEC的一种实现 Erasure code是与RAID完全不同的新技术,但是在面对自然灾难或技术故障时同样具有很好的恢复能力,而且Erasure code占用更少的磁盘空间,只需要数据块的一个子集就可以恢复原始数据。 Erasure code把数据分割成若干数据块,然后利用vandermonde矩阵的RS(Reed–Solomon codes)的算法原理将额外的编码信息追加到每个数据块中(膜拜数学帝 😉 ),可以判断出整个数据集中任何位置上的一定数量的错误,并且修复这些错误 …
没点真本事软考就不用去了,第一关:打印准考证
还在备战软考吗?其实软考已经开始了。 第一关就是打印准考证。 首先,登陆软考准考证打印页面 http://www.bjrbj.gov.cn/kwzkz/login/zg.htm 填好信息登陆发现还需要填写信息采集表单。 考点来了,你会发现无法提交,点提交没反映,换各种浏览器都是这个效果。 这时如果你用的是chrome,你需要按f12调出开发者工具。
泥马跟老外聊到这时候,域名还是被删了
说出来都是泪啊,狗爹买了个域名,也怪我图便宜,本来这优惠是不对中国开放的,泥马这是赤裸裸的歧视中国人啊,我就开了个vpn买了,过了几天没事还没来得及高兴呢,大晚上的突然来邮件,帐号被锁定了,要提交资料解锁,证件扫描、账单截图、都给了,结果还说不够,还要支付的卡的正反面扫描,我用的是企鹅的财付通的运通虚拟卡啊,哪来的正反面截图。直接就被取消订单了。我的poor english啊,苦逼苦逼的翻字典写鹰文啊。逗我玩呢啊。也不知道钱能不能回来。看到canceled这个词就全身都没力气了,懒得看了。不看了。睡觉了。
KMP算法
KMP算法 在介绍KMP算法之前,先介绍一下BF算法。 一.BF算法 BF算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符和P的第一个字符,依次比较下去,直到得出最后的匹配结果。 举例说明: S: ababcababa P: ababa BF算法匹配的步骤如下 i=0 i=1 i=2 i=3 i=4 第一趟:ababcab …
atoll的陷阱
atoll谁都知道是字符串转long long。 但是日前发现字符串里的数字超过11位竟然就溢出了,好奇怪啊。 看到这应该就有老鸟就笑了。没有#include 《stdlib.h》嘛。 但是为什么呢? 抠嗤了好一会,发现在没有stdlib.h的时候 编译器产生的汇编代码调用atoll的时候是这样的:
getopt系列函数会重新排序argv
getopt这个东西就不多说了,讲这个有点拉低咱水平了。 直接讲重点,GNU在实现getopt等函数的时候做了个个人觉得有点画蛇添足的功能。就是在循环调用时候最后返回-1后会有可能会重新排列argv选项的顺序,他会把“不包含选项的命令行参数”挪到后面去。也就是./a.out -a ima -b host -ckeke -d haha会变成相当于./a.out -a -b host -ckeke -d ima haha的样子 所以如果选项里有一部分需要自己处理的话就没准会变得很恶心。 而optstring最前面加‘+’虽然使得argv不会被重排序,处理方式类同unix,遇到非选项的参数会停止解析 …
服务器奇怪丢包
现象为:同样的程序,分别部署在6台刀片上。有且仅有一台出现大量链接持续不断开,导致服务程序打开文件数达上限,拒绝服务。ping提示如下 经过学习研究后发现原来系统中有个IP_conntrack连接跟踪数据库(conntrack database),代表NAT机器跟踪连接的数目,连接跟踪表能容纳多少记录是被一个变量控制的,它可由内核中的ip-sysctl函数设置。每一个跟踪连接表会占用350字节的内核存储空间,时间一长就会把默认的空间填满,导致log中有如下提示 Feb 1 17:02:16 a1-02-a-bce-c-b32 kernel: printk: 366 messages suppr …
结构体位域
有的数据在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1两种状态, 用一位二进位即可,但gcc没有bool变量,为了节省存储空间,并使处理简便,比较常见的方式是使用宏或函数的方式取变量中某些位的值,比如: 这样取值比较费劲,存起来更费劲,且不够直观。 这种情况下C语言还提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的变量用一个字节的几个二进制位域来表示。 比如我需要大量使用的结构体(如大链表的node …
SSH无密码登录
step1. a$ ssh-keygen -t rsa 一路回车 step2. a$ scp ~/.ssh/id_rsa.pub b:~/.ssh/a.pub //输入密码 step3. b$ cat ~/.ssh/a.pub >> ~/.ssh/authorized_keys 大功告成。之后在使用a机向b机复制文件的时候就不用再输入密码了。
近期评论