guestfs-recipes - Online na nuvem

Este é o comando guestfs-recipes que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

PROGRAMA:

NOME


guestfs-recipes - receitas de ferramentas libguestfs, guestfish e virt

DESCRIÇÃO


Esta página contém receitas e links para coisas que você pode fazer usando libguestfs,
peixe convidado(1) e as ferramentas virt.

Acesso a a remoto disco imagem utilização peixe convidado


Se a imagem do disco estiver em um servidor remoto acessível por SSH, HTTP, FTP, NBD,
iSCSI ou similar, então você pode abri-lo diretamente. Veja "ADICIONANDO ARMAZENAMENTO REMOTO" em
peixe convidado(1) para vários exemplos. Isso requer libguestfs ≥ 1.22 e qemu ≥ 1.5.

Auditoria a virtual máquina for definir tempo arquivos


Veja: "EXEMPLOS" em virt-ls(1).

Auditoria a virtual máquina for vulnerabilidades e segurança problemas


Vejo:
https://rwmj.wordpress.com/2013/05/16/scanning-offline-guests-using-openscap-and-guestmount/#content

Mudar da fundo imagem in a Windows XP VM


Os links abaixo explicam como usar peixe convidado(1) para alterar a imagem de fundo para um usuário
de uma VM do Windows XP. Infelizmente, a técnica parece ser substancialmente diferente para
cada versão do Windows.

https://lists.fedoraproject.org/pipermail/virt/2011-May/002655.html
https://lists.fedoraproject.org/pipermail/virt/2011-May/002658.html

Checksums a lima or dispositivo dentro a disco imagem


Para a soma de verificação de um dispositivo inteiro ou de uma partição, LV etc. em uma imagem de disco:

guestfish --ro -a disk.img run: checksum-device md5 / dev / sda1

Substitua "md5" pelo tipo de checksum que você deseja. Veja "guestfs_checksum_device" em
convidados(3) para obter uma lista de tipos suportados.

/ Dev / sda1 significa "a primeira partição". Você poderia usar / Dev / sda para verificar a soma de todo o disco
imagem ou o nome de um volume lógico ou dispositivo RAID.

Para a soma de verificação de um único arquivo:

guestfish --ro -a disk.img -i soma de verificação sha256 / Etc / passwd

ou para um convidado do Windows:

guestfish --ro -a disco.img -i
checksum sha256 'win: \ windows \ system32 \ config \ SOFTWARE'

Clonagem a virtual máquina


Use uma combinação de ferramentas como cp(1) dd(1), e ferramentas virt como virt-sysprep(1)
virt-sparsify(1) e virtual-resize(1).

Para obter mais detalhes, consulte: "CÓPIA E CLONAGEM" em virt-sysprep(1).

Converter a CD-ROM / DVD / ISO para a tarball


Isso converte a entrada cd.iso para a saída cd.tar.gz:

guestfish --ro -a cd.iso -m / dev / sda tgz-out / cd.tar.gz

Para exportar apenas um subdiretório, por exemplo. /arquivos, Faz:

guestfish --ro -a cd.iso -m / dev / sda tgz-out / files cd.tar.gz

Converter da um formato / sistema de arquivos para outra


Se você tiver um disco de dados em um formato / sistema de arquivos / partição / gerenciador de volume, você pode
converta-o em outro usando esta técnica.

Neste exemplo, começamos com um disco de dados que possui uma única partição contendo um
sistema de arquivos, e queremos criar outro disco que contém os mesmos arquivos, mas em um ext3
sistema de arquivos embutido em um volume lógico em um disco de formato bruto esparso.

Primeiro crie o disco de destino formatado, mas vazio:

truncar -s 10G target.img
virt-format -a target.img --partition = mbr --lvm --filesystem = ext3

Agora, conecte duas instâncias de guestfish para transferir os dados antigos para o novo disco:

guestfish --ro -a source.img -m /dev/sda1 -- tar-out / - |
guestfish --rw -a target.img -m / dev / VG / LV - tar-in - /

