Questo è il comando virt-edit che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
virt-edit - Modifica un file in una macchina virtuale
SINOSSI
virt-edit [--opzioni] -d domname file [file ...]
virt-edit [--opzioni] -a disk.img [-a disk.img ...] file [file ...]
virt-edit [-d domname|-a disk.img] file -e 'expr'
Vecchio stile:
file domname modifica virt
virt-edit file disk.img [disk.img ...]
AVVERTIMENTO
Utilizzando "virt-edit" su macchine virtuali live o in concomitanza con altri strumenti di modifica del disco,
può essere pericoloso, causando potenzialmente il danneggiamento del disco. La macchina virtuale deve essere chiusa
down prima di utilizzare questo comando e le immagini del disco non devono essere modificate contemporaneamente.
DESCRIZIONE
"virt-edit" è uno strumento da riga di comando per modificare "file" in cui ogni "file" esiste nel nome
macchina virtuale (o immagine disco).
Possono essere dati più nomi di file, nel qual caso vengono modificati a turno. Ogni
nome file deve essere un percorso completo, a partire dalla directory principale (iniziando con '/').
Se vuoi solo visualizzare un file, usa virt-gatto(1).
Per i casi più complessi dovresti guardare il pesce ospite(1) strumento (vedi "UTILIZZO DI GUESTFISH"
sotto).
"virt-edit" non può essere utilizzato per creare un nuovo file. pesce ospite(1) può fare questo e molto altro.
ESEMPI
Modifica i file nominati in modo interattivo:
virt-edit -d miodominio /boot/grub/grub.conf
virt-edit -d miodominio /etc/passwd
Per i guest Windows, sono compresi alcuni percorsi di Windows:
virt-edit -d miodominio di finestra 'c:\autoexec.bat'
Se Perlèinstallato, puoi anche modificare i file in modo non interattivo (vedi "NON INTERATTIVO
EDITING" di seguito). Per cambiare il livello di default di init a 5:
virt-edit -d miodominio /etc/inittab -e 's/^id:.*/id:5:initdefault:/'
VERSIONI
--Aiuto
Visualizza un breve aiuto.
-a filetto
--Inserisci filetto
Aggiungi filetto che dovrebbe essere un'immagine del disco da una macchina virtuale. Se la macchina virtuale
dispone di più dispositivi a blocchi, è necessario fornirli tutti separatamente -a opzioni.
Il formato dell'immagine del disco viene rilevato automaticamente. Per ignorare questo e forzare a
formato particolare utilizzare il --formato=.. opzione.
-a URI
--Inserisci URI
Aggiungi un disco remoto. Vedere "AGGIUNGERE MEMORIA REMOTA" in pesce ospite(1).
-b estensione
--backup estensione
Crea un backup del file originale in , il ospite disco Immagine. Il backup ha il
nome file originale con "estensione" aggiunta.
Di solito il primo carattere di "estensione" sarebbe un punto "." quindi scriveresti:
virt-edit -b .orig [ecc]
Per impostazione predefinita, non viene creato alcun file di backup.
-c URI
--Collegare URI
Se usi libvirt, connettiti al dato URI. Se omesso, allora ci colleghiamo al
hypervisor libvirt predefinito.
Se specifichi direttamente i dispositivi a blocchi guest, libvirt non viene utilizzato affatto.
-d ospite
--dominio ospite
Aggiungi tutti i dischi dal guest libvirt denominato. Gli UUID di dominio possono essere utilizzati al posto di
nomi.
--eco-tasti
Quando si richiedono chiavi e passphrase, virt-edit normalmente disattiva l'eco in modo che tu
non riesco a vedere cosa stai scrivendo. Se non sei preoccupato per gli attacchi Tempest e
non c'è nessun altro nella stanza puoi specificare questo flag per vedere cosa stai digitando.
-e ESPR
--modificare ESPR
--espr ESPR
Invece di avviare l'editor esterno, applica in modo non interattivo l'espressione Perl
"EXPR" su ogni riga del file. Vedere "MODIFICA NON INTERATTIVA" di seguito.
Fare attenzione a citare correttamente l'espressione per evitare che venga alterata dal
conchiglia.
Nota che questa opzione è disponibile solo quando Perl 5 è installato.
--format=grezzo|qcow2|..
--formato
L'impostazione predefinita per il -a l'opzione è quella di rilevare automaticamente il formato dell'immagine del disco. Usando
questo forza la formattazione del disco per -a opzioni che seguono sulla riga di comando. Usando
--formato senza argomenti torna al rilevamento automatico per il successivo -a opzioni.
Per esempio:
virt-edit --format=raw -a file disk.img
forza il formato raw (nessun rilevamento automatico) per disco.img.
virt-edit --format=raw -a disk.img --format -a un altro file.img
forza il formato raw (nessun rilevamento automatico) per disco.img e torna al rilevamento automatico per
un altro.img.
Se hai immagini del disco guest in formato raw non attendibili, dovresti usare questa opzione per
specificare il formato del disco. Ciò evita un possibile problema di sicurezza con malware
ospiti (CVE-2010-3851).
--keys-da-stdin
Leggi i parametri della chiave o della passphrase da stdin. L'impostazione predefinita è provare a leggere
passphrase dall'utente aprendo /dev/tty.
-m dev[:puntomontaggio[:opzioni[:tipofs]]]
--montare dev[:puntomontaggio[:opzioni[:tipofs]]]
Montare la partizione denominata o il volume logico sul punto di montaggio specificato.
Se il punto di montaggio viene omesso, il valore predefinito è /.
Specificare un punto di montaggio disabilita l'ispezione dell'ospite e il suo montaggio
root e tutti i suoi punti di montaggio, quindi assicurati di montare tutti i punti di montaggio necessari per
lavorare con i nomi di file dati come argomenti.
Se non sai quali filesystem contiene un'immagine disco, puoi eseguire guestfish
senza questa opzione, quindi elenca le partizioni, i filesystem e i LV disponibili (vedi
comandi "list-partitions", "list-filesystems" e "lvs"), oppure puoi usare il
filesystem-virt(1) programma.
La terza (e usata raramente) parte del parametro mount è l'elenco delle opzioni di mount
utilizzato per montare il filesystem sottostante. Se questo non viene fornito, allora le opzioni di montaggio
sono la stringa vuota o "ro" (quest'ultima se la --ro viene utilizzata la bandiera). Di
specificando le opzioni di montaggio, si sovrascrive questa scelta predefinita. Probabilmente l'unico
il tempo che useresti è per abilitare gli ACL e/o gli attributi estesi se il filesystem
può supportarli:
-m /dev/sda1:/:acl,utente_xattr
L'utilizzo di questo flag equivale all'utilizzo del comando "mount-options".
La quarta parte del parametro è il driver del filesystem da usare, come "ext3" o
"ntf". Questo è raramente necessario, ma può essere utile se più driver sono validi per a
filesystem (es: "ext2" e "ext3"), o se libguestfs identifica erroneamente un filesystem.
-v
--verboso
Abilita messaggi dettagliati per il debug.
-V
--versione
Visualizza il numero di versione ed esci.
-x Abilita la traccia delle chiamate API libguestfs.
VECCHIO STILE COMANDO LINE ARGOMENTI
Le versioni precedenti di virt-edit ti permettevano di scrivere:
virt-edit file disk.img [disk.img ...]
or
file virt-edit nome ospite
mentre in questa versione dovresti usare -a or -d rispettivamente per evitare il caso confuso
dove un'immagine disco potrebbe avere lo stesso nome di un ospite.
Per compatibilità, il vecchio stile è ancora supportato.
NON INTERATTIVO LA MODIFICA
"virt-edit" normalmente chiama $EDITOR (o vi) in modo che l'amministratore di sistema possa
modificare il file in modo interattivo.
Esistono due modi anche per utilizzare "virt-edit" dagli script per apportare modifiche automatizzate
ai file. (Nota che sebbene tu può usa "virt-edit" in questo modo, è meno soggetto a errori
scrivere script direttamente utilizzando l'API libguestfs e Augeas per il file di configurazione
la modifica.)
Il primo metodo consiste nell'impostare temporaneamente $EDITOR su qualsiasi script o programma che si desidera eseguire.
Lo script viene invocato come "$EDITOR tmpfile" e dovrebbe comunque aggiornare "tmpfile" sul posto
gli piace.
Il secondo metodo consiste nell'utilizzare il -e parametro di "virt-edit" per eseguire un breve frammento Perl in
lo stile di sete(1). Ad esempio per sostituire tutte le istanze di "foo" con "bar" in un file:
virt-edit -d domname nomefile -e 's/foo/bar/'
È possibile utilizzare tutta la potenza delle espressioni regolari Perl (vedi perla(1)). Ad esempio a
elimina la password di root che potresti fare:
virt-edit -d nomedominio /etc/passwd -e 's/^root:.*?:/ Root::/'
Quello che succede veramente è che lo snippet viene valutato come un'espressione Perl per ogni riga di
il file. La riga, inclusa la "\n" finale, viene passata in $_ e l'espressione dovrebbe
aggiorna $_ o lascialo invariato.
Per eliminare una riga, imposta $_ sulla stringa vuota. Ad esempio, per eliminare l'utente "apache"
account dal file della password puoi fare:
virt-edit -d miodominio /etc/passwd -e '$_ = "" if /^apache:/'
Per inserire una riga, anteponila o aggiungila a $_. Tuttavia, aggiungendo righe alla fine di
file è piuttosto difficile in questo modo poiché non esiste il concetto di "ultima riga del file" -
la tua espressione semplicemente non viene chiamata di nuovo. Potresti voler usare il primo metodo
(impostando $EDITOR) se vuoi farlo.
La variabile $lineno contiene il numero di riga corrente. Come da tradizione, la prima riga
nel file è il numero 1.
Il valore restituito dall'espressione viene ignorato, ma l'espressione può chiamare "die" in
per interrompere l'intero programma, lasciando intatto il file originale.
Ricorda quando corrisponda alla fine di una riga che $_ può contenere la "\n" finale o (per DOS
files) "\r\n", o se il file non termina con una nuova riga, nessuno di questi. così a
corrispondere o sostituire del testo alla fine di una riga, utilizzare questa espressione regolare:
/ del testo (\r?\n)?$/
In alternativa, usa la funzione perl "chomp", facendo attenzione a non masticare $_ stesso (poiché
che rimuoverebbe tutte le nuove righe dal file):
mio $m = $_; masticare $m; $m =~ /un testo$/
FINESTRE PERCORSI
"virt-edit" ha una capacità limitata di comprendere le lettere e i percorsi delle unità di Windows (ad es.
E:\pippo\bar.txt).
Se e solo se il guest esegue Windows, allora:
· I prefissi delle lettere di unità come "C:" vengono risolti rispetto al registro di Windows in
file system corretto.
· Eventuali caratteri barra rovesciata ("\") nel percorso vengono sostituiti con barre in avanti in modo che
libguestfs può elaborarlo.
· Il percorso viene risolto senza distinzione tra maiuscole e minuscole per individuare il file da modificare.
Ci sono alcune carenze note:
· Alcuni collegamenti simbolici NTFS potrebbero non essere seguiti correttamente.
· I punti di giunzione NTFS che attraversano i filesystem non vengono seguiti.
UTILIZZO PESCE OSPITE
pesce ospite(1) è uno strumento di livello inferiore più potente che puoi usare quando "virt-edit"
non funziona.
Usare "virt-edit" è approssimativamente equivalente a fare:
guestfish --rw -i -d nomedominio modifica /file
dove "domname" è il nome dell'ospite libvirt, e /file è il percorso completo del file.
Il comando sopra utilizza la funzione di ispezione degli ospiti di libguestfs e quindi non funziona
guest che libguestfs non può ispezionare o su cose come immagini di dischi arbitrarie che non lo fanno
contenere gli ospiti. Per modificare direttamente un file su un'immagine disco, utilizzare:
guestfish --rw -a disk.img -m /dev/sda1 modifica /file
where disco.img è l'immagine del disco, / Dev / sda1 è il filesystem all'interno dell'immagine del disco a
modificare, e /file è il percorso completo del file.
"virt-edit" non può creare nuovi file. Usa i comandi guestfish "touch", "write" o
"carica" invece:
guestfish --rw -i -d nomedominio touch /nuovofile
guestfish --rw -i -d domname write /newfile "nuovo contenuto"
guestfish --rw -i -d domname carica localfile /newfile
AMBIENTE VARIABILI
"EDITORE"
Se impostata, questa stringa viene utilizzata come editor. Può contenere argomenti, ad es. "emacs-nw"
Se non è impostato, viene utilizzato "vi".
EXIT STATUS
Questo programma restituisce 0 in caso di successo o diverso da zero in caso di errore.
Usa virt-edit online utilizzando i servizi onworks.net