Whenever I see CRC error I think of IDE drive errors.
But they tend to look like this:
hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hda: dma_intr: error=0x84 { DriveStatusError BadCRC }
This can be caused by running crappy IDE cables (rounded cables, to long of cables, trying to run ATA 133 speeds on a 40 wire cable instead of a 80 wire cable, bent/smashed/damaged cables. etc etc).
They also can be caused by crappy IDE controllers. My k7s5a motherboard suffered from this years ago. There was a bug in the firmware that caused corrupted data when using the standard drivers for that chipset. The first solution was to run the drives with DMA access turned off. Which worked but slowed things down. The real solution was provided by updated kernel drivers. Now it works fine at the fastest speeds.
However all CRC means is that some error checking got triggered. CRC is a type or algorthim used in error checking. Used especially in hardware.
Something bad is happening to corrupt some data flowing and it can definately be caused by memory problems.
Check out memtest98 for a free memory tester....
What may be happening also is your harddrive is beginning to get realy screwed up and the MBR is being corrupted, or another part of the drive is being corrupted.
Also linux bootloaders work in stages. Lilo boots with stage 1, then goes to your linux partition and grabs stage2 to load that up. Some kernels use a initrd image to load up stuff like raid drivers and controller drivers so the kenrel can boot up into special hardware easier.
Now if one of those things are corrupt you can be getting the "invalid compression" error. The corruption could of been caused by the same problem that your experiancing with the "CRC error", which is likely hardware related. The "no init found" means that the kernel is unable access the root partition, or the root partition isn't what the kernel thinks it is.
NOW the following may be some fixes to try, depending on how comfortable you feel
The easiest possible fix, new memory:
I would try the memory tester first and see if that comes up with anything, let it run for a few hours. Any errors would point towards a bad memory.
Next try boot options:
Try booting up from boot prompt. Assuming that your using lilo, and your selection is named "linux" then try:
linux ide=nodma acpi=off apm=off
(ide=nodma turns off dma access and will improve the reliability of the data transfer of your drive buy slowing things down drasticly)
You can specify the root partition to by doing something like this:
linux ide=nodma root=/dev/hda2 ro
Next try to use/install a new kernel image(last ditch effort for me):
If you have a alternative or older kernel installed try to boot up using that, maybe the one your using is corrupted by something like a power surge, improper shutdown, or bad drive or something.
If that doesn't work, then I'd try to boot up with a boot cd like your installation CD or knoppix or trinity rescue disk.
Then download a new kernel package for your OS. Mount the HD installed root partition to your directory, copy the new kernel package to your mounted root partition. (mount any other partitions you may need to your root partition like if you have a seperate boot partition.)
Then use the "chroot" command to "change the root" of your command line to your harddrive's root. (chroot /place/were/you/mounted/your/drive/) and then install the kernel package using your rpm tools (or whatever your OS uses).
Then edit you grub.conf or menu.lst if your using grub to make the changes, or edit your /etc/lilo.conf and rerun lilo command to make a new entry in your boot prompt.
After that, exit out of chroot, umount all your partitions, reboot, pop out your boot disk and hope for the best.
Now maybe instead of going thru all the trouble of installing a new kernel image, maybe just rerunning lilo may help, if that's what you use. If your using grub you can try reinstalling that if you want.
To use chroot it's pretty easy. Boot up with your boot disk, then switch to a xterm or a virtual terminal (ctrl+alt+Fn were Fn = F2-F6)
Now the /dev/hda1 will change depending on which partition and drive your root partition is installed in.
mkdir /mnt/hdroot
mount /dev/hda1 /mnt/hdroot
(sometimes mount proc helps)
mount -t proc proc /mnt/hdroot/proc
then
chroot /mnt/hdroot/
Then your using your installed OS as your enviroment and you can run programs and even X windows (sometimes) as if you booted up from it.