Para navegar pela imagem final do disco, faça:

guestfish --ro -a target.img -m / dev / VG / LV
> ll /

Esta técnica é bastante poderosa, permitindo, por exemplo, dividir os diretórios de origem
sobre os sistemas de arquivos de destino.

Observe que isso não funcionará (pelo menos, não diretamente) para discos de máquina virtual inicializáveis ​​porque
ele não copia sobre o carregador de boot.

Converter Windows DVD para inicializável USB chave


http://rwmj.wordpress.com/2013/05/09/tip-convert-a-windows-dvd-iso-to-a-bootable-usb-key-using-guestfish/# Content

Converter Estilo Xen sem partição imagem para particionado disco imagem


As imagens de disco Xen geralmente não têm partição, o que significa que o sistema de arquivos começa diretamente em
o início do disco sem tabela de partição. Você pode, de fato, usá-los diretamente no
KVM (desde que o convidado não seja Windows), mas algumas pessoas gostam de convertê-los em normais
imagens de disco particionadas, e isso é necessário para convidados do Windows. Aqui está como usar
peixe convidado para fazer isso:

peixe convidado
> add-ro input.img
> sparse output.img 10G # ajusta o tamanho da saída
> corre
# Crie uma tabela de partição no disco de saída:
> part-init / dev / sdb mbr
> parte-add / dev / sdb p 2048 -2048
# Copie os dados para a partição de destino:
> copiar dispositivo para dispositivo / dev / sda / dev / sdb1 esparso: verdadeiro
# Opcionalmente, redimensione o sistema de arquivos de destino. Use ntfsresize
# para convidados do Windows:
> resize2fs / dev / sdb1

Essa imagem de disco não será inicializável diretamente. Você pode precisar inicializá-lo com um externo
kernel e initramfs (veja abaixo). Ou você pode usar os comandos guestfish "syslinux" ou
"extlinux" para instalar um gerenciador de inicialização SYSLINUX.

Crie vazio disco imagens


A formato virt(1) a ferramenta pode fazer isso diretamente.

Use virt-make-fs(1) para criar uma imagem de disco com conteúdo. Isso também pode criar alguns
imagens de disco padrão, como dispositivos de disquete virtuais (VFDs).

Você também pode usar o peixe convidado(1) -N opção para criar imagens de disco vazias. O guia útil
abaixo explica as opções disponíveis.

https://rwmj.wordpress.com/2010/09/08/new-guestfish-n-options-in-1-5-9/#content

construtor virt(1) pode criar convidados mínimos.

Apagar a lima (ou de outros simples lima operações)


Use guestfish. Para excluir um arquivo:

guestfish -a disk.img -i rm / file / to / delete

Para alterar um arquivo (atualizá-lo ou criá-lo):

guestfish -a disk.img -i toque em / arquivo / para / toque

Para estatizar um arquivo. Como esta é uma operação somente leitura, podemos torná-la mais segura adicionando o
--ro bandeira.

guestfish --ro -a disk.img -i stat / file / to / stat

Existem dezenas desses comandos. Ver peixe convidado(1) ou a saída de "guestfish -h"

Dif dois convidados; comparar a instantâneo para da atual versão


Como libguestfs ≥ 1.26, use virt-diff(1) para procurar diferenças entre dois convidados (para
exemplo se eles foram originalmente clonados da mesma fonte), ou entre dois instantâneos
do mesmo convidado. Em versões anteriores do libguestfs, use virt-ls(1).

Desabilitar a sistema serviço


O seguinte é o equivalente a "systemctl mask ...". Para desativar o "cloud-init"
serviço para que não comece na próxima inicialização:

guestfish -a disco.img -i
ln-sf / dev / null /etc/systemd/system/cloud-init.service

Para desativar tmp-on-tmpfs:

guestfish -a disco.img -i
ln-sf / dev / null /etc/systemd/system/tmp.mount

Um problema com os comandos acima é que não há feedback se você obtiver o nome do
serviço que você está tentando mascarar errado. Mas você pode usar virt-ls(1) para listar os disponíveis
serviços systemd como este:

