Skip to content

Fixes for issue #1441 #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 6 commits into from
Closed

Fixes for issue #1441 #1

wants to merge 6 commits into from

Conversation

FransUrbo
Copy link
Contributor

Commit fddc52e is dajhorns, and 2026859 is my addition.

To make it build on Debian GNU/Linux Squeeze, I added 690c44a - gcc v4.7 is just not necessary.

To make it work on my system, I added 8ccc6b2 which only takes ONE entry if 'grub-probe -t device /' returns multiple entries (as it does on my system which have a mirror root). This might not be the best/correct solution, but without it, I'll get a double entry in grub.cfg:

            [...]
            echo    'Loading Linux 3.9.0-rc6+tf.1 ...'
            linux   /ROOT/debian/boot/@/ROOT/debian/boot@/vmlinuz-3.9.0-rc6+tf.1 root=/dev/sda1
    /dev/sdb1 ro single nomodeset boot=zfs $bootfs 
    }

Yes, there's a newline after 'sda1'.

results (as if device is a mirror), only take the first line/entry.
@dajhorn
Copy link
Member

dajhorn commented May 15, 2013

@FransUrbo, I pulled this into the snapshot branch and sent a trial build to ppa:zfs-native/staging.

According to the commit logs, the dependencies on particular compilers were added for multilib support.

@FransUrbo
Copy link
Contributor Author

@dajhorn ok fair enough. I'll just keep that part private then.

@arittner
Copy link

arittner commented Oct 3, 2013

Hi!

I'm playing around to run Ubuntu (raring) on ZFS root. But I stuck in many problems with Grub2.

My way to install a basic system are this tutorials:
https://github.com/zfsonlinux/pkg-zfs/wiki/HOWTO-install-Ubuntu-to-a-Native-ZFS-Root-Filesystem
http://blog.ls-al.com/booting-ubuntu-on-a-zfs-root-file-system/
and my own:
http://www.aljoscha-rittner.de/blog/archive/2013/10/03/zfs-ubuntu-root-installation/ (german)

Only difference: I use Grub version 2.00-13ubuntu3+zfs3raring and a mirrored pool named datpool.
Anything works fine. But if I boot the system, the grub2 loader runs into this error message:

couldn't find a valid label

After that I'm in a busy box shell.

Error message:

Command: zpool import -f -N rpool
Message: cannot import 'rpool': no such pool available.
Error: 1

Yes, my pool is "datpool"

After entering the import by hand:

zpool import -d /dev/disk/by-id -f -N datpool

and exit:

I get the next error:

cannot open 'rpool': no such pool
Command: zpool list -H -o bootfs rpool
Error: 1, unable to get the bootfs property

Manually mount...

It is possible to import the pool and mount the pool by hand (3*exit and I can login).

If I look into the environment with "set" I can't find the bootfs variable. I can find two a root and a ROOT variable, but nowhere rpool as value or bootfs as variable name.

It is not possible to set own varaibles.

Any try to set a variable like this:

set bootfs=datpool/ROOT/ubuntu-1

results in

_=rpool=datpool/ROOT/ubuntu-1

IMHO a bug in the Grub2 shell?

Manipulating the Ubuntu-Menu entry with "e" and replacing the $bootfs with my filesystem doesn't work (same errors)

My grub.cfg shows this line:

linux /ROOT/ubuntu-1@/boot/vmlinuz-3.8.0-19-generic root=ZFS=datpool/ROOT/ubuntu-1 ro boot=zfs $bootfs quiet splash $vt_handoff

IMHO this is a correct syntax (but I miss a / before the @ - could be ok).

@dajhorn
Copy link
Member

dajhorn commented Oct 3, 2013

linux /ROOT/ubuntu-1@/boot/vmlinuz-3.8.0-19-generic root=ZFS=datpool/ROOT/ubuntu-1 ro boot=zfs $bootfs quiet splash $vt_handoff

This parameter syntax is from the GRUB trunk, or at least a build release that happened after Ubuntu 13.04, so the ancillary packages for Raring don't recognize it.

My interest in releases after Ubuntu 12.04 LTS is low, but a contributed update for the current series would certainly be welcome. The logic should be moved from the boot= plugin to the main root= handler in /init.

@arittner
Copy link

arittner commented Oct 3, 2013

This parameter syntax is from the GRUB trunk, or at least a build release that happened after Ubuntu 13.04, so the ancillary packages for Raring don't recognize it.

This is, what I get if I using ppa:zfs-native/stable and ppa:zfs-native/grub

apt-add-repository --yes ppa:zfs-native/stable
apt-add-repository --yes ppa:zfs-native/grub
apt-get update
apt-get install --no-install-recommends linux-image-generic linux-headers-generic
apt-get install ubuntu-zfs
apt-get install grub2-common grub-pc
apt-get install zfs-initramfs
apt-get dist-upgrade

Is there any workaround?

@dajhorn
Copy link
Member

dajhorn commented Oct 3, 2013

This parameter syntax is from the GRUB trunk, or at least a build release that happened after Ubuntu 13.04, so the ancillary packages for Raring don't recognize it.

This is, what I get if I using ppa:zfs-native/stable and ppa:zfs-native/grub

Okay, then this is a new bug assuming that the packages are not mismatched.

Is there any workaround?

Force the pool name and root dataset on the Linux command line in the /etc/default/grub file using the bootfs= and rpool= parameters according to the FAQ. Remember to run update-grub after editing the configuration file.

In the past week, a few other people have reported a new couldn't find a valid label error. Is this a fresh installation or an older computer that has been recently upgraded?

@arittner
Copy link

arittner commented Oct 3, 2013

In the past week, a few other people have reported a new couldn't find a valid label error. Is this a fresh installation or an older computer that has been recently upgraded?

Absolute fresh installation. Three times with different drives, pool names, VM ;-)

Ok, I'll test it. Thank you.

@arittner
Copy link

arittner commented Oct 3, 2013

@dajhorn Thank you, now the system boots from zfs root. Only the "couldn't find a valid label" is visible (and waits few seconds) but after that I can immediately login.

@FransUrbo
Copy link
Contributor Author

The issue where hijacked somewhere in the middle, but the original issue have been resolved so closing this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants