PreUpgrade - это приложение, предназначенное для запуска на существующей Fedora 8 и выше, позволяющее разрешать зависимости пакетов и загрузать пакеты необходимые для обновления Fedora. Хотя PreUpgrade загружает новые пакеты, пользователи могут продолжать использовать свои системы. Что позволяет получить опыт подобный тому, что приобретается от использования live upgrade. Больше можно узнать на странице PreUpgrade feature page.
Подготовка системы
Хотя preupgrade в основном получить обпыт по обновлению системы без дополнительных проблем. Рекомендуется выполнить следующие действия прежде чем продолжить.
- Backup - Резервное копирование - прежде чем выполнять любые действия по техническому обслуживанию системы, рекомендуется выполнить резервное копирование важных данных.
- Update - Обновление - примените доступные обновления Fedora до того как запустите preupgrade. С правами root, выполните следующую команду.
yum update
- Install - В Fedora 10, утилита preupgrade включена по умолчанию в дистрибутив. Если пакет не установлен, его можно установить вручную с помощью команды
yum
.yum install preupgrade
Выполнение обновления
Как правило о появившихся обновлениях сообщает PackageKit
. Однако, если вы выбрали ручной способ обновления с помощью preupgrade
, необходимо выполнить следующие шаги.
- С правами root, выполните команду
preupgrade
чтобы запустить приложение Preupgrade. Если вы предпочитаете консольные приложения используйтеpreupgrade-cli
. - На экране Choose desired release, выберите выпуск Fedora до которого хотите обновиться и нажмите кнопку Apply.
- Когда все пакеты будут загружены, перезапустите систему, чтобы запустить установщик Fedora и обновиться до следующего выпуска.
Необходимые действия после обновления
После завершения действия, описанного в предыдущем пункте, рекомендуется выполнить следующие действия чтобы завершить процесс обновления.
Удаление неподдерживаемых пакетов
Некоторые пакеты могут не поддерживаться в новом выпуске ОС. Возможно вы захотите удалить эти пакеты, т.к. для них будут отсутствовать обновления безопасности и они могут конфликтовать с поддерживаемыми пакетами. Их пожмно найти с помощью:
package-cleanup --orphans
Examine .rpmsave
and .rpmnew
files
После обновления вы можете заметить файлы заканчивающиеся на .rpmsave
и .rpmnew
. Не волнуйтесь. Процесс обновления всегда резервирует локальные файлы настроек. Файлы, заканчивающиеся на .rpmsave
содержат измененные вами файлы настроек. А файлы, заканчивающиеся на .rpmnew
содержат файлы настроек поставляемые с пакетами.
Вам нужно проверить файлы .rpmsave
и .rpmnew
созданные программой обновления. В зависимости от различий, возможно потребуется слияние файлов настроек. Вы можете найти все подобные файлы с помощью команды find
.
find / -print | egrep "rpmnew$|rpmsave$"
Устранение проблем
Не достаточно места на разделе /boot
Fedora 13 и выше создает boot раздел на 500 MB по умолчанию. Размер файловой системы /boot
на 200MB для предыдущих выпусков может вызвать проблемы при обновлении. В большинстве случаев свободного места будет достаточно для выполнения загрузки программы установки preupgrade, но недостаточно для того, чтобы запустить программу установки и установить новое ядро после перезагрузки системы. В данном рзделе приводятся некоторые советы, позволяющие решить данную проблему. Как всегда, при выполнении административных задач, убедитесь, что выполнено резервное копирование всех данных.
Существует два основных метода, чтобы выполнить заставить preupgrade работать в данной ситуации. Первый заключается в том, чтобы освободить достаточно свободного месла для программы установки и для ядра. In the second method, you need to temporarily fill up enough of the space on /boot
to force preupgrade to download the installer after rebooting.
Метод 1: Освободить место
Сначала, попробуйте удалить файлы ядра, которое не используются, в данный момент, системой. Скрипт kernel-prune.py позволить определить ядра, которые могут быть безопастно удалены. Если вы выбрали удаление дополнительных ядер, приготовьте установочный носитель, чтобы иметь возможность вернуться к установленной ранее системе.
Программа установки потребует около 26M свободного места на разделе /boot. Используйте следующую команду для определения объема свободного пространства на /boot разделе:
df -h /boot
Для определения ядер, которые могут быть безопасно удалены, выполните следующую команду:
curl -O 'http://skvidal.fedorapeople.org/misc/kernel-prune.py' chmod a+x kernel-prune.py ./kernel-prune.py
Теперь, чтобы удалить ядра перечисленные предыдущей командой, запустите следующие команды с правами root:
# PKGS=`./kernel-prune.py` # echo $PKGS # yum remove $PKGS
Затем, настройте количество зарезервированных блоков с помощью команды tune2fs
. Сначала вам потребуется определить блочное устройство для файловой системы /boot
. В примере ниже, файловая система /boot
является блочным устройством /dev/sda1
.
# mount | grep "/boot" /dev/sda1 on /boot type ext4 (rw)
Теперь измените количество зарезервированных блоков для файловой системы /boot
с помощью команды tune2fs
. Обычно необольшое количество пространства файловой системы отформатированной в ext 'зарезервировано' и может быть использовано только системным администратором; это сделано для предосращения полного заполнения раздела и, как следствие, полного отказа в загрузке ситемы, это позволяет системному администратору очистить 'заполненный' раздел. Однако ни один из описанных случаев не применим к файловой система /boot
, поэтому можно безопасно отключить резервирование пространства с помощью.
# tune2fs -r 0 /dev/sda1
Наконец, попробуйте удалить ненужные файлы с файловой системы /boot
. Это в большой степени зависит от того как установлена система. Удаление неверных файлов может привести к отказу загрузки системы. Некоторые кандидаты на удаление: /boot/efi
и /boot/grub/splash.xpm.gz
.
Метод 2: preupgrade с помощью загрузки программы установки по сети
Данный метод потребует проводного выхода в интернет во время установки. Если у вас беспроводной интернет и вы не можете присоединиться к сети с пмощью ethernet, используйте Метод 1.
Сначала, определите количество свободного места на /boot
разделе. Команда df
позволит сделать это:
$ df /boot Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 198337 30543 157554 17% /boot
Затем, создайте файл который занимает достаточно места чтобы preupgrade решил, что он не может перейти установке stage2 сразу. Preupgrade требует около 120MB для образа программы установки, следовательно убедитесь, что у вас немногим меньше 100MB. Для вышеуказанного примера это будет означать заполнить 60MB. С правами root выполните команду:
# dd if=/dev/zero of=/boot/preupgrade_filler bs=1024 count=61440 # df /boot Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 198337 92224 95873 50% /boot
Далее, запустите preupgrade как обычно. На ранней стадии, до загрузки пакетов, preupgrade должен сказать вам, что не хватает маста, чтобы загрузить программу установки, но она может быть загружена после перезапуска, если вы имеете проводное соединение с сетью. Вы можете нажать продолжить. Когда preupgrade завершит работу НЕ перезагружайте систему сразу. Вместо этого, удалите файл /boot/preupgrade_filler
и удостоверьтесь, что ваш компьютер присоединен к сети с помощью ethernet кабеля. А затем перегружайтесь.
# rm /boot/preupgrade_filler
Наконец, компьютер должен загрузить программу установки, присоединиться к интернет с помощью ethernet и начать загружать установочный образ stage2. Затем процедура обновления должна продолжиться как обычно.
Upgrade does not install upon reboot
Explanation
If you have a multiboot configuration, the /boot
menu that grub uses might be different from the /boot
menu that preupgrade modifies. In this case, you will need to point grub to the appropriate file to complete upgrade upon reboot. If this is not done, once preupgrade has completed downloading and installing files, upon reboot no change will be visible. The system will simply reboot as to the older version.
Preupgrade boots into an upgrade kernel as an intermediate step. Once the system has been upgraded, preupgrade replaces the temporary upgrade kernel option with an option for the upgraded kernel. In other words, there are two modifications made to the bootloader: a temporary upgrade option, followed by an option that is permanent until the next upgrade.
The grub bootloader can be used to boot from its command line, or /boot/grub/menu.lst
can be modified to create a boot menu option. (Example screenshot of grub boot menu.) (For further detail on grub, refer to the grub manual.)
Either grub option can be used for either preupgrade step. To be comprehensive, the following describes both the command line option and doing so by editing the menu.lst
file.
However, since the upgrade should only be run once, and the upgraded system will probably require repeated booting, the most expedient approach is probably to manually boot the upgrade via the grub command line, then once the upgrade has completed, to add an option to menu.lst
add the upgraded Fedora installation to the grub boot menu. This would correspond to using Method 1, Steps 1 - 3, followed by Method 2, Step 4.
Method 1: Boot Manually from Grub Command Line
STEP 1: Identify Partition Location
Identify the drive and partition of your Fedora /boot
folder. (See Grub Naming Convention for details.) For example, if you installed Fedora entirely on the fourteenth partition of a second hard drive, /boot
would be located on root (hd1,13)
STEP 2: Boot from Partition Location
Upon reboot, enter 'c' to enter the grub command line. Using the appropriate drive and partition numbers, enter the following commands:
root (hd1,13) kernel /boot/upgrade/vmlinuz initrd /boot/upgrade/initrd.img boot
This will boot the upgrade installation.
STEP 3: Select Installation Image
The upgrade installation will then run an ncurses dialog. After selecting language and keyboard types, select hard drive
for installation method
. The next dialog box will require partition and directory information of the installation image. Select the partition from the drop-down menu. (Note that the numbering will be one off from the grub partition. In other words root (hd1,13)
will appear as /dev/sdf14
.) Finally, enter the location of the install image file: /boot/upgrade/install.img
.
The installation will run normally at this point. After completing the upgrade, you will need to either boot the upgraded system manually by entering the newly installed kernel
and initrd.img
files at the grub command line, or add an entry to the menu.lst
file. This step is detailed in the next section.
As an alternative to entering the commands at the grub command prompt upon reboot, you can also edit grub's menu.lst
file to add an option that will allow you to select booting to the upgrade process from grub's boot menu. Since the upgrade should only be run once, after you've upgraded you will then need to re-edit menu.lst
, remove the upgrade boot menu option, and add a boot entry for the new kernel.
STEP 1: Identify Partition Location
Identify the drive and partition of your Fedora /boot
folder. Grub Naming Convention. For example, if you installed Fedora entirely on the fourteenth partition of a second hard drive, /boot
would be located on root (hd1,13)
STEP 2: Edit menu.lst
Locate and open the /boot/grub/menu.lst
file that grub actually uses. If this file is on another partition, check the /media
files.
Using the appropriate drive and partition information in the root
line format, add the following entry to the menu.lst
file:
title Fedora Upgrade root (hd*,*) kernel /boot/upgrade/vmlinuz initrd /boot/upgrade/initrd.img savedefault boot
Save the file, and reboot. Select the Fedora Upgrade
from the grub boot menu.
STEP 3: Select Installation Image
The upgrade installation will then run an ncurses dialog. After selecting language and keyboard types, select hard drive
for installation method
. The next dialog box will require partition and directory information of the installation image. Select the partition from the drop-down menu. (Note that the numbering will be one off from the grub partition. In other words root (hd1,13)
will appear as /dev/sdf14
.)
Finally, enter the location of the install image file: /boot/upgrade/install.img
. The installation will run normally at this point.
STEP 4: Cleanup menu.lst
After completing the upgrade, you will need to either boot the upgraded system manually by entering the newly installed kernel
and initrd.img
files at the grub command line, or by adding an entry to the menu.lst
file.
The following is an example of a grub entry for a Fedora Core 10 installation, located on the fourteenth partition of the second hard drive.
title Fedora Core 10 (on /dev/sdb14) root (hd1,13) kernel /boot/vmlinuz-2.6.27.5-117.fc10.x86_64 ro quiet splash initrd /boot/initrd-2.6.27.5-117.fc10.x86_64 savedefault boot
Locate the updated kernel
and initrd
files located in the /boot
folder of the Fedora partition, and create an entry with modified title, kernel,
and initrd
lines that will match those of the upgrade.
Finally, remove the upgrade boot entry from menu.lst
.