virt-ls -a /tmp/fedora-19.img -R / lib / systemd / system

lixeira cru sistema de arquivo conteúdo da dentro a disco imagem or VM


Você pode usar o peixe convidado(1) comando "download" para extrair o conteúdo bruto do sistema de arquivos de
qualquer sistema de arquivos em uma imagem de disco ou VM (mesmo que seja criptografado ou enterrado dentro de um LV
ou dispositivo RAID):

guestfish --ro -a disk.img run: download / dev / sda1 sda1.img

guestfish --ro -d Execução do convidado: download / dev / vg_guest / lv_root lv.img

Para fazer o download para o stdout, substitua o nome do arquivo por um caractere "-":

guestfish --ro -a disk.img run: download / dev / sda1 - | gzip> sda1.gz

Para listar os sistemas de arquivos em uma imagem de disco, use virt-sistemas de arquivos(1).

Consulte também "Carregando conteúdo bruto do sistema de arquivos".

Editar larva • Configuração in a VM


Você pode usar isso para:

· Consertar uma máquina virtual que não inicializa.

· Alterar qual kernel é usado para inicializar a VM.

· Altere as opções de linha de comando do kernel.

Use edição virt(1) para editar a configuração do grub:

virt-edit -d BrokenGuest /boot/grub2/grub.cfg

ou para ajustes gerais dentro de uma VM não inicializável, use virt-resgate(1) assim:

virt-resgate -d BrokenGuest

Exportar qualquer anuário da a VM


Exportar / Home de uma VM para um diretório local, use cópia virtual(1)

virt-copy-out -d Convidado / Home .

Observações:

· O ponto final do comando não é um erro de impressão. Isso significa que queremos copiar para
o diretório atual.

· Isso cria um diretório chamado "home" no diretório atual.

Se o convidado for um convidado do Windows, você pode usar letras de unidade e barras invertidas, mas você
deve prefixar o caminho com "win:" e citá-lo para protegê-lo do shell, assim:

virt-copy-out -d WinGuest 'win: c: \ windows \ system32 \ config'.

Para obter a saída como um tarball compactado, faça:

virt-tar-out -d Convidado / Home - | gzip --best> home.tar.gz

Embora pareça tentador, geralmente não é uma maneira confiável de obter um backup de um
executando convidado. Veja a entrada no FAQ: http://libguestfs.org/FAQ.html#cópia de segurança

Encontre Fora qual usuário is utilização da a maioria espaço


Este script simples examina um convidado Linux para descobrir qual usuário está usando mais espaço
em seu diretório inicial:

#!/ Bin / sh -

definir -e

vm = "$ 1"
dir =/ Home

eval $ (guestfish --ro -d "$ vm" -i --listen)

para d em $ (guestfish --remote ls "$ dir"); Faz
echo -n "$ dir / $ d"
echo -ne '\ t'
guestfish --remote du "$ dir / $ d";
feito | sort -nr -k 2

guestfish - saída remota

Exportar externo núcleo e initramfs (inicialização)


Se um convidado Linux não tem um carregador de boot ou está quebrado, então você geralmente pode inicializá-lo
usando um kernel externo e initramfs. Nesta configuração, o hipervisor atua como um
bootloader, carregando o kernel do disco host para a memória do convidado e pulando direto
no kernel.

No entanto, você pode se perguntar como obter o kernel correto correspondente à imagem de disco que você
ter. Uma vez que libguestfs ≥ 1.24 construtor virt(1) pode obter o kernel mais recente e correspondente
initramfs para você:

mkdir saídadir
virt-builder --get-kernel disk.img -o outputdir
ls -lh diretório de saída

Get DHCP endereço da a VM


O link abaixo explica as muitas técnicas diferentes possíveis para obter o último
endereço DHCP atribuído de uma máquina virtual.

https://rwmj.wordpress.com/2011/03/31/tip-code-for-getting-dhcp-address-from-a-virtual-machine-disk-image/#content

