此文已由作者刘超授权网易云社区发布。
欢迎访问网易云社区,了解更多网易技术产品运营经验。
(8) load kernel modules
(9) mount sda, sdb
(10) 将sdb作为root device
(11) 运行init
(12) 启动guestfsd
(13) 开通一个端口,C类库会通过RPC连接这个端口
3.3 Guestfish的有很多的命令
添加一个drive
这个命令只有在run之前起作用
对应的API是guestfs_add_drive_opts
add-drive filename [readonly:true|false] [format:..] [iface:..] [name:..] [label:..] [protocol:..] [server:..]
guestfish -a trusty-server-cloudimg-amd64-disk1.img,这个Image是第一个drive
add-drive /home/openstack/images/ubuntutest.img format:qcow2,添加一个drive
运行run
查看所有的device: list-devices
查看所有的分区: list-partitions
查看所有的文件系统: list-filesystems
Mount文件系统
对应的API是guestfs_mount
mount /dev/sda1 /
文件系统操作
ls /
mkdir /mnt/sdb
mount /dev/sdb1 /mnt/sdb
ls /mnt/sdb
ls /mnt/sdb/home/openstack
cat /mnt/sdb/home/openstack/.bash_history
更多文件系统命令chown,chmod,cp等都支持
对partition的操作
part-list /dev/sdb
part-get-bootable /dev/sdb 1
有个partition的命令包括:
part-add,part-del,part-disk,part-get-bootable,part-get-gpt-type,part-get-mbr-id,part-get-name,part-get-parttype,part-init,part-list,part-set-bootable,part-set-gpt-type,part-set-mbr-id,part-set-name,part-to-dev,part-to-partnum
对LVM的操作,哈哈不用害怕LVM了,也不用复杂做这么多操作
guestfish -a trusty-server-cloudimg-amd64-disk1.img
add-drive ./centos-5.8.new.qcow2 format:qcow2
run
查看所有的PV: pvs-full
查看所有的VG: vgs-full
命令包含:lvcreate, lvcreate-free, lvm-canonical-lv-name, lvm-clear-filter, lvm-remove-all, lvm-set-filter, lvremove, lvrename, lvresize, lvresize-free, lvs, lvs-full, lvuuid, pvcreate, pvremove, pvresize, pvresize-size, pvs, pvs-full, pvuuid, vg-activate, vg-activate-all, vgchange-uuid, vgchange-uuid-all, vgcreate, vglvuuids, vgmeta, vgpvuuids, vgremove, vgrename, vgs, vgs-full, vgscan, vguuid
下载和上传文件,直接文件就能拷贝出来
guestfish -a ubuntutest.img
run
list-filesystems
mount /dev/sda1 /
download /home/openstack/.bash_history testdownload
upload instance01.xml /home/openstack/testupload
3.4 在Libvirt里面,Virt也提供了相应命令系列
一个命令完成操作,无需启动交互命令行
Guestmount
创建一个本地文件夹
mkdir testguestmount
将image里面的/dev/sda1 mount到这个文件夹里面
guestmount -a ubuntutest.img -m /dev/sda1 testguestmount
结束编辑后
guestunmount testguestmount
virt-builder
可以快速的创建虚拟机镜像
update-guestfs-appliance
查看所有的镜像类型
virt-builder –list
创建一个Image
virt-builder fedora-20 -o myfedora.img --format qcow2 --size 20G
设置root password, 放在文件里面
virt-builder fedora-20 --root-password file:/tmp/rootpw
设置hostname
virt-builder fedora-20 --hostname virt.example.com
安装软件
virt-builder fedora-20 –install “apache2“
第一次启动运行脚本
virt-builder fedora-20 --firstboot /tmp/yum-update.sh
virt-ls -a myfedora.img /root/
virt-cat -a myfedora.img /root/.bash_profile
virt-copy-in -a myfedora.img desktop.xml /root/
virt-copy-out -a myfedora.img /root/.bash_profile ./
virt-df -a myfedora.img
virt-list-filesystems -a myfedora.img
virt-list-partitions myfedora.img
更多网易技术、产品、运营经验分享请点击。