I upgraded our server to Fedora 16 from Fedora 14 recently, so I thought I’d continue my tradition of posting the solutions to the problems I encountered to help others.
Two major changes in Fedora recently increased the difficulty of this upgrade: the switch to grub2 from the grub legacy bootloader, and the switch to systemd from Upstart and SysV-style init.
I used the PreUpgrade method once again to reduce downtime and avoid burning a disc.
References to read first:
Issues I encountered:
- Increase empty space before the LVM RAID1 /boot partitions – more information here and hereThe grub2 image needed more room after including LVM and RAID modules since I keep my /boot partition mirrored and bootable on the SSD drives.For each drive (one at a time in case the machine rebooted during the changes) I just removed one drive from the array, deleted the partition, recreated the partition at the 1MB starting point (the default), recreated the LVM container and filesystem, and copied the contents of /boot to the new partition.
I kept MBR partitioning for now on my boot drives (my other drives use GPT partitioning).
- Fix and add preloader kernel to grub2.confI had to install grub2 under Fedora 14 and add the preupgrade kernel entry to grub2.conf to reboot into the installer.
yum install grub2
/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg
I ported the following line from grub.conf to grub2.conf but I’ve lost the grub2.conf conversion of this line, so here is an example grub.conf version you can likely find in your /etc/grub.conf and convert to the grub2.conf format:
title Upgrade to Fedora 16 (Verne) kernel /upgrade/vmlinuz preupgrade repo=hd::/var/cache/yum/preupgrade ks=hd:UUID=84a7e82f-ca55-c1cc-600f-844001e45d97:/upgrade/ks.cfg initrd /upgrade/initrd.img
- Install grub2 as chained bootloader after grub so preupgrade can restart into installerDue to having RAID1 on /boot, I had to boot grub2 from grub until completing the install and switching to grub2. I added the following to /etc/grub.conf
title GNU GRUB 2, (1.98) kernel /grub2/core.img
- Add the installer update in these instructions to fix a bug when / and /var directories are on different filesystems.This basically involves adding the kernel boot parameter “updates=http://clumens.fedorapeople.org/748119.img” and configuring networking when the installer prompts (for me just enabling dhcp on my external network interface) so it can download the update.
- After installing, optionally enable readahead following these instructions
- After installing, switch the main bootloader on all /boot RAID1 drives to grub2.
grub2-install /dev/sda grub2-install /dev/sdb
- After installing, not all system services started due to the systemd switchover so reconfigure startup services.Go to /lib/systemd/system and do the following for each service you normally run, replacing name with the actual service name that has a name.service file in the directory:
systemctl enable name.service systemctl start name.service
Also go to /etc/init.d, clean out old services that are now controlled directly by systemd via a name.service file, and re-enable services that still use the old SysV style init scripts:
/sbin/chkconfig name on service start name
- For wview, configure /etc/tmpfiles.d entry to create /var/run directory with proper permissions now that /var/run is a tmpfs and thus recreated each reboot
- Reconfigure network interface startup for network interfaces
- Reconfigure mdadm for /dev/sdb
- Fix boot order mounting of backup filesystems: /home/share/Backup, /home/share/Backup/Woodstock
- Diagnosed MisterHouse Insteon problem – ended up being a bad configuration file from a previous change unrelated to the Fedora 16 upgrade
- Diagnosed wview no longer commincating with my Davis Vantage Pro2 over USB (rather than just having intermittent problems) – it was due to adding batteries to the weather station console and nothing to do with the Fedora 16 upgrade