No diretório de exemplos de fontes libguestfs você encontrará a versão mais recente do
virt-dhcp-address.c .

Get da operando . PRODUTOS nome corda


Salve o seguinte script em um arquivo chamado nome-do-produto.sh:

#!/ Bin / sh -
definir -e
eval "$ (guestfish --ro -d" $ 1 "--i --listen)"
root = "$ (guestfish --remote inspect-get-roots)"
guestfish --remote inspect-get-product-name "$ root"
guestfish - saída remota

Torne o script executável e execute-o em um convidado nomeado:

# nome-do-produto.sh RHEL60x64
Red Hat Enterprise Linux Server versão 6.0 (Santiago)

Você também pode usar uma consulta XPath no inspetor virtual(1) XML usando o comando "xpath"
ferramenta de linha ou de sua linguagem de programação favorita:

# virt-inspector RHEL60x64> xml
# xpath '// product_name' <xml
1 nós encontrados:
-- NÓ --
Red Hat Enterprise Linux Server versão 6.0 (Santiago)

Get da omissão bota núcleo for a Linux VM


O link abaixo contém um programa para imprimir o kernel de inicialização padrão para uma VM Linux.

https://rwmj.wordpress.com/2010/10/30/tip-use-augeas-to-get-the-default-boot-kernel-for-a-vm/#content

Ele usa Augeas, e a técnica é geralmente aplicável para muitas tarefas diferentes, como
como:

· Listar as contas de usuário no convidado

· Quais repositórios ele está configurado para usar

· A quais servidores NTP ele se conecta

· Quais foram as mensagens de inicialização da última vez que inicializou

· Listar quem fez login recentemente

http://augeas.net/

Suspensão convidados


Existem várias maneiras de usar libguestfs para descobrir porque um convidado está travando ou
sem resposta:

1. Leia os arquivos de log usando virt-cat:

virt-cat Convidado / var / log / messages | menos

2. Leia o registro de eventos do Windows (somente Windows Vista ou posterior):

https://rwmj.wordpress.com/2011/04/17/decoding-the-windows-event-log-using-guestfish/#content

3. Descubra quais arquivos foram atualizados pela última vez em um convidado:

https://rwmj.wordpress.com/2012/02/27/using-libguestfs-to-find-out-why-a-windows-guest-was-hanging/#content

Isso pode lhe dar uma idéia de qual programa está sendo executado.

Hexadecimal setores da da convidado


Despeje hexadecimal a partição de inicialização (Registro mestre de inicialização / primeiro setor):

guestfish --ro -a disk.img run: pread-device / dev / sda 0x200 0 |
hexdump-C

(0x200 = 512 bytes que é o tamanho dos setores tradicionais do PC)

Para fazer o hexdump da N'ésima partição, substitua "N" por um número no seguinte comando:

guestfish --ro -a disco.img
executar: pread-device / dev / sda 0x200 $ ((N * 0x200)) |
hexdump-C

Edição hexadecimal setores in da convidado


Edite hexadecimais a partição de inicialização (Registro mestre de inicialização / primeiro setor):

guestfish --rw -a disk.img run: hexedit / dev / sda 0x200

Instale pacotes (RPM, Debian pacotes) in a convidado


Desde libguestfs 1.26, construtor virt(1) virt-personalizar(1) e virt-sysprep(1) tem um
--instalar opção para instalar pacotes em convidados Linux. (Use virt-customize se você tiver
um convidado existente ou virt-builder se quiser criar um convidado do zero).

Por exemplo:

virt-builder fedora-20 --instalar emacs

Instale pacotes da an alternado repositório


Desde libguestfs 1.26, você pode usar construtor virt(1) virt-personalizar(1) ou virt-sysprep(1)
--editar opção de editar os metadados do repositório antes de instalar os pacotes

Por exemplo, isso instalaria pacotes do repositório updates-testing no Fedora:

