# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Red Hat Inc. # This file is distributed under the same license as the guestfs-tools package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: guestfs-tools 1.53.5\n" "Report-Msgid-Bugs-To: guestfs@lists.libguestfs.org\n" "POT-Creation-Date: 2025-01-08 12:25+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: =head1 #: align/virt-alignment-scan.pod:1 builder/virt-builder-repository.pod:8 #: builder/virt-builder.pod:8 builder/virt-index-validate.pod:1 #: cat/virt-cat.pod:1 cat/virt-filesystems.pod:1 cat/virt-log.pod:1 #: cat/virt-ls.pod:1 cat/virt-tail.pod:1 customize/virt-customize.pod:1 #: df/virt-df.pod:1 diff/virt-diff.pod:1 #: docs/guestfs-tools-release-notes-1.48.pod:1 #: docs/guestfs-tools-release-notes-1.50.pod:1 #: docs/guestfs-tools-release-notes-1.52.pod:1 drivers/virt-drivers.pod:1 #: edit/virt-edit.pod:1 format/virt-format.pod:1 #: get-kernel/virt-get-kernel.pod:1 inspector/virt-inspector.pod:1 #: make-fs/virt-make-fs.pod:1 resize/virt-resize.pod:1 #: sparsify/virt-sparsify.pod:1 sysprep/virt-sysprep.pod:1 #: win-reg/virt-win-reg.in:32 msgid "NAME" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:3 msgid "virt-alignment-scan - Check alignment of virtual machine partitions" msgstr "" #. type: =head1 #: align/virt-alignment-scan.pod:5 builder/virt-builder-repository.pod:12 #: builder/virt-builder.pod:12 builder/virt-index-validate.pod:5 #: cat/virt-cat.pod:5 cat/virt-filesystems.pod:5 cat/virt-log.pod:5 #: cat/virt-ls.pod:5 cat/virt-tail.pod:5 customize/virt-customize.pod:5 #: df/virt-df.pod:5 diff/virt-diff.pod:5 drivers/virt-drivers.pod:5 #: edit/virt-edit.pod:5 format/virt-format.pod:5 #: get-kernel/virt-get-kernel.pod:5 inspector/virt-inspector.pod:5 #: make-fs/virt-make-fs.pod:5 resize/virt-resize.pod:5 #: sparsify/virt-sparsify.pod:5 sysprep/virt-sysprep.pod:5 #: win-reg/virt-win-reg.in:36 msgid "SYNOPSIS" msgstr "" #. type: verbatim #: align/virt-alignment-scan.pod:7 #, no-wrap msgid "" " virt-alignment-scan [--options] -d domname\n" "\n" msgstr "" #. type: verbatim #: align/virt-alignment-scan.pod:9 #, no-wrap msgid "" " virt-alignment-scan [--options] -a disk.img [-a disk.img ...]\n" "\n" msgstr "" #. type: verbatim #: align/virt-alignment-scan.pod:11 #, no-wrap msgid "" " virt-alignment-scan [--options]\n" "\n" msgstr "" #. type: =head1 #: align/virt-alignment-scan.pod:13 builder/virt-builder-repository.pod:17 #: builder/virt-builder.pod:32 builder/virt-index-validate.pod:9 #: cat/virt-cat.pod:17 cat/virt-filesystems.pod:11 cat/virt-log.pod:11 #: cat/virt-ls.pod:17 cat/virt-tail.pod:11 customize/virt-customize.pod:18 #: df/virt-df.pod:23 diff/virt-diff.pod:11 drivers/virt-drivers.pod:11 #: edit/virt-edit.pod:19 format/virt-format.pod:9 #: get-kernel/virt-get-kernel.pod:11 inspector/virt-inspector.pod:17 #: make-fs/virt-make-fs.pod:13 resize/virt-resize.pod:11 #: sparsify/virt-sparsify.pod:11 sysprep/virt-sysprep.pod:11 #: win-reg/virt-win-reg.in:60 msgid "DESCRIPTION" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:15 msgid "" "When older operating systems install themselves, the partitioning tools " "place partitions at a sector misaligned with the underlying storage " "(commonly the first partition starts on sector C<63>). Misaligned " "partitions can result in an operating system issuing more I/O than should be " "necessary." msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:21 msgid "" "The virt-alignment-scan tool checks the alignment of partitions in virtual " "machines and disk images and warns you if there are alignment problems." msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:25 msgid "" "Currently there is no virt tool for fixing alignment problems. You can only " "reinstall the guest operating system. The following NetApp document " "summarises the problem and possible solutions: " "L" msgstr "" #. type: =head1 #: align/virt-alignment-scan.pod:30 msgid "OUTPUT" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:32 msgid "To run this tool on a disk image directly, use the I<-a> option:" msgstr "" #. type: verbatim #: align/virt-alignment-scan.pod:34 #, no-wrap msgid "" " $ virt-alignment-scan -a winxp.img\n" " /dev/sda1 32256 512 bad (alignment < 4K)\n" "\n" msgstr "" #. type: verbatim #: align/virt-alignment-scan.pod:37 #, no-wrap msgid "" " $ virt-alignment-scan -a fedora16.img\n" " /dev/sda1 1048576 1024K ok\n" " /dev/sda2 2097152 2048K ok\n" " /dev/sda3 526385152 2048K ok\n" "\n" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:42 msgid "" "To run the tool on a guest known to libvirt, use the I<-d> option and " "possibly the I<-c> option:" msgstr "" #. type: verbatim #: align/virt-alignment-scan.pod:45 #, no-wrap msgid "" " # virt-alignment-scan -d RHEL5\n" " /dev/sda1 32256 512 bad (alignment < 4K)\n" " /dev/sda2 106928640 512 bad (alignment < 4K)\n" "\n" msgstr "" #. type: verbatim #: align/virt-alignment-scan.pod:49 #, no-wrap msgid "" " $ virt-alignment-scan -c qemu:///system -d Win7TwoDisks\n" " /dev/sda1 1048576 1024K ok\n" " /dev/sda2 105906176 1024K ok\n" " /dev/sdb1 65536 64K ok\n" "\n" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:54 msgid "" "Run virt-alignment-scan without any I<-a> or I<-d> options to scan all " "libvirt domains." msgstr "" #. type: verbatim #: align/virt-alignment-scan.pod:57 #, no-wrap msgid "" " # virt-alignment-scan\n" " F16x64:/dev/sda1 1048576 1024K ok\n" " F16x64:/dev/sda2 2097152 2048K ok\n" " F16x64:/dev/sda3 526385152 2048K ok\n" "\n" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:62 msgid "" "The output consists of 4 or more whitespace-separated columns. Only the " "first 4 columns are significant if you want to parse this from a program. " "The columns are:" msgstr "" #. type: =item #: align/virt-alignment-scan.pod:68 msgid "col 1" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:70 msgid "" "The device and partition name (eg. F meaning the first partition " "on the first block device)." msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:73 msgid "" "When listing all libvirt domains (no I<-a> or I<-d> option given) this " "column is prefixed by the libvirt name or UUID (if I<--uuid> is given). eg: " "C" msgstr "" #. type: =item #: align/virt-alignment-scan.pod:77 msgid "col 2" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:79 msgid "the start of the partition in bytes" msgstr "" #. type: =item #: align/virt-alignment-scan.pod:81 msgid "col 3" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:83 msgid "the alignment in bytes or Kbytes (eg. C<512> or C<4K>)" msgstr "" #. type: =item #: align/virt-alignment-scan.pod:85 msgid "col 4" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:87 msgid "" "C if the alignment is best for performance, or C if the alignment " "can cause performance problems" msgstr "" #. type: =item #: align/virt-alignment-scan.pod:90 msgid "cols 5+" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:92 msgid "optional free-text explanation." msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:96 msgid "" "The exit code from the program changes depending on whether poorly aligned " "partitions were found. See L below." msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:99 msgid "If you just want the exit code with no output, use the I<-q> option." msgstr "" #. type: =head1 #: align/virt-alignment-scan.pod:101 builder/virt-builder-repository.pod:87 #: builder/virt-builder.pod:170 builder/virt-index-validate.pod:19 #: cat/virt-cat.pod:51 cat/virt-filesystems.pod:89 cat/virt-log.pod:35 #: cat/virt-ls.pod:249 cat/virt-tail.pod:46 customize/virt-customize.pod:32 #: df/virt-df.pod:71 diff/virt-diff.pod:35 drivers/virt-drivers.pod:113 #: edit/virt-edit.pod:54 format/virt-format.pod:57 #: get-kernel/virt-get-kernel.pod:23 inspector/virt-inspector.pod:55 #: make-fs/virt-make-fs.pod:117 resize/virt-resize.pod:268 #: sparsify/virt-sparsify.pod:114 sysprep/virt-sysprep.pod:36 #: win-reg/virt-win-reg.in:93 msgid "OPTIONS" msgstr "" #. type: =item #: align/virt-alignment-scan.pod:105 builder/virt-builder-repository.pod:91 #: builder/virt-builder.pod:174 builder/virt-index-validate.pod:62 #: cat/virt-cat.pod:55 cat/virt-filesystems.pod:93 cat/virt-log.pod:39 #: cat/virt-ls.pod:253 cat/virt-tail.pod:50 customize/virt-customize.pod:36 #: df/virt-df.pod:75 diff/virt-diff.pod:39 drivers/virt-drivers.pod:117 #: edit/virt-edit.pod:58 format/virt-format.pod:61 #: get-kernel/virt-get-kernel.pod:27 inspector/virt-inspector.pod:59 #: make-fs/virt-make-fs.pod:121 resize/virt-resize.pod:272 #: sparsify/virt-sparsify.pod:118 sysprep/virt-sysprep.pod:40 #: win-reg/virt-win-reg.in:101 msgid "B<--help>" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:107 cat/virt-cat.pod:57 #: cat/virt-filesystems.pod:95 cat/virt-log.pod:41 cat/virt-ls.pod:255 #: cat/virt-tail.pod:52 customize/virt-customize.pod:38 df/virt-df.pod:77 #: diff/virt-diff.pod:41 edit/virt-edit.pod:60 format/virt-format.pod:63 #: inspector/virt-inspector.pod:61 make-fs/virt-make-fs.pod:123 #: sysprep/virt-sysprep.pod:42 win-reg/virt-win-reg.in:103 msgid "Display brief help." msgstr "" #. type: =item #: align/virt-alignment-scan.pod:109 cat/virt-cat.pod:59 #: cat/virt-filesystems.pod:97 cat/virt-log.pod:43 cat/virt-ls.pod:257 #: cat/virt-tail.pod:54 customize/virt-customize.pod:40 diff/virt-diff.pod:43 #: drivers/virt-drivers.pod:121 edit/virt-edit.pod:62 format/virt-format.pod:65 #: get-kernel/virt-get-kernel.pod:31 inspector/virt-inspector.pod:63 #: sysprep/virt-sysprep.pod:44 msgid "B<-a> file" msgstr "" #. type: =item #: align/virt-alignment-scan.pod:111 cat/virt-cat.pod:61 #: cat/virt-filesystems.pod:99 cat/virt-log.pod:45 cat/virt-ls.pod:259 #: cat/virt-tail.pod:56 customize/virt-customize.pod:42 diff/virt-diff.pod:45 #: drivers/virt-drivers.pod:123 edit/virt-edit.pod:64 format/virt-format.pod:67 #: get-kernel/virt-get-kernel.pod:33 inspector/virt-inspector.pod:65 #: sysprep/virt-sysprep.pod:46 msgid "B<--add> file" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:113 customize/virt-customize.pod:44 #: drivers/virt-drivers.pod:125 get-kernel/virt-get-kernel.pod:35 #: sysprep/virt-sysprep.pod:48 msgid "Add I which should be a disk image from a virtual machine." msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:115 cat/virt-cat.pod:67 #: cat/virt-filesystems.pod:105 cat/virt-log.pod:51 cat/virt-ls.pod:265 #: cat/virt-tail.pod:62 df/virt-df.pod:87 diff/virt-diff.pod:51 #: edit/virt-edit.pod:70 format/virt-format.pod:71 #: inspector/virt-inspector.pod:71 msgid "" "The format of the disk image is auto-detected. To override this and force a " "particular format use the I<--format=..> option." msgstr "" #. type: =item #: align/virt-alignment-scan.pod:118 cat/virt-cat.pod:70 #: cat/virt-filesystems.pod:108 cat/virt-log.pod:54 cat/virt-ls.pod:268 #: cat/virt-tail.pod:65 msgid "B<-a URI>" msgstr "" #. type: =item #: align/virt-alignment-scan.pod:120 cat/virt-cat.pod:72 #: cat/virt-filesystems.pod:110 cat/virt-log.pod:56 cat/virt-ls.pod:270 #: cat/virt-tail.pod:67 msgid "B<--add URI>" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:122 cat/virt-cat.pod:74 #: cat/virt-filesystems.pod:112 cat/virt-log.pod:58 cat/virt-ls.pod:272 #: cat/virt-tail.pod:69 df/virt-df.pod:94 diff/virt-diff.pod:58 #: edit/virt-edit.pod:77 format/virt-format.pod:80 #: inspector/virt-inspector.pod:78 msgid "Add a remote disk. See L." msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:124 cat/virt-cat.pod:76 #: cat/virt-filesystems.pod:129 cat/virt-log.pod:60 cat/virt-ls.pod:274 #: cat/virt-tail.pod:71 df/virt-df.pod:96 diff/virt-diff.pod:76 #: edit/virt-edit.pod:93 format/virt-format.pod:82 #: inspector/virt-inspector.pod:80 msgid "__INCLUDE:blocksize-option.pod__" msgstr "" #. type: =item #: align/virt-alignment-scan.pod:126 cat/virt-cat.pod:78 #: cat/virt-filesystems.pod:131 cat/virt-log.pod:62 cat/virt-ls.pod:287 #: cat/virt-tail.pod:73 customize/virt-customize.pod:86 df/virt-df.pod:98 #: diff/virt-diff.pod:89 drivers/virt-drivers.pod:154 edit/virt-edit.pod:95 #: get-kernel/virt-get-kernel.pod:64 inspector/virt-inspector.pod:82 #: sysprep/virt-sysprep.pod:69 msgid "B<-c> URI" msgstr "" #. type: =item #: align/virt-alignment-scan.pod:128 cat/virt-cat.pod:80 #: cat/virt-filesystems.pod:133 cat/virt-log.pod:64 cat/virt-ls.pod:289 #: cat/virt-tail.pod:75 customize/virt-customize.pod:88 df/virt-df.pod:100 #: diff/virt-diff.pod:91 drivers/virt-drivers.pod:156 edit/virt-edit.pod:97 #: get-kernel/virt-get-kernel.pod:66 inspector/virt-inspector.pod:84 #: sysprep/virt-sysprep.pod:71 msgid "B<--connect> URI" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:130 cat/virt-cat.pod:82 #: cat/virt-filesystems.pod:135 cat/virt-log.pod:66 cat/virt-ls.pod:291 #: cat/virt-tail.pod:77 customize/virt-customize.pod:90 df/virt-df.pod:102 #: diff/virt-diff.pod:93 drivers/virt-drivers.pod:158 edit/virt-edit.pod:99 #: get-kernel/virt-get-kernel.pod:68 inspector/virt-inspector.pod:86 #: sysprep/virt-sysprep.pod:73 win-reg/virt-win-reg.in:129 msgid "" "If using libvirt, connect to the given I. If omitted, then we connect " "to the default libvirt hypervisor." msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:133 cat/virt-cat.pod:85 #: cat/virt-filesystems.pod:138 cat/virt-log.pod:69 cat/virt-ls.pod:294 #: cat/virt-tail.pod:80 customize/virt-customize.pod:93 df/virt-df.pod:105 #: diff/virt-diff.pod:96 drivers/virt-drivers.pod:161 #: get-kernel/virt-get-kernel.pod:71 sysprep/virt-sysprep.pod:76 msgid "" "If you specify guest block devices directly (I<-a>), then libvirt is not " "used at all." msgstr "" #. type: =item #: align/virt-alignment-scan.pod:136 cat/virt-cat.pod:88 #: cat/virt-filesystems.pod:147 cat/virt-log.pod:72 cat/virt-ls.pod:303 #: cat/virt-tail.pod:83 customize/virt-customize.pod:96 df/virt-df.pod:114 #: diff/virt-diff.pod:117 drivers/virt-drivers.pod:164 #: get-kernel/virt-get-kernel.pod:74 inspector/virt-inspector.pod:93 #: sysprep/virt-sysprep.pod:79 msgid "B<-d> guest" msgstr "" #. type: =item #: align/virt-alignment-scan.pod:138 cat/virt-cat.pod:90 #: cat/virt-filesystems.pod:149 cat/virt-log.pod:74 cat/virt-ls.pod:305 #: cat/virt-tail.pod:85 customize/virt-customize.pod:98 df/virt-df.pod:116 #: diff/virt-diff.pod:119 drivers/virt-drivers.pod:166 #: get-kernel/virt-get-kernel.pod:76 inspector/virt-inspector.pod:95 #: sysprep/virt-sysprep.pod:81 msgid "B<--domain> guest" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:140 cat/virt-cat.pod:92 #: cat/virt-filesystems.pod:151 cat/virt-log.pod:76 cat/virt-ls.pod:307 #: cat/virt-tail.pod:87 customize/virt-customize.pod:100 df/virt-df.pod:118 #: drivers/virt-drivers.pod:168 edit/virt-edit.pod:109 #: get-kernel/virt-get-kernel.pod:78 inspector/virt-inspector.pod:97 #: sysprep/virt-sysprep.pod:83 msgid "" "Add all the disks from the named libvirt guest. Domain UUIDs can be used " "instead of names." msgstr "" #. type: =item #: align/virt-alignment-scan.pod:143 cat/virt-cat.pod:102 #: cat/virt-filesystems.pod:176 cat/virt-log.pod:86 cat/virt-ls.pod:324 #: cat/virt-tail.pod:104 df/virt-df.pod:121 diff/virt-diff.pod:140 #: edit/virt-edit.pod:134 format/virt-format.pod:93 #: inspector/virt-inspector.pod:107 msgid "B<--format=raw|qcow2|..>" msgstr "" #. type: =item #: align/virt-alignment-scan.pod:145 cat/virt-cat.pod:104 #: cat/virt-filesystems.pod:178 cat/virt-log.pod:88 cat/virt-ls.pod:326 #: cat/virt-tail.pod:106 df/virt-df.pod:123 diff/virt-diff.pod:142 #: edit/virt-edit.pod:136 format/virt-format.pod:95 #: inspector/virt-inspector.pod:109 msgid "B<--format>" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:147 cat/virt-cat.pod:106 #: cat/virt-filesystems.pod:180 cat/virt-log.pod:90 cat/virt-ls.pod:328 #: cat/virt-tail.pod:108 df/virt-df.pod:125 edit/virt-edit.pod:138 #: format/virt-format.pod:97 msgid "" "The default for the I<-a> option is to auto-detect the format of the disk " "image. Using this forces the disk format for I<-a> options which follow on " "the command line. Using I<--format> with no argument switches back to " "auto-detection for subsequent I<-a> options." msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:152 builder/virt-builder.pod:144 #: cat/virt-cat.pod:111 cat/virt-filesystems.pod:185 cat/virt-log.pod:95 #: cat/virt-ls.pod:333 cat/virt-tail.pod:113 #: common/mlcustomize/customize-options.pod:84 #: common/mlcustomize/v2v-customize-options.pod:84 #: customize/virt-customize.pod:126 df/virt-df.pod:130 diff/virt-diff.pod:150 #: edit/virt-edit.pod:143 format/virt-format.pod:102 #: inspector/virt-inspector.pod:350 sysprep/sysprep-extra-options.pod:59 #: sysprep/virt-sysprep.pod:172 sysprep/virt-sysprep.pod:222 msgid "For example:" msgstr "" #. type: verbatim #: align/virt-alignment-scan.pod:154 #, no-wrap msgid "" " virt-alignment-scan --format=raw -a disk.img\n" "\n" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:156 cat/virt-cat.pod:115 #: cat/virt-filesystems.pod:189 cat/virt-log.pod:99 cat/virt-ls.pod:337 #: cat/virt-tail.pod:117 customize/virt-customize.pod:130 df/virt-df.pod:134 #: diff/virt-diff.pod:154 edit/virt-edit.pod:147 format/virt-format.pod:106 #: sysprep/virt-sysprep.pod:176 msgid "forces raw format (no auto-detection) for F." msgstr "" #. type: verbatim #: align/virt-alignment-scan.pod:158 #, no-wrap msgid "" " virt-alignment-scan --format=raw -a disk.img --format -a another.img\n" "\n" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:160 cat/virt-cat.pod:119 #: cat/virt-filesystems.pod:193 cat/virt-log.pod:103 cat/virt-ls.pod:341 #: cat/virt-tail.pod:121 customize/virt-customize.pod:134 df/virt-df.pod:138 #: diff/virt-diff.pod:158 edit/virt-edit.pod:151 format/virt-format.pod:110 #: sysprep/virt-sysprep.pod:180 msgid "" "forces raw format (no auto-detection) for F and reverts to " "auto-detection for F." msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:163 cat/virt-cat.pod:122 #: cat/virt-filesystems.pod:196 cat/virt-log.pod:106 cat/virt-ls.pod:344 #: cat/virt-tail.pod:124 customize/virt-customize.pod:137 df/virt-df.pod:141 #: diff/virt-diff.pod:161 drivers/virt-drivers.pod:186 edit/virt-edit.pod:154 #: format/virt-format.pod:113 get-kernel/virt-get-kernel.pod:96 #: sysprep/virt-sysprep.pod:183 msgid "" "If you have untrusted raw-format guest disk images, you should use this " "option to specify the disk format. This avoids a possible security problem " "with malicious guests (CVE-2010-3851)." msgstr "" #. type: =item #: align/virt-alignment-scan.pod:167 df/virt-df.pod:164 msgid "B<-P> nr_threads" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:169 msgid "" "Since libguestfs 1.22, virt-alignment-scan is multithreaded and examines " "guests in parallel. By default the number of threads to use is chosen based " "on the amount of free memory available at the time that virt-alignment-scan " "is started. You can force virt-alignment-scan to use at most C " "by using the I<-P> option." msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:176 df/virt-df.pod:172 msgid "" "Note that I<-P 0> means to autodetect, and I<-P 1> means to use a single " "thread." msgstr "" #. type: =item #: align/virt-alignment-scan.pod:179 builder/virt-builder-repository.pod:151 #: builder/virt-builder.pod:471 customize/virt-customize.pod:203 #: drivers/virt-drivers.pod:194 get-kernel/virt-get-kernel.pod:132 #: resize/virt-resize.pod:530 sparsify/virt-sparsify.pod:259 #: sysprep/virt-sysprep.pod:232 msgid "B<-q>" msgstr "" #. type: =item #: align/virt-alignment-scan.pod:181 builder/virt-builder-repository.pod:153 #: builder/virt-builder.pod:473 customize/virt-customize.pod:205 #: drivers/virt-drivers.pod:196 get-kernel/virt-get-kernel.pod:134 #: resize/virt-resize.pod:532 sparsify/virt-sparsify.pod:261 #: sysprep/virt-sysprep.pod:234 msgid "B<--quiet>" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:183 msgid "" "Don’t produce any output. Just set the exit code (see L " "below)." msgstr "" #. type: =item #: align/virt-alignment-scan.pod:186 cat/virt-filesystems.pod:258 #: df/virt-df.pod:175 msgid "B<--uuid>" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:188 df/virt-df.pod:177 msgid "" "Print UUIDs instead of names. This is useful for following a guest even " "when the guest is migrated or renamed, or when two guests happen to have the " "same name." msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:192 msgid "" "This option only applies when listing all libvirt domains (when no I<-a> or " "I<-d> options are specified)." msgstr "" #. type: =item #: align/virt-alignment-scan.pod:195 builder/virt-builder-repository.pod:157 #: builder/virt-builder.pod:518 cat/virt-cat.pod:166 #: cat/virt-filesystems.pod:264 cat/virt-log.pod:114 cat/virt-ls.pod:456 #: cat/virt-tail.pod:168 customize/virt-customize.pod:215 df/virt-df.pod:185 #: diff/virt-diff.pod:198 drivers/virt-drivers.pod:200 edit/virt-edit.pod:198 #: format/virt-format.pod:155 get-kernel/virt-get-kernel.pod:149 #: inspector/virt-inspector.pod:140 make-fs/virt-make-fs.pod:207 #: resize/virt-resize.pod:622 sparsify/virt-sparsify.pod:308 #: sysprep/virt-sysprep.pod:253 msgid "B<-v>" msgstr "" #. type: =item #: align/virt-alignment-scan.pod:197 builder/virt-builder-repository.pod:159 #: builder/virt-builder.pod:520 cat/virt-cat.pod:168 #: cat/virt-filesystems.pod:266 cat/virt-log.pod:116 cat/virt-ls.pod:458 #: cat/virt-tail.pod:170 customize/virt-customize.pod:217 df/virt-df.pod:187 #: diff/virt-diff.pod:200 drivers/virt-drivers.pod:202 edit/virt-edit.pod:200 #: format/virt-format.pod:157 get-kernel/virt-get-kernel.pod:151 #: inspector/virt-inspector.pod:142 make-fs/virt-make-fs.pod:209 #: resize/virt-resize.pod:624 sparsify/virt-sparsify.pod:310 #: sysprep/virt-sysprep.pod:255 msgid "B<--verbose>" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:199 cat/virt-cat.pod:170 #: cat/virt-filesystems.pod:268 cat/virt-log.pod:118 cat/virt-ls.pod:460 #: cat/virt-tail.pod:172 customize/virt-customize.pod:219 df/virt-df.pod:189 #: diff/virt-diff.pod:202 drivers/virt-drivers.pod:204 edit/virt-edit.pod:202 #: format/virt-format.pod:159 get-kernel/virt-get-kernel.pod:153 #: inspector/virt-inspector.pod:144 sparsify/virt-sparsify.pod:312 #: sysprep/virt-sysprep.pod:257 msgid "Enable verbose messages for debugging." msgstr "" #. type: =item #: align/virt-alignment-scan.pod:201 builder/virt-builder-repository.pod:166 #: builder/virt-builder.pod:527 builder/virt-index-validate.pod:66 #: cat/virt-cat.pod:172 cat/virt-filesystems.pod:270 cat/virt-log.pod:120 #: cat/virt-ls.pod:462 cat/virt-tail.pod:174 customize/virt-customize.pod:221 #: df/virt-df.pod:191 diff/virt-diff.pod:204 drivers/virt-drivers.pod:206 #: edit/virt-edit.pod:204 format/virt-format.pod:161 #: get-kernel/virt-get-kernel.pod:155 inspector/virt-inspector.pod:146 #: make-fs/virt-make-fs.pod:213 resize/virt-resize.pod:628 #: sparsify/virt-sparsify.pod:314 sysprep/virt-sysprep.pod:259 msgid "B<-V>" msgstr "" #. type: =item #: align/virt-alignment-scan.pod:203 builder/virt-builder-repository.pod:168 #: builder/virt-builder.pod:529 builder/virt-index-validate.pod:68 #: cat/virt-cat.pod:174 cat/virt-filesystems.pod:272 cat/virt-log.pod:122 #: cat/virt-ls.pod:464 cat/virt-tail.pod:176 customize/virt-customize.pod:223 #: df/virt-df.pod:193 diff/virt-diff.pod:206 drivers/virt-drivers.pod:208 #: edit/virt-edit.pod:206 format/virt-format.pod:163 #: get-kernel/virt-get-kernel.pod:157 inspector/virt-inspector.pod:148 #: make-fs/virt-make-fs.pod:215 resize/virt-resize.pod:630 #: sparsify/virt-sparsify.pod:316 sysprep/virt-sysprep.pod:261 #: win-reg/virt-win-reg.in:109 msgid "B<--version>" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:205 builder/virt-builder-repository.pod:170 #: builder/virt-builder.pod:531 builder/virt-index-validate.pod:70 #: cat/virt-cat.pod:176 cat/virt-filesystems.pod:274 cat/virt-log.pod:124 #: cat/virt-ls.pod:466 cat/virt-tail.pod:178 customize/virt-customize.pod:225 #: df/virt-df.pod:195 diff/virt-diff.pod:208 drivers/virt-drivers.pod:210 #: edit/virt-edit.pod:208 format/virt-format.pod:165 #: get-kernel/virt-get-kernel.pod:159 inspector/virt-inspector.pod:150 #: make-fs/virt-make-fs.pod:217 resize/virt-resize.pod:632 #: sparsify/virt-sparsify.pod:318 sysprep/virt-sysprep.pod:263 #: win-reg/virt-win-reg.in:111 msgid "Display version number and exit." msgstr "" #. type: =item #: align/virt-alignment-scan.pod:207 builder/virt-builder-repository.pod:178 #: builder/virt-builder.pod:539 cat/virt-cat.pod:178 #: cat/virt-filesystems.pod:284 cat/virt-log.pod:126 cat/virt-ls.pod:468 #: cat/virt-tail.pod:180 customize/virt-customize.pod:233 df/virt-df.pod:197 #: diff/virt-diff.pod:210 drivers/virt-drivers.pod:218 edit/virt-edit.pod:210 #: format/virt-format.pod:177 get-kernel/virt-get-kernel.pod:167 #: inspector/virt-inspector.pod:152 make-fs/virt-make-fs.pod:219 #: resize/virt-resize.pod:640 sparsify/virt-sparsify.pod:326 #: sysprep/virt-sysprep.pod:271 msgid "B<-x>" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:209 builder/virt-builder-repository.pod:180 #: builder/virt-builder.pod:541 cat/virt-cat.pod:180 #: cat/virt-filesystems.pod:286 cat/virt-log.pod:128 cat/virt-ls.pod:470 #: cat/virt-tail.pod:182 customize/virt-customize.pod:235 df/virt-df.pod:199 #: diff/virt-diff.pod:212 drivers/virt-drivers.pod:220 edit/virt-edit.pod:212 #: format/virt-format.pod:179 get-kernel/virt-get-kernel.pod:169 #: inspector/virt-inspector.pod:154 resize/virt-resize.pod:642 #: sparsify/virt-sparsify.pod:328 sysprep/virt-sysprep.pod:273 msgid "Enable tracing of libguestfs API calls." msgstr "" #. type: =head1 #: align/virt-alignment-scan.pod:213 msgid "RECOMMENDED ALIGNMENT" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:215 msgid "" "Operating systems older than Windows 2008 and Linux before ca.2010 place the " "first sector of the first partition at sector 63, with a 512 byte sector " "size. This happens because of a historical accident. Drives have to report " "a cylinder / head / sector (CHS) geometry to the BIOS. The geometry is " "completely meaningless on modern drives, but it happens that the geometry " "reported always has 63 sectors per track. The operating system therefore " "places the first partition at the start of the second \"track\", at sector " "63." msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:224 msgid "" "When the guest OS is virtualized, the host operating system and hypervisor " "may prefer accesses aligned to one of:" msgstr "" #. type: =item #: align/virt-alignment-scan.pod:229 msgid "* 512 bytes" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:231 msgid "" "if the host OS uses local storage directly on hard drive partitions, and the " "hard drive has 512 byte physical sectors." msgstr "" #. type: =item #: align/virt-alignment-scan.pod:234 msgid "* 4 Kbytes" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:236 msgid "" "for local storage on new hard drives with 4Kbyte physical sectors; for " "file-backed storage on filesystems with 4Kbyte block size; or for some types " "of network-attached storage." msgstr "" #. type: =item #: align/virt-alignment-scan.pod:240 msgid "* 64 Kbytes" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:242 msgid "" "for high-end network-attached storage. This is the optimal block size for " "some NetApp hardware." msgstr "" #. type: =item #: align/virt-alignment-scan.pod:245 msgid "* 1 Mbyte" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:247 msgid "see L below." msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:251 msgid "" "Partitions which are not aligned correctly to the underlying storage cause " "extra I/O. For example:" msgstr "" #. type: verbatim #: align/virt-alignment-scan.pod:254 #, no-wrap msgid "" " sect#63\n" " ┌──────────────────────────┬ ─ ─ ─ ─\n" " │ guest │\n" " │ filesystem block │\n" " ─ ┬──────────────────┴──────┬───────────────────┴─────┬ ─ ─\n" " │ host block │ host block │\n" " │ │ │\n" " ─ ┴─────────────────────────┴─────────────────────────┴ ─ ─\n" "\n" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:263 msgid "" "In this example, each time a 4K guest block is read, two blocks on the host " "must be accessed (so twice as much I/O is done). When a 4K guest block is " "written, two host blocks must first be read, the old and new data combined, " "and the two blocks written back (4x I/O)." msgstr "" #. type: =head2 #: align/virt-alignment-scan.pod:268 msgid "LINUX HOST BLOCK AND I/O SIZE" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:270 msgid "" "New versions of the Linux kernel expose the physical and logical block size, " "and minimum and recommended I/O size." msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:273 msgid "For a typical consumer hard drive with 512 byte sectors:" msgstr "" #. type: verbatim #: align/virt-alignment-scan.pod:275 #, no-wrap msgid "" " $ cat /sys/block/sda/queue/hw_sector_size\n" " 512\n" " $ cat /sys/block/sda/queue/physical_block_size\n" " 512\n" " $ cat /sys/block/sda/queue/logical_block_size\n" " 512\n" " $ cat /sys/block/sda/queue/minimum_io_size\n" " 512\n" " $ cat /sys/block/sda/queue/optimal_io_size\n" " 0\n" "\n" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:286 msgid "For a new consumer hard drive with 4Kbyte sectors:" msgstr "" #. type: verbatim #: align/virt-alignment-scan.pod:288 #, no-wrap msgid "" " $ cat /sys/block/sda/queue/hw_sector_size\n" " 4096\n" " $ cat /sys/block/sda/queue/physical_block_size\n" " 4096\n" " $ cat /sys/block/sda/queue/logical_block_size\n" " 4096\n" " $ cat /sys/block/sda/queue/minimum_io_size\n" " 4096\n" " $ cat /sys/block/sda/queue/optimal_io_size\n" " 0\n" "\n" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:299 msgid "For a NetApp LUN:" msgstr "" #. type: verbatim #: align/virt-alignment-scan.pod:301 #, no-wrap msgid "" " $ cat /sys/block/sdc/queue/logical_block_size\n" " 512\n" " $ cat /sys/block/sdc/queue/physical_block_size\n" " 512\n" " $ cat /sys/block/sdc/queue/minimum_io_size\n" " 4096\n" " $ cat /sys/block/sdc/queue/optimal_io_size\n" " 65536\n" "\n" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:310 msgid "" "The NetApp allows 512 byte accesses (but they will be very inefficient), " "prefers a minimum 4K I/O size, but the optimal I/O size is 64K." msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:314 msgid "" "For detailed information about what these numbers mean, see " "L" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:317 msgid "" "[Thanks to Matt Booth for providing 4K drive data. Thanks to Mike Snitzer " "for providing NetApp data and additional information.]" msgstr "" #. type: =head2 #: align/virt-alignment-scan.pod:320 msgid "1 MB PARTITION ALIGNMENT" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:322 msgid "" "Microsoft picked 1 MB as the default alignment for all partitions starting " "with Windows 2008 Server, and Linux has followed this." msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:325 msgid "" "Assuming 512 byte sectors in the guest, you will now see the first partition " "starting at sector 2048, and subsequent partitions (if any) will start at a " "multiple of 2048 sectors." msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:329 msgid "" "1 MB alignment is compatible with all current alignment requirements (4K, " "64K) and provides room for future growth in physical block sizes." msgstr "" #. type: =head2 #: align/virt-alignment-scan.pod:332 msgid "SETTING ALIGNMENT" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:334 msgid "" "L can change the alignment of the partitions of some " "guests. Currently it can fully align all the partitions of all Windows " "guests, and it will fix the bootloader where necessary. For Linux guests, " "it can align the second and subsequent partitions, so the majority of OS " "accesses except at boot will be aligned." msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:340 msgid "" "Another way to correct partition alignment problems is to reinstall your " "guest operating systems. If you install operating systems from templates, " "ensure these have correct partition alignment too." msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:344 msgid "" "For older versions of Windows, the following NetApp document contains useful " "information: L" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:347 msgid "" "For Red Hat Enterprise Linux E 5, use a Kickstart script that contains " "an explicit C<%pre> section that creates aligned partitions using " "L. Do not use the Kickstart C command. The NetApp " "document above contains an example." msgstr "" #. type: =head1 #: align/virt-alignment-scan.pod:352 builder/virt-builder-repository.pod:202 #: builder/virt-builder.pod:1855 builder/virt-index-validate.pod:74 #: cat/virt-cat.pod:271 cat/virt-filesystems.pod:380 cat/virt-log.pod:132 #: cat/virt-ls.pod:514 cat/virt-tail.pod:232 customize/virt-customize.pod:251 #: df/virt-df.pod:253 diff/virt-diff.pod:244 drivers/virt-drivers.pod:229 #: edit/virt-edit.pod:379 format/virt-format.pod:183 #: get-kernel/virt-get-kernel.pod:196 inspector/virt-inspector.pod:489 #: resize/virt-resize.pod:843 sparsify/virt-sparsify.pod:451 #: sysprep/virt-sysprep.pod:569 msgid "EXIT STATUS" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:354 msgid "This program returns:" msgstr "" #. type: =item #: align/virt-alignment-scan.pod:358 align/virt-alignment-scan.pod:364 #: align/virt-alignment-scan.pod:370 align/virt-alignment-scan.pod:377 #: builder/virt-builder.pod:934 builder/virt-builder.pod:941 #: builder/virt-builder.pod:945 builder/virt-builder.pod:949 #: builder/virt-builder.pod:954 builder/virt-builder.pod:958 #: builder/virt-builder.pod:962 builder/virt-builder.pod:967 #: builder/virt-builder.pod:1141 builder/virt-builder.pod:1146 #: builder/virt-builder.pod:1719 builder/virt-builder.pod:1723 #: builder/virt-builder.pod:1727 builder/virt-index-validate.pod:32 #: builder/virt-index-validate.pod:37 builder/virt-index-validate.pod:51 #: builder/virt-index-validate.pod:56 cat/virt-cat.pod:217 cat/virt-cat.pod:222 #: cat/virt-cat.pod:227 cat/virt-cat.pod:238 cat/virt-cat.pod:242 #: cat/virt-tail.pod:25 cat/virt-tail.pod:29 cat/virt-tail.pod:34 #: cat/virt-tail.pod:201 cat/virt-tail.pod:206 cat/virt-tail.pod:211 #: cat/virt-tail.pod:222 cat/virt-tail.pod:226 #: common/mlcustomize/customize-options.pod:73 #: common/mlcustomize/customize-options.pod:78 #: common/mlcustomize/customize-options.pod:387 #: common/mlcustomize/customize-options.pod:391 #: common/mlcustomize/v2v-customize-options.pod:73 #: common/mlcustomize/v2v-customize-options.pod:78 #: common/mlcustomize/v2v-customize-options.pod:327 #: common/mlcustomize/v2v-customize-options.pod:331 #: docs/guestfs-tools-release-notes-1.50.pod:32 #: docs/guestfs-tools-release-notes-1.50.pod:36 #: docs/guestfs-tools-release-notes-1.50.pod:40 #: docs/guestfs-tools-release-notes-1.50.pod:44 edit/virt-edit.pod:303 #: edit/virt-edit.pod:308 edit/virt-edit.pod:313 edit/virt-edit.pod:324 #: edit/virt-edit.pod:328 inspector/virt-inspector.pod:508 #: inspector/virt-inspector.pod:512 resize/virt-resize.pod:376 #: resize/virt-resize.pod:380 resize/virt-resize.pod:389 #: resize/virt-resize.pod:395 resize/virt-resize.pod:399 #: resize/virt-resize.pod:403 resize/virt-resize.pod:411 #: sparsify/virt-sparsify.pod:46 sparsify/virt-sparsify.pod:50 #: sparsify/virt-sparsify.pod:59 sparsify/virt-sparsify.pod:64 #: sparsify/virt-sparsify.pod:69 sparsify/virt-sparsify.pod:75 #: sparsify/virt-sparsify.pod:137 sparsify/virt-sparsify.pod:141 #: sparsify/virt-sparsify.pod:145 sparsify/virt-sparsify.pod:150 #: sparsify/virt-sparsify.pod:289 sparsify/virt-sparsify.pod:294 #: sparsify/virt-sparsify.pod:299 sysprep/sysprep-extra-options.pod:48 #: sysprep/sysprep-extra-options.pod:53 sysprep/sysprep-extra-options.pod:436 #: sysprep/sysprep-extra-options.pod:440 sysprep/virt-sysprep.pod:325 #: sysprep/virt-sysprep.pod:329 sysprep/virt-sysprep.pod:333 #: sysprep/virt-sysprep.pod:337 sysprep/virt-sysprep.pod:352 #: sysprep/virt-sysprep.pod:356 sysprep/virt-sysprep.pod:360 #: sysprep/virt-sysprep.pod:364 sysprep/virt-sysprep.pod:368 #: sysprep/virt-sysprep.pod:421 sysprep/virt-sysprep.pod:433 #: sysprep/virt-sysprep.pod:437 sysprep/virt-sysprep.pod:445 #: sysprep/virt-sysprep.pod:451 win-reg/virt-win-reg.in:194 #: win-reg/virt-win-reg.in:199 win-reg/virt-win-reg.in:205 #: win-reg/virt-win-reg.in:774 win-reg/virt-win-reg.in:780 #: win-reg/virt-win-reg.in:786 msgid "*" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:360 msgid "0" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:362 msgid "successful exit, all partitions are aligned E 64K for best performance" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:366 msgid "1" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:368 msgid "an error scanning the disk image or guest" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:372 msgid "2" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:374 msgid "" "successful exit, some partitions have alignment E 64K which can result " "in poor performance on high end network storage" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:379 msgid "3" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:381 msgid "" "successful exit, some partitions have alignment E 4K which can result in " "poor performance on most hypervisors" msgstr "" #. type: =head1 #: align/virt-alignment-scan.pod:386 builder/virt-builder-repository.pod:207 #: builder/virt-builder.pod:1860 builder/virt-index-validate.pod:79 #: cat/virt-cat.pod:276 cat/virt-filesystems.pod:385 cat/virt-log.pod:137 #: cat/virt-ls.pod:519 cat/virt-tail.pod:237 customize/virt-customize.pod:291 #: df/virt-df.pod:258 diff/virt-diff.pod:249 #: docs/guestfs-tools-release-notes-1.48.pod:102 #: docs/guestfs-tools-release-notes-1.50.pod:160 #: docs/guestfs-tools-release-notes-1.52.pod:99 drivers/virt-drivers.pod:234 #: edit/virt-edit.pod:384 format/virt-format.pod:187 #: get-kernel/virt-get-kernel.pod:201 inspector/virt-inspector.pod:494 #: make-fs/virt-make-fs.pod:225 resize/virt-resize.pod:848 #: sparsify/virt-sparsify.pod:462 sysprep/virt-sysprep.pod:609 #: win-reg/virt-win-reg.in:805 msgid "SEE ALSO" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:388 msgid "" "L, L, L, L, " "L, L." msgstr "" #. type: =head1 #: align/virt-alignment-scan.pod:395 builder/virt-builder-repository.pod:212 #: builder/virt-builder.pod:1881 builder/virt-index-validate.pod:84 #: cat/virt-cat.pod:287 cat/virt-filesystems.pod:397 cat/virt-log.pod:148 #: cat/virt-ls.pod:529 cat/virt-tail.pod:248 df/virt-df.pod:267 #: diff/virt-diff.pod:259 drivers/virt-drivers.pod:244 edit/virt-edit.pod:395 #: format/virt-format.pod:197 get-kernel/virt-get-kernel.pod:210 #: make-fs/virt-make-fs.pod:239 resize/virt-resize.pod:873 #: sparsify/virt-sparsify.pod:475 win-reg/virt-win-reg.in:820 msgid "AUTHOR" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:397 builder/virt-builder.pod:1883 #: builder/virt-index-validate.pod:86 cat/virt-cat.pod:289 #: cat/virt-filesystems.pod:399 cat/virt-log.pod:150 cat/virt-ls.pod:531 #: cat/virt-tail.pod:250 customize/virt-customize.pod:310 df/virt-df.pod:269 #: diff/virt-diff.pod:261 drivers/virt-drivers.pod:246 edit/virt-edit.pod:397 #: format/virt-format.pod:199 get-kernel/virt-get-kernel.pod:212 #: inspector/virt-inspector.pod:510 make-fs/virt-make-fs.pod:241 #: resize/virt-resize.pod:875 sparsify/virt-sparsify.pod:477 #: sysprep/virt-sysprep.pod:628 win-reg/virt-win-reg.in:822 msgid "Richard W.M. Jones L" msgstr "" #. type: =head1 #: align/virt-alignment-scan.pod:399 builder/virt-builder-repository.pod:216 #: builder/virt-builder.pod:1885 builder/virt-index-validate.pod:88 #: cat/virt-cat.pod:291 cat/virt-filesystems.pod:401 cat/virt-log.pod:152 #: cat/virt-ls.pod:533 cat/virt-tail.pod:252 customize/virt-customize.pod:312 #: df/virt-df.pod:271 diff/virt-diff.pod:263 #: docs/guestfs-tools-release-notes-1.48.pod:128 #: docs/guestfs-tools-release-notes-1.50.pod:180 #: docs/guestfs-tools-release-notes-1.52.pod:121 drivers/virt-drivers.pod:248 #: edit/virt-edit.pod:399 format/virt-format.pod:201 #: get-kernel/virt-get-kernel.pod:214 inspector/virt-inspector.pod:518 #: make-fs/virt-make-fs.pod:243 resize/virt-resize.pod:877 #: sparsify/virt-sparsify.pod:479 sysprep/virt-sysprep.pod:632 #: win-reg/virt-win-reg.in:824 msgid "COPYRIGHT" msgstr "" #. type: textblock #: align/virt-alignment-scan.pod:401 msgid "Copyright (C) 2011 Red Hat Inc." msgstr "" #. type: =end #: builder/virt-builder-repository.pod:1 builder/virt-builder-repository.pod:6 #: builder/virt-builder.pod:1 builder/virt-builder.pod:6 msgid "html" msgstr "" #. type: verbatim #: builder/virt-builder-repository.pod:3 builder/virt-builder.pod:3 #, no-wrap msgid "" "\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:10 msgid "virt-builder-repository - Build virt-builder source repository easily" msgstr "" #. type: verbatim #: builder/virt-builder-repository.pod:14 #, no-wrap msgid "" " virt-builder-repository /path/to/repository\n" " [-i|--interactive] [--gpg-key KEYID]\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:19 msgid "" "Virt-builder is a tool for quickly building new virtual machines. It can be " "configured to use template repositories. However creating and maintaining a " "repository involves many tasks which can be automated. " "virt-builder-repository is a tool helping to manage these repositories." msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:24 msgid "" "Virt-builder-repository loops over the files in the directory specified as " "argument, compresses the files with a name ending by C, C, " "C or without extension, extracts data from them and creates or updates " "the C file." msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:29 msgid "" "Some of the image-related data needed for the index file can’t be computed " "from the image file. virt-builder-repository first tries to find them in the " "existing index file. If data are still missing after this, they are prompted " "in interactive mode, otherwise an error will be triggered." msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:35 msgid "" "If a C is provided, the generated index file will be signed with this " "GPG key." msgstr "" #. type: =head1 #: builder/virt-builder-repository.pod:38 builder/virt-builder.pod:49 #: cat/virt-cat.pod:30 cat/virt-log.pod:25 cat/virt-ls.pod:33 df/virt-df.pod:45 #: edit/virt-edit.pod:36 resize/virt-resize.pod:25 #: sparsify/virt-sparsify.pod:85 msgid "EXAMPLES" msgstr "" #. type: =head2 #: builder/virt-builder-repository.pod:40 msgid "Create the initial repository" msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:42 msgid "" "Create a folder and copy the disk image template files in it. Then run a " "command like the following one:" msgstr "" #. type: verbatim #: builder/virt-builder-repository.pod:45 #: builder/virt-builder-repository.pod:81 #, no-wrap msgid "" " virt-builder-repository --gpg-key \"joe@hacker.org\" -i /path/to/folder\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:47 msgid "" "Note that this example command runs in interactive mode. To run in automated " "mode, a minimal index file needs to be created before running the command " "containing sections like this one:" msgstr "" #. type: verbatim #: builder/virt-builder-repository.pod:51 #, no-wrap msgid "" " [template_id]\n" " file=template_filename.qcow.xz\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:54 msgid "" "The file value needs to match the image name extended with the C<.xz> suffix " "if the I<--no-compression> parameter is not provided or the image name if no " "compression is involved. Other optional data can be prefilled. Default " "values are computed by inspecting the disk image. For more informations, " "see L." msgstr "" #. type: =head2 #: builder/virt-builder-repository.pod:61 msgid "Update images in an existing repository" msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:63 msgid "" "In this use case, a new image or a new revision of an existing image needs " "to be added to the repository. Place the corresponding image template files " "in the repository folder." msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:67 msgid "" "To update the revision of an image, the file needs to have the same name " "than the existing one (without the C extension)." msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:70 msgid "" "As in the repository creation use case, a minimal fragment can be added to " "the index file for the automated mode. This can be done on the signed index " "even if it may sound a strange idea: the index will be signed again by the " "tool." msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:75 msgid "" "To remove an image from the repository, just remove the corresponding image " "file before running virt-builder-repository." msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:78 msgid "Then running the following command will complete and update the index file:" msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:83 msgid "" "virt-builder-repository works in a temporary folder inside the repository " "one. If anything wrong happens when running the tool, the repository is left " "untouched." msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:93 builder/virt-builder.pod:176 #: builder/virt-index-validate.pod:64 drivers/virt-drivers.pod:119 #: get-kernel/virt-get-kernel.pod:29 resize/virt-resize.pod:274 #: sparsify/virt-sparsify.pod:120 msgid "Display help." msgstr "" #. type: =item #: builder/virt-builder-repository.pod:95 builder/virt-builder.pod:312 msgid "B<--gpg> GPG" msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:97 msgid "" "Specify an alternate L (GNU Privacy Guard) binary. You can also use " "this to add gpg parameters, for example to specify an alternate home " "directory:" msgstr "" #. type: verbatim #: builder/virt-builder-repository.pod:101 #, no-wrap msgid "" " virt-builder-repository --gpg \"gpg --homedir /tmp\" [...]\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:103 msgid "This can also be used to avoid gpg asking for the key passphrase:" msgstr "" #. type: verbatim #: builder/virt-builder-repository.pod:105 #, no-wrap msgid "" " virt-builder-repository --gpg \"gpg --passphrase-file /tmp/pass --batch\" " "[...]\n" "\n" msgstr "" #. type: =item #: builder/virt-builder-repository.pod:107 msgid "B<-K> KEYID" msgstr "" #. type: =item #: builder/virt-builder-repository.pod:109 msgid "B<--gpg-key> KEYID" msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:111 msgid "" "Specify the GPG key to be used to sign the repository index file. If not " "provided, the index will left unsigned. C is used to identify the GPG " "key to use. This value is passed to gpg’s I<--default-key> option and can " "thus be an email address or a fingerprint." msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:117 msgid "" "B: by default, virt-builder-repository searches for the key in the " "user’s GPG keyring." msgstr "" #. type: =item #: builder/virt-builder-repository.pod:120 df/virt-df.pod:153 msgid "B<-i>" msgstr "" #. type: =item #: builder/virt-builder-repository.pod:122 msgid "B<--interactive>" msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:124 msgid "Prompt for missing data. Default values are computed from the disk image." msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:127 msgid "" "When prompted for data, inputting C<-> corresponds to leaving the value " "empty. This can be used to avoid setting the default computed value." msgstr "" #. type: =item #: builder/virt-builder-repository.pod:130 msgid "B<--no-compression>" msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:132 msgid "Don’t compress the template images." msgstr "" #. type: =item #: builder/virt-builder-repository.pod:134 builder/virt-builder.pod:364 #: get-kernel/virt-get-kernel.pod:104 resize/virt-resize.pod:462 #: sparsify/virt-sparsify.pod:237 msgid "B<--machine-readable>" msgstr "" #. type: =item #: builder/virt-builder-repository.pod:136 builder/virt-builder.pod:366 #: get-kernel/virt-get-kernel.pod:106 resize/virt-resize.pod:464 #: sparsify/virt-sparsify.pod:239 msgid "B<--machine-readable>=format" msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:138 builder/virt-builder.pod:368 #: get-kernel/virt-get-kernel.pod:108 resize/virt-resize.pod:466 #: sparsify/virt-sparsify.pod:241 msgid "" "This option is used to make the output more machine friendly when being " "parsed by other programs. See L below." msgstr "" #. type: =item #: builder/virt-builder-repository.pod:142 builder/virt-builder.pod:238 #: customize/virt-customize.pod:77 drivers/virt-drivers.pod:145 #: get-kernel/virt-get-kernel.pod:55 resize/virt-resize.pod:332 #: sparsify/virt-sparsify.pod:158 sysprep/virt-sysprep.pod:60 msgid "B<--colors>" msgstr "" #. type: =item #: builder/virt-builder-repository.pod:144 builder/virt-builder.pod:240 #: customize/virt-customize.pod:79 drivers/virt-drivers.pod:147 #: get-kernel/virt-get-kernel.pod:57 resize/virt-resize.pod:334 #: sparsify/virt-sparsify.pod:160 sysprep/virt-sysprep.pod:62 msgid "B<--colours>" msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:146 builder/virt-builder.pod:242 #: customize/virt-customize.pod:81 drivers/virt-drivers.pod:149 #: get-kernel/virt-get-kernel.pod:59 resize/virt-resize.pod:336 #: sparsify/virt-sparsify.pod:162 sysprep/virt-sysprep.pod:64 msgid "" "Use ANSI colour sequences to colourize messages. This is the default when " "the output is a tty. If the output of the program is redirected to a file, " "ANSI colour sequences are disabled unless you use this option." msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:155 builder/virt-builder.pod:475 #: drivers/virt-drivers.pod:198 get-kernel/virt-get-kernel.pod:136 msgid "Don’t print ordinary progress messages." msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:161 builder/virt-builder.pod:522 msgid "Enable debug messages and/or produce verbose output." msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:163 builder/virt-builder.pod:524 msgid "" "When reporting bugs, use this option and attach the complete output to your " "bug report." msgstr "" #. type: =item #: builder/virt-builder-repository.pod:172 builder/virt-builder.pod:533 #: customize/virt-customize.pod:227 drivers/virt-drivers.pod:212 #: get-kernel/virt-get-kernel.pod:161 resize/virt-resize.pod:634 #: sparsify/virt-sparsify.pod:320 sysprep/virt-sysprep.pod:265 msgid "B<--wrap>" msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:174 builder/virt-builder.pod:535 #: customize/virt-customize.pod:229 drivers/virt-drivers.pod:214 #: get-kernel/virt-get-kernel.pod:163 resize/virt-resize.pod:636 #: sparsify/virt-sparsify.pod:322 sysprep/virt-sysprep.pod:267 msgid "" "Wrap error, warning, and informative messages. This is the default when the " "output is a tty. If the output of the program is redirected to a file, " "wrapping is disabled unless you use this option." msgstr "" #. type: =head1 #: builder/virt-builder-repository.pod:184 builder/virt-builder.pod:1767 #: get-kernel/virt-get-kernel.pod:173 resize/virt-resize.pod:646 #: sparsify/virt-sparsify.pod:360 msgid "MACHINE READABLE OUTPUT" msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:186 msgid "" "The I<--machine-readable> option can be used to make the output more machine " "friendly, which is useful when calling virt-builder-repository from other " "programs, GUIs etc." msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:190 msgid "" "Use the option on its own to query the capabilities of the " "virt-builder-repository binary. Typical output looks like this:" msgstr "" #. type: verbatim #: builder/virt-builder-repository.pod:193 #, no-wrap msgid "" " $ virt-builder-repository --machine-readable\n" " virt-builder-repository\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:196 builder/virt-builder.pod:1784 #: get-kernel/virt-get-kernel.pod:185 resize/virt-resize.pod:664 #: sparsify/virt-sparsify.pod:376 msgid "" "A list of features is printed, one per line, and the program exits with " "status 0." msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:199 builder/virt-builder.pod:1787 #: get-kernel/virt-get-kernel.pod:188 resize/virt-resize.pod:698 #: sparsify/virt-sparsify.pod:410 msgid "" "It is possible to specify a format string for controlling the output; see " "L." msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:204 builder/virt-builder.pod:1857 #: cat/virt-cat.pod:273 cat/virt-filesystems.pod:382 cat/virt-log.pod:134 #: cat/virt-ls.pod:516 cat/virt-tail.pod:234 df/virt-df.pod:255 #: diff/virt-diff.pod:246 drivers/virt-drivers.pod:231 edit/virt-edit.pod:381 #: get-kernel/virt-get-kernel.pod:198 inspector/virt-inspector.pod:491 #: resize/virt-resize.pod:845 msgid "This program returns 0 if successful, or non-zero if there was an error." msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:209 msgid "L L." msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:214 msgid "Cédric Bosdonnat L" msgstr "" #. type: textblock #: builder/virt-builder-repository.pod:218 msgid "Copyright (C) 2016-2023 SUSE Inc." msgstr "" #. type: textblock #: builder/virt-builder.pod:10 msgid "virt-builder - Build virtual machine images quickly" msgstr "" #. type: verbatim #: builder/virt-builder.pod:14 #, no-wrap msgid "" " virt-builder os-version\n" " [-o|--output DISKIMAGE] [--size SIZE] [--format raw|qcow2]\n" " [--arch ARCHITECTURE] [--attach ISOFILE]\n" "__CUSTOMIZE_SYNOPSIS__\n" "\n" msgstr "" #. type: verbatim #: builder/virt-builder.pod:19 #, no-wrap msgid "" " virt-builder -l|--list [--long] [--list-format short|long|json] " "[os-version]\n" "\n" msgstr "" #. type: verbatim #: builder/virt-builder.pod:21 #, no-wrap msgid "" " virt-builder --notes os-version\n" "\n" msgstr "" #. type: verbatim #: builder/virt-builder.pod:23 builder/virt-builder.pod:1552 #, no-wrap msgid "" " virt-builder --print-cache\n" "\n" msgstr "" #. type: verbatim #: builder/virt-builder.pod:25 builder/virt-builder.pod:1560 #, no-wrap msgid "" " virt-builder --cache-all-templates\n" "\n" msgstr "" #. type: verbatim #: builder/virt-builder.pod:27 builder/virt-builder.pod:1556 #, no-wrap msgid "" " virt-builder --delete-cache\n" "\n" msgstr "" #. type: verbatim #: builder/virt-builder.pod:29 #, no-wrap msgid "" " virt-builder --get-kernel DISKIMAGE\n" " [--format raw|qcow2] [--output OUTPUTDIR]\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:34 msgid "" "Virt-builder is a tool for quickly building new virtual machines. You can " "build a variety of VMs for local or cloud use, usually within a few minutes " "or less. Virt-builder also has many ways to customize these VMs. " "Everything is run from the command line and nothing requires root " "privileges, so automation and scripting is simple." msgstr "" #. type: textblock #: builder/virt-builder.pod:40 msgid "" "Note that virt-builder does not install guests from scratch. It takes " "cleanly prepared, digitally signed OS templates and customizes them. This " "approach is used because it is much faster, but if you need to do fresh " "installs you may want to look at L and L." msgstr "" #. type: textblock #: builder/virt-builder.pod:46 msgid "" "The easiest way to get started is by looking at the examples in the next " "section." msgstr "" #. type: =head2 #: builder/virt-builder.pod:51 msgid "List the virtual machines available" msgstr "" #. type: verbatim #: builder/virt-builder.pod:53 #, no-wrap msgid "" " virt-builder --list\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:55 msgid "" "will list out the operating systems available to install. A selection of " "freely redistributable OSes is available as standard. You can add your own " "too (see below)." msgstr "" #. type: textblock #: builder/virt-builder.pod:59 msgid "" "After choosing a guest from the list, you may want to see if there are any " "installation notes:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:62 #, no-wrap msgid "" " virt-builder --notes fedora-27\n" "\n" msgstr "" #. type: =head2 #: builder/virt-builder.pod:64 msgid "Build a virtual machine" msgstr "" #. type: verbatim #: builder/virt-builder.pod:66 #, no-wrap msgid "" " virt-builder fedora-27\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:68 msgid "" "will build a Fedora 25 image for the same architecture as virt-builder (so " "running it from an i686 installation will try to build an i686 image, if " "available). This will have all default configuration (minimal size, no user " "accounts, random root password, only the bare minimum installed software, " "etc.)." msgstr "" #. type: textblock #: builder/virt-builder.pod:74 msgid "You I need to run this command as root." msgstr "" #. type: textblock #: builder/virt-builder.pod:76 msgid "" "The first time this runs it has to download the template over the network, " "but this gets cached (see L)." msgstr "" #. type: textblock #: builder/virt-builder.pod:79 msgid "" "The name of the output file is derived from the template name, so above it " "will be F. You can change the output filename using the " "I<-o> option:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:83 #, no-wrap msgid "" " virt-builder fedora-27 -o mydisk.img\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:85 msgid "" "You can also use the I<-o> option to write to existing devices or logical " "volumes." msgstr "" #. type: verbatim #: builder/virt-builder.pod:88 #, no-wrap msgid "" " virt-builder fedora-27 --format qcow2\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:90 msgid "As above, but write the output in qcow2 format to F." msgstr "" #. type: verbatim #: builder/virt-builder.pod:92 #, no-wrap msgid "" " virt-builder fedora-27 --size 20G\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:94 msgid "" "As above, but the output size will be 20 GB. The guest OS is resized as it " "is copied to the output (automatically, using L)." msgstr "" #. type: verbatim #: builder/virt-builder.pod:98 #, no-wrap msgid "" " virt-builder fedora-27 --arch i686\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:100 msgid "As above, but using an i686 template, if available." msgstr "" #. type: =head2 #: builder/virt-builder.pod:102 msgid "Setting the root password" msgstr "" #. type: verbatim #: builder/virt-builder.pod:104 #, no-wrap msgid "" " virt-builder fedora-27 --root-password file:/tmp/rootpw\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:106 msgid "" "Create a Fedora 25 image. The root password is taken from the file " "F." msgstr "" #. type: textblock #: builder/virt-builder.pod:109 msgid "" "Note if you I set I<--root-password> then the guest is given a " "I root password which is printed on stdout." msgstr "" #. type: textblock #: builder/virt-builder.pod:112 msgid "You can also create user accounts. See L below." msgstr "" #. type: =head2 #: builder/virt-builder.pod:114 msgid "Set the hostname" msgstr "" #. type: verbatim #: builder/virt-builder.pod:116 #, no-wrap msgid "" " virt-builder fedora-27 --hostname virt.example.com\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:118 msgid "Set the hostname to C." msgstr "" #. type: =head2 #: builder/virt-builder.pod:120 msgid "Installing software" msgstr "" #. type: textblock #: builder/virt-builder.pod:122 msgid "" "To install packages from the ordinary (guest) software repository (eg. dnf " "or apt):" msgstr "" #. type: verbatim #: builder/virt-builder.pod:125 #, no-wrap msgid "" " virt-builder fedora-27 --install \"inkscape,@Xfce Desktop\"\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:127 msgid "" "(In Fedora, C<@> is used to install groups of packages. On Debian you would " "install a meta-package instead.)" msgstr "" #. type: textblock #: builder/virt-builder.pod:130 msgid "To update the installed packages to the latest version:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:132 #, no-wrap msgid "" " virt-builder debian-7 --update\n" "\n" msgstr "" #. type: =head2 #: builder/virt-builder.pod:134 msgid "Customizing the installation" msgstr "" #. type: textblock #: builder/virt-builder.pod:136 msgid "" "There are many options that let you customize the installation. These " "include: I<--run>/I<--run-command>, which run a shell script or command " "while the disk image is being generated and lets you add or edit files that " "go into the disk image. I<--firstboot>/I<--firstboot-command>, which let " "you add scripts/commands that are run the first time the guest boots. " "I<--edit> to edit files. I<--upload> to upload files." msgstr "" #. type: verbatim #: builder/virt-builder.pod:146 #, no-wrap msgid "" " cat <<'EOF' > /tmp/dnf-update.sh\n" " dnf -y --best update\n" " EOF\n" " \n" msgstr "" #. type: verbatim #: builder/virt-builder.pod:150 #, no-wrap msgid "" " virt-builder fedora-27 --firstboot /tmp/dnf-update.sh\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:152 msgid "or simply:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:154 #, no-wrap msgid "" " virt-builder fedora-27 --firstboot-command 'dnf -y --best update'\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:156 msgid "" "which makes the L C command run once the first time the " "guest boots." msgstr "" #. type: textblock #: builder/virt-builder.pod:159 msgid "Or:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:161 #, no-wrap msgid "" " virt-builder fedora-27 \\\n" " --edit '/etc/dnf/dnf.conf:\n" " s/gpgcheck=1/gpgcheck=0/'\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:165 msgid "" "which edits F inside the disk image (during disk image " "creation, long before boot)." msgstr "" #. type: textblock #: builder/virt-builder.pod:168 msgid "You can combine these options, and have multiple options of all types." msgstr "" #. type: =item #: builder/virt-builder.pod:178 msgid "B<--arch> ARCHITECTURE" msgstr "" #. type: textblock #: builder/virt-builder.pod:180 msgid "" "Use the specified architecture for the output image. This means there must " "be sources providing the requested template for the requested architecture." msgstr "" #. type: textblock #: builder/virt-builder.pod:184 msgid "See also L." msgstr "" #. type: =item #: builder/virt-builder.pod:186 customize/virt-customize.pod:56 msgid "B<--attach> ISOFILE" msgstr "" #. type: textblock #: builder/virt-builder.pod:188 msgid "" "During the customization phase, the given disk is attached to the libguestfs " "appliance. This is used to provide extra software repositories or other " "data for customization." msgstr "" #. type: textblock #: builder/virt-builder.pod:192 customize/virt-customize.pod:62 msgid "" "You probably want to ensure the volume(s) or filesystems in the attached " "disks are labelled (or use an ISO volume name) so that you can mount them by " "label in your run-scripts:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:196 customize/virt-customize.pod:66 #, no-wrap msgid "" " mkdir /tmp/mount\n" " mount LABEL=EXTRA /tmp/mount\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:199 customize/virt-customize.pod:69 msgid "" "You can have multiple I<--attach> options, and the format can be any disk " "format (not just an ISO)." msgstr "" #. type: textblock #: builder/virt-builder.pod:202 msgid "" "See also: I<--run>, L, L, L." msgstr "" #. type: =item #: builder/virt-builder.pod:206 customize/virt-customize.pod:72 msgid "B<--attach-format> FORMAT" msgstr "" #. type: textblock #: builder/virt-builder.pod:208 customize/virt-customize.pod:74 msgid "" "Specify the disk format for the next I<--attach> option. The C is " "usually C or C. Use C for ISOs." msgstr "" #. type: =item #: builder/virt-builder.pod:211 msgid "B<--cache> DIR" msgstr "" #. type: =item #: builder/virt-builder.pod:213 msgid "B<--no-cache>" msgstr "" #. type: textblock #: builder/virt-builder.pod:215 msgid "" "I<--cache> DIR sets the directory to use/check for cached template files. " "If not set, defaults to either F<$XDG_CACHE_HOME/virt-builder/> or " "F<$HOME/.cache/virt-builder/>." msgstr "" #. type: textblock #: builder/virt-builder.pod:219 msgid "I<--no-cache> disables template caching." msgstr "" #. type: =item #: builder/virt-builder.pod:221 msgid "B<--cache-all-templates>" msgstr "" #. type: textblock #: builder/virt-builder.pod:223 msgid "Download all templates to the cache and then exit. See L." msgstr "" #. type: textblock #: builder/virt-builder.pod:225 msgid "" "Note this doesn't cache everything. More templates might be uploaded. Also " "this doesn't cache packages (the I<--install>, I<--update> options)." msgstr "" #. type: =item #: builder/virt-builder.pod:228 msgid "B<--check-signature>" msgstr "" #. type: =item #: builder/virt-builder.pod:230 msgid "B<--no-check-signature>" msgstr "" #. type: textblock #: builder/virt-builder.pod:232 msgid "" "Check/don’t check the digital signature of the OS template. The default is " "to check the signature and exit if it is not correct. Using " "I<--no-check-signature> bypasses this check." msgstr "" #. type: textblock #: builder/virt-builder.pod:236 msgid "See also I<--fingerprint>." msgstr "" #. type: =item #: builder/virt-builder.pod:247 msgid "B<--curl> CURL" msgstr "" #. type: textblock #: builder/virt-builder.pod:249 msgid "" "Specify an alternate L binary. You can also use this to add curl " "parameters, for example to disable https certificate checks:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:252 #, no-wrap msgid "" " virt-builder --curl \"curl --insecure\" [...]\n" "\n" msgstr "" #. type: =item #: builder/virt-builder.pod:254 msgid "B<--delete-cache>" msgstr "" #. type: textblock #: builder/virt-builder.pod:256 msgid "Delete the template cache. See L." msgstr "" #. type: =item #: builder/virt-builder.pod:258 msgid "B<--no-delete-on-failure>" msgstr "" #. type: textblock #: builder/virt-builder.pod:260 msgid "" "Don’t delete the output file on failure to build. You can use this to debug " "failures to run scripts. See L for ways to debug images." msgstr "" #. type: textblock #: builder/virt-builder.pod:264 msgid "" "The default is to delete the output file if virt-builder fails (or, for " "example, some script that it runs fails)." msgstr "" #. type: =item #: builder/virt-builder.pod:267 msgid "B<--fingerprint> 'AAAA BBBB ...'" msgstr "" #. type: textblock #: builder/virt-builder.pod:269 msgid "" "Check that the index and templates are signed by the key with the given " "fingerprint. (The fingerprint is a long string, usually written as 10 " "groups of 4 hexadecimal digits)." msgstr "" #. type: textblock #: builder/virt-builder.pod:273 msgid "" "You can give this option multiple times. If you have multiple source URLs, " "then you can have either no fingerprint, one fingerprint or multiple " "fingerprints. If you have multiple, then each must correspond 1-1 with a " "source URL." msgstr "" #. type: =item #: builder/virt-builder.pod:278 sparsify/virt-sparsify.pod:204 msgid "B<--format> qcow2" msgstr "" #. type: =item #: builder/virt-builder.pod:280 sparsify/virt-sparsify.pod:202 #: win-reg/virt-win-reg.in:139 msgid "B<--format> raw" msgstr "" #. type: textblock #: builder/virt-builder.pod:282 msgid "For ordinary builds, this selects the output format. The default is I." msgstr "" #. type: textblock #: builder/virt-builder.pod:284 msgid "With I<--get-kernel> this specifies the input format." msgstr "" #. type: textblock #: builder/virt-builder.pod:286 msgid "" "To create an old-style qcow2 file (for compatibility with RHEL 6 or very old " "qemu E 1.1), after running virt-builder, use this command:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:290 #, no-wrap msgid "" " qemu-img amend -f qcow2 -o compat=0.10 output.qcow2\n" "\n" msgstr "" #. type: =item #: builder/virt-builder.pod:292 msgid "B<--get-kernel> IMAGE" msgstr "" #. type: textblock #: builder/virt-builder.pod:294 msgid "" "This option extracts the kernel and initramfs from a previously built disk " "image called C (in fact it works for any VM disk image, not just ones " "built using virt-builder)." msgstr "" #. type: textblock #: builder/virt-builder.pod:298 msgid "" "Note this method is B: there is a separate tool for this, " "L, which has more options for the file extraction." msgstr "" #. type: textblock #: builder/virt-builder.pod:301 msgid "" "The kernel and initramfs are written to the current directory, unless you " "also specify the I<--output> C B name." msgstr "" #. type: textblock #: builder/virt-builder.pod:304 get-kernel/virt-get-kernel.pod:15 msgid "" "The format of the disk image is automatically detected unless you specify it " "by using the I<--format> option." msgstr "" #. type: textblock #: builder/virt-builder.pod:307 msgid "" "In the case where the guest contains multiple kernels, the one with the " "highest version number is chosen. To extract arbitrary kernels from the " "disk image, see L. To extract the entire F directory " "of a guest, see L." msgstr "" #. type: textblock #: builder/virt-builder.pod:314 msgid "" "Specify an alternate L (GNU Privacy Guard) binary. By default " "virt-builder looks for either C or C in the C<$PATH>." msgstr "" #. type: textblock #: builder/virt-builder.pod:317 msgid "" "You can also use this to add gpg parameters, for example to specify an " "alternate home directory:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:320 #, no-wrap msgid "" " virt-builder --gpg \"gpg --homedir /tmp\" [...]\n" "\n" msgstr "" #. type: =item #: builder/virt-builder.pod:322 msgid "B<-l> [os-version]" msgstr "" #. type: =item #: builder/virt-builder.pod:324 msgid "B<--list> [os-version]" msgstr "" #. type: =item #: builder/virt-builder.pod:326 msgid "B<--list> B<--list-format> format [os-version]" msgstr "" #. type: =item #: builder/virt-builder.pod:328 msgid "B<--list> B<--long> [os-version]" msgstr "" #. type: textblock #: builder/virt-builder.pod:330 msgid "" "List all the available templates if no guest is specified, or only for the " "specified one." msgstr "" #. type: textblock #: builder/virt-builder.pod:333 msgid "" "It is possible to choose with I<--list-format> the output format for the " "list templates:" msgstr "" #. type: =item #: builder/virt-builder.pod:338 msgid "B" msgstr "" #. type: textblock #: builder/virt-builder.pod:340 msgid "" "The default format, prints only the template identifier and, next to it, its " "short description." msgstr "" #. type: =item #: builder/virt-builder.pod:343 msgid "B" msgstr "" #. type: textblock #: builder/virt-builder.pod:345 msgid "" "Prints a textual list with the details of the available sources, followed by " "the details of the available templates." msgstr "" #. type: =item #: builder/virt-builder.pod:348 msgid "B" msgstr "" #. type: textblock #: builder/virt-builder.pod:350 msgid "" "Prints a JSON object with the details of the available sources and the " "details of the available templates." msgstr "" #. type: textblock #: builder/virt-builder.pod:353 msgid "" "The C key in the main object represents the \"compatibility " "version\", and it is bumped every time the resulting JSON output is " "incompatible with the previous versions (for example the structure has " "changed, or non-optional keys are no more present)." msgstr "" #. type: textblock #: builder/virt-builder.pod:360 msgid "I<--long> is a shorthand for the C format." msgstr "" #. type: textblock #: builder/virt-builder.pod:362 msgid "See also: I<--source>, I<--notes>, L." msgstr "" #. type: =item #: builder/virt-builder.pod:372 customize/virt-customize.pod:145 msgid "B<-m> MB" msgstr "" #. type: =item #: builder/virt-builder.pod:374 customize/virt-customize.pod:147 msgid "B<--memsize> MB" msgstr "" #. type: textblock #: builder/virt-builder.pod:376 customize/virt-customize.pod:149 msgid "" "Change the amount of memory allocated to I<--run> scripts. Increase this if " "you find that I<--run> scripts or the I<--install> option are running out of " "memory." msgstr "" #. type: textblock #: builder/virt-builder.pod:380 customize/virt-customize.pod:153 msgid "The default can be found with this command:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:382 customize/virt-customize.pod:155 #, no-wrap msgid "" " guestfish get-memsize\n" "\n" msgstr "" #. type: =item #: builder/virt-builder.pod:384 customize/virt-customize.pod:157 #: sysprep/virt-sysprep.pod:240 msgid "B<--network>" msgstr "" #. type: =item #: builder/virt-builder.pod:386 customize/virt-customize.pod:159 #: sysprep/virt-sysprep.pod:242 msgid "B<--no-network>" msgstr "" #. type: textblock #: builder/virt-builder.pod:388 customize/virt-customize.pod:161 #: sysprep/virt-sysprep.pod:244 msgid "Enable or disable network access from the guest during the installation." msgstr "" #. type: textblock #: builder/virt-builder.pod:390 customize/virt-customize.pod:163 msgid "Enabled is the default. Use I<--no-network> to disable access." msgstr "" #. type: textblock #: builder/virt-builder.pod:392 customize/virt-customize.pod:165 msgid "" "The network only allows outgoing connections and has other minor " "limitations. See L." msgstr "" #. type: textblock #: builder/virt-builder.pod:395 customize/virt-customize.pod:168 msgid "" "If you use I<--no-network> then certain other options such as I<--install> " "will not work." msgstr "" #. type: textblock #: builder/virt-builder.pod:398 msgid "" "This does not affect whether the guest can access the network once it has " "been booted, because that is controlled by your hypervisor or cloud " "environment and has nothing to do with virt-builder." msgstr "" #. type: textblock #: builder/virt-builder.pod:402 customize/virt-customize.pod:175 msgid "" "Generally speaking you should I use I<--no-network>. But here are some " "reasons why you might want to:" msgstr "" #. type: =item #: builder/virt-builder.pod:407 builder/virt-builder.pod:988 #: customize/virt-customize.pod:180 resize/virt-resize.pod:29 #: resize/virt-resize.pod:674 resize/virt-resize.pod:790 #: sparsify/virt-sparsify.pod:386 msgid "1." msgstr "" #. type: textblock #: builder/virt-builder.pod:409 customize/virt-customize.pod:182 msgid "" "Because the libguestfs backend that you are using doesn't support the " "network. (See: L)." msgstr "" #. type: =item #: builder/virt-builder.pod:412 builder/virt-builder.pod:993 #: customize/virt-customize.pod:185 resize/virt-resize.pod:43 #: resize/virt-resize.pod:681 resize/virt-resize.pod:808 #: sparsify/virt-sparsify.pod:393 msgid "2." msgstr "" #. type: textblock #: builder/virt-builder.pod:414 customize/virt-customize.pod:187 msgid "" "Any software you need to install comes from an attached ISO, so you don't " "need the network." msgstr "" #. type: =item #: builder/virt-builder.pod:417 builder/virt-builder.pod:1003 #: customize/virt-customize.pod:190 resize/virt-resize.pod:51 #: resize/virt-resize.pod:687 sparsify/virt-sparsify.pod:399 msgid "3." msgstr "" #. type: textblock #: builder/virt-builder.pod:419 msgid "" "You don’t want untrusted guest code trying to access your host network when " "running virt-builder. This is particularly an issue when you don't trust " "the source of the operating system templates. (See L below)." msgstr "" #. type: =item #: builder/virt-builder.pod:424 customize/virt-customize.pod:197 #: resize/virt-resize.pod:60 msgid "4." msgstr "" #. type: textblock #: builder/virt-builder.pod:426 customize/virt-customize.pod:199 msgid "You don’t have a host network (eg. in secure/restricted environments)." msgstr "" #. type: =item #: builder/virt-builder.pod:430 msgid "B<--no-sync>" msgstr "" #. type: textblock #: builder/virt-builder.pod:432 msgid "Do not sync the output file on exit." msgstr "" #. type: textblock #: builder/virt-builder.pod:434 msgid "Virt-builder Cs the output file or disk image when it exits." msgstr "" #. type: textblock #: builder/virt-builder.pod:436 msgid "" "The reason is that qemu/KVM’s default caching mode is C or " "C, both of which bypass the host page cache. Therefore these " "would not work correctly if you immediately started the guest after running " "virt-builder - they would not see the complete output file. (Note that you " "should not use these caching modes - they are fundamentally broken for this " "and other reasons.)" msgstr "" #. type: textblock #: builder/virt-builder.pod:443 msgid "" "If you are not using these broken caching modes, you can use I<--no-sync> to " "avoid this unnecessary sync and gain considerable extra performance." msgstr "" #. type: =item #: builder/virt-builder.pod:447 msgid "B<--notes> os-version" msgstr "" #. type: textblock #: builder/virt-builder.pod:449 msgid "" "List any notes associated with this guest, then exit (this does not do the " "install)." msgstr "" #. type: =item #: builder/virt-builder.pod:452 msgid "B<-o> filename" msgstr "" #. type: =item #: builder/virt-builder.pod:454 msgid "B<--output> filename" msgstr "" #. type: textblock #: builder/virt-builder.pod:456 msgid "" "Write the output to F. If you don’t specify this option, then the " "output filename is generated by taking the C string and adding " "C<.img> (for raw format) or C<.qcow2> (for qcow2 format)." msgstr "" #. type: textblock #: builder/virt-builder.pod:461 msgid "" "Note that the output filename could be a device, partition or logical " "volume." msgstr "" #. type: textblock #: builder/virt-builder.pod:464 msgid "When used with I<--get-kernel>, this option specifies the output directory." msgstr "" #. type: =item #: builder/virt-builder.pod:467 msgid "B<--print-cache>" msgstr "" #. type: textblock #: builder/virt-builder.pod:469 msgid "Print information about the template cache. See L." msgstr "" #. type: =item #: builder/virt-builder.pod:477 msgid "B<--size> SIZE" msgstr "" #. type: textblock #: builder/virt-builder.pod:479 msgid "" "Select the size of the output disk, where the size can be specified using " "common names such as C<32G> (32 gigabytes) etc." msgstr "" #. type: textblock #: builder/virt-builder.pod:482 msgid "Virt-builder will resize filesystems inside the disk image automatically." msgstr "" #. type: textblock #: builder/virt-builder.pod:485 msgid "" "If the size is not specified, then one of two things happens. If the output " "is a file, then the size is the same as the template. If the output is a " "device, partition, etc then the size of that device is used." msgstr "" #. type: textblock #: builder/virt-builder.pod:490 msgid "" "To specify size in bytes, the number must be followed by the lowercase " "letter I, eg: S>." msgstr "" #. type: =item #: builder/virt-builder.pod:493 customize/virt-customize.pod:211 msgid "B<--smp> N" msgstr "" #. type: textblock #: builder/virt-builder.pod:495 customize/virt-customize.pod:213 msgid "Enable N E 2 virtual CPUs for I<--run> scripts to use." msgstr "" #. type: =item #: builder/virt-builder.pod:497 msgid "B<--source> URL" msgstr "" #. type: textblock #: builder/virt-builder.pod:499 msgid "Set the source URL to look for indexes." msgstr "" #. type: textblock #: builder/virt-builder.pod:501 msgid "You can give this option multiple times to specify multiple sources." msgstr "" #. type: textblock #: builder/virt-builder.pod:503 msgid "See also L below." msgstr "" #. type: textblock #: builder/virt-builder.pod:505 msgid "" "Note that you should not point I<--source> to sources that you don’t trust " "(unless the source is signed by someone you do trust). See also the " "I<--no-network> option." msgstr "" #. type: =item #: builder/virt-builder.pod:509 msgid "B<--no-warn-if-partition>" msgstr "" #. type: textblock #: builder/virt-builder.pod:511 msgid "" "Do not emit a warning if the output device is a partition. This warning " "avoids a common user error when writing to a USB key or external drive, when " "you should normally write to the whole device (S>), not " "to a partition on the device (S>). Use this option to " "I this warning." msgstr "" #. type: =head2 #: builder/virt-builder.pod:545 customize/virt-customize.pod:239 msgid "Customization options" msgstr "" #. type: textblock #: builder/virt-builder.pod:547 customize/virt-customize.pod:241 msgid "__CUSTOMIZE_OPTIONS__" msgstr "" #. type: =head1 #: builder/virt-builder.pod:549 msgid "REFERENCE" msgstr "" #. type: =head2 #: builder/virt-builder.pod:551 msgid "INSTALLING PACKAGES" msgstr "" #. type: textblock #: builder/virt-builder.pod:553 msgid "" "There are several approaches to installing packages or applications in the " "guest which have different trade-offs." msgstr "" #. type: =head3 #: builder/virt-builder.pod:556 msgid "Installing packages at build time" msgstr "" #. type: textblock #: builder/virt-builder.pod:558 msgid "" "If the guest OS you are installing is similar to the host OS (eg. both are " "Linux), and if libguestfs supports network connections, then you can use " "I<--install> to install packages like this:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:562 #, no-wrap msgid "" " virt-builder fedora-27 --install inkscape\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:564 msgid "This uses the guest’s package manager and the host’s network connection." msgstr "" #. type: =head3 #: builder/virt-builder.pod:567 msgid "Updating packages at build time" msgstr "" #. type: textblock #: builder/virt-builder.pod:569 msgid "To update the installed packages in the template at build time:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:571 #, no-wrap msgid "" " virt-builder fedora-27 --update\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:573 msgid "" "Most of the templates that ship with virt-builder come with a very minimal " "selection of packages (known as a \"JEOS\" or \"Just Enough Operating " "System\"), which are up to date at the time the template is created, but " "could be out of date by the time you come to install an OS from the " "template. This option updates those template packages." msgstr "" #. type: =head3 #: builder/virt-builder.pod:579 msgid "Installing packages at first boot" msgstr "" #. type: textblock #: builder/virt-builder.pod:581 msgid "Another option is to install the packages when the guest first boots:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:583 #, no-wrap msgid "" " virt-builder fedora-27 --firstboot-install inkscape\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:585 msgid "This uses the guest’s package manager and the guest’s network connection." msgstr "" #. type: textblock #: builder/virt-builder.pod:588 msgid "" "The downsides are that it will take the guest a lot longer to boot first " "time, and there’s nothing much you can do if package installation fails " "(eg. if a network problem means the guest can't reach the package " "repositories)." msgstr "" #. type: =head3 #: builder/virt-builder.pod:593 msgid "Installing packages at build time from a side repository" msgstr "" #. type: textblock #: builder/virt-builder.pod:595 msgid "" "If the software you want to install is not available in the main package " "repository of the guest, then you can add a side repository. Usually this " "is presented as an ISO (CD disk image) file containing extra packages." msgstr "" #. type: textblock #: builder/virt-builder.pod:600 msgid "" "You can create the disk image using either L or " "L. For genisoimage, use a command like this:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:603 #, no-wrap msgid "" " genisoimage -o extra-packages.iso -R -J -V EXTRA cdcontents/\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:605 msgid "" "Create a script that mounts the ISO and sets up the repository. For dnf, " "create /tmp/install.sh containing:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:608 builder/virt-builder.pod:622 #, no-wrap msgid "" " mkdir /tmp/mount\n" " mount LABEL=EXTRA /tmp/mount\n" " \n" msgstr "" #. type: verbatim #: builder/virt-builder.pod:611 #, no-wrap msgid "" " cat <<'EOF' > /etc/yum.repos.d/extra.repo\n" " [extra]\n" " name=extra\n" " baseurl=file:///tmp/mount\n" " enabled=1\n" " EOF\n" " \n" msgstr "" #. type: verbatim #: builder/virt-builder.pod:618 #, no-wrap msgid "" " dnf -y install famousdatabase\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:620 msgid "For apt, create /tmp/install.sh containing:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:625 #, no-wrap msgid "" " apt-cdrom -d=/tmp/mount add\n" " apt-get -y install famousdatabase\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:628 msgid "" "Use the I<--attach> option to attach the CD / disk image and the I<--run> " "option to run the script:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:631 #, no-wrap msgid "" " virt-builder fedora-27 \\\n" " --attach extra-packages.iso \\\n" " --run /tmp/install.sh\n" "\n" msgstr "" #. type: =head2 #: builder/virt-builder.pod:635 msgid "USERS AND PASSWORDS" msgstr "" #. type: textblock #: builder/virt-builder.pod:637 msgid "" "The I<--root-password> option is used to change the root password (otherwise " "a random password is used). This option takes a password C in one " "of the following formats:" msgstr "" #. type: =item #: builder/virt-builder.pod:643 msgid "B<--root-password> file:FILENAME" msgstr "" #. type: textblock #: builder/virt-builder.pod:645 msgid "" "Read the root password from C. The whole first line of this file " "is the replacement password. Any other lines are ignored. You should " "create the file with mode 0600 to ensure no one else can read it." msgstr "" #. type: =item #: builder/virt-builder.pod:650 msgid "B<--root-password> password:PASSWORD" msgstr "" #. type: textblock #: builder/virt-builder.pod:652 msgid "Set the root password to the literal string C." msgstr "" #. type: textblock #: builder/virt-builder.pod:654 msgid "" "B since any user on the same machine can see the " "cleartext password using L." msgstr "" #. type: =item #: builder/virt-builder.pod:657 msgid "B<--root-password> random" msgstr "" #. type: textblock #: builder/virt-builder.pod:659 msgid "" "Choose a random password, which is printed on stdout. The password has " "approximately 120 bits of randomness." msgstr "" #. type: textblock #: builder/virt-builder.pod:662 format/virt-format.pod:140 msgid "This is the default." msgstr "" #. type: =item #: builder/virt-builder.pod:664 msgid "B<--root-password> disabled" msgstr "" #. type: textblock #: builder/virt-builder.pod:666 msgid "" "The root account password is disabled. This is like putting C<*> in the " "password field." msgstr "" #. type: =item #: builder/virt-builder.pod:669 msgid "B<--root-password> locked:file:FILENAME" msgstr "" #. type: =item #: builder/virt-builder.pod:671 msgid "B<--root-password> locked:password:PASSWORD" msgstr "" #. type: =item #: builder/virt-builder.pod:673 msgid "B<--root-password> locked:random" msgstr "" #. type: textblock #: builder/virt-builder.pod:675 msgid "" "The root account is locked, but a password is placed on the account. If " "first unlocked (using C) then logins will use the given password." msgstr "" #. type: =item #: builder/virt-builder.pod:679 msgid "B<--root-password> locked" msgstr "" #. type: =item #: builder/virt-builder.pod:681 msgid "B<--root-password> locked:disabled" msgstr "" #. type: textblock #: builder/virt-builder.pod:683 msgid "The root account is locked I password is disabled." msgstr "" #. type: =head3 #: builder/virt-builder.pod:687 msgid "Creating user accounts" msgstr "" #. type: textblock #: builder/virt-builder.pod:689 msgid "" "To create user accounts, use the L command with " "L<--firstboot-command> like this:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:692 #, no-wrap msgid "" " virt-builder --firstboot-command \\\n" " 'useradd -m -p \"\" rjones ; chage -d 0 rjones'\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:695 msgid "" "The above command will create an C account with no password, and " "force the user to set a password when they first log in. There are other " "ways to manage passwords, see L for details." msgstr "" #. type: =head2 #: builder/virt-builder.pod:699 msgid "KEYBOARD LAYOUT" msgstr "" #. type: textblock #: builder/virt-builder.pod:701 msgid "" "Because there are so many different ways to set the keyboard layout in Linux " "distributions, virt-builder does not yet attempt to have a simple command " "line option. This section describes how to set the keyboard for some common " "Linux distributions." msgstr "" #. type: =head3 #: builder/virt-builder.pod:706 msgid "Keyboard layout with systemd" msgstr "" #. type: textblock #: builder/virt-builder.pod:708 msgid "For distros that use systemd C, use a command like this:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:710 #, no-wrap msgid "" " virt-builder fedora-27 \\\n" " --firstboot-command 'localectl set-keymap uk'\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:713 msgid "" "See L and " "L " "for more details." msgstr "" #. type: =head3 #: builder/virt-builder.pod:717 msgid "Keyboard layout using F" msgstr "" #. type: textblock #: builder/virt-builder.pod:719 msgid "" "For RHEL E 6, Fedora E 18 and similar, upload or modify the keyboard " "configuration file using the I<--upload>, I<--write> or I<--edit> options. " "For example:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:723 #, no-wrap msgid "" " virt-builder centos-6 \\\n" " --edit '/etc/sysconfig/keyboard: s/^KEYTABLE=.*/KEYTABLE=\"uk\"/'\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:726 msgid "The format of this file can be found documented in many places online." msgstr "" #. type: =head3 #: builder/virt-builder.pod:728 msgid "Keyboard layout with Debian-derived distros" msgstr "" #. type: textblock #: builder/virt-builder.pod:730 msgid "" "For Debian-derived distros using F, upload or modify " "the keyboard file using the I<--upload>, I<--write> or I<--edit> options. " "For example:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:734 #, no-wrap msgid "" " virt-builder debian-8 \\\n" " --edit '/etc/default/keyboard: s/^XKBLAYOUT=.*/XKBLAYOUT=\"gb\"/'\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:737 msgid "See L." msgstr "" #. type: =head2 #: builder/virt-builder.pod:739 msgid "LANGUAGE" msgstr "" #. type: textblock #: builder/virt-builder.pod:741 msgid "" "Most Linux distributions support multiple locale settings so that you can " "have guest messages printed in another language such as Russian." msgstr "" #. type: textblock #: builder/virt-builder.pod:744 msgid "" "However there is no single setting which controls this, since extra packages " "may need to be installed to support console and X fonts, and keyboard input " "methods. The packages required, and their configuration is highly " "distro-specific, and it is outside the scope of virt-builder to do this." msgstr "" #. type: textblock #: builder/virt-builder.pod:750 msgid "This section contains examples for some common Linux distributions." msgstr "" #. type: =head3 #: builder/virt-builder.pod:752 msgid "Setting Japanese in Fedora 25" msgstr "" #. type: verbatim #: builder/virt-builder.pod:754 #, no-wrap msgid "" " virt-builder fedora-27 \\\n" " --size 20G \\\n" " --update \\\n" " --install @japanese-support \\\n" " --install @xfce \\\n" " --install xorg-x11-server-Xorg,xorg-x11-drivers,rsyslog \\\n" " --link " "/usr/lib/systemd/system/graphical.target:/etc/systemd/system/default.target " "\\\n" " --firstboot-command 'localectl set-locale LANG=ja_JP.utf8' \\\n" " --firstboot-command 'localectl set-keymap jp' \\\n" " --firstboot-command 'systemctl isolate graphical.target'\n" "\n" msgstr "" #. type: =head3 #: builder/virt-builder.pod:765 msgid "Setting Japanese in Debian 8 (Jessie)" msgstr "" #. type: textblock #: builder/virt-builder.pod:767 msgid "" "Note that although this enables Japanese in the text console too, it is " "unlikely that you will see properly rendered Japanese there. However " "Japanese is properly rendered in X applications and terminals." msgstr "" #. type: verbatim #: builder/virt-builder.pod:771 #, no-wrap msgid "" " pkgs=locales,xfce4,\\\n" " ibus,ibus-anthy,\\\n" " fonts-ipafont-gothic,fonts-ipafont-mincho,\\\n" " fonts-takao-mincho,\\\n" " xfonts-intl-japanese,xfonts-intl-japanese-big,\\\n" " iceweasel-l10n-ja,manpages-ja\n" " \n" msgstr "" #. type: verbatim #: builder/virt-builder.pod:778 #, no-wrap msgid "" " virt-builder debian-8 \\\n" " --size 20G \\\n" " --install $pkgs \\\n" " --edit '/etc/locale.gen: s,^#\\s*ja,ja,' \\\n" " --write '/etc/default/locale:LANG=\"ja_JP.UTF-8\"' \\\n" " --run-command \"locale-gen\"\n" "\n" msgstr "" #. type: =head2 #: builder/virt-builder.pod:785 msgid "LOG FILE" msgstr "" #. type: textblock #: builder/virt-builder.pod:787 msgid "" "Scripts and package installation that runs at build time (I<--run>, " "I<--run-command>, I<--install>, I<--update>, but I firstboot) is logged " "in one of the following locations:" msgstr "" #. type: =item #: builder/virt-builder.pod:793 msgid "F" msgstr "" #. type: textblock #: builder/virt-builder.pod:795 msgid "On Linux, BSD, and other non-Windows guests." msgstr "" #. type: =item #: builder/virt-builder.pod:797 msgid "F" msgstr "" #. type: textblock #: builder/virt-builder.pod:799 msgid "On Windows, DOS guests." msgstr "" #. type: =item #: builder/virt-builder.pod:801 msgid "F" msgstr "" #. type: textblock #: builder/virt-builder.pod:803 msgid "If F or F is missing." msgstr "" #. type: textblock #: builder/virt-builder.pod:807 msgid "" "If you don’t want the log file to appear in the final image, then use the " "I<--no-logfile> command line option." msgstr "" #. type: =head2 #: builder/virt-builder.pod:810 msgid "SSH KEYS" msgstr "" #. type: textblock #: builder/virt-builder.pod:812 msgid "" "The I<--ssh-inject> option is used to inject ssh keys for users in the " "guest, so they can login without supplying a password." msgstr "" #. type: textblock #: builder/virt-builder.pod:815 msgid "" "The C part of the option value is optional; in this case, " "I<--ssh-inject> C means that we look in the I user’s " "F<~/.ssh> directory to find the default public ID file. That key is " "uploaded. \"default public ID\" is the I file described in " "L." msgstr "" #. type: textblock #: builder/virt-builder.pod:821 msgid "If specified, the C can be in one of the following formats:" msgstr "" #. type: =item #: builder/virt-builder.pod:825 msgid "B<--ssh-inject> USER:file:FILENAME" msgstr "" #. type: textblock #: builder/virt-builder.pod:827 msgid "Read the ssh key from F. F is usually a I<.pub> file." msgstr "" #. type: =item #: builder/virt-builder.pod:830 msgid "B<--ssh-inject> USER:string:KEY_STRING" msgstr "" #. type: textblock #: builder/virt-builder.pod:832 msgid "" "Use the specified C. C is usually a public string " "like I." msgstr "" #. type: textblock #: builder/virt-builder.pod:837 msgid "" "In any case, the F<~USER/.ssh> directory and the " "F<~USER/.ssh/authorized_keys> file will be created if not existing already." msgstr "" #. type: =head2 #: builder/virt-builder.pod:841 msgid "FIRST BOOT SCRIPTS" msgstr "" #. type: textblock #: builder/virt-builder.pod:843 msgid "" "The I<--firstboot> and I<--firstboot-command> options allow you to execute " "commands at the first boot of the guest. To do so, an init script for the " "guest init system is installed, which takes care of running all the added " "scripts and commands." msgstr "" #. type: textblock #: builder/virt-builder.pod:848 msgid "Supported operating systems are:" msgstr "" #. type: =item #: builder/virt-builder.pod:852 msgid "Linux" msgstr "" #. type: textblock #: builder/virt-builder.pod:854 msgid "" "Init systems supported are: systemd, System-V init (known also as sysvinit), " "and Upstart (using the System-V scripts)." msgstr "" #. type: textblock #: builder/virt-builder.pod:857 msgid "" "Note that usually init scripts run as root, but with a more limited " "environment than what could be available from a normal shell: for example, " "C<$HOME> may be unset or empty." msgstr "" #. type: textblock #: builder/virt-builder.pod:861 msgid "" "The output of the first boot scripts is available in the guest as " "F<~root/virt-sysprep-firstboot.log>." msgstr "" #. type: =item #: builder/virt-builder.pod:864 msgid "Windows" msgstr "" #. type: textblock #: builder/virt-builder.pod:866 msgid "" "F, available from sources at " "L, or F, available with " "SUSE VMDP is installed to run the first boot scripts. It is required, and " "the setup of first boot scripts will fail if it is not present." msgstr "" #. type: textblock #: builder/virt-builder.pod:872 msgid "" "F or F is copied from the location pointed to by " "the C environment variable; if not set, a compiled-in " "default will be used (something like F)." msgstr "" #. type: textblock #: builder/virt-builder.pod:876 msgid "" "The output of the first boot scripts is available in the guest as " "F." msgstr "" #. type: =head2 #: builder/virt-builder.pod:881 msgid "SUBSCRIPTION-MANAGER" msgstr "" #. type: textblock #: builder/virt-builder.pod:883 msgid "" "It is possible to automate the registration and attaching of the system " "using C. This is typical on Red Hat Enterprise Linux " "guests. There are few options which ease this process, avoid executing " "commands manually and exposing passwords on command line." msgstr "" #. type: textblock #: builder/virt-builder.pod:889 msgid "" "I<--sm-register> starts the registration process, and requires " "I<--sm-credentials> to be specified; the format of the C of " "I<--sm-credentials> is one of the following formats:" msgstr "" #. type: =item #: builder/virt-builder.pod:895 msgid "B<--sm-credentials> USER:file:FILENAME" msgstr "" #. type: textblock #: builder/virt-builder.pod:897 msgid "Read the password for the specified C from F." msgstr "" #. type: =item #: builder/virt-builder.pod:899 msgid "B<--sm-credentials> USER:password:PASSWORD" msgstr "" #. type: textblock #: builder/virt-builder.pod:901 msgid "Use the literal string C for the specified C." msgstr "" #. type: textblock #: builder/virt-builder.pod:905 msgid "" "I<--sm-attach> attaches the system to subscriptions; the format of its " "C is one of the following:" msgstr "" #. type: =item #: builder/virt-builder.pod:910 msgid "B<--sm-attach> auto" msgstr "" #. type: textblock #: builder/virt-builder.pod:912 msgid "" "C attaches to the best-fitting subscriptions for the " "system." msgstr "" #. type: =item #: builder/virt-builder.pod:915 msgid "B<--sm-attach> file:FILENAME" msgstr "" #. type: textblock #: builder/virt-builder.pod:917 msgid "Read the pool ID from F." msgstr "" #. type: =item #: builder/virt-builder.pod:919 msgid "B<--sm-attach> pool:POOL" msgstr "" #. type: textblock #: builder/virt-builder.pod:921 msgid "Use the literal string C as pool ID." msgstr "" #. type: textblock #: builder/virt-builder.pod:925 msgid "" "I<--sm-remove> removes all the subscriptions from the guest, while " "I<--sm-unregister> completely unregister the system." msgstr "" #. type: =head2 #: builder/virt-builder.pod:928 msgid "INSTALLATION PROCESS" msgstr "" #. type: textblock #: builder/virt-builder.pod:930 msgid "When you invoke virt-builder, installation proceeds as follows:" msgstr "" #. type: textblock #: builder/virt-builder.pod:936 msgid "The template image is downloaded." msgstr "" #. type: textblock #: builder/virt-builder.pod:938 msgid "" "If the template image is present in the cache, the cached version is used " "instead. (See L)." msgstr "" #. type: textblock #: builder/virt-builder.pod:943 msgid "The template signature is checked." msgstr "" #. type: textblock #: builder/virt-builder.pod:947 msgid "The template is uncompressed to a tmp file." msgstr "" #. type: textblock #: builder/virt-builder.pod:951 msgid "The template image is resized into the destination, using L." msgstr "" #. type: textblock #: builder/virt-builder.pod:956 msgid "Extra disks are attached (I<--attach>)." msgstr "" #. type: textblock #: builder/virt-builder.pod:960 msgid "A new random seed is generated for the guest." msgstr "" #. type: textblock #: builder/virt-builder.pod:964 msgid "" "Guest customization is performed, in the order specified on the command " "line." msgstr "" #. type: textblock #: builder/virt-builder.pod:969 msgid "SELinux relabelling is done unless disabled with I<--no-selinux-relabel>." msgstr "" #. type: =head2 #: builder/virt-builder.pod:973 msgid "IMPORTING THE DISK IMAGE" msgstr "" #. type: =head3 #: builder/virt-builder.pod:975 msgid "Importing into libvirt" msgstr "" #. type: textblock #: builder/virt-builder.pod:977 msgid "" "Import the disk image into libvirt using L I<--import> " "option." msgstr "" #. type: verbatim #: builder/virt-builder.pod:980 #, no-wrap msgid "" " virt-install --import \\\n" " --name guest --ram 2048 \\\n" " --disk path=disk.img,format=raw --os-variant fedora27\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:984 win-reg/virt-win-reg.in:770 msgid "Notes:" msgstr "" #. type: textblock #: builder/virt-builder.pod:990 msgid "" "You I specify the correct format. The format is C unless you " "used virt-builder’s I<--format> option." msgstr "" #. type: textblock #: builder/virt-builder.pod:995 msgid "" "I<--os-variant> is highly recommended, because it will present optimum " "devices to enable the guest to run most efficiently. To get a list of all " "variants, do:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:999 #, no-wrap msgid "" " osinfo-query os\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:1001 msgid "The above tool is provided by libosinfo package." msgstr "" #. type: textblock #: builder/virt-builder.pod:1005 msgid "" "You can run virt-install as root or non-root. Each works slightly " "differently because libvirt manages a different set of virtual machines for " "each user. In particular virt-manager normally shows the root-owned VMs, " "whereas Boxes shows the user-owned VMs, and other tools probably work " "differently as well." msgstr "" #. type: =head3 #: builder/virt-builder.pod:1013 msgid "Importing into OpenStack" msgstr "" #. type: textblock #: builder/virt-builder.pod:1015 msgid "Import the image into Glance (the OpenStack image store) by doing:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1017 #, no-wrap msgid "" " glance image-create --name fedora-27-image --file fedora-27.img \\\n" " --disk-format raw --container-format bare \\\n" " --is-public True\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:1021 msgid "" "The I<--file> parameter is the virt-builder-generated disk image. It should " "match virt-builder’s I<--output> option. The I<--disk-format> parameter " "should match virt-builder’s I<--format> option (or C if you didn't use " "that option). The I<--container-format> should always be C since " "virt-builder doesn't put images into containers." msgstr "" #. type: textblock #: builder/virt-builder.pod:1027 msgid "" "You can use the S>> command to " "display the properties of the image." msgstr "" #. type: textblock #: builder/virt-builder.pod:1030 msgid "To boot up an instance of your image on a Nova compute node, do:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1032 #, no-wrap msgid "" " nova boot fedora-27-server --image fedora-27-image \\\n" " --flavor m1.medium\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:1035 msgid "" "Use S> to list possible machine flavors. Use S> to list running instances." msgstr "" #. type: =head3 #: builder/virt-builder.pod:1038 msgid "Booting directly using qemu or KVM" msgstr "" #. type: textblock #: builder/virt-builder.pod:1040 msgid "" "The qemu command line is not very stable or easy to use, hence libvirt " "should be used if possible. However a command line similar to the following " "could be used to boot the virtual machine:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1044 #, no-wrap msgid "" " qemu-system-x86_64 \\\n" " -machine accel=kvm:tcg \\\n" " -cpu host \\\n" " -m 2048 \\\n" " -drive file=disk.img,format=raw,if=virtio\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:1050 msgid "" "As with libvirt, it is very important that the correct format is chosen. It " "will be C unless the I<--format> option was used." msgstr "" #. type: =head2 #: builder/virt-builder.pod:1053 msgid "CONFIGURATION MANAGEMENT" msgstr "" #. type: =head3 #: builder/virt-builder.pod:1055 msgid "Puppet" msgstr "" #. type: textblock #: builder/virt-builder.pod:1057 msgid "" "To enable the Puppet agent in a guest, install the package, point the " "configuration at your Puppetmaster, and ensure the agent runs at boot." msgstr "" #. type: textblock #: builder/virt-builder.pod:1061 msgid "A typical virt-builder command would be:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1063 #, no-wrap msgid "" " virt-builder fedora-27 \\\n" " --hostname client.example.com \\\n" " --update \\\n" " --install puppet \\\n" " --append-line '/etc/puppet/puppet.conf:[agent]' \\\n" " --append-line '/etc/puppet/puppet.conf:server = " "puppetmaster.example.com/' \\\n" " --run-command 'systemctl enable puppet'\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:1071 msgid "" "The precise instructions vary according to the Linux distro. For further " "information see: L" msgstr "" #. type: =head2 #: builder/virt-builder.pod:1075 msgid "DEBUGGING BUILDS" msgstr "" #. type: textblock #: builder/virt-builder.pod:1077 msgid "" "If virt-builder itself fails, then enable debugging (I<-v>) and report a bug " "(see L below)." msgstr "" #. type: textblock #: builder/virt-builder.pod:1080 msgid "" "If virt-builder fails because some script or package it is installing fails, " "try using I<--no-delete-on-failure> to preserve the output file, and " "continue reading this section." msgstr "" #. type: textblock #: builder/virt-builder.pod:1084 msgid "" "If virt-builder is successful but the image doesn't work, here are some " "things to try:" msgstr "" #. type: =item #: builder/virt-builder.pod:1089 msgid "Use virt-rescue" msgstr "" #. type: textblock #: builder/virt-builder.pod:1091 msgid "Run L on the disk image:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1093 #, no-wrap msgid "" " virt-rescue -a disk.img\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:1095 msgid "" "This gives you a rescue shell. You can mount the filesystems from the disk " "image on F and examine them using ordinary Linux commands. You " "can also chroot into the guest to reinstall the bootloader. The virt-rescue " "man page has a lot more information and examples." msgstr "" #. type: =item #: builder/virt-builder.pod:1101 msgid "Use guestfish" msgstr "" #. type: textblock #: builder/virt-builder.pod:1103 msgid "Run L on the disk image:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1105 #, no-wrap msgid "" " guestfish -a disk.img -i\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:1107 msgid "" "Use guestfish commands like C and C to examine " "directories and files." msgstr "" #. type: =item #: builder/virt-builder.pod:1110 msgid "Use guestmount" msgstr "" #. type: textblock #: builder/virt-builder.pod:1112 msgid "Mount the disk image safely on the host using FUSE and L:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1114 #, no-wrap msgid "" " mkdir /tmp/mp\n" " guestmount -a disk.img -i /tmp/mp\n" " cd /tmp/mp\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:1118 msgid "To unmount the disk image do:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1120 #, no-wrap msgid "" " fusermount -u /tmp/mp\n" "\n" msgstr "" #. type: =item #: builder/virt-builder.pod:1122 msgid "Add a serial console" msgstr "" #. type: textblock #: builder/virt-builder.pod:1124 msgid "" "If the guest hangs during boot, it can be helpful to add a serial console to " "the guest, and direct kernel messages to the serial console. Adding the " "serial console will involve looking at the documentation for your " "hypervisor. To direct kernel messages to the serial console, add the " "following on the kernel command line:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1130 #, no-wrap msgid "" " console=tty0 console=ttyS0,115200\n" "\n" msgstr "" #. type: =head2 #: builder/virt-builder.pod:1134 msgid "SOURCES OF TEMPLATES" msgstr "" #. type: textblock #: builder/virt-builder.pod:1136 msgid "" "virt-builder reads the available sources from configuration files, with the " "I<.conf> extension and located in the following paths:" msgstr "" #. type: textblock #: builder/virt-builder.pod:1143 msgid "" "$XDG_CONFIG_HOME/virt-builder/repos.d/ (C<$XDG_CONFIG_HOME> is " "F<$HOME/.config> if not set)." msgstr "" #. type: textblock #: builder/virt-builder.pod:1148 msgid "" "$VIRT_BUILDER_DIRS/virt-builder/repos.d/ (where C<$VIRT_BUILDER_DIRS> means " "any of the directories in that environment variable, or just F if not " "set)." msgstr "" #. type: textblock #: builder/virt-builder.pod:1154 msgid "" "Each I<.conf> file in those paths has a simple text format like the " "following:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1157 #, no-wrap msgid "" " [libguestfs.org]\n" " uri=http://libguestfs.org/download/builder/index.asc\n" " gpgkey=file:///etc/xdg/virt-builder/repos.d/libguestfs.gpg\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:1161 msgid "" "The part in square brackets is the repository identifier, which is used as " "unique identifier." msgstr "" #. type: textblock #: builder/virt-builder.pod:1164 builder/virt-builder.pod:1335 msgid "The following fields can appear:" msgstr "" #. type: =item #: builder/virt-builder.pod:1168 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1170 msgid "The URI of the index file which this repository refers to." msgstr "" #. type: textblock #: builder/virt-builder.pod:1172 builder/virt-builder.pod:1424 msgid "This field is required." msgstr "" #. type: =item #: builder/virt-builder.pod:1174 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1176 msgid "" "This optional field represents the URI (although only I URIs are " "accepted) of the key used to sign the index file. If not present, the index " "file referred by I is not signed." msgstr "" #. type: =item #: builder/virt-builder.pod:1180 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1182 msgid "" "This optional field specifies the proxy mode, to be used when downloading " "the index file of this repository. The possible values are:" msgstr "" #. type: =item #: builder/virt-builder.pod:1187 msgid "B, B" msgstr "" #. type: textblock #: builder/virt-builder.pod:1189 msgid "No proxy is being used at all, even overriding the system configuration." msgstr "" #. type: =item #: builder/virt-builder.pod:1191 msgid "B" msgstr "" #. type: textblock #: builder/virt-builder.pod:1193 msgid "The proxy used is the system one." msgstr "" #. type: =item #: builder/virt-builder.pod:1195 msgid "I" msgstr "" #. type: textblock #: builder/virt-builder.pod:1197 msgid "" "Specifies the actual proxy configuration to be used, overriding the system " "configuration." msgstr "" #. type: textblock #: builder/virt-builder.pod:1202 msgid "" "If not present, the assumed value is to respect the proxy settings of the " "system (i.e. as if B would be specified)." msgstr "" #. type: =item #: builder/virt-builder.pod:1205 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1207 msgid "" "This optional field specifies the format of the repository. The possible " "values are:" msgstr "" #. type: =item #: builder/virt-builder.pod:1212 msgid "B" msgstr "" #. type: textblock #: builder/virt-builder.pod:1214 msgid "" "The native format of the C repository. See also L below." msgstr "" #. type: =item #: builder/virt-builder.pod:1217 msgid "B" msgstr "" #. type: textblock #: builder/virt-builder.pod:1219 msgid "The URI represents the root of a Simple Streams v1.0 tree of metadata." msgstr "" #. type: textblock #: builder/virt-builder.pod:1221 msgid "" "For more information about Simple Streams, see also " "L." msgstr "" #. type: textblock #: builder/virt-builder.pod:1226 msgid "If not present, the assumed value is C." msgstr "" #. type: textblock #: builder/virt-builder.pod:1230 msgid "" "For serious virt-builder use, you may want to create your own repository of " "templates." msgstr "" #. type: =head3 #: builder/virt-builder.pod:1233 msgid "Libguestfs.org repository" msgstr "" #. type: textblock #: builder/virt-builder.pod:1235 msgid "" "Out of the box, virt-builder downloads the file " "L which is an index of " "available templates plus some information about each one, wrapped up in a " "digital signature. The command C lists out the " "information in this index file." msgstr "" #. type: textblock #: builder/virt-builder.pod:1241 msgid "" "The templates hosted on libguestfs.org were created using shell scripts, " "kickstart files and preseed files which can be found in the libguestfs " "source tree, in C." msgstr "" #. type: =head3 #: builder/virt-builder.pod:1245 msgid "Setting up the repository" msgstr "" #. type: textblock #: builder/virt-builder.pod:1247 msgid "" "You can set up your own site containing an index file and some templates, " "and then point virt-builder at the site by creating a I<.conf> file pointing " "to it." msgstr "" #. type: textblock #: builder/virt-builder.pod:1251 msgid "" "Note that if your index is signed, you will need to properly fill " "I in your I<.conf> file, making sure to deploy also the GPG key " "file." msgstr "" #. type: verbatim #: builder/virt-builder.pod:1255 #, no-wrap msgid "" " virt-builder --source https://example.com/builder/index.asc \\\n" " --fingerprint 'AAAA BBBB ...' \\\n" " --list\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:1259 msgid "" "You can host this on any web or FTP server, or a local or network " "filesystem." msgstr "" #. type: =head3 #: builder/virt-builder.pod:1262 msgid "Setting up a GPG key" msgstr "" #. type: textblock #: builder/virt-builder.pod:1264 msgid "" "If you don’t have a GnuPG key, you will need to set one up. (Strictly " "speaking this is optional, but if your index and template files are not " "signed then virt-builder users will have to use the I<--no-check-signature> " "flag every time they use virt-builder.)" msgstr "" #. type: textblock #: builder/virt-builder.pod:1269 msgid "" "To create a key, see the GPG manual " "L." msgstr "" #. type: textblock #: builder/virt-builder.pod:1272 msgid "Export your GPG public key:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1274 #, no-wrap msgid "" " gpg --export -a \"you@example.com\" > pubkey\n" " \n" msgstr "" #. type: =head3 #: builder/virt-builder.pod:1276 msgid "Create the templates" msgstr "" #. type: textblock #: builder/virt-builder.pod:1278 msgid "" "There are many ways to create the templates. For example you could clone " "existing guests (see L), or you could install a guest by " "hand (L). To see how the templates were created for " "virt-builder, look at the scripts in C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1283 msgid "" "Virt-builder supports any image format (e.g. raw, qcow2, etc) as template, " "both as-is, and compressed as XZ. This way, existing images (e.g. cleaned " "using L) can be used as templates." msgstr "" #. type: textblock #: builder/virt-builder.pod:1287 msgid "" "For best results when compressing the templates, use the following xz " "options (see L for further explanation):" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1290 #, no-wrap msgid "" " xz --best --block-size=16777216 disk\n" "\n" msgstr "" #. type: =head3 #: builder/virt-builder.pod:1292 msgid "Creating and signing the index file" msgstr "" #. type: textblock #: builder/virt-builder.pod:1294 msgid "" "The index file has a simple text format (shown here without the digital " "signature):" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1297 #, no-wrap msgid "" " [fedora-18]\n" " name=Fedora® 18\n" " osinfo=fedora18\n" " arch=x86_64\n" " file=fedora-18.xz\n" " checksum[sha512]=...\n" " format=raw\n" " size=6442450944\n" " compressed_size=148947524\n" " expand=/dev/sda3\n" " \n" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1308 #, no-wrap msgid "" " [fedora-19]\n" " name=Fedora® 19\n" " osinfo=fedora19\n" " arch=x86_64\n" " file=fedora-19.xz\n" " checksum[sha512]=...\n" " revision=3\n" " format=raw\n" " size=4294967296\n" " compressed_size=172190964\n" " expand=/dev/sda3\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:1320 msgid "" "The part in square brackets is the C, which is the same string " "that is used on the virt-builder command line to build that OS." msgstr "" #. type: textblock #: builder/virt-builder.pod:1323 msgid "" "The index file creation and signature can be eased with the " "L tool." msgstr "" #. type: textblock #: builder/virt-builder.pod:1326 msgid "" "After preparing the C file in the correct format, clearsign it using " "the following command:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1329 #, no-wrap msgid "" " gpg --clearsign --armor index\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:1331 msgid "" "This will create the final file called F which can be uploaded to " "the server (and is the I URL). As noted above, signing the index " "file is optional, but recommended." msgstr "" #. type: =item #: builder/virt-builder.pod:1339 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1341 msgid "" "The user-friendly name of this template. This is displayed in the I<--list> " "output but is otherwise not significant." msgstr "" #. type: =item #: builder/virt-builder.pod:1344 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1346 msgid "" "This optional field maps the operating system to the associated libosinfo " "ID. Virt-builder does not use it (yet)." msgstr "" #. type: =item #: builder/virt-builder.pod:1349 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1351 msgid "" "The architecture of the operating system installed within the template. This " "field is required." msgstr "" #. type: =item #: builder/virt-builder.pod:1354 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1356 msgid "The path (relative to the index) of the xz-compressed template." msgstr "" #. type: textblock #: builder/virt-builder.pod:1358 builder/virt-builder.pod:1369 msgid "" "Note that absolute paths or URIs are B permitted here. This is because " "virt-builder has a \"same origin\" policy for templates so they cannot come " "from other servers." msgstr "" #. type: =item #: builder/virt-builder.pod:1362 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1364 msgid "B. Use the checksum field instead." msgstr "" #. type: textblock #: builder/virt-builder.pod:1366 msgid "" "The path (relative to the index) of the GPG detached signature of the xz " "file." msgstr "" #. type: textblock #: builder/virt-builder.pod:1373 msgid "The file can be created as follows:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1375 #, no-wrap msgid "" " gpg --detach-sign --armor -o disk.xz.sig disk.xz\n" "\n" msgstr "" #. type: =item #: builder/virt-builder.pod:1377 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1379 msgid "" "The SHA-512 checksum of the file specified in I is checked after it " "is downloaded. To work out the signature, do:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1382 #, no-wrap msgid "" " sha512sum disk.xz\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:1384 msgid "" "Note if you use this, you don’t need to sign the file, ie. don’t use " "C. This option overrides C." msgstr "" #. type: =item #: builder/virt-builder.pod:1387 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1389 msgid "C is an alias for C." msgstr "" #. type: textblock #: builder/virt-builder.pod:1391 msgid "" "If you need to interoperate with virt-builder = 1.24.0 then you have to use " "C because that version would give a parse error with square " "brackets and numbers in the key of a field. This is fixed in virt-builder " "E 1.24.1." msgstr "" #. type: =item #: builder/virt-builder.pod:1396 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1398 msgid "" "The revision is an integer which is used to control the template cache. " "Increasing the revision number causes clients to download the template again " "even if they have a copy in the cache." msgstr "" #. type: textblock #: builder/virt-builder.pod:1402 msgid "The revision number is optional. If omitted it defaults to C<1>." msgstr "" #. type: =item #: builder/virt-builder.pod:1404 msgid "C" msgstr "" #. type: =item #: builder/virt-builder.pod:1406 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1408 msgid "" "Specify the format of the disk image; in case it is compressed, that is the " "format before the compression. If not given, the format is autodetected, " "but generally it is better to be explicit about the intended format." msgstr "" #. type: textblock #: builder/virt-builder.pod:1413 msgid "" "Note this is the source format, which is different from the I<--format> " "option (requested output format). Virt-builder does on-the-fly conversion " "from the source format to the requested output format." msgstr "" #. type: =item #: builder/virt-builder.pod:1418 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1420 msgid "" "The virtual size of the image in bytes. This is the size of the image when " "uncompressed. If using a non-raw format such as qcow2 then it means the " "virtual disk size, not the size of the qcow2 file." msgstr "" #. type: textblock #: builder/virt-builder.pod:1426 msgid "" "Virt-builder also uses this as the minimum size that users can request via " "the I<--size> option, or as the default size if there is no I<--size> " "option." msgstr "" #. type: =item #: builder/virt-builder.pod:1430 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1432 msgid "" "The actual size of the disk image in bytes, i.e. what was specified in " "I. This is just used for information (when using C, and " "C formats of I<--list>)." msgstr "" #. type: =item #: builder/virt-builder.pod:1436 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1438 msgid "" "When expanding the image to its final size, instruct L to " "expand the named partition in the guest image to fill up all available " "space. This works like the virt-resize I<--expand> option." msgstr "" #. type: textblock #: builder/virt-builder.pod:1442 msgid "You should usually put the device name of the guest’s root filesystem here." msgstr "" #. type: textblock #: builder/virt-builder.pod:1444 msgid "" "It’s a good idea to use this, but not required. If the field is omitted " "then virt-resize will create an extra partition at the end of the disk to " "cover the free space, which is much less user-friendly." msgstr "" #. type: =item #: builder/virt-builder.pod:1448 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1450 msgid "" "When expanding the image to its final size, instruct L to " "expand the named logical volume in the guest image to fill up all available " "space. This works like the virt-resize I<--lv-expand> option." msgstr "" #. type: textblock #: builder/virt-builder.pod:1454 msgid "" "If the guest uses LVM2 you should usually put the LV of the guest’s root " "filesystem here. If the guest does not use LVM2 or its root filesystem is " "not on an LV, don't use this option." msgstr "" #. type: =item #: builder/virt-builder.pod:1458 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1460 msgid "" "Any notes that go with this image, especially notes describing what packages " "are in the image, how the image was prepared, and licensing information." msgstr "" #. type: textblock #: builder/virt-builder.pod:1464 msgid "This information is shown in the I<--notes> and I<--list> I<--long> modes." msgstr "" #. type: textblock #: builder/virt-builder.pod:1466 msgid "" "You can use multi-line notes here by indenting each new line with at least " "one character of whitespace (even on blank lines):" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1469 #, no-wrap msgid "" " notes=This image was prepared using\n" " the following kickstart script:\n" " <-- one space at beginning of line\n" " part /boot --fstype ext3\n" " ...\n" "\n" msgstr "" #. type: =item #: builder/virt-builder.pod:1475 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1477 msgid "" "Using the hidden flag prevents the template from being listed by the " "I<--list> option (but it is still installable). This is used for test " "images." msgstr "" #. type: =item #: builder/virt-builder.pod:1481 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1483 msgid "" "This optional field specifies a list of aliases, separated by spaces, for " "the image. For example, an alias could be used to always point to the " "latest version of a certain image, leaving the old versions available in the " "index instead of updating the same image (see the C field)." msgstr "" #. type: =head3 #: builder/virt-builder.pod:1491 msgid "Running virt-builder against multiple sources" msgstr "" #. type: textblock #: builder/virt-builder.pod:1493 msgid "" "It is possible to use multiple sources with virt-builder. The recommended " "way is to deploy I<.conf> files pointing to the index files. Another way is " "to specify the sources using multiple I<--source> and/or I<--fingerprint> " "options:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1498 #, no-wrap msgid "" " virt-builder \\\n" " --source http://example.com/s1/index.asc \\\n" " --source http://example.com/s2/index.asc\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:1502 msgid "" "You can provide N or 1 fingerprints. In the case where you provide N " "fingerprints, N = number of sources and there is a 1-1 correspondence " "between each source and each fingerprint:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1506 #, no-wrap msgid "" " virt-builder \\\n" " --source http://example.com/s1/index.asc --fingerprint '0123 ...' \\\n" " --source http://example.com/s2/index.asc --fingerprint '9876 ...'\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:1510 msgid "" "In the case where you provide 1 fingerprint, the same fingerprint is used " "for all sources." msgstr "" #. type: textblock #: builder/virt-builder.pod:1513 msgid "You C provide at least 1 fingerprint." msgstr "" #. type: =head3 #: builder/virt-builder.pod:1515 msgid "Licensing of templates" msgstr "" #. type: textblock #: builder/virt-builder.pod:1517 msgid "" "You should be aware of the licensing of images that you distribute. For " "open source guests, provide a link to the source code in the C field " "and comply with other requirements (eg. around trademarks)." msgstr "" #. type: =head3 #: builder/virt-builder.pod:1522 msgid "Formal specification of the index file" msgstr "" #. type: textblock #: builder/virt-builder.pod:1524 msgid "" "The index file format has a formal specification defined by the flex scanner " "and bison parser used to parse the file. This can be found in the following " "files in the libguestfs source tree:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1528 #, no-wrap msgid "" " builder/index-scan.l\n" " builder/index-parse.y\n" "\n" msgstr "" #. type: textblock #: builder/virt-builder.pod:1531 msgid "" "A tool called L is available to validate the index " "file to ensure it is correct." msgstr "" #. type: textblock #: builder/virt-builder.pod:1534 msgid "" "Note that the parser and tool can work on either the signed or unsigned " "index file (ie. F or F)." msgstr "" #. type: textblock #: builder/virt-builder.pod:1537 msgid "The index is always encoded in UTF-8." msgstr "" #. type: =head2 #: builder/virt-builder.pod:1539 msgid "CACHING" msgstr "" #. type: =head3 #: builder/virt-builder.pod:1541 msgid "Caching templates" msgstr "" #. type: textblock #: builder/virt-builder.pod:1543 msgid "" "Since the templates are usually very large, downloaded templates are cached " "in the user’s home directory." msgstr "" #. type: textblock #: builder/virt-builder.pod:1546 msgid "" "The location of the cache is F<$XDG_CACHE_HOME/virt-builder/> or " "F<$HOME/.cache/virt-builder>." msgstr "" #. type: textblock #: builder/virt-builder.pod:1549 msgid "" "You can print out information about the cache directory, including which " "guests are currently cached, by doing:" msgstr "" #. type: textblock #: builder/virt-builder.pod:1554 msgid "The cache can be deleted if you want to save space by doing:" msgstr "" #. type: textblock #: builder/virt-builder.pod:1558 msgid "You can download all (current) templates to the local cache by doing:" msgstr "" #. type: textblock #: builder/virt-builder.pod:1562 msgid "To disable the template cache, use I<--no-cache>." msgstr "" #. type: textblock #: builder/virt-builder.pod:1564 msgid "" "Only templates are cached. The index and detached digital signatures are " "not cached." msgstr "" #. type: =head3 #: builder/virt-builder.pod:1567 msgid "Caching packages" msgstr "" #. type: textblock #: builder/virt-builder.pod:1569 msgid "" "Virt-builder uses L to download files and it also uses the current " "C (etc) settings when installing packages (I<--install>, " "I<--update>)." msgstr "" #. type: textblock #: builder/virt-builder.pod:1573 msgid "" "You may therefore want to set those environment variables in order to " "maximize the amount of local caching that happens. See L and L." msgstr "" #. type: =head3 #: builder/virt-builder.pod:1577 msgid "Local mirrors" msgstr "" #. type: textblock #: builder/virt-builder.pod:1579 msgid "" "To increase both speed and reliability of installing packages, you can set " "up a local mirror of the target distribution, and point the guest package " "manager at that." msgstr "" #. type: =head4 #: builder/virt-builder.pod:1583 msgid "Using a local mirror with Fedora" msgstr "" #. type: textblock #: builder/virt-builder.pod:1585 msgid "To install a Fedora guest using a local mirror:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1587 #, no-wrap msgid "" " virt-builder fedora-27 \\\n" " --edit '/etc/yum.repos.d/fedora.repo:\n" " s{.*baseurl=.*}{baseurl=http://example.com/mirror/};\n" " s{.*metalink=.*}{};\n" " ' \\\n" " --edit '/etc/yum.repos.d/fedora-updates.repo:\n" " s{.*baseurl=.*}{baseurl=http://example.com/mirror-updates/};\n" " s{.*metalink=.*}{};\n" " ' \\\n" " --run-command 'dnf -y update' \\\n" " --install 'pkg1,pkg2,...'\n" "\n" msgstr "" #. type: =head4 #: builder/virt-builder.pod:1599 msgid "Using a local mirror with Debian" msgstr "" #. type: textblock #: builder/virt-builder.pod:1601 msgid "" "Assuming that you are using C to mirror the repository, you " "should create a new F file to point to your proxy (see " "L) and then do:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1605 #, no-wrap msgid "" " virt-builder debian-8 \\\n" " --upload sources.list:/etc/apt/sources.list \\\n" " --run-command 'apt-get -y update' \\\n" " --install 'pkg1,pkg2,...'\n" "\n" msgstr "" #. type: =head2 #: builder/virt-builder.pod:1610 msgid "DIGITAL SIGNATURES" msgstr "" #. type: textblock #: builder/virt-builder.pod:1612 msgid "" "Virt-builder uses GNU Privacy Guard (GnuPG or gpg) to verify that the index " "and templates have not been tampered with." msgstr "" #. type: textblock #: builder/virt-builder.pod:1615 msgid "The source points to an index file, which is optionally signed." msgstr "" #. type: textblock #: builder/virt-builder.pod:1617 msgid "" "Virt-builder downloads the index and checks that the signature is valid and " "the signer’s fingerprint matches the specified fingerprint (ie. the one " "specified in I in the I<.conf>, or with I<--fingerprint>, in that " "order)." msgstr "" #. type: textblock #: builder/virt-builder.pod:1622 msgid "" "For checking against the built-in public key/fingerprint, this requires " "importing the public key into the user’s local gpg keyring (that’s just the " "way that gpg works)." msgstr "" #. type: textblock #: builder/virt-builder.pod:1626 msgid "When a template is downloaded, its signature is checked in the same way." msgstr "" #. type: textblock #: builder/virt-builder.pod:1629 msgid "" "Although the signatures are optional, if you don’t have them then " "virt-builder users will have to use I<--no-check-signature> on the command " "line. This prevents an attacker from replacing the signed index file with " "an unsigned index file and having virt-builder silently work without " "checking the signature. In any case it is highly recommended that you " "always create signed index and templates." msgstr "" #. type: =head2 #: builder/virt-builder.pod:1636 msgid "ARCHITECTURE" msgstr "" #. type: textblock #: builder/virt-builder.pod:1638 msgid "" "Virt-builder can build a guest for any architecture no matter what the host " "architecture is. For example an x86-64 guest on an ARM host." msgstr "" #. type: textblock #: builder/virt-builder.pod:1641 msgid "" "However certain options may not work, specifically options that require " "running commands in the guest during the build process: I<--install>, " "I<--update>, I<--run>, I<--run-command>. You may need to replace these with " "their firstboot-equivalents." msgstr "" #. type: textblock #: builder/virt-builder.pod:1646 msgid "" "An x86-64 host building 32 bit i686 guests should work without any special " "steps." msgstr "" #. type: =head1 #: builder/virt-builder.pod:1649 sysprep/virt-sysprep.pod:518 msgid "SECURITY" msgstr "" #. type: textblock #: builder/virt-builder.pod:1651 msgid "" "Virt-builder does not need to run as root (in fact, should not be run as " "root), and doesn't use setuid, C or any similar mechanism." msgstr "" #. type: textblock #: builder/virt-builder.pod:1654 msgid "" "I<--install>, I<--update>, I<--run> and I<--run-command> are implemented " "using an appliance (a small virtual machine) so these commands do not run on " "the host. If you are using the libguestfs libvirt backend and have SELinux " "enabled then the virtual machine is additionally encapsulated in an SELinux " "container (sVirt)." msgstr "" #. type: textblock #: builder/virt-builder.pod:1660 msgid "" "However these options will have access to the host’s network and since the " "template may contain untrusted code, the code might try to access host " "network resources which it should not. You can use I<--no-network> to " "prevent this." msgstr "" #. type: textblock #: builder/virt-builder.pod:1665 msgid "" "Firstboot commands run in the context of the guest when it is booted, and so " "the security of your hypervisor / cloud should be considered." msgstr "" #. type: textblock #: builder/virt-builder.pod:1668 msgid "" "Virt-builder injects a random seed into every guest which it builds. This " "helps to ensure that TCP sequence numbers, UUIDs, ssh host keys etc are " "truly random when the guest boots." msgstr "" #. type: textblock #: builder/virt-builder.pod:1672 msgid "You should check digital signatures and not ignore any signing errors." msgstr "" #. type: =head2 #: builder/virt-builder.pod:1674 msgid "CLONES" msgstr "" #. type: textblock #: builder/virt-builder.pod:1676 msgid "" "If you wish to create many new guests of the same type, it is tempting to " "run virt-builder once and then copy the output file. You should B do " "this. You should run virt-builder once for each new guest you need." msgstr "" #. type: textblock #: builder/virt-builder.pod:1681 msgid "" "The reason is that each clone needs to have (at least) a separate random " "seed, and possibly other unique features (such as filesystem UUIDs) in " "future versions of virt-builder." msgstr "" #. type: textblock #: builder/virt-builder.pod:1685 msgid "" "Another thing you should I do is to boot the guest, then clone the " "booted disk image. The reason is that some guests create unique machine " "IDs, SSH host keys and so on at first boot, and you would not want clones to " "have duplicate identities." msgstr "" #. type: textblock #: builder/virt-builder.pod:1690 msgid "See also: L." msgstr "" #. type: =head2 #: builder/virt-builder.pod:1692 msgid "PERFORMANCE" msgstr "" #. type: textblock #: builder/virt-builder.pod:1694 msgid "" "The most important aspect of getting good performance is caching. Templates " "gets downloaded into the cache the first time they are used, or if you use " "the I<--cache-all-templates> option. See L above for further " "information." msgstr "" #. type: textblock #: builder/virt-builder.pod:1699 msgid "" "Packages required for the I<--install> and I<--update> options are " "downloaded using the host network connection. Setting the C, " "C and C environment variables to point to a local " "web cache may ensure they only need to be downloaded once. You can also try " "using a local package repository, although this can be complex to set up and " "varies according to which Linux distro you are trying to install." msgstr "" #. type: =head3 #: builder/virt-builder.pod:1707 msgid "Using I<--no-sync>" msgstr "" #. type: textblock #: builder/virt-builder.pod:1709 msgid "" "Use I<--no-sync>. However read the caveats in the L section " "above, since this can cause disk corruption if not used correctly." msgstr "" #. type: =head3 #: builder/virt-builder.pod:1712 msgid "Skipping virt-resize" msgstr "" #. type: textblock #: builder/virt-builder.pod:1714 msgid "" "Virt-builder can skip the virt-resize step under certain conditions. This " "makes virt-builder much faster. The conditions are:" msgstr "" #. type: textblock #: builder/virt-builder.pod:1721 msgid "the output must be a regular file (not a block device), B" msgstr "" #. type: textblock #: builder/virt-builder.pod:1725 msgid "the user did B use the I<--size> option, B" msgstr "" #. type: textblock #: builder/virt-builder.pod:1729 msgid "the output format is the same as the template format (usually raw)." msgstr "" #. type: =head3 #: builder/virt-builder.pod:1733 msgid "pxzcat" msgstr "" #. type: textblock #: builder/virt-builder.pod:1735 msgid "" "Virt-builder uses an internal implementation of pxzcat (parallel xzcat) if " "liblzma was found at build time. If liblzma was not found at build time, " "regular C is used which is single-threaded." msgstr "" #. type: =head1 #: builder/virt-builder.pod:1739 customize/virt-customize.pod:243 #: sysprep/virt-sysprep.pod:556 msgid "SELINUX" msgstr "" #. type: textblock #: builder/virt-builder.pod:1741 msgid "" "Guests which use SELinux (such as Fedora and Red Hat Enterprise Linux) " "require that each file has a correct SELinux label." msgstr "" #. type: textblock #: builder/virt-builder.pod:1744 msgid "" "Virt-builder does not know how to give new files a label, so there are two " "possible strategies it can use to ensure correct labelling:" msgstr "" #. type: =item #: builder/virt-builder.pod:1749 msgid "Automatic relabeling" msgstr "" #. type: textblock #: builder/virt-builder.pod:1751 msgid "" "This runs L just before finalizing the guest, which sets " "SELinux labels correctly in the disk image." msgstr "" #. type: textblock #: builder/virt-builder.pod:1754 msgid "This is the recommended method." msgstr "" #. type: =item #: builder/virt-builder.pod:1756 msgid "Using I<--no-selinux-relabel> I<--touch> F" msgstr "" #. type: textblock #: builder/virt-builder.pod:1758 msgid "" "Guest templates may already contain a file called F or you " "may touch it." msgstr "" #. type: textblock #: builder/virt-builder.pod:1761 msgid "" "For guests that use SELinux, this causes L to run at first " "boot. Guests will reboot themselves once the first time you use them, which " "is normal and harmless." msgstr "" #. type: textblock #: builder/virt-builder.pod:1769 msgid "" "The I<--machine-readable> option can be used to make the output more machine " "friendly, which is useful when calling virt-builder from other programs, " "GUIs etc." msgstr "" #. type: textblock #: builder/virt-builder.pod:1773 msgid "" "Use the option on its own to query the capabilities of the virt-builder " "binary. Typical output looks like this:" msgstr "" #. type: verbatim #: builder/virt-builder.pod:1776 #, no-wrap msgid "" " $ virt-builder --machine-readable\n" " virt-builder\n" " arch\n" " config-file\n" " customize\n" " json-list\n" " pxzcat\n" "\n" msgstr "" #. type: =head1 #: builder/virt-builder.pod:1790 customize/virt-customize.pod:255 #: drivers/virt-drivers.pod:224 edit/virt-edit.pod:366 #: get-kernel/virt-get-kernel.pod:191 sparsify/virt-sparsify.pod:418 #: sysprep/virt-sysprep.pod:573 msgid "ENVIRONMENT VARIABLES" msgstr "" #. type: textblock #: builder/virt-builder.pod:1792 drivers/virt-drivers.pod:226 #: get-kernel/virt-get-kernel.pod:193 msgid "" "For other environment variables which affect all libguestfs programs, see " "L." msgstr "" #. type: =item #: builder/virt-builder.pod:1797 msgid "C" msgstr "" #. type: =item #: builder/virt-builder.pod:1799 msgid "C" msgstr "" #. type: =item #: builder/virt-builder.pod:1801 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1803 msgid "" "Set the proxy for downloads. These environment variables (and more) are " "actually interpreted by L, not virt-builder." msgstr "" #. type: =item #: builder/virt-builder.pod:1806 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1808 msgid "" "Used to determine the location of the template cache, and the location of " "the user' sources. See L and L." msgstr "" #. type: =item #: builder/virt-builder.pod:1811 customize/virt-customize.pod:259 #: sysprep/virt-sysprep.pod:577 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1813 customize/virt-customize.pod:261 #: sysprep/virt-sysprep.pod:579 msgid "" "This can point to the directory containing data files used for Windows " "firstboot installation." msgstr "" #. type: textblock #: builder/virt-builder.pod:1816 customize/virt-customize.pod:264 #: sysprep/virt-sysprep.pod:582 msgid "" "Normally you do not need to set this. If not set, a compiled-in default " "will be used (something like F)." msgstr "" #. type: textblock #: builder/virt-builder.pod:1819 customize/virt-customize.pod:267 #: sysprep/virt-sysprep.pod:585 msgid "This directory may contain the following files:" msgstr "" #. type: =item #: builder/virt-builder.pod:1823 customize/virt-customize.pod:271 #: sysprep/virt-sysprep.pod:589 msgid "F" msgstr "" #. type: textblock #: builder/virt-builder.pod:1825 customize/virt-customize.pod:273 #: sysprep/virt-sysprep.pod:591 msgid "" "This is the RHSrvAny Windows binary, used to install a \"firstboot\" script " "in Windows guests. It is required if you intend to use the I<--firstboot> " "or I<--firstboot-command> options with Windows guests." msgstr "" #. type: textblock #: builder/virt-builder.pod:1829 customize/virt-customize.pod:277 #: sysprep/virt-sysprep.pod:595 msgid "See also: C" msgstr "" #. type: =item #: builder/virt-builder.pod:1831 customize/virt-customize.pod:279 #: sysprep/virt-sysprep.pod:597 msgid "F" msgstr "" #. type: textblock #: builder/virt-builder.pod:1833 customize/virt-customize.pod:281 #: sysprep/virt-sysprep.pod:599 msgid "" "This is a Windows binary shipped with SUSE VMDP, used to install a " "\"firstboot\" script in Windows guests. It is required if you intend to use " "the I<--firstboot> or I<--firstboot-command> options with Windows guests." msgstr "" #. type: =item #: builder/virt-builder.pod:1839 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1841 msgid "Used to determine the location of the template cache. See L." msgstr "" #. type: =item #: builder/virt-builder.pod:1843 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1845 msgid "" "Used to determine the location of the user' sources. See L." msgstr "" #. type: =item #: builder/virt-builder.pod:1848 msgid "C" msgstr "" #. type: textblock #: builder/virt-builder.pod:1850 msgid "" "Used to determine the location of the system sources. See L." msgstr "" #. type: textblock #: builder/virt-builder.pod:1862 msgid "" "L, L, L, " "L, L, L, " "L, L, L, " "L, L, L, L, " "L, L, L, L, " "L." msgstr "" #. type: textblock #: builder/virt-builder.pod:1887 builder/virt-index-validate.pod:90 msgid "Copyright (C) 2013 Red Hat Inc." msgstr "" #. type: textblock #: builder/virt-index-validate.pod:3 msgid "virt-index-validate - Validate virt-builder index file" msgstr "" #. type: verbatim #: builder/virt-index-validate.pod:7 #, no-wrap msgid "" " virt-index-validate index\n" "\n" msgstr "" #. type: textblock #: builder/virt-index-validate.pod:11 msgid "" "L uses an index file to store metadata about templates that " "it knows how to use. This index file has a specific format which " "virt-index-validate knows how to validate." msgstr "" #. type: textblock #: builder/virt-index-validate.pod:15 msgid "" "Note that virt-index-validate can validate either the signed or unsigned " "index file (ie. either F or F). It can only validate a " "local file, not a URL." msgstr "" #. type: =item #: builder/virt-index-validate.pod:23 msgid "B<--compat-1.24.0>" msgstr "" #. type: textblock #: builder/virt-index-validate.pod:25 msgid "" "Check for compatibility with virt-builder 1.24.0. (Using this option " "implies I<--compat-1.24.1>, so you don't need to use both.)" msgstr "" #. type: textblock #: builder/virt-index-validate.pod:28 builder/virt-index-validate.pod:47 msgid "In particular:" msgstr "" #. type: textblock #: builder/virt-index-validate.pod:34 msgid "" "This version of virt-builder could not handle C<[...]> (square brackets) in " "field names (eg. C)." msgstr "" #. type: textblock #: builder/virt-index-validate.pod:39 msgid "It required detached signatures (C)." msgstr "" #. type: =item #: builder/virt-index-validate.pod:43 msgid "B<--compat-1.24.1>" msgstr "" #. type: textblock #: builder/virt-index-validate.pod:45 msgid "Check for compatibility with virt-builder E 1.24.1." msgstr "" #. type: textblock #: builder/virt-index-validate.pod:53 msgid "" "This version of virt-builder could not handle C<.> (period) in field names " "or C<,> (comma) in subfield names." msgstr "" #. type: textblock #: builder/virt-index-validate.pod:58 msgid "It could not handle comments appearing in the file." msgstr "" #. type: textblock #: builder/virt-index-validate.pod:76 msgid "" "This program returns 0 if the index file validates, or non-zero if there was " "an error." msgstr "" #. type: textblock #: builder/virt-index-validate.pod:81 msgid "L, L." msgstr "" #. type: textblock #: cat/virt-cat.pod:3 msgid "virt-cat - Display files in a virtual machine" msgstr "" #. type: verbatim #: cat/virt-cat.pod:7 #, no-wrap msgid "" " virt-cat [--options] -d domname file [file ...]\n" "\n" msgstr "" #. type: verbatim #: cat/virt-cat.pod:9 #, no-wrap msgid "" " virt-cat [--options] -a disk.img [-a disk.img ...] file [file ...]\n" "\n" msgstr "" #. type: textblock #: cat/virt-cat.pod:11 edit/virt-edit.pod:13 inspector/virt-inspector.pod:11 msgid "Old-style:" msgstr "" #. type: verbatim #: cat/virt-cat.pod:13 #, no-wrap msgid "" " virt-cat domname file\n" "\n" msgstr "" #. type: verbatim #: cat/virt-cat.pod:15 #, no-wrap msgid "" " virt-cat disk.img file\n" "\n" msgstr "" #. type: textblock #: cat/virt-cat.pod:19 msgid "" "C is a command line tool to display the contents of C where " "C exists in the named virtual machine (or disk image)." msgstr "" #. type: textblock #: cat/virt-cat.pod:22 msgid "" "Multiple filenames can be given, in which case they are concatenated " "together. Each filename must be a full path, starting at the root directory " "(starting with '/')." msgstr "" #. type: textblock #: cat/virt-cat.pod:26 msgid "" "C can be used to quickly view a file. To edit a file, use " "C. For more complex cases you should look at the L " "tool (see L below)." msgstr "" #. type: textblock #: cat/virt-cat.pod:32 msgid "Display F file from inside the libvirt VM called C:" msgstr "" #. type: verbatim #: cat/virt-cat.pod:35 #, no-wrap msgid "" " virt-cat -d mydomain /etc/fstab\n" "\n" msgstr "" #. type: textblock #: cat/virt-cat.pod:37 msgid "Find out what packages were recently installed:" msgstr "" #. type: verbatim #: cat/virt-cat.pod:39 #, no-wrap msgid "" " virt-cat -d mydomain /var/log/yum.log | tail\n" "\n" msgstr "" #. type: textblock #: cat/virt-cat.pod:41 msgid "Find out who is logged on inside a virtual machine:" msgstr "" #. type: verbatim #: cat/virt-cat.pod:43 #, no-wrap msgid "" " virt-cat -d mydomain /var/run/utmp > /tmp/utmp\n" " who /tmp/utmp\n" "\n" msgstr "" #. type: textblock #: cat/virt-cat.pod:46 msgid "or who was logged on:" msgstr "" #. type: verbatim #: cat/virt-cat.pod:48 #, no-wrap msgid "" " virt-cat -d mydomain /var/log/wtmp > /tmp/wtmp\n" " last -f /tmp/wtmp\n" "\n" msgstr "" #. type: textblock #: cat/virt-cat.pod:63 cat/virt-filesystems.pod:101 cat/virt-log.pod:47 #: cat/virt-ls.pod:261 cat/virt-tail.pod:58 edit/virt-edit.pod:66 #: inspector/virt-inspector.pod:67 msgid "" "Add I which should be a disk image from a virtual machine. If the " "virtual machine has multiple block devices, you must supply all of them with " "separate I<-a> options." msgstr "" #. type: =item #: cat/virt-cat.pod:95 cat/virt-filesystems.pod:154 cat/virt-log.pod:79 #: cat/virt-ls.pod:310 cat/virt-tail.pod:90 customize/virt-customize.pod:110 #: diff/virt-diff.pod:129 drivers/virt-drivers.pod:171 edit/virt-edit.pod:112 #: get-kernel/virt-get-kernel.pod:81 inspector/virt-inspector.pod:100 #: sparsify/virt-sparsify.pod:195 sysprep/virt-sysprep.pod:156 msgid "B<--echo-keys>" msgstr "" #. type: textblock #: cat/virt-cat.pod:97 msgid "" "When prompting for keys and passphrases, virt-cat normally turns echoing off " "so you cannot see what you are typing. If you are not worried about Tempest " "attacks and there is no one else in the room you can specify this flag to " "see what you are typing." msgstr "" #. type: verbatim #: cat/virt-cat.pod:113 #, no-wrap msgid "" " virt-cat --format=raw -a disk.img file\n" "\n" msgstr "" #. type: verbatim #: cat/virt-cat.pod:117 #, no-wrap msgid "" " virt-cat --format=raw -a disk.img --format -a another.img file\n" "\n" msgstr "" #. type: textblock #: cat/virt-cat.pod:126 cat/virt-log.pod:110 cat/virt-ls.pod:357 #: cat/virt-tail.pod:128 customize/virt-customize.pod:141 #: diff/virt-diff.pod:171 drivers/virt-drivers.pod:190 edit/virt-edit.pod:158 #: get-kernel/virt-get-kernel.pod:100 inspector/virt-inspector.pod:122 #: sparsify/virt-sparsify.pod:233 sysprep/virt-sysprep.pod:187 msgid "__INCLUDE:key-option.pod__" msgstr "" #. type: textblock #: cat/virt-cat.pod:128 cat/virt-filesystems.pod:206 cat/virt-log.pod:112 #: cat/virt-ls.pod:359 cat/virt-tail.pod:130 customize/virt-customize.pod:143 #: diff/virt-diff.pod:173 drivers/virt-drivers.pod:192 edit/virt-edit.pod:160 #: get-kernel/virt-get-kernel.pod:102 inspector/virt-inspector.pod:124 #: sparsify/virt-sparsify.pod:235 sysprep/virt-sysprep.pod:189 msgid "__INCLUDE:keys-from-stdin-option.pod__" msgstr "" #. type: =item #: cat/virt-cat.pod:130 cat/virt-ls.pod:361 cat/virt-tail.pod:132 #: edit/virt-edit.pod:162 msgid "B<-m> dev[:mountpoint[:options[:fstype]]]" msgstr "" #. type: =item #: cat/virt-cat.pod:132 cat/virt-ls.pod:363 cat/virt-tail.pod:134 #: edit/virt-edit.pod:164 msgid "B<--mount> dev[:mountpoint[:options[:fstype]]]" msgstr "" #. type: textblock #: cat/virt-cat.pod:134 cat/virt-ls.pod:365 cat/virt-tail.pod:136 #: edit/virt-edit.pod:166 msgid "Mount the named partition or logical volume on the given mountpoint." msgstr "" #. type: textblock #: cat/virt-cat.pod:136 cat/virt-ls.pod:367 cat/virt-tail.pod:138 #: edit/virt-edit.pod:168 msgid "If the mountpoint is omitted, it defaults to F." msgstr "" #. type: textblock #: cat/virt-cat.pod:138 cat/virt-ls.pod:369 cat/virt-tail.pod:140 #: edit/virt-edit.pod:170 msgid "" "Specifying any mountpoint disables the inspection of the guest and the mount " "of its root and all of its mountpoints, so make sure to mount all the " "mountpoints needed to work with the filenames given as arguments." msgstr "" #. type: textblock #: cat/virt-cat.pod:143 cat/virt-ls.pod:374 cat/virt-tail.pod:145 #: edit/virt-edit.pod:175 msgid "" "If you don’t know what filesystems a disk image contains, you can either run " "guestfish without this option, then list the partitions, filesystems and LVs " "available (see L, L and L " "commands), or you can use the L program." msgstr "" #. type: textblock #: cat/virt-cat.pod:149 cat/virt-ls.pod:380 cat/virt-tail.pod:151 #: edit/virt-edit.pod:181 msgid "" "The third (and rarely used) part of the mount parameter is the list of mount " "options used to mount the underlying filesystem. If this is not given, then " "the mount options are either the empty string or C (the latter if the " "I<--ro> flag is used). By specifying the mount options, you override this " "default choice. Probably the only time you would use this is to enable ACLs " "and/or extended attributes if the filesystem can support them:" msgstr "" #. type: verbatim #: cat/virt-cat.pod:157 cat/virt-ls.pod:388 cat/virt-tail.pod:159 #: edit/virt-edit.pod:189 #, no-wrap msgid "" " -m /dev/sda1:/:acl,user_xattr\n" "\n" msgstr "" #. type: textblock #: cat/virt-cat.pod:159 cat/virt-ls.pod:390 cat/virt-tail.pod:161 #: edit/virt-edit.pod:191 msgid "Using this flag is equivalent to using the C command." msgstr "" #. type: textblock #: cat/virt-cat.pod:161 cat/virt-ls.pod:392 cat/virt-tail.pod:163 #: edit/virt-edit.pod:193 msgid "" "The fourth part of the parameter is the filesystem driver to use, such as " "C or C. This is rarely needed, but can be useful if multiple " "drivers are valid for a filesystem (eg: C and C), or if " "libguestfs misidentifies a filesystem." msgstr "" #. type: =head1 #: cat/virt-cat.pod:184 cat/virt-ls.pod:474 edit/virt-edit.pod:216 #: inspector/virt-inspector.pod:165 msgid "OLD-STYLE COMMAND LINE ARGUMENTS" msgstr "" #. type: textblock #: cat/virt-cat.pod:186 msgid "Previous versions of virt-cat allowed you to write either:" msgstr "" #. type: verbatim #: cat/virt-cat.pod:188 #, no-wrap msgid "" " virt-cat disk.img [disk.img ...] file\n" "\n" msgstr "" #. type: textblock #: cat/virt-cat.pod:190 cat/virt-ls.pod:480 edit/virt-edit.pod:222 #: inspector/virt-inspector.pod:171 msgid "or" msgstr "" #. type: verbatim #: cat/virt-cat.pod:192 #, no-wrap msgid "" " virt-cat guestname file\n" "\n" msgstr "" #. type: textblock #: cat/virt-cat.pod:194 cat/virt-ls.pod:484 edit/virt-edit.pod:226 #: inspector/virt-inspector.pod:175 msgid "" "whereas in this version you should use I<-a> or I<-d> respectively to avoid " "the confusing case where a disk image might have the same name as a guest." msgstr "" #. type: textblock #: cat/virt-cat.pod:198 cat/virt-ls.pod:488 edit/virt-edit.pod:230 #: inspector/virt-inspector.pod:179 msgid "For compatibility the old style is still supported." msgstr "" #. type: =head1 #: cat/virt-cat.pod:200 cat/virt-tail.pod:186 msgid "LOG FILES" msgstr "" #. type: textblock #: cat/virt-cat.pod:202 cat/virt-tail.pod:188 msgid "" "To list out the log files from guests, see the related tool L. " "It understands binary log formats such as the systemd journal." msgstr "" #. type: textblock #: cat/virt-cat.pod:206 msgid "To follow (tail) text log files, use L." msgstr "" #. type: =head1 #: cat/virt-cat.pod:208 cat/virt-tail.pod:192 edit/virt-edit.pod:294 msgid "WINDOWS PATHS" msgstr "" #. type: textblock #: cat/virt-cat.pod:210 msgid "" "C has a limited ability to understand Windows drive letters and " "paths (eg. F)." msgstr "" #. type: textblock #: cat/virt-cat.pod:213 cat/virt-tail.pod:197 edit/virt-edit.pod:299 msgid "If and only if the guest is running Windows then:" msgstr "" #. type: textblock #: cat/virt-cat.pod:219 cat/virt-tail.pod:203 edit/virt-edit.pod:305 msgid "" "Drive letter prefixes like C are resolved against the Windows Registry " "to the correct filesystem." msgstr "" #. type: textblock #: cat/virt-cat.pod:224 cat/virt-tail.pod:208 edit/virt-edit.pod:310 msgid "" "Any backslash (C<\\>) characters in the path are replaced with forward " "slashes so that libguestfs can process it." msgstr "" #. type: textblock #: cat/virt-cat.pod:229 cat/virt-tail.pod:213 msgid "" "The path is resolved case insensitively to locate the file that should be " "displayed." msgstr "" #. type: textblock #: cat/virt-cat.pod:234 cat/virt-tail.pod:218 edit/virt-edit.pod:320 msgid "There are some known shortcomings:" msgstr "" #. type: textblock #: cat/virt-cat.pod:240 cat/virt-tail.pod:224 edit/virt-edit.pod:326 msgid "Some NTFS symbolic links may not be followed correctly." msgstr "" #. type: textblock #: cat/virt-cat.pod:244 cat/virt-tail.pod:228 edit/virt-edit.pod:330 msgid "NTFS junction points that cross filesystems are not followed." msgstr "" #. type: =head1 #: cat/virt-cat.pod:248 edit/virt-edit.pod:334 msgid "USING GUESTFISH" msgstr "" #. type: textblock #: cat/virt-cat.pod:250 msgid "" "L is a more powerful, lower level tool which you can use when " "C doesn't work." msgstr "" #. type: textblock #: cat/virt-cat.pod:253 msgid "Using C is approximately equivalent to doing:" msgstr "" #. type: verbatim #: cat/virt-cat.pod:255 #, no-wrap msgid "" " guestfish --ro -i -d domname download file -\n" "\n" msgstr "" #. type: textblock #: cat/virt-cat.pod:257 msgid "" "where C is the name of the libvirt guest, and C is the full " "path to the file. Note the final C<-> (meaning \"output to stdout\")." msgstr "" #. type: textblock #: cat/virt-cat.pod:261 msgid "" "The command above uses libguestfs’s guest inspection feature and so does not " "work on guests that libguestfs cannot inspect, or on things like arbitrary " "disk images that don't contain guests. To display a file from a disk image " "directly, use:" msgstr "" #. type: verbatim #: cat/virt-cat.pod:266 #, no-wrap msgid "" " guestfish --ro -a disk.img -m /dev/sda1 download file -\n" "\n" msgstr "" #. type: textblock #: cat/virt-cat.pod:268 msgid "" "where F is the disk image, F is the filesystem within " "the disk image, and C is the full path to the file." msgstr "" #. type: textblock #: cat/virt-cat.pod:278 msgid "" "L, L, L, L, " "L, L, L, " "L." msgstr "" #. type: textblock #: cat/virt-cat.pod:293 cat/virt-filesystems.pod:403 cat/virt-log.pod:154 #: inspector/virt-inspector.pod:520 make-fs/virt-make-fs.pod:245 #: resize/virt-resize.pod:879 msgid "Copyright (C) 2010-2023 Red Hat Inc." msgstr "" #. type: textblock #: cat/virt-filesystems.pod:3 msgid "" "virt-filesystems - List filesystems, partitions, block devices, LVM in a " "virtual machine or disk image" msgstr "" #. type: verbatim #: cat/virt-filesystems.pod:7 #, no-wrap msgid "" " virt-filesystems [--options] -d domname\n" "\n" msgstr "" #. type: verbatim #: cat/virt-filesystems.pod:9 #, no-wrap msgid "" " virt-filesystems [--options] -a disk.img [-a disk.img ...]\n" "\n" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:13 msgid "" "This tool allows you to discover filesystems, partitions, logical volumes, " "and their sizes in a disk image or virtual machine. It is a replacement for " "L and L." msgstr "" #. type: textblock #: cat/virt-filesystems.pod:18 msgid "" "One use for this tool is from shell scripts to iterate over all filesystems " "from a disk image:" msgstr "" #. type: verbatim #: cat/virt-filesystems.pod:21 #, no-wrap msgid "" " for fs in $(virt-filesystems -a disk.img); do\n" " # ...\n" " done\n" "\n" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:25 msgid "" "Another use is to list partitions before using another tool to modify those " "partitions (such as L). If you are curious about what an " "unknown disk image contains, use this tool along with L." msgstr "" #. type: textblock #: cat/virt-filesystems.pod:30 msgid "" "Various command line options control what this program displays. You need " "to give either I<-a> or I<-d> options to specify the disk image or libvirt " "guest respectively. If you just specify that then the program shows " "filesystems found, one per line, like this:" msgstr "" #. type: verbatim #: cat/virt-filesystems.pod:35 #, no-wrap msgid "" " $ virt-filesystems -a disk.img\n" " /dev/sda1\n" " /dev/vg_guest/lv_root\n" "\n" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:39 msgid "If you add I<-l> or I<--long> then the output includes extra information:" msgstr "" #. type: verbatim #: cat/virt-filesystems.pod:42 #, no-wrap msgid "" " $ virt-filesystems -a disk.img -l\n" " Name Type VFS Label Size\n" " /dev/sda1 filesystem ext4 boot 524288000\n" " /dev/vg_guest/lv_root filesystem ext4 root 10212081664\n" "\n" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:47 msgid "" "If you add I<--extra> then non-mountable (swap, unknown) filesystems are " "shown as well:" msgstr "" #. type: verbatim #: cat/virt-filesystems.pod:50 #, no-wrap msgid "" " $ virt-filesystems -a disk.img --extra\n" " /dev/sda1\n" " /dev/vg_guest/lv_root\n" " /dev/vg_guest/lv_swap\n" " /dev/vg_guest/lv_data\n" "\n" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:56 msgid "If you add I<--partitions> then partitions are shown instead of filesystems:" msgstr "" #. type: verbatim #: cat/virt-filesystems.pod:58 #, no-wrap msgid "" " $ virt-filesystems -a disk.img --partitions\n" " /dev/sda1\n" " /dev/sda2\n" "\n" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:62 msgid "" "Similarly you can use I<--logical-volumes>, I<--volume-groups>, " "I<--physical-volumes>, I<--block-devices> to list those items." msgstr "" #. type: textblock #: cat/virt-filesystems.pod:65 msgid "" "You can use these options in combination as well (if you want a combination " "including filesystems, you have to add I<--filesystems>). Notice that some " "items fall into several categories (eg. F might be both a " "partition and a filesystem). These items are listed several times. To get " "a list which includes absolutely everything that virt-filesystems knows " "about, use the I<--all> option." msgstr "" #. type: textblock #: cat/virt-filesystems.pod:72 msgid "" "UUIDs (because they are quite long) are not shown by default. Add the " "I<--uuid> option to display device and filesystem UUIDs in the long output." msgstr "" #. type: textblock #: cat/virt-filesystems.pod:76 msgid "" "I<--all --long --uuid> is a useful combination to display all possible " "information about everything." msgstr "" #. type: verbatim #: cat/virt-filesystems.pod:79 #, no-wrap msgid "" " $ virt-filesystems -a win.img --all --long --uuid -h\n" " Name Type VFS Label Size Parent UUID\n" " /dev/sda1 filesystem ntfs System Reserved 100M - F81C92571C92112C\n" " /dev/sda2 filesystem ntfs - 20G - F2E8996AE8992E3B\n" " /dev/sda1 partition - - 100M /dev/sda -\n" " /dev/sda2 partition - - 20G /dev/sda -\n" " /dev/sda device - - 20G - -\n" "\n" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:87 msgid "For machine-readable output, use I<--csv> to get Comma-Separated Values." msgstr "" #. type: =item #: cat/virt-filesystems.pod:114 diff/virt-diff.pod:60 msgid "B<--all>" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:116 msgid "" "Display everything. This is currently the same as specifying these options: " "I<--filesystems>, I<--extra>, I<--partitions>, I<--block-devices>, " "I<--logical-volumes>, I<--volume-groups>, I<--physical-volumes>. (More may " "be added to this list in future)." msgstr "" #. type: textblock #: cat/virt-filesystems.pod:121 msgid "See also I<--long>." msgstr "" #. type: =item #: cat/virt-filesystems.pod:123 msgid "B<--blkdevs>" msgstr "" #. type: =item #: cat/virt-filesystems.pod:125 msgid "B<--block-devices>" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:127 msgid "Display block devices." msgstr "" #. type: =item #: cat/virt-filesystems.pod:141 cat/virt-ls.pod:297 df/virt-df.pod:108 #: diff/virt-diff.pod:99 msgid "B<--csv>" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:143 cat/virt-ls.pod:299 df/virt-df.pod:110 #: diff/virt-diff.pod:101 msgid "" "Write out the results in CSV format (comma-separated values). This format " "can be imported easily into databases and spreadsheets, but read L below." msgstr "" #. type: textblock #: cat/virt-filesystems.pod:156 msgid "" "When prompting for keys and passphrases, virt-filesystems normally turns " "echoing off so you cannot see what you are typing. If you are not worried " "about Tempest attacks and there is no one else in the room you can specify " "this flag to see what you are typing." msgstr "" #. type: =item #: cat/virt-filesystems.pod:161 msgid "B<--extra>" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:163 msgid "" "This causes filesystems that are not ordinary, mountable filesystems to be " "displayed. This category includes swapspace, and filesystems that are empty " "or contain unknown data." msgstr "" #. type: textblock #: cat/virt-filesystems.pod:167 msgid "This option implies I<--filesystems>." msgstr "" #. type: =item #: cat/virt-filesystems.pod:169 msgid "B<--filesystems>" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:171 msgid "" "Display mountable filesystems. If no display option was selected then this " "option is implied." msgstr "" #. type: textblock #: cat/virt-filesystems.pod:174 msgid "With I<--extra>, non-mountable filesystems are shown too." msgstr "" #. type: verbatim #: cat/virt-filesystems.pod:187 #, no-wrap msgid "" " virt-filesystems --format=raw -a disk.img\n" "\n" msgstr "" #. type: verbatim #: cat/virt-filesystems.pod:191 #, no-wrap msgid "" " virt-filesystems --format=raw -a disk.img --format -a another.img\n" "\n" msgstr "" #. type: =item #: cat/virt-filesystems.pod:200 cat/virt-ls.pod:348 df/virt-df.pod:145 #: diff/virt-diff.pod:165 msgid "B<-h>" msgstr "" #. type: =item #: cat/virt-filesystems.pod:202 cat/virt-ls.pod:350 df/virt-df.pod:147 #: diff/virt-diff.pod:167 msgid "B<--human-readable>" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:204 msgid "In I<--long> mode, display sizes in human-readable format." msgstr "" #. type: =item #: cat/virt-filesystems.pod:208 cat/virt-ls.pod:397 msgid "B<-l>" msgstr "" #. type: =item #: cat/virt-filesystems.pod:210 cat/virt-ls.pod:399 msgid "B<--long>" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:212 msgid "Display extra columns of data (\"long format\")." msgstr "" #. type: textblock #: cat/virt-filesystems.pod:214 msgid "A title row is added unless you also specify I<--no-title>." msgstr "" #. type: textblock #: cat/virt-filesystems.pod:216 msgid "" "The extra columns displayed depend on what output you select, and the " "ordering of columns may change in future versions. Use the title row, " "I<--csv> output and/or L to match columns to data in external " "programs." msgstr "" #. type: textblock #: cat/virt-filesystems.pod:221 msgid "" "Use I<-h> if you want sizes to be displayed in human-readable format. The " "default is to show raw numbers of I." msgstr "" #. type: textblock #: cat/virt-filesystems.pod:224 msgid "Use I<--uuid> to display UUIDs too." msgstr "" #. type: =item #: cat/virt-filesystems.pod:226 msgid "B<--lvs>" msgstr "" #. type: =item #: cat/virt-filesystems.pod:228 msgid "B<--logvols>" msgstr "" #. type: =item #: cat/virt-filesystems.pod:230 msgid "B<--logical-volumes>" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:232 msgid "" "Display LVM logical volumes. In this mode, these are displayed irrespective " "of whether the LVs contain filesystems." msgstr "" #. type: =item #: cat/virt-filesystems.pod:235 msgid "B<--no-title>" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:237 msgid "In I<--long> mode, don’t add a title row." msgstr "" #. type: textblock #: cat/virt-filesystems.pod:239 msgid "" "Note that the order of the columns is not fixed, and may change in future " "versions of virt-filesystems, so using this option may give you unexpected " "surprises." msgstr "" #. type: =item #: cat/virt-filesystems.pod:243 msgid "B<--parts>" msgstr "" #. type: =item #: cat/virt-filesystems.pod:245 msgid "B<--partitions>" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:247 msgid "" "Display partitions. In this mode, these are displayed irrespective of " "whether the partitions contain filesystems." msgstr "" #. type: =item #: cat/virt-filesystems.pod:250 msgid "B<--pvs>" msgstr "" #. type: =item #: cat/virt-filesystems.pod:252 msgid "B<--physvols>" msgstr "" #. type: =item #: cat/virt-filesystems.pod:254 msgid "B<--physical-volumes>" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:256 msgid "Display LVM physical volumes." msgstr "" #. type: =item #: cat/virt-filesystems.pod:260 msgid "B<--uuids>" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:262 msgid "In I<--long> mode, display UUIDs as well." msgstr "" #. type: =item #: cat/virt-filesystems.pod:276 msgid "B<--vgs>" msgstr "" #. type: =item #: cat/virt-filesystems.pod:278 msgid "B<--volgroups>" msgstr "" #. type: =item #: cat/virt-filesystems.pod:280 msgid "B<--volume-groups>" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:282 msgid "Display LVM volume groups." msgstr "" #. type: =head1 #: cat/virt-filesystems.pod:290 msgid "COLUMNS" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:292 msgid "" "Note that columns in the output are subject to reordering and change in " "future versions of this tool." msgstr "" #. type: =item #: cat/virt-filesystems.pod:297 msgid "B" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:299 msgid "The filesystem, partition, block device or LVM name." msgstr "" #. type: textblock #: cat/virt-filesystems.pod:301 msgid "" "For device and partition names these are displayed as canonical libguestfs " "names, so that for example F is the second partition on the first " "device." msgstr "" #. type: textblock #: cat/virt-filesystems.pod:305 msgid "" "If the I<--long> option is B specified, then only the name column is " "shown in the output." msgstr "" #. type: =item #: cat/virt-filesystems.pod:308 msgid "B" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:310 msgid "The object type, for example C, C, C etc." msgstr "" #. type: =item #: cat/virt-filesystems.pod:312 msgid "B" msgstr "" #. type: textblock #: cat/virt-filesystems.pod:314 msgid "" "If there is a filesystem, then this column displays the filesystem type if " "one could be detected, eg. C." msgstr "" #. type: =item #: cat/virt-filesystems.pod:317 msgid "B