This README describes the steps needed to perform an automated upgrade from SLES 10 to SLES 11. 1. Prepare and apply the driver update disk =========================================== (in the following text, DUD stays for driver update disk) The unattended_upgrade_dud package contains the DUD itself at /var/adm/unattended_migration.dud. This file contains all changes which are needed for the unattended upgrade workflow. Install the unattended_upgrade_dud package to get access to the DUD. You don't need to install it on machines which you intend to upgrade. There are following alternatives to use the DUD a) modify the installation source --------------------------------- Applicable on: i586, x86_64, System Z Append the DUD to the end of the installation initrd. The installation initrd is located at /boot//loader/initrd on the first DVD. You can use an ISO editor to update the ISO image or modify your network installation environment. To adapt the initrd, just run cat /var/adm/unattended_migration.dud >>/where/your/installation/inird/resides (use correct path for your installation initrd). WARNING: Such updated installation initrd will automatically run unattended upgrade and will not be capable of doing any other method of upgrade or (auto)installation. b) additional kernel parameter ------------------------------ Applicable on: i586, x86_64, Power, Itanium, System Z Do not modify the installation source at all, just add an additional kernel parameter which will point Linuxrc to the DUD. At the boot prompt (or in PXE boot menu) add dud=ftp://host/directory/dud.dud (replace the URI with correct in your network infrastructure) Note: You may be asked to confirm the DUD from unsafe source. You can add the insecure=1 parameter to the installation kernel to disable all cryptographical checking done by Linuxrc. See the link below for Linuxrc documentation. General notes ------------- Alternate way to boot the system is to create additional section to your GRUB menu (similar for other architectures), which starts the installation. Following example assumes that there is separate /boot partition, in GRUB reffered as (hd0,0): title Upgrade root (hd0,0) kernel /upgrade/vmlinuz install= vga=0x314 initrd /upgrade/initrd Above example assumes that installation kernel and udpated (see a) ) initrd are located in the /boot/upgrade directory. If the initrd is not updated, just append the dud= parameter. On System Z, you need to add the parameters to the PARM file; follow the same process as you do when performing AutoYaST-driven installation. 2. Prepare the AutoYaST profile =============================== The AutoYaST profile is the same file format as for AutoYaST installation. Refer to AutoYaST documentation at http://www.suse.de/~ug/autoyast_doc/index.html However, from obvious reasons, there are some parts of the system (e.g, partitioning) which don't make sense to be configured during upgrade, on the other hand it is useful to set some update-specific information via the AutoYaST profile. a) Upgrade Options (defines the behavior of the dependency solver during upgrade) false true only_installed_packages: set to true for package-based upgrade (recommended for upgrading to the next service pack of the same product) or false for pattern-based upgrade (recommended for upgrade between versions of product, e.g. SLES10 -> SLES11) stop_on_solver_conflict: defines whether to show the proposal in case of failure to resolve package dependencies - recommended to set to true, but may make the upgrade interractive - user needs to resolve the conflicts b) Software Selection (defines which software to (de-)select in addition to solver results autoyast2-installation apparmor-profile-editor base It is especially important to set packages (or patterns) for being selected or deselected in order to resolve package conflicts. After upgrade, the new created autoupg_updated.xml contains these packages/patterns + those which were (de-)selected from any other reason. c) Back-up before upgrade (matches relevant section in the upgrade proposal) true true false sysconfig: defines whether to back-up sysconfig before upgrade modified: defines whether to back-up modified configuration files before upgrade remove_old: defines whether to remove old back-ups from previous upgrades d) Networking To assure that the network configuration is kept during upgrade, following needs to be added to the AutoYaST profille: true true Notes: If your system contains an add-on which needs to be upgraded, always include the add-on information as in the example. After upgrade the system needs to be registered in order to consume the upgrade repositories. See the example of the registration part in attached autoupg.xml. 3. Run AutoUpgrade ================== To start AutoUpgrade, you need to boot the installation media with the DUD applied and pass the AY profile to it. There are two ways to pass the profile to the system: 1. Pass it to the kernel command line the same way as you do for AutoYaST installatino (use the autoyast= parameter 2. Before you start the upgrade, put it to /root/autoupg.xml No need for any additional kernel parameter then The later approach allows you to have a single installation kernel command line for different machines - just put the right profile to its filesystem. As long as you have only one SLES system installed on your machine, there are o package conflicts and you did not set the profile to stop on the upgrade proposal, the whole process will be non-interactive. In case you enter the upgrade proposal, you can modify its settings for upgrade. After the upgrade finishes, YaST writes the /root/autoupg-updated.xml file, which contains the profile with applied changes done in the proposal. This is especially useful in case of mass upgrades of machines withe same package selection---conflict resolutions from one machine can easily be applied on other machines, which will then get conflicts resoled automatically and the upgrade itself will be non-interactive. If there are more SLES systems installed on the machine, you will be alvays asked which one to upgrade, there is no way to select it before upgrade starts. 4. Second stage of the upgrade ============================== AutoUpgrade by default does not perform any configuration changes during the second stage. The only exception is network configuration, which needs to be set to be preserved in the AutoYaST upgrade profile. If configuration of some system areas is desirable in addition to the upgrade (e.g. configuring a new service), you can add relevant sections to the AutoYaST profile for upgrade and the configuration of selected system areas will be saved during upgrade. Be aware that existing configuration of that system area will be destroyed. In usual cases, the only are which should be present for configuration is the registration of the system against SMT or NCC. If it is missign, the system will not get the update repository and update will not be possible (unless configured later). Limitations =========== In case of using NetworkManager for managing network devices and network connections, network connection is not available during the 2nd stage of the upgrade. This prevents the system from performing registration. Hints ===== If you do any changes in your system in order to trigger upgrade (e.g. adding a new section to the bootloader menu), you may want to remove it after upgrade finishes. You can do it automatically via including a post-installation script in the whole process. You can see examples in the AutoYaST documentation: http://www.suse.de/~ug/autoyast_doc/createprofile.scripts.html Sample script cleaning up GRUB's menu.lst is included in the sample autoupg.xml file. Always assure that the script matches your particular set-up and that it does not remove anything else than what you wanted. Useful Links ============ Update Media How-To: http://ftp.suse.com/pub/people/hvogel/Update-Media-HOWTO/index.html Linuxrc Documentation: http://en.opensuse.org/SDB:Linuxrc