virt-builder fedora-20
--edit '/etc/yum.repos.d/fedora-updates-testing.repo:
s/habilitado=0/habilitado=1/'
--instala o emacs

Instale SYSLINUX bootloader in a convidado


SYSLINUX é um gerenciador de inicialização pequeno e fácil de configurar para convidados Linux e Windows. Se seu
convidado não é inicializável, você pode instalar o gerenciador de inicialização SYSLINUX usando o guestfish
comandos "syslinux" (para convidados baseados em FAT) ou "extlinux" (para ext2 / 3/4 e baseados em btrfs
convidados).

Este guia assume um convidado Linux onde / Dev / sda1 is / Bota, / boot / vmlinuz é o convidado
kernel, e / Dev / sda3 é a partição raiz. Para um convidado do Windows, você precisaria de um FAT-
partição de inicialização formatada e você precisará usar o comando "syslinux".

Crie uma syslinux.cfg arquivo de configuração. Você deve verificar a documentação SYSLINUX em
http://www.syslinux.org mas pode ser parecido com isto:

linux PADRÃO
ETIQUETA linux
SAY; inicializando o kernel
KERNEL vmlinuz
INITRD initrd
APPEND ro root = / dev / sda3

Localize o registro mestre de inicialização do syslinux (um arquivo chamado algo como
/usr/share/syslinux/mbr.bin).

guestfish -a disco.img -i
# Carregue o registro mestre de inicialização e o arquivo de configuração:
> upload .... / mbr.bin /boot/mbr.bin
> upload .... / syslinux.cfg /boot/syslinux.cfg
# Coloque o MBR no setor de inicialização:
> copiar arquivo para dispositivo /boot/mbr.bin / dev / sda tamanho: 440
# Instale o syslinux na primeira partição:
> extlinux / Bota
# Defina a primeira partição como inicializável:
> part-set-bootable / dev / sda 1 true

Veja também:
http://rwmj.wordpress.com/2013/04/04/new-in-libguestfs-use-syslinux-or-extlinux-to-make-bootable-guests/# Content

Lista aplicações instalado in a VM


Salve o seguinte em um arquivo lista-apps.sh:

#!/ Bin / sh -
definir -e
eval "$ (guestfish --ro -d" $ 1 "--i --listen)"
root = "$ (guestfish --remote inspect-get-roots)"
guestfish --remote inspect-list-applications "$ root"
guestfish - saída remota

Torne o arquivo executável e você poderá executá-lo em qualquer máquina virtual nomeada:

# list-apps.sh WinGuest
[0] = {
nome_do_aplicativo: Mozilla Firefox (3.6.12)
app_display_name: Mozilla Firefox (3.6.12)
app_época: 0
app_version: 3.6.12 (pt-GB)
app_release:
app_install_path: C: \ Arquivos de programas \ Mozilla Firefox
app_trans_path:
app_publisher: Mozilla
URL_do_aplicativo: http://www.mozilla.com/en-GB/
app_source_package:
resumo_aplicativo:
descrição do aplicativo: Mozilla Firefox
}
[1] = {
app_name: reprodutor de mídia VLC
app_display_name: reprodutor de mídia VLC 1.1.5
app_época: 0
versão_aplicativo: 1.1.5
app_release:
app_install_path: C: \ Program Files \ VideoLAN \ VLC
app_trans_path:
app_publisher: VideoLAN
URL_do_aplicativo: http://www.videolan.org/
app_source_package:
resumo_aplicativo:
descrição do aplicativo:
}

Se você deseja executar o script em imagens de disco (em vez de máquinas virtuais libvirt), altere
"-d" $ 1 "" a "-a" $ 1 "". Veja também inspetor virtual(1).

Lista arquivos e diretórios in a VM


Use virt-ls(1).

Lista Serviços in a Windows VM


O link abaixo contém um script que pode ser usado para listar os serviços de um Windows
VM e se esses serviços são executados no momento da inicialização ou carregados sob demanda.

https://rwmj.wordpress.com/2010/12/10/tip-list-services-in-a-windows-guest/#content

