How to create a Fedora install ISO for testing

From FedoraProject

(Difference between revisions)
Jump to: navigation, search
(fixed rsync command)
 
(20 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This page shows you how to build an ISO of Rawhide that you can use for testing.
+
{{header|qa}}
  
{{admon/important | Testing pre-releases | There are specific sections below that show how to get a DVD that matches the version being used by the [[QA]] group for testing Fedora pre-releases.}}
+
This page shows you how to build a Fedora ISO image you can use for testing.  The examples reference the Fedora [[Releases/Rawhide|Rawhide]] repository, but the same instructions apply for any release of Fedora. The tutorial requires that you open a root shell.  To access a root shell, open a terminal and run the command {{command|su -}}, and provide the root password.
  
The rest of this tutorial requires that you open a root shell.  Open a terminal and run the command {{command|su -}}, and provide the root password.
+
== Setup ==
  
== Making a local copy of Rawhide ==
+
In order to create Fedora ISO images, you must use a Fedora release that matches the release of the desired ISO images.  For example, to create Fedora [[Releases/Rawhide|Rawhide]] images, you need to be running Fedora Rawhide.  The examples in this document use {{package|mock}} to simulate the target environment and create ISO images.  If you already have a system available running the target release, the use of mock is not required.
  
{{admon/note | Optional | This section is optionalYou can use a nearby official Fedora mirror over a broadband connectionHowever, you may find it useful to mirror Rawhide locally if you regularly participate in testing.  Note that the {{package|mirrormanager}} package may be useful in some situations.  Refer to the [[Infrastructure/MirrorManager | detailed MirrorManager page]] for more information.}}
+
<ol>
 +
<li> First, install the necessary packages <pre>yum install mock</pre></li>
 +
<li> Adjust the mock configuration to allow bind mounts needed to support compose image generationAdd the following lines to the appropriate mock configurationFor example, for [[Releases/Rawhide|Fedora Rawhide]], update {{filename|/etc/mock/fedora-rawhide-x86_64.cfg}} to include the following:
 +
<pre>
 +
config_opts['plugin_conf']['bind_mount_enable'] = True
 +
config_opts['plugin_conf']['bind_mount_opts']['dirs'].append(('/dev','/dev/'))
 +
config_opts['plugin_conf']['bind_mount_opts']['dirs'].append(('/dev/pts','/dev/pts/'))
 +
config_opts['plugin_conf']['bind_mount_opts']['dirs'].append(('/dev/shm','/dev/shm/'))
 +
</pre>
 +
</li>
 +
<li> Initialize the mock chroot <pre>mock -r fedora-rawhide-$(uname -i) --init</pre>
 +
{{admon/note|Behind the scenes...|Mock does a lot of work behind the scenes.  If you want to see what commands it's running in the chroot, add the <code>--verbose</code> option.}}</li>
 +
<li> Prepare the mock chroot for running {{command|pungi}} by installing packages into the chroot
 +
<pre>mock -r fedora-rawhide-$(uname -i) --install spin-kickstarts pungi ${EDITOR:-vi}</pre></li>
 +
</ol>
  
If you don't have Rawhide available on a fast, local link, you may want to mirror it locally using {{command|rsync}}.
+
== Create a local mirror ''(optional)''==
  
 +
This section is optional.  You can use a nearby official Fedora mirror over a broadband connection.  However, you may find it useful to mirror Rawhide locally if you regularly participate in testing.  Note that the {{package|mirrormanager}} package may be useful in some situations.  Refer to the [[Infrastructure/MirrorManager | detailed MirrorManager page]] for more information.
 +
 +
<ol>
 +
<li>If you don't have Rawhide available on a fast, local link, you may want to mirror it locally using {{command|rsync}}.  Find a nearby mirror at http://mirrors.fedoraproject.org
 
<pre>mkdir -p /var/www/fedora/linux/development/x86_64/os
 
<pre>mkdir -p /var/www/fedora/linux/development/x86_64/os
 
cd /var/www/fedora/linux/development/x86_64/os
 
cd /var/www/fedora/linux/development/x86_64/os
rsync -Pavy --delete-after <MIRROR_NEAR_YOU>::fedora-linux-development/x86_64/os .</pre>
+
rsync -Pavy --delete-after <MIRROR_NEAR_YOU>::/pub/fedora/linux/development/rawhide/$(uname -i)/os/ .</pre></li>
 +
<li> In the mock chroot, edit the [[Anaconda/Kickstart|kickstart]] configuration file used by pungi.
 +
<pre>mock -r fedora-rawhide-$(uname -i) --shell ${EDITOR:-vi} /usr/share/spin-kickstarts/fedora-install-fedora.ks</pre>
 +
</li>
 +
<li>
 +
Remove (or comment out) the existing <code>repo --name=fedora </code> line and add a new entry for the local mirror.  Using the example above, you would end up with ...
 +
<pre>
 +
repo --name=fedora --baseurl=file:///var/www/fedora/linux/development/$basearch/os
 +
</pre>
 +
<li>When finished, save your changes and exit the chroot by pressing <code>Ctrl-D</code> or typing {{command|logout}}
 +
</li>
 +
</ol>
  
Note that these commands assume you are interested in testing the <code>x86_64</code> (64-bit) architectureSubstitute <code>i386</code> as needed for 32-bit architecture.
+
== Build a {{filename|boot.iso}} ==
 +
This section assumes you have installed the {{package|mock}} package and prepared the mock chroot as suggested in [[#Setup]]If you haven't completed those steps, please do so now.  This section provides instruction on creating PXEboot and {{filename|boot.iso}} images only.  To create an installable {{filename|-DVD.iso}} image, see [[#Build_a_DVD_ISO]].
  
== Testing Rawhide ==
 
<!-- I forgot, you need to use an HTML <ol> if you want command sections in between steps in a procedure. -->
 
This section shows the procedure to make a DVD-sized ISO image from the Rawhide repository.
 
 
<ol>
 
<ol>
<li>You must be ''running'' Rawhide, or use {{package|mock}} to continue.  Refer to [https://fedorahosted.org/pungi/wiki/PungiDocs/RunningPungi the Pungi documentation] for more information.  One easy way to proceed, since you presumably have a Rawhide mirror available (see above), is to install Rawhide in a virtual guest machine.</li>
+
<li> Activate a shell inside the mock chroot
<li>You can use the same tools that [[ReleaseEngineering | Fedora Release Engineering]] uses to make a DVD.  First, install the {{package|pungi}} package.
+
<pre>mock -r fedora-rawhide-$(uname -i) --shell</pre>
<pre>yum install pungi</pre></li>
+
</li>
<li>Change directory to an area with gobs of free space. Use the {{command|df -h}} command to find a location if needed.
+
<li> Next, create a DVD (this may take a while)
<pre>cd /tmp</pre></li>
+
<pre>pungi --nosource --nodebuginfo -G -C -B \
<li>Download the current kickstart file for Rawhide.
+
  --flavor Fedora --name Fedora --ver rawhide \
<pre>curl -o rawhide-fedora.ks http://git.fedorahosted.org/git/pungi.git?p=pungi.git;a=blob_plain;f=share/rawhide-fedora.ks;hb=HEAD</pre></li>
+
  -c /usr/share/spin-kickstarts/fedora-install-fedora.ks</pre></li>
<li>Edit the {{command|repo}} commands in the {{filename|rawhide-fedora.ks}} file to point at your local mirror, if neededIf the mirror is on your hard disk as above, for example, use this command in the kickstart file:
+
<li>If the previous command completed without errors, you now have PXEboot images and a {{filename|boot.iso}} available in your chroot.  Exit the mock shell, and copy the ISO image out of the chroot.
<pre>repo --name=rawhide --baseurl=file:///var/www/fedora/linux/development/$basearch/os</pre>
+
<pre>
If you do not make these changes, the packages for Rawhide will be downloaded from a nearby official Fedora mirror.  Note that this could take several hours even on a fast broadband connection.</li>
+
mock -r fedora-rawhide-$(uname -i) --copyout /rawhide/Fedora/$(uname -i)/os/images/boot.iso /tmp/
<li>Make the DVD image:
+
</pre>
<pre>pungi --nosource --nosplitmedia --nodebuginfo --all-stages -c rawhide-fedora.ks</pre></li>
+
</ol>
 +
 
 +
== Build a {{filename|DVD.iso}} ==
 +
This section assumes you have installed the {{package|mock}} package and prepared the mock chroot as suggested in [[#Setup]]. If you haven't completed those steps, please do so now.
 +
 
 +
<ol>
 +
<li> Activate a shell inside the mock chroot
 +
<pre>mock -r fedora-rawhide-$(uname -i) --shell</pre>
 +
</li>
 +
<li> Next, create a DVD (this may take a while)
 +
<pre>pungi --nosource --nodebuginfo \
 +
  --flavor Fedora --name Fedora --ver rawhide \
 +
  -c /usr/share/spin-kickstarts/fedora-install-fedora.ks</pre>
 +
{{admon/note|Save time ...|If you already followed the steps in [[#Build_a_boot.iso]], you can save time by instructing {{command|pungi}} to ''only'' build the {{filename|-DVD.iso}} imageWhen running the {{command|pungi}} command above, add the <code>-I</code> parameter to only build the ISO files, and to skip the previously executed steps.}}
 +
</li>
 +
<li>If the previous command completed without errors, you now have a DVD ISO image in your chroot.  Before proceeding, validate the ISO images using the {{command|sha256sum}} command
 +
<pre>
 +
cd /rawhide/Fedora/$(uname -i)/iso
 +
sha256sum -c Fedora-rawhide-$(uname -i)-CHECKSUM
 +
</pre></li>
 +
<li>Exit the mock shell, and copy the ISO image out of the chroot and have fun ...
 +
<pre>
 +
mock -r fedora-rawhide-$(uname -i) --copyout /rawhide/Fedora/$(uname -i)/iso/Fedora-rawhide-$(uname -i)-DVD.iso /tmp/
 +
</pre>
 
</ol>
 
</ol>
  
 
== Testing a release candidate ==
 
== Testing a release candidate ==
Special release candidates are made available through [http://alt.fedoraproject.org the alt.fedoraproject.org staging site].  You can simply download a release candidate from this site, although the transfer speed generally means you must wait several hours for an ISO image.
+
As indicated in the [http://rbergero.fedorapeople.org/schedules/f-{{FedoraVersion|number|next}}/f-{{FedoraVersion|number|next}}-releng-tasks.html release engineering schedule], special candidate ISO images are made available for [[QA]] at the [http://dl.fedoraproject.org/pub/alt/stage/ dl.fedoraproject.org staging site].  You can simply download a release candidate from this site.  Depending on your transfer speeds, you may have to wait a while to complete the download.
  
However, if you've already built a DVD ISO image from Rawhide, and Rawhide is reasonably close to the state of the release candidate, you can use {{command|rsync}} to "upgrade" your Rawhide DVD ISO image to the release candidate.  The resulting DVD ISO image can be verified as identical using the {{command|sha256sum}} command.
+
One solution is to use the {{command|rsync}} command to ''upgrade'' your local Fedora DVD ISO image to match the remote image.  The assumes you have already built or downloaded a Fedora DVD ISO image, and the contents of your image are reasonably close to the state of the remote ISO image. 
 +
 
 +
After running {{command|rsync}}, the resulting DVD ISO image can be verified as identical using the {{command|sha256sum}} command.
  
 
<ol>
 
<ol>
<li>Get the official file name of the DVD from the mirror.  Note the directory location ''and'' the file name.</li>
+
<li>Get the official file name of the DVD from the mirror.  Note the directory location '''and''' the file name.</li>
<li>Rename your DVD ISO image to the same name as the official file.
+
<li>Rename your local DVD ISO image to match the file name used on the remote location.
<pre>cd 20090325/x86_64/iso
+
<pre>mv Fedora-rawhide-$(uname -i)-DVD.iso Fedora-16-$(uname -i)-DVD.iso</pre></li>
mv Fedora-20090325-x86_64-DVD.iso Fedora-11-Beta-x86_64-DVD.iso</pre></li>
+
 
<li>Use {{command|rsync}} to download the required bits to match your DVD to the original.  The switches below deliver stats as you download, and effectively minimize the amount of downloading.  ''Note that the location shown is an example only.''
 
<li>Use {{command|rsync}} to download the required bits to match your DVD to the original.  The switches below deliver stats as you download, and effectively minimize the amount of downloading.  ''Note that the location shown is an example only.''
<pre>rsync -Pavy alt.fedoraproject.org::stage/11-Beta.rc3/Fedora-11-Beta-x86_64-DVD/Fedora-11-Beta-x86_64-DVD.iso .</pre></li>
+
<pre>rsync -Pavy dl.fedoraproject.org::fedora-stage/16-Final.RC1/Fedora/$(uname -i)/iso/Fedora-16-$(uname -i)-DVD.iso .</pre>
<li>Use {{command|sha256sum}} to test the image for integrity.  The resulting checksum should be identical to that shown in the {{filename|*CHECKSUM}} file that accompanies the image on the staging site.
+
</li>
<pre>sha256sum Fedora-11-Beta-x86_64-DVD.iso</pre>
+
<li>Use the {{command|sha256sum}} command to test the image for integrity.  The resulting checksum should be identical to that shown in the {{filename|*-CHECKSUM}} file that accompanies the image on the staging site.
 +
<pre>sha256sum Fedora-16-x86_64-DVD.iso</pre>
 
</ol>
 
</ol>
 +
 +
== References ==
 +
# For additional information on using {{package|pungi}}, see [https://fedorahosted.org/pungi/wiki/PungiDocs/RunningPungi the Pungi documentation].
 +
# For additional information on using {{package|mock}}, see [[Projects/Mock]].
  
 
[[Category:QA_SOPs]]
 
[[Category:QA_SOPs]]

Latest revision as of 22:23, 14 August 2011

QA.png


This page shows you how to build a Fedora ISO image you can use for testing. The examples reference the Fedora Rawhide repository, but the same instructions apply for any release of Fedora. The tutorial requires that you open a root shell. To access a root shell, open a terminal and run the command su -, and provide the root password.

Contents

[edit] Setup

In order to create Fedora ISO images, you must use a Fedora release that matches the release of the desired ISO images. For example, to create Fedora Rawhide images, you need to be running Fedora Rawhide. The examples in this document use Package-x-generic-16.pngmock to simulate the target environment and create ISO images. If you already have a system available running the target release, the use of mock is not required.

  1. First, install the necessary packages
    yum install mock
  2. Adjust the mock configuration to allow bind mounts needed to support compose image generation. Add the following lines to the appropriate mock configuration. For example, for Fedora Rawhide, update /etc/mock/fedora-rawhide-x86_64.cfg to include the following:
    config_opts['plugin_conf']['bind_mount_enable'] = True
    config_opts['plugin_conf']['bind_mount_opts']['dirs'].append(('/dev','/dev/'))
    config_opts['plugin_conf']['bind_mount_opts']['dirs'].append(('/dev/pts','/dev/pts/'))
    config_opts['plugin_conf']['bind_mount_opts']['dirs'].append(('/dev/shm','/dev/shm/'))
    
  3. Initialize the mock chroot
    mock -r fedora-rawhide-$(uname -i) --init
    Note.png
    Behind the scenes...
    Mock does a lot of work behind the scenes. If you want to see what commands it's running in the chroot, add the --verbose option.
  4. Prepare the mock chroot for running pungi by installing packages into the chroot
    mock -r fedora-rawhide-$(uname -i) --install spin-kickstarts pungi ${EDITOR:-vi}

[edit] Create a local mirror (optional)

This section is optional. You can use a nearby official Fedora mirror over a broadband connection. However, you may find it useful to mirror Rawhide locally if you regularly participate in testing. Note that the Package-x-generic-16.pngmirrormanager package may be useful in some situations. Refer to the detailed MirrorManager page for more information.

  1. If you don't have Rawhide available on a fast, local link, you may want to mirror it locally using rsync. Find a nearby mirror at http://mirrors.fedoraproject.org
    mkdir -p /var/www/fedora/linux/development/x86_64/os
    cd /var/www/fedora/linux/development/x86_64/os
    rsync -Pavy --delete-after <MIRROR_NEAR_YOU>::/pub/fedora/linux/development/rawhide/$(uname -i)/os/ .
  2. In the mock chroot, edit the kickstart configuration file used by pungi.
    mock -r fedora-rawhide-$(uname -i) --shell ${EDITOR:-vi} /usr/share/spin-kickstarts/fedora-install-fedora.ks
  3. Remove (or comment out) the existing repo --name=fedora line and add a new entry for the local mirror. Using the example above, you would end up with ...
    repo --name=fedora --baseurl=file:///var/www/fedora/linux/development/$basearch/os
    
  4. When finished, save your changes and exit the chroot by pressing Ctrl-D or typing logout

[edit] Build a boot.iso

This section assumes you have installed the Package-x-generic-16.pngmock package and prepared the mock chroot as suggested in #Setup. If you haven't completed those steps, please do so now. This section provides instruction on creating PXEboot and boot.iso images only. To create an installable -DVD.iso image, see #Build_a_DVD_ISO.

  1. Activate a shell inside the mock chroot
    mock -r fedora-rawhide-$(uname -i) --shell
  2. Next, create a DVD (this may take a while)
    pungi --nosource --nodebuginfo -G -C -B \
      --flavor Fedora --name Fedora --ver rawhide \
      -c /usr/share/spin-kickstarts/fedora-install-fedora.ks
  3. If the previous command completed without errors, you now have PXEboot images and a boot.iso available in your chroot. Exit the mock shell, and copy the ISO image out of the chroot.
    mock -r fedora-rawhide-$(uname -i) --copyout /rawhide/Fedora/$(uname -i)/os/images/boot.iso /tmp/
    

[edit] Build a DVD.iso

This section assumes you have installed the Package-x-generic-16.pngmock package and prepared the mock chroot as suggested in #Setup. If you haven't completed those steps, please do so now.

  1. Activate a shell inside the mock chroot
    mock -r fedora-rawhide-$(uname -i) --shell
  2. Next, create a DVD (this may take a while)
    pungi --nosource --nodebuginfo \
      --flavor Fedora --name Fedora --ver rawhide \
      -c /usr/share/spin-kickstarts/fedora-install-fedora.ks
    Note.png
    Save time ...
    If you already followed the steps in #Build_a_boot.iso, you can save time by instructing pungi to only build the -DVD.iso image. When running the pungi command above, add the -I parameter to only build the ISO files, and to skip the previously executed steps.
  3. If the previous command completed without errors, you now have a DVD ISO image in your chroot. Before proceeding, validate the ISO images using the sha256sum command
    cd /rawhide/Fedora/$(uname -i)/iso
    sha256sum -c Fedora-rawhide-$(uname -i)-CHECKSUM 
    
  4. Exit the mock shell, and copy the ISO image out of the chroot and have fun ...
    mock -r fedora-rawhide-$(uname -i) --copyout /rawhide/Fedora/$(uname -i)/iso/Fedora-rawhide-$(uname -i)-DVD.iso /tmp/
    

[edit] Testing a release candidate

As indicated in the release engineering schedule, special candidate ISO images are made available for QA at the dl.fedoraproject.org staging site. You can simply download a release candidate from this site. Depending on your transfer speeds, you may have to wait a while to complete the download.

One solution is to use the rsync command to upgrade your local Fedora DVD ISO image to match the remote image. The assumes you have already built or downloaded a Fedora DVD ISO image, and the contents of your image are reasonably close to the state of the remote ISO image.

After running rsync, the resulting DVD ISO image can be verified as identical using the sha256sum command.

  1. Get the official file name of the DVD from the mirror. Note the directory location and the file name.
  2. Rename your local DVD ISO image to match the file name used on the remote location.
    mv Fedora-rawhide-$(uname -i)-DVD.iso Fedora-16-$(uname -i)-DVD.iso
  3. Use rsync to download the required bits to match your DVD to the original. The switches below deliver stats as you download, and effectively minimize the amount of downloading. Note that the location shown is an example only.
    rsync -Pavy dl.fedoraproject.org::fedora-stage/16-Final.RC1/Fedora/$(uname -i)/iso/Fedora-16-$(uname -i)-DVD.iso .
  4. Use the sha256sum command to test the image for integrity. The resulting checksum should be identical to that shown in the *-CHECKSUM file that accompanies the image on the staging site.
    sha256sum Fedora-16-x86_64-DVD.iso

[edit] References

  1. For additional information on using Package-x-generic-16.pngpungi, see the Pungi documentation.
  2. For additional information on using Package-x-generic-16.pngmock, see Projects/Mock.