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