mirror of
https://github.com/QubesOS/qubes-doc.git
synced 2024-10-01 01:25:40 -04:00
FedoraTemplateUpgrade20: Improve instructions
* Add option to resize disk image * Make language clearer * Various minor improvements
This commit is contained in:
parent
8b44e13418
commit
ca6b099970
@ -8,8 +8,35 @@ redirect_from: /wiki/FedoraTemplateUpgrade20/
|
||||
How to Upgrade Fedora Templates
|
||||
===============================
|
||||
|
||||
Upgrading the Standard Fedora 20 Template to Fedora 21
|
||||
------------------------------------------------------
|
||||
Summary: Upgrading the Standard Fedora 20 Template to Fedora 21
|
||||
---------------------------------------------------------------
|
||||
|
||||
[user@dom0 ~]$ qvm-clone fedora-20-x64 fedora-21
|
||||
[user@dom0 ~]$ truncate -s 5GB /var/tmp/template-upgrade-cache.img
|
||||
[user@dom0 ~]$ qvm-run -a fedora-21 gnome-terminal
|
||||
[user@dom0 ~]$ qvm-block -A fedora-21 dom0:/var/tmp/template-upgrade-cache.img
|
||||
[user@fedora-21 ~]$ sudo mkfs.ext4 /dev/xvdi
|
||||
[user@fedora-21 ~]$ sudo mount /dev/xvdi /mnt/removable
|
||||
[user@fedora-21 ~]$ sudo mkdir /mnt/removable/modules
|
||||
[user@fedora-21 ~]$ sudo cp -rp /usr/lib/modules /mnt/removable/modules
|
||||
[user@fedora-21 ~]$ sudo mount --bind /mnt/removable/modules /usr/lib/modules
|
||||
[user@fedora-21 ~]$ sudo yum erase nautilus-actions libcacard
|
||||
[user@fedora-21 ~]$ sudo yum clean all
|
||||
[user@fedora-21 ~]$ sudo yum --releasever=21 --setopt=cachedir=/mnt/removable distro-sync
|
||||
[user@fedora-21 ~]$ sudo cp /usr/lib/qubes/init/ip* /etc/sysconfig/
|
||||
|
||||
(Shut down TemplateVM via Qubes VM Manager; may need to be killed.)
|
||||
|
||||
[user@dom0 ~]$ rm /var/tmp/template-upgrade-cache.img
|
||||
[user@dom0 ~]$ qvm-run -a fedora-21 gnome-terminal
|
||||
[user@fedora-21 ~]$ sudo yum -y update
|
||||
|
||||
(Shut down TemplateVM by any normal means.)
|
||||
|
||||
[user@dom0 ~]$ qvm-trim-template fedora-21
|
||||
|
||||
Detailed: Upgrading the Standard Fedora 20 Template to Fedora 21
|
||||
----------------------------------------------------------------
|
||||
|
||||
These instructions will show you how to upgrade the standard Fedora 20
|
||||
TemplateVM to Fedora 21. The same general procedure may be used to upgrade any
|
||||
@ -27,9 +54,9 @@ template based on the standard Fedora 20 template.
|
||||
[user@fedora-21 ~]$ sudo yum --releasever=21 distro-sync
|
||||
[user@fedora-21 ~]$ sudo cp /usr/lib/qubes/init/ip* /etc/sysconfig/
|
||||
|
||||
(Poweroff via Qubes VM Manager. May need to be killed.)
|
||||
(Shut down TemplateVM via Qubes VM Manager; may need to be killed.)
|
||||
|
||||
If you encounter no errors, proceed to step 6.
|
||||
If you encounter no errors, proceed to step 7.
|
||||
|
||||
3. If `yum` reports that you do not have enough free disk space to proceed with
|
||||
the upgrade process, create an empty file in dom0 to use as a cache and
|
||||
@ -57,57 +84,32 @@ template based on the standard Fedora 20 template.
|
||||
[user@fedora-21 ~]$ sudo cp -rp /usr/lib/modules /mnt/removable/modules
|
||||
[user@fedora-21 ~]$ sudo mount --bind /mnt/removable/modules /usr/lib/modules
|
||||
|
||||
5. After the upgrade process is finished, remove the cache file you created.
|
||||
5. `yum` may complain:
|
||||
|
||||
At least X MB more space needed on the / filesystem.
|
||||
|
||||
In this case, one option is to [resize the TemplateVM's disk
|
||||
image](/doc/ResizeDiskImage/) before reattempting the upgrade process.
|
||||
(See **Additional Information** below for other options.)
|
||||
|
||||
6. After the upgrade process is finished, remove the cache file, if you
|
||||
created one.
|
||||
|
||||
[user@dom0 ~]$ rm /var/tmp/template-upgrade-cache.img
|
||||
|
||||
6. Ensure your new template is fully updated.
|
||||
7. Ensure your new template is fully updated.
|
||||
|
||||
[user@dom0 ~]$ qvm-run -a fedora-21 gnome-terminal
|
||||
[user@fedora-21 ~]$ sudo yum -y update
|
||||
|
||||
8. Trim the new template (see **Compacting the Upgraded Template** for details
|
||||
and other options).
|
||||
|
||||
Summary of Full Procedure (Full)
|
||||
--------------------------------
|
||||
|
||||
[user@dom0 ~]$ qvm-clone fedora-20-x64 fedora-21
|
||||
[user@dom0 ~]$ truncate -s 5GB /var/tmp/template-upgrade-cache.img
|
||||
[user@dom0 ~]$ qvm-run -a fedora-21 gnome-terminal
|
||||
[user@dom0 ~]$ qvm-block -A fedora-21 dom0:/var/tmp/template-upgrade-cache.img
|
||||
[user@fedora-21 ~]$ sudo mkfs.ext4 /dev/xvdi
|
||||
[user@fedora-21 ~]$ sudo mount /dev/xvdi /mnt/removable
|
||||
[user@fedora-21 ~]$ sudo mkdir /mnt/removable/modules
|
||||
[user@fedora-21 ~]$ sudo cp -rp /usr/lib/modules /mnt/removable/modules
|
||||
[user@fedora-21 ~]$ sudo mount --bind /mnt/removable/modules /usr/lib/modules
|
||||
[user@fedora-21 ~]$ sudo yum erase nautilus-actions libcacard
|
||||
[user@fedora-21 ~]$ sudo yum clean all
|
||||
[user@fedora-21 ~]$ sudo yum --releasever=21 --setopt=cachedir=/mnt/removable distro-sync
|
||||
[user@fedora-21 ~]$ sudo cp /usr/lib/qubes/init/ip* /etc/sysconfig/
|
||||
|
||||
(Poweroff via Qubes VM Manager. May need to be killed.)
|
||||
|
||||
[user@dom0 ~]$ rm /var/tmp/template-upgrade-cache.img
|
||||
[user@dom0 ~]$ qvm-run -a fedora-21 gnome-terminal
|
||||
[user@fedora-21 ~]$ sudo yum -y update
|
||||
[user@dom0 ~]$ qvm-trim-template fedora-21
|
||||
|
||||
|
||||
Upgrading the Minimal Fedora 20 Template to Fedora 21
|
||||
-----------------------------------------------------
|
||||
|
||||
The procedure for upgrading the minimal template (or any template based on the
|
||||
minimal template) is the same as the procedure for the standard template above,
|
||||
**with the following exceptions**:
|
||||
|
||||
1. `gnome-terminal` is not installed by default. Unless you installed it (or
|
||||
another terminal emulator), use `xterm`.
|
||||
2. `nautilus-actions` and `libcacard` are not installed by default, so do not
|
||||
try to erase them (unless you installed them).
|
||||
3. `sudo` is not installed by default, so use `su` unless you've installed the
|
||||
former.
|
||||
|
||||
|
||||
Summary of Full Procedure (Minimal)
|
||||
-----------------------------------
|
||||
Summary: Upgrading the Minimal Fedora 20 Template to Fedora 21
|
||||
--------------------------------------------------------------
|
||||
|
||||
[user@dom0 ~]$ qvm-clone fedora-20-x64-minimal fedora-21-minimal
|
||||
[user@dom0 ~]$ qvm-run -a fedora-21-minimal xterm
|
||||
@ -116,16 +118,37 @@ Summary of Full Procedure (Minimal)
|
||||
[user@fedora-21-minimal ~]# yum --releasever=21 distro-sync
|
||||
[user@fedora-21-minimal ~]# cp /usr/lib/qubes/init/ip* /etc/sysconfig/
|
||||
|
||||
(Poweroff via Qubes VM Manager. May need to be killed.)
|
||||
(Shut down the TemplateVM via Qubes VM Manager. May need to be killed.)
|
||||
|
||||
[user@dom0 ~]$ qvm-run -a fedora-21-minimal xterm
|
||||
[user@fedora-21-minimal ~]$ su -
|
||||
[root@fedora-21-minimal ~]# yum -y update
|
||||
[root@fedora-21-minimal ~]# yum -y update
|
||||
|
||||
(Shut down TemplateVM by any normal means.)
|
||||
|
||||
[user@dom0 ~]$ qvm-trim-template fedora-21-minimal
|
||||
|
||||
(If you encounter insufficient space issues, you may need to use the methods
|
||||
described for the standard template above.)
|
||||
|
||||
|
||||
Differences Between the Standard and Minimal Upgrade Procedures
|
||||
---------------------------------------------------------------
|
||||
|
||||
The procedure for upgrading the minimal template (or any template based on the
|
||||
minimal template) is the same as the procedure for the standard template above,
|
||||
**with the following exceptions**:
|
||||
|
||||
1. `gnome-terminal` is not installed by default. Unless you've installed it
|
||||
(or another terminal emulator), use `xterm`. (Of course, you can also use
|
||||
`xterm` for the standard template, if you prefer.)
|
||||
2. `nautilus-actions` and `libcacard` are not installed by default, so do not
|
||||
try to erase them (unless you've installed them).
|
||||
3. `sudo` is not installed by default. Unless you've installed it, use `su` as
|
||||
demonstrated above. (Of course, you can also use `su` for the standard
|
||||
template, if you prefer.)
|
||||
|
||||
|
||||
Compacting the Upgraded Template
|
||||
================================
|
||||
|
||||
@ -137,7 +160,7 @@ really necessary after upgrading.
|
||||
If you have at least `qubes-core-dom0-2.1.68` installed and are on Qubes R2,
|
||||
you can use the `qvm-trim-template` tool:
|
||||
|
||||
[user@dom0 ~] qvm-trim-template fedora-21
|
||||
[user@dom0 ~]$ qvm-trim-template fedora-21
|
||||
|
||||
If you do not have `qubes-core-dom0-2.1.68` or are on Qubes R3-rc1, you can
|
||||
compact the `root.img` manually. To do this, you will need about 15GB (the
|
||||
@ -146,41 +169,44 @@ TemplateVM's max size + the actually used space there) free space in dom0.
|
||||
1. Start the template and fill all the free space with zeros, for example
|
||||
with:
|
||||
|
||||
[user@fedora-21 ~] dd if=/dev/zero of=/var/tmp/zero
|
||||
[user@fedora-21 ~]$ dd if=/dev/zero of=/var/tmp/zero
|
||||
|
||||
2. Wait for the "No space left on device" error. Then:
|
||||
|
||||
[user@fedora-21 ~] rm -f /var/tmp/zero
|
||||
[user@fedora-21 ~]$ rm -f /var/tmp/zero
|
||||
|
||||
3. Shut down the template and all VMs based on it. Then:
|
||||
|
||||
[user@dom0 ~] cd /var/lib/qubes/vm-templates/fedora-21
|
||||
[user@dom0 ~] cp --sparse=always root.img root.img.new
|
||||
[user@dom0 ~] mv root.img.new root.img
|
||||
[user@dom0 ~]$ cd /var/lib/qubes/vm-templates/fedora-21
|
||||
[user@dom0 ~]$ cp --sparse=always root.img root.img.new
|
||||
[user@dom0 ~]$ mv root.img.new root.img
|
||||
|
||||
|
||||
Known Issues
|
||||
============
|
||||
Additional Information
|
||||
======================
|
||||
|
||||
You may encounter the following `yum` error:
|
||||
As mentioned above, you may encounter the following `yum` error:
|
||||
|
||||
At least X MB more space needed on the / filesystem.
|
||||
|
||||
In this case, you have a few options:
|
||||
In this case, you have several options:
|
||||
|
||||
1. Delete files in order to free up space. One way to do this is by
|
||||
uninstalling packages (and then reinstalling them again after you finish
|
||||
the upgrade process, if desired).
|
||||
2. Increase the `root.img` size. It should be easy to extend the
|
||||
`qvm-grow-root` tool in order to support PV (and not only HVM) VMs.
|
||||
However, someone would need to do this (patches welcome).
|
||||
3. Do the upgrade in parts, e.g., by using package groups. (First upgrade
|
||||
1. [Increase the TemplateVM's disk image size](/doc/ResizeDiskImage/).
|
||||
This is the solution mentioned in the main instructions above.
|
||||
2. Delete files in order to free up space. One way to do this is by
|
||||
uninstalling packages. You may then reinstalling them again after you
|
||||
finish the upgrade process, if desired). However, you may end up having to
|
||||
increase the disk image size anyway (see previous option).
|
||||
3. Increase the `root.img` size with `qvm-grow-root`. It should be easy to
|
||||
extend the `qvm-grow-root` tool in order to support PV (and not only HVM)
|
||||
VMs. However, someone would need to do this (patches welcome).
|
||||
4. Do the upgrade in parts, e.g., by using package groups. (First upgrade
|
||||
`@core` packages, then the rest.)
|
||||
4. Do not perform an in-place upgrade. Instead, simply download and install a
|
||||
5. Do not perform an in-place upgrade. Instead, simply download and install a
|
||||
new template package, then redo all desired template modifications.
|
||||
|
||||
Here are some useful messages from the mailing list in regard to the last
|
||||
option:
|
||||
With regard to the last option, here are some useful messages from the mailing
|
||||
list which also apply to TemplateVM management and migration in general:
|
||||
|
||||
* [Marek](https://groups.google.com/d/msg/qubes-users/mCXkxlACILQ/dS1jbLRP9n8J)
|
||||
* [Jason M](https://groups.google.com/d/msg/qubes-users/mCXkxlACILQ/5PxDfI-RKAsJ)
|
||||
|
Loading…
Reference in New Issue
Block a user