libguestfs手册(2):guestfish command

添加一个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

上一篇:自定义Window进入和退出效果(转)


下一篇:Android Weekly Notes Issue #232