添加一个drive:guestfs_add_drive_opts

add-drive filename [readonly:true|false] [format:..] [iface:..] [name:..] [label:..] [protocol:..] [server:..]

This function adds a disk image called filename to the handle.

When this function is called before "launch" (the usual case) then the first time you call this function, the disk appears in the API as /dev/sda, the second time as /dev/sdb, and so on.

# guestfish -a ubuntutest.img

Welcome to guestfish, the guest filesystem shell for
editing virtual machine filesystems and disk images.

Type: 'help' for help on commands
      'man' to read the manual
      'quit' to quit the shell

><fs> add-drive ./ubuntutest1.img format:qcow2
><fs> run

><fs> list-devices
/dev/sda
/dev/sdb

><fs> list-partitions
/dev/sda1
/dev/sda2
/dev/sda5
/dev/sdb1

><fs> list-filesystems
/dev/sda1: ext4
/dev/sda2: unknown
/dev/sda5: swap
/dev/sdb1: ext3

# ps aux | grep guest
root     16128  0.1  0.0  96212  4588 pts/0    S+   20:29   0:00 guestfish -a ubuntutest.img
root     16139 36.1  0.1 1342196 90220 pts/0   Sl   20:29   0:02 /usr/bin/qemu-system-x86_64 -global virtio-blk-pci.scsi=off -nodefconfig -enable-fips -nodefaults -nographic -machine accel=kvm:tcg -m 500 -no-reboot -rtc driftfix=slew -no-hpet -no-kvm-pit-reinjection -kernel /var/tmp/.guestfs-0/kernel.16128 -initrd /var/tmp/.guestfs-0/initrd.16128 -device virtio-scsi-pci,id=scsi -drive file=ubuntutest.img,cache=writeback,id=hd0,if=none -device scsi-hd,drive=hd0 -drive file=./ubuntutest1.img,cache=writeback,format=qcow2,id=hd1,if=none -device scsi-hd,drive=hd1 -drive file=/var/tmp/.guestfs-0/root.16128,snapshot=on,id=appliance,cache=unsafe,if=none -device scsi-hd,drive=appliance -device virtio-serial-pci -serial stdio -device sga -chardev socket,path=/tmp/libguestfscoAfPi/guestfsd.sock,id=channel0 -device virtserialport,chardev=channel0,name=org.libguestfs.channel.0 -append panic=1 console=ttyS0 udevtimeout=600 no_timer_check acpi=off printk.time=1 cgroup_disable=memory root=/dev/sdc selinux=0 TERM=linux
root     16140  0.0  0.0  96212  1300 pts/0    S    20:29   0:00 guestfish -a ubuntutest.img

MOUNTING:guestfs_mount

><fs> mount /dev/sda1 /
><fs> ls
ls should have 1 parameter
type 'help ls' for help on ls
><fs> ls /
bin
boot
dev
etc
home
initrd.img
lib
lib64
lost+found
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
vmlinuz
><fs> ls /home
openstack
><fs> ls /home/openstack
.bash_history
.bash_logout
.bashrc
.cache
.profile
sdb
><fs> ls /home/openstack/sdb
><fs> mount /dev/sdb1 /home/openstack/sdb
><fs> ls /home/openstack/sdb            
a
b
c
d
hello
lost+found
world
><fs>

FILESYSTEM ACCESS AND MODIFICATION

><fs> cat /home/openstack/.bash_history
sudo su

><fs> cat /home/openstack/.bash_logout
# ~/.bash_logout: executed by bash(1) when login shell exits.

# when leaving the console clear the screen to increase privacy