Realizar a disco imagem escasso


Use virt-sparsify(1).

Monitore disco uso Acima de tempo


Você pode usar virt-df(1) para monitorar o uso do disco de seus convidados ao longo do tempo. O link abaixo
contém um guia.

http://virt-tools.org/learning/advanced-virt-df/

Leitura da Windows Evento Folhas para da Windows vista (ou mais tarde)


peixe convidado(1) mais as ferramentas descritas no link abaixo podem ser usadas para ler o
Log de eventos do Windows de qualquer máquina virtual executando o Windows Vista ou uma versão posterior.

https://rwmj.wordpress.com/2011/04/17/decoding-the-windows-event-log-using-guestfish/#content

Eliminar raiz senha (Linux)


Com o edição virt(1) -e opção, você pode fazer substituições simples em arquivos. Um uso é para
remova a senha root de um convidado Linux:

virt-edit -d nome de domínio / Etc / passwd -e 's / ^ root:. * ?:/ Root:: / '

virt-edit -a disco.img / Etc / passwd -e 's / ^ root:. * ?:/ Root:: / '

Eliminar Administrador senha (Windows)


O link abaixo contém uma técnica para remover a senha do administrador de um
Windows VM, ou para ser mais preciso, fornece um prompt de comando na próxima vez que você fizer login
que você pode usar para contornar qualquer segurança:

https://mdbooth.wordpress.com/2010/10/18/resetting-a-windows-guests-administrator-password-with-guestfish/

Preparação de Sysprep a virtual máquina (Windows)


É possível fazer um "sysprep" usando libguestfs sozinho, embora não seja direto.
Atualmente existe um código no projeto Aeolus Oz que faz isso (usando libguestfs). Isto
é provável que adicionaremos isso a virt-sysprep(1) no futuro.

https://github.com/clalancette/oz
https://www.redhat.com/archives/virt-tools-list/2011-May/msg00019.html

Desembalar a viver CD


Os live CDs do Linux geralmente contêm várias camadas de imagens de disco embrulhadas como uma boneca russa.
Você pode usar peixe convidado(1) para olhar dentro dessas camadas múltiplas, conforme descrito no guia
abaixo.

https://rwmj.wordpress.com/2009/07/15/unpack-the-russian-doll-of-a-f11-live-cd/#content

Upload e descarga arquivos


O link abaixo contém dicas gerais sobre upload (cópia) e download (cópia
out) arquivos de VMs.

https://rwmj.wordpress.com/2010/12/02/tip-uploading-and-downloading/#content

Upload cru sistema de arquivo conteúdo


Você pode usar peixe convidado(1) para carregar sistemas de arquivos inteiros em uma VM, mesmo em um sistema de arquivos
que é criptografado ou enterrado dentro de um dispositivo LV ou RAID:

guestfish --rw -a disk.img run: upload sda1.img / dev / sda1

guestfish --rw -d Execução do convidado: upload lv.img / dev / vg_guest / lv_root

Um problema comum é que o sistema de arquivos não tem o tamanho certo para o destino. Se for
muito grande, não há muito que você possa fazer com libguestfs - você tem que preparar o
sistema de arquivos de forma diferente. Mas se o sistema de arquivos precisar expandir para o destino, você pode
use guestfish para redimensioná-lo para o tamanho certo:

guestfish --rw -d Convidado executado:
carregue lv.img /dev/vg_guest/lv_root :
resize2fs / dev / vg_guest / lv_root

(ou use "ntfsresize" se o sistema de arquivos for NTFS).

Use libguestfs ferramentas on VMware Extensão ESX convidados


O link abaixo explica como usar libguestfs, peixe convidado(1) e as ferramentas virt em qualquer
Convidados VMware ESX, primeiro compartilhando o VMware VMFS por meio de sshfs.

https://rwmj.wordpress.com/2011/05/10/tip-use-libguestfs-on-vmware-esx-guests/#content

Use guestfs-recipes online usando serviços onworks.net



Programas online mais recentes para Linux e Windows