You are not logged in.
After upgrading to the latest linux 3.7 kernel, I am receiving the following error when attempting to boot via syslinux:
btrfs: found compressed data, cannot continue!
invalid or corrupt kernel image.
Luckily I am able to boot to an older kernel, but I cannot find anyone with a similar issue. My root subvolume in btrfs uses the compress=lzo option, but boot shouldn't. Somehow, even if i re-mount or change the fstab to say compress=no, it doesn't help.
$ mount
/dev/sdb2 on / type btrfs (rw,noatime,compress=lzo,ssd,discard,space_cache)
/dev/sdb2 on /var/lib/btrfs-root type btrfs (rw,noatime,compress=lzo,ssd,discard,space_cache)
/dev/sdb2 on /boot type btrfs (rw,noatime,compress=lzo,ssd,discard,space_cache) # THIS IS A BIND IN FSTAB TO /var/lib/btrfs-root/boot
$ cat /etc/fstab
/dev/disk/by-label/btrfs-root / btrfs defaults,noatime,compress=lzo,ssd,discard,subvol=__active 0 0
/dev/disk/by-label/btrfs-root /var/lib/btrfs-root btrfs defaults,noatime,ssd,discard,subvolid=0 0 0
/var/lib/btrfs-root/boot /boot none bind 0 0
I've attempted to run mkinitcpio -p linux several times and it doesn't seem to help. Is this an issue with btrfs or could it be syslinux/mkinitcpio? Its odd though since all kernels prior to linux 3.7 worked fine and I haven't changed anything in relation to any of this..
Last edited by brenix (2012-12-19 02:23:45)
Offline
Whether you wanted it or not, your /boot is compressed. A bind mount is no different than any other usual mount -- the kernel makes absolutely no distinction. Add rootflags=compress=lzo to your kernel command line.
Offline
Will add that, thanks!
I was able to come up with a workaround solution for now. It seems that re-mounting the filesystem with the -o remount option doesn't work with btrfs, so I ended up doing the following to get my machine booting again.
1. Boot into older kernel that works
2. Change compress=lzo in /etc/fstab line to compress=no
3. Reboot into old kernel again
4. Verify the output of mount
5. Run mkinitcpio -p linux, then reboot again into the new/original kernel. Works..
Offline
Will add that, thanks!
I was able to come up with a workaround solution for now. It seems that re-mounting the filesystem with the -o remount option doesn't work with btrfs, so I ended up doing the following to get my machine booting again.
1. Boot into older kernel that works
2. Change compress=lzo in /etc/fstab line to compress=no
3. Reboot into old kernel again
4. Verify the output of mount
5. Run mkinitcpio -p linux, then reboot again into the new/original kernel. Works..
This just saved me, thanks. Any idea why it happens? and how to have compression with syslinux? I have a single btrfs partition for everything at the moment, not much on google about this.
*Edit
I can add another workaround/alternative:
I tried using grub instead, but at first I had an error from grub saying core.img was too large when running
grub-install --recheck /dev/sda
so I then had to create some empty space before my btrfs partition on the disk, apparently all you need is 2megs.
reran:
grub-install --recheck /dev/sda
Grub now works with compress=lzo in fstab
Last edited by jrussell (2013-05-17 16:38:19)
bitcoin: 1G62YGRFkMDwhGr5T5YGovfsxLx44eZo7U
Offline