if [ "$SHLVL" = 1 ]; then
    [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi

chown

chmod

cp

……

PARTITIONING

><fs> part-list /dev/sdb
[0] = {
  part_num: 1
  part_start: 1048576
  part_end: 4294967295
  part_size: 4293918720
}
><fs> part-list /dev/sda
[0] = {
  part_num: 1
  part_start: 1048576
  part_end: 3221225471
  part_size: 3220176896
}
[1] = {
  part_num: 2
  part_start: 3222273024
  part_end: 5367660543
  part_size: 2145387520
}
[2] = {
  part_num: 5
  part_start: 3222274048
  part_end: 5367660543
  part_size: 2145386496
}

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

LVM2

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

><fs> add-drive ./centos-5.8.new.qcow2 format:qcow2

><fs> pvs
/dev/sdb2
><fs> vgs
VolGroup00
><fs> vgscan
><fs> vgs-full
[0] = {
  vg_name: VolGroup00
  vg_uuid: mSeGoqicAVmrFmpe8gVnQUpjlNIRFHlJ
  vg_fmt: lvm2
  vg_attr: wzx-n-
  vg_size: 10603200512
  vg_free: 0
  vg_sysid:
  vg_extent_size: 33554432
  vg_extent_count: 316
  vg_free_count: 0
  max_lv: 0
  max_pv: 0
  pv_count: 1
  lv_count: 2
  snap_count: 0
  vg_seqno: 4
  vg_tags:
  vg_mda_count: 1
  vg_mda_free: 94208
}

><fs> vgmeta VolGroup00
# Generated by LVM2 version 2.02.98(2) (2012-10-15): Wed Jul  9 13:07:50 2014

contents = "Text Format Volume Group"
version = 1

description = "vgcfgbackup -f /tmp/vgmetaSV9JB9 VolGroup00"

creation_host = "(none)"        # Linux (none) 3.13.0-27-generic #50-Ubuntu SMP Thu May 15 18:06:16 UTC 2014 x86_64
creation_time = 1404911270      # Wed Jul  9 13:07:50 2014

VolGroup00 {
        id = "mSeGoq-icAV-mrFm-pe8g-VnQU-pjlN-IRFHlJ"
        seqno = 4
        format = "lvm2" # informational
        status = ["EXPORTED", "RESIZEABLE", "READ", "WRITE"]
        flags = []
        extent_size = 65536             # 32 Megabytes
        max_lv = 0
        max_pv = 0
        metadata_copies = 0

physical_volumes {

pv0 {
                        id = "K0B8Rq-HB21-lvo7-Eg3D-b0d9-Ya1I-w7C7AS"
                        device = "/dev/sdb2"    # Hint only

status = ["ALLOCATABLE", "EXPORTED"]
                        flags = []
                        dev_size = 20755980     # 9.89722 Gigabytes
                        pe_start = 384
                        pe_count = 316  # 9.875 Gigabytes
                }
        }

logical_volumes {

LogVol00 {
                        id = "92iHZD-bWrY-LN5I-vgwB-3JQm-jOjN-vOLYuv"
                        status = ["READ", "WRITE", "VISIBLE"]
                        flags = []
                        segment_count = 1

segment1 {
                                start_extent = 0
                                extent_count = 191      # 5.96875 Gigabytes

type = "striped"
                                stripe_count = 1        # linear

stripes = [
                                        "pv0", 0
                                ]
                        }
                }

LogVol01 {
                        id = "xsOBkU-Y1WU-HG8S-wZij-vT7W-152G-IbnnfY"
                        status = ["READ", "WRITE", "VISIBLE"]
                        flags = []
                        segment_count = 1

segment1 {
                                start_extent = 0
                                extent_count = 125      # 3.90625 Gigabytes

type = "striped"
                                stripe_count = 1        # linear

stripes = [
                                        "pv0", 191
                                ]
                        }
                }
        }
}

><fs> pvs-full
[0] = {
  pv_name: /dev/sdb2
  pv_uuid: K0B8RqHB21lvo7Eg3Db0d9Ya1Iw7C7AS
  pv_fmt: lvm2
  pv_size: 10603200512
  dev_size: 10627061760
  pv_free: 0
  pv_used: 10603200512
  pv_attr: ax-
  pv_pe_count: 316
  pv_pe_alloc_count: 316
  pv_tags:
  pe_start: 196608
  pv_mda_count: 1
  pv_mda_free: 94208
}

http://www.tldp.org/HOWTO/LVM-HOWTO/

DOWNLOADING

><fs> download /home/openstack/.bash_history testdownload

><fs> upload instance01.xml /home/openstack/testupload
><fs> ls /home/openstack                             
.bash_history
.bash_logout
.bashrc
.cache
.profile
sdb
testupload

命令集合

COMMANDS
    acl-delete-def-file
    acl-get-file
    acl-set-file
    add-cdrom
    add-domain
    domain
    add-drive
    add
    add-drive-opts
    add-drive-ro
    add-ro
    add-drive-ro-with-if
    add-drive-scratch
    scratch
    add-drive-with-if
    aug-clear
    aug-close
    aug-defnode
    aug-defvar
    aug-get
    aug-init
    aug-insert
    aug-label
    aug-load
    aug-ls
    aug-match
    aug-mv
    aug-rm
    aug-save
    aug-set
    aug-setm
    available
    available-all-groups
    base64-in
    base64-out
    blkdiscard
    blkdiscardzeroes
    blkid
    blockdev-flushbufs
    blockdev-getbsz
    blockdev-getro
    blockdev-getsize64
    blockdev-getss
    blockdev-getsz
    blockdev-rereadpt
    blockdev-setbsz
    blockdev-setro
    blockdev-setrw
    btrfs-device-add
    btrfs-device-delete
    btrfs-filesystem-balance
    btrfs-filesystem-resize
    btrfs-filesystem-sync
    btrfs-fsck
    btrfs-set-seeding
    btrfs-subvolume-create
    btrfs-subvolume-delete
    btrfs-subvolume-list
    btrfs-subvolume-set-default
    btrfs-subvolume-snapshot
    canonical-device-name
    cap-get-file
    cap-set-file
    case-sensitive-path
    cat
    checksum
    checksum-device
    checksums-out
    chmod
    chown
    clear-backend-setting
    command
    command-lines
    compress-device-out
    compress-out
    config
    copy-attributes
    copy-device-to-device
    copy-device-to-file
    copy-file-to-device
    copy-file-to-file
    copy-size
    cp
    cp-a
    cp-r
    cpio-out
    dd
    device-index
    df
    df-h
    disk-create
    disk-format
    disk-has-backing-file
    disk-virtual-size
    dmesg
    download
    download-offset
    drop-caches
    du
    e2fsck
    e2fsck-f
    echo-daemon
    egrep
    egrepi
    equal
    exists
    extlinux
    fallocate
    fallocate64
    feature-available
    fgrep
    fgrepi
    file
    file-architecture
    filesize
    filesystem-available
    fill
    fill-dir
    fill-pattern
    find
    find0
    findfs-label
    findfs-uuid
    fsck
    fstrim
    get-append
    get-attach-method
    get-autosync
    get-backend
    get-backend-setting
    get-backend-settings
    get-cachedir
    get-direct
    get-e2attrs
    get-e2generation
    get-e2label
    get-e2uuid
    get-hv
    get-libvirt-requested-credential-challenge
    get-libvirt-requested-credential-defresult
    get-libvirt-requested-credential-prompt
    get-libvirt-requested-credentials
    get-memsize
    get-network
    get-path
    get-pgroup
    get-pid
    pid
    get-program
    get-qemu
    get-recovery-proc
    get-selinux
    get-smp
    get-tmpdir
    get-trace
    get-umask
    get-verbose
    getcon
    getxattr
    getxattrs
    glob-expand
    grep
    grep-opts
    grepi
    grub-install
    head
    head-n
    hexdump
    hivex-close
    hivex-commit
    hivex-node-add-child
    hivex-node-children
    hivex-node-delete-child
    hivex-node-get-child
    hivex-node-get-value
    hivex-node-name
    hivex-node-parent
    hivex-node-set-value
    hivex-node-values
    hivex-open
    hivex-root
    hivex-value-key
    hivex-value-type
    hivex-value-utf8
    hivex-value-value
    initrd-cat
    initrd-list
    inotify-add-watch
    inotify-close
    inotify-files
    inotify-init
    inotify-read
    inotify-rm-watch
    inspect-get-arch
    inspect-get-distro
    inspect-get-drive-mappings
    inspect-get-filesystems
    inspect-get-format
    inspect-get-hostname
    inspect-get-icon
    inspect-get-major-version
    inspect-get-minor-version
    inspect-get-mountpoints
    inspect-get-package-format
    inspect-get-package-management
    inspect-get-product-name
    inspect-get-product-variant
    inspect-get-roots
    inspect-get-type
    inspect-get-windows-current-control-set
    inspect-get-windows-systemroot
    inspect-is-live
    inspect-is-multipart
    inspect-is-netinst
    inspect-list-applications
    inspect-list-applications2
    inspect-os
    is-blockdev
    is-blockdev-opts
    is-chardev
    is-chardev-opts
    is-config
    is-dir
    is-dir-opts
    is-fifo
    is-fifo-opts
    is-file
    is-file-opts
    is-lv
    is-socket
    is-socket-opts
    is-symlink
    is-whole-device
    is-zero
    is-zero-device
    isoinfo
    isoinfo-device
    journal-close
    journal-get
    journal-get-data-threshold
    journal-get-realtime-usec
    journal-next
    journal-open
    journal-set-data-threshold
    journal-skip
    kill-subprocess
    launch
    run
    lchown
    ldmtool-create-all
    ldmtool-diskgroup-disks
    ldmtool-diskgroup-name
    ldmtool-diskgroup-volumes
    ldmtool-remove-all
    ldmtool-scan
    ldmtool-scan-devices
    ldmtool-volume-hint
    ldmtool-volume-partitions
    ldmtool-volume-type
    lgetxattr
    lgetxattrs
    list-9p
    list-devices
    list-disk-labels
    list-dm-devices
    list-filesystems
    list-ldm-partitions
    list-ldm-volumes
    list-md-devices
    list-partitions
    ll
    llz
    ln
    ln-f
    ln-s
    ln-sf
    lremovexattr
    ls
    ls0
    lsetxattr
    lstat
    lstatlist
    luks-add-key
    luks-close
    luks-format
    luks-format-cipher
    luks-kill-slot
    luks-open
    luks-open-ro
    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
    lxattrlist
    max-disks
    md-create
    md-detail
    md-stat
    md-stop
    mkdir
    mkdir-mode
    mkdir-p
    mkdtemp
    mke2fs
    mke2fs-J
    mke2fs-JL
    mke2fs-JU
    mke2journal
    mke2journal-L
    mke2journal-U
    mkfifo
    mkfs
    mkfs-opts
    mkfs-b
    mkfs-btrfs
    mklost-and-found
    mkmountpoint
    mknod
    mknod-b
    mknod-c
    mkswap
    mkswap-opts
    mkswap-L
    mkswap-U
    mkswap-file
    mktemp
    modprobe
    mount
    mount-9p
    mount-local
    mount-local-run
    mount-loop
    mount-options
    mount-ro
    mount-vfs
    mountpoints
    mounts
    mv
    nr-devices
    ntfs-3g-probe
    ntfsclone-in
    ntfsclone-out
    ntfsfix
    ntfsresize
    ntfsresize-opts
    ntfsresize-size
    parse-environment
    parse-environment-list
    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
    ping-daemon
    pread
    pread-device
    pvchange-uuid
    pvchange-uuid-all
    pvcreate
    pvremove
    pvresize
    pvresize-size
    pvs
    pvs-full
    pvuuid
    pwrite
    pwrite-device
    read-file
    read-lines
    readdir
    readlink
    readlinklist
    realpath
    remount
    remove-drive
    removexattr
    rename
    resize2fs
    resize2fs-M
    resize2fs-size
    rm
    rm-f
    rm-rf
    rmdir
    rmmountpoint
    rsync
    rsync-in
    rsync-out
    scrub-device
    scrub-file
    scrub-freespace
    set-append
    append
    set-attach-method
    attach-method
    set-autosync
    autosync
    set-backend
    backend
    set-backend-setting
    set-backend-settings
    set-cachedir
    cachedir
    set-direct
    direct
    set-e2attrs
    set-e2generation
    set-e2label
    set-e2uuid
    set-hv
    hv
    set-label
    set-libvirt-requested-credential
    set-libvirt-supported-credentials
    set-memsize
    memsize
    set-network
    network
    set-path
    path
    set-pgroup
    pgroup
    set-program
    program
    set-qemu
    qemu
    set-recovery-proc
    recovery-proc
    set-selinux
    selinux
    set-smp
    smp
    set-tmpdir
    tmpdir
    set-trace
    trace
    set-uuid
    set-verbose
    verbose
    setcon
    setxattr
    sfdisk
    sfdiskM
    sfdisk-N
    sfdisk-disk-geometry
    sfdisk-kernel-geometry
    sfdisk-l
    sh
    sh-lines
    shutdown
    sleep
    stat
    statvfs
    strings
    strings-e
    swapoff-device
    swapoff-file
    swapoff-label
    swapoff-uuid
    swapon-device
    swapon-file
    swapon-label
    swapon-uuid
    sync
    syslinux
    tail
    tail-n
    tar-in
    tar-in-opts
    tar-out
    tar-out-opts
    tgz-in
    tgz-out
    touch
    truncate
    truncate-size
    tune2fs
    tune2fs-l
    txz-in
    txz-out
    umask
    umount
    unmount
    umount-opts
    umount-all
    unmount-all
    umount-local
    upload
    upload-offset
    user-cancel
    utimens
    utsname
    version
    vfs-label
    vfs-type
    vfs-uuid
    vg-activate
    vg-activate-all
    vgchange-uuid
    vgchange-uuid-all
    vgcreate
    vglvuuids
    vgmeta
    vgpvuuids
    vgremove
    vgrename
    vgs
    vgs-full
    vgscan
    vguuid
    wc-c
    wc-l
    wc-w
    wipefs
    write
    write-append
    write-file
    xfs-admin
    xfs-growfs
    xfs-info
    xfs-repair
    zegrep
    zegrepi
    zero
    zero-device
    zero-free-space
    zerofree
    zfgrep
    zfgrepi
    zfile
    zgrep
    zgrepi

libguestfs手册(2):guestfish command的更多相关文章

  1. libguestfs手册(1): 架构

    要编辑一个image,则运行下面的命令 guestfish -a ubuntutest.img ><fs> 会弹出一个命令行工具 运行run ><fs> run 我 ...

  2. libguestfs手册(3): virt命令

    guestmount root# guestmount -a ubuntutest1.img -m /dev/sda1 ubuntutestp1 root# cd ubuntutestp1/root: ...

  3. guestfish 修改 image file

    Example guestfish sessionSometimes, you must modify a virtual machine image to remove any traces of ...

  4. 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(3)

    四.Nova-compute 步骤17:nova-compute接收到请求后,通过Resource Tracker将创建虚拟机所需要的资源声明占用 步骤18:调用Neutron API配置Networ ...

  5. nova file injection的原理和调试过程

    file injection代码 file injection原理来讲是比较简单的,在nova boot命令中,有参数--file,是将文件inject到image中 nova boot --flav ...

  6. [原创]Linux-day1

    原创:转发务必注明出处http://www.cnblogs.com/0zcl/p/6077298.html 一.Linux的基本原则 由目的单一的小程序组成:组合小程序完成复杂任务 一切皆文件 尽量避 ...

  7. 常用命令[Linux]

    Linux文件类型 -:普通文件(f) d:目录文件 b:块设备文件(block) c:字符设备文件(character) l:符号链接文件(symbolic link file) p:命名管道文件( ...

  8. linux man使用方法 和centos安装中文man包 --转

    http://blog.chinaunix.net/uid-25100840-id-302308.html 这两天学习<linux设备驱动程序开发详解>中的异步通知,其中有一个fcntl( ...

  9. 10 分钟学会Linux常用 bash命令

    目录 基本操作 1.1. 文件操作 1.2. 文本操作 1.3. 目录操作 1.4. SSH, 系统信息 & 网络操作 基本 Shell 编程 2.1. 变量 2.2. 字符串替换 2.3. ...

随机推荐

  1. 导出insert语句

    --by zhuyj 显示&select ‘\&s’ from dual; --注意必须要加引号 --by zhuyjcreate or replace function fun_ex ...

  2. 逆向 make 打包错误解决方案 make: *** [internal-package] Error 2

    修改deb.mk文件第6行的压缩方式为gzip vim $THEOS/makefiles/package/deb.mk _THEOS_PLATFORM_DPKG_DEB_COMPRESSION ?= ...

  3. Lesson 1-2

    1.5 模块 模块可视为扩展,通过将其导入可以扩展python的功能.python中自带有一组模块,也称为“标准库”. 1.5.1 模块的导入:import + 模块名称 • 使用关键字import导 ...

  4. Django 之 流程和命令行工具

    一.一个简单的web框架 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演. 对于所 ...

  5. js 实现控制点击事件在特定的毫秒内 只允许点击一次(防止重复点击)

    代码 第一种方法 var forbidRepeartClick = (function(){ var instance = null; var canClick = true; function Bu ...

  6. Zabbix(二)

    zabbix 监控第一台服务器 https://blog.51cto.com/5001660/2136303 一.搭建一台测试服务器 1.安装一台centos7操作系统 配置网络: vim /etc/ ...

  7. 时分秒计时器 js

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. c++ 开源库介绍和安装

    1 BLAS库 BLAS(Basic Linear Algebra Subprograms)是一组线性代数计算中通用的基本运算操作函数集合.BLAS Technical (BLAST) Forum负责 ...

  9. 微软开源大规模数据处理项目 Data Accelerator

    微软开源了一个原为内部使用的大规模数据处理项目 Data Accelerator.自 2017 年开发以来,该项目已经大规模应用在各种微软产品工作管道上. 据微软官方开源博客介绍,Data Accel ...

  10. python入门编程之mysql编程

    python关于mysql方面的连接编程 前提:引入mysql模块MySQLdb,即:MySQL_python-1.2.5-cp27-none-win_amd64.whl 如果要用线程池,则要引用模块 ...