upgrading from Fedora Core 4 to Fedora 8
First and foremost, if you have the option of saving all your data (and settings, don't forget the .*
directories in your home directory, config files in /etc
, and so on!), and then installing Fedora 8 from scratch, go for it. After having done an actual upgrade, I realize it was pure insanity: at just about every step there were obstructions accompanied by obscure error messages. On the other hand, it is testament to the quality of the OS that by beating it long and hard enough you can get it to run again (and be stable!). So here goes..
1. Disk partitions have to be labeled
2. The installer DVD is stuck while checking dependencies
3. Getting a Fedora 8 "respin"
4. Upgrading using yum and rpm only
5. Unable to load SELinux Policy
6. Boot stuck at starting sendmail
7. Upgrade nVidia kernel drivers
8. (EE) GLX is not supported with the Composite extension
9. Fatal server error: could not open default font 'fixed'
10. Changing the Grub menu screen to text mode
11. Re-enabling sound
12. Using an external Firewire drive
13. CD/DVD drive eject stopped working
14. Tuxracer sound stopped working
1. Disk partitions have to be labeled I used to have lines like these in my /etc/fstab:
/dev/hda1 /boot ext3 defaults,noatime 1 2
However, for Fedora 8 to be happy, all partitions have to be labeled, so first you label it:
tune2fs -L /boot /dev/hda1
and then you change the corresponding line in /etc/fstab:
LABEL=/boot /boot ext3 defaults,noatime 1 2
This worked for all my Linux partitions (I left 2 Windows partitions alone), except for the swap partition: tune2fs did not allow me to label it. Fortunately it already had a label, recoverable using blkid:
/dev/hda7: LABEL="SWAP-hda8" UUID="..." TYPE="swap"
Don't ask me why the /dev/hda7 partition has hda8 in the label...
The line in /etc/fstab becomes: LABEL=SWAP-hda8 swap swap defaults 0 0
A side note: whereas under Fedora Core 4 harddisk partitions were referenced by /dev/hda (and hdb etc.), under Fedora 8 this has become /dev/sda etc.
2. The installer DVD is stuck while checking dependencies In any case, select text mode install over graphics install. The "checking dependencies" step is stuck forever at 26%.
Apparently this has been a very common problem. If you want to read about lots of other people encountering it: a bugzilla entry about it. Suggested solutions are at this page.
After trying the update image (and failing), I decided to download a "respin" which was supposed to have the fix already in it.
3. Getting a Fedora 8 "respin" This is the way to get a more recent installer DVD than the first one.
First install jigdo:
yum install jigdo
(check the Fedora spins site for a possible more recent .jigdo file)
Pick the .iso file(s) you would like, and wait a couple of hours (depending on your bandwidth) for all the stuff to download.. Then burn the .iso file to a DVD (or set of CDs, if that was what you downloaded).
In my case, I got the 20071218 respin, which still did not want to install :-(
4. Upgrading using yum and rpm only Next I decided to simply force-feed all the new RPMs to my PC :-)
First I copied all RPMs from /cdrom/Packages (my DVD drive mounts at /cdrom) to a directory /data/packages (you can put them anywhere where you have at least 3.1 GB available). The ones I wasn't interested in I moved to a directory /data/packages/skip (for example, ant, jakarta, mono, this may be different in your case of course). Note: also move the kernel-* RPMs to the skip directory (!).
Next, boot from the installation DVD, and select "linux rescue" as the option. To remove all packages specific to Fedora Core 4: foreach f (`rpm -qa --root=/mnt/sysimage | grep -i fc4`)
rpm -e $f --nodeps
Then to install/upgrade all new packages: cd /mnt/sysimage/data/packages
foreach f (*.rpm)
rpm --root=/mnt/sysimage -Uvh --force $f
Next, check for package duplicates: rpm --root=/mnt/sysimage -qa | sort > /tmp/rpms.txt
Check the resulting file /tmp/rpms.txt
for package duplicates, and remove the older versions, and then (!) reinstall the newer version (using rpm --root=/mnt/sysimage -Uvh --force
). There may be quite a few of them (I had to do this for about 60 packages, for example). One example, both glibc-2.5.90-8
, and glibc-2.7-2
were installed on my system. To fix this: rpm -e --nodeps --root=/mnt/sysimage glibc-2.5.90-8 rpm -Uvh --force --root=/mnt/sysimage glibc-2.7-2
(you may get the error version 'GLIBC_2.7' not found
in this case otherwise for many libraries who need it, for example /lib/libc.so.6
Now boot from the installation DVD and select the text mode install. If all went well in the previous steps, only a few packages should be installed (including the kernel packages), and your PC should boot into Fedora 8...
All is not done yet, however: I still ran into loads of error messages that each required a lot of digging on the web to fix :-(
5. Unable to load SELinux Policy "Machine is in enforcing mode. Halting now."
Possibly one fix is to establish a policy somewhere somehow. Another fix is to disable SELinux: boot into linux rescue mode using the installation DVD, and edit /mnt/sysimage/etc/selinux/config: change the line
An alternative boot method is to press any key once you get the Grub boot screen, then press 'e' to edit boot options, and selinux=0 to the end of the line, then press 'b' to boot. Obviously, after logging in you need to edit /etc/selinux/config, as described above.
6. Boot stuck at starting sendmail To fix this, press 'I' when Fedora start to enable interactive starting of services, and select 'N' for sendmail. After that log in as root and run:
chkconfig --del sendmail
(of course if you need sendmail you have to figure out something else)
7. Upgrade nVidia kernel drivers Don't bother with the kmod-nvidia-legacy drivers you can get from the livna repository, they don't work as well as the nVidia drivers (if you have them installed (rpm -qa|grep nvidia) remove them first).
First, update the kernel and the X server:
yum update kernel
yum update xorg-x11-server-Xorg
and reboot with the new kernel.
From the nVidia Linux drivers page, get the latest driver package. For my "legacy" card this was the file NVIDIA-Linux-x86-96.43.05-pkg1.run.
You may need to run it as follows:
./NVIDIA-Linux-x86-96.43.05-pkg1.run --kernel-source-path /usr/src/kernels/22.214.171.124-137.fc8-i686
These drivers worked fine (together with kernel 126.96.36.199-137 and xorg version 188.8.131.52-40).
Option "Composite" "Disable"
8. (EE) GLX is not supported with the Composite extension Add this bit to the end of your /etc/X11/xorg.conf:
9. Fatal server error: could not open default font 'fixed'
This usually meant that your font server (xfs
) wasn't running. Nowadays xfs
is no longer needed, all you need to do is add some font paths to your /etc/X11/xorg.conf
: Section "Files"
(if you really want xfs
: yum install xorg-x11-xfs
, then chkconfig --add xfs
, chkconfig --level 345 xfs on
A related error message: emacs complaining no fonts found: this probably means xfs has crashed. Just disable it, and use the path specifications as described above.
10. Changing the Grub menu screen to text mode To disable the graphical Grub menu screen, edit /etc/grub/grub.conf, and remove (or comment out) the line that has "splashimage" in it.
11. Re-enabling sound For some reason the sound devices come up as being only accessible by root. A hack to get around this: add the following lines to your /etc/rc.local (later I suddenly needed the 2 second delay):
echo Setting sound devices to be world writable
chmod o+rw /dev/snd/*
chmod o+rw /dev/dsp
chmod o+rw /dev/mixer
A helpful reader pointed out that here you can read about the "official" way for granting permissions to users.
12. Using an external Firewire drive Because apparently some kernel modules were rewritten ("juju kernel modules" (?)), this suddenly turned out to be a major hassle. The solution is to dump the new modules, and use the old ones again.
- You can get the old modules from the ATrpms repository (follow the instructions on that page to install their key and modify /etc/yum.conf)
- "blacklist" the new modules, by adding to /etc/modprobe.d/blacklist:
- install the "old" modules:
yum install ieee1394 ieee1394-kmdl-`uname -r`
Now, when you attach your Firewire drive, the modules ieee1394, ohci1394, and sbp2 should be automatically loaded (use lsmod to check). Check dmesg | tail to see if your drive is recognized.
13. CD/DVD drive eject stopped working Now /usr/bin/eject symlinks to consolehelper, a wrapper program that checks if you're allowed to open the drive or not. To circumvent this:
- cd /usr/bin
ln -s /usr/sbin/eject .
14. Tuxracer sound stopped working This is true for a purchased copy of Tuxracer, as well as the recent freeware Extreme Tuxracer. The issue is in fact related to SDL, not to a specific game (so it also applies to Tuxpaint, for example).
In this case, tuxracer runs, produces no audio, only the message:
tuxracer warning: Warning: Couldn't set 44100 Hz 16-bit audio
Reason: No available audio device
setenv SDL_AUDIODRIVER dsp
(I don't know yet why the game cannot use Alsa, for example, but at least this fix works..)
To be continued ...