我很难找到如何使update-grub of grub-efi 2.02~beta2-9 ubuntu1在/etc/fstab中将ZFS数据集的规范识别为根设备,并在不编写代码的情况下(在/etc/grub.d/10_*或/etc/default/grub中)有条件地添加最小的ZFS选项集。
目前,我的设置是/在ZFS池rpool2/ROOT/ubuntu-trusty-1上,/boot/在ext4分区上,启动是用EFI完成的(所有条目都在/etc/fstab中),磁盘上有一个GPT。这需要root=ZFS=rpool2/ROOT/ubuntu-2 boot=zfs bootfs=rpool2/ROOT/ubuntu-2 rpool=rpool2而不是root=/dev/sda5作为/boot/grub/grub.cfg中linux指令的参数,而自动添加是我的目标。
AFAIK解决方案应该独立于在多重引导中设置其他系统。我在Ubuntu14.04 amd64上运行。我安装了ubuntu-zfs 0.6.3和来自ppa:zfs-native/stable的zfs-initramfs。
更多的细节:这个问题已经出现在一些关于github的报告中(例如https://github.com/zfsonlinux/grub/issues/10)。我的研究结果是,我们需要一个"zfs感知的“grub版本,这个版本需要来自源代码(因为PPA ppa:zfs-native/grub只支持13.04,缺少了对https://github.com/zfsonlinux/grub/issues/12中提到的14.04的支持)。当前的从源代码构建的版本是错误的,例如LANG=C apt-get source --build grub-efi由于与libzfs-dev的冲突而失败,这超出了我的理解,详细信息如下:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Picking 'grub2' as source package instead of 'grub-efi'
NOTICE: 'grub2' packaging is maintained in the 'Git' version control system at:
git://anonscm.debian.org/pkg-grub/grub.git -b experimental
Skipping already downloaded file 'grub2_2.02~beta2-9ubuntu1.dsc'
Skipping already downloaded file 'grub2_2.02~beta2.orig.tar.xz'
Skipping already downloaded file 'grub2_2.02~beta2-9ubuntu1.debian.tar.gz'
Need to get 0 B of source archives.
Skipping unpack of already unpacked source in grub2-2.02~beta2
dpkg-buildpackage: source package grub2
dpkg-buildpackage: source version 2.02~beta2-9ubuntu1
dpkg-buildpackage: source distribution trusty
dpkg-buildpackage: source changed by Colin Watson <cjwatson@ubuntu.com>
dpkg-buildpackage: host architecture amd64
dpkg-source --before-build grub2-2.02~beta2
dpkg-checkbuilddeps: Build conflicts: libzfs-dev libnvpair-dev
dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting
dpkg-buildpackage: warning: (Use -d flag to override.)
Build command 'cd grub2-2.02~beta2 && dpkg-buildpackage -b -uc' failed.
E: Child process failed也就是说,我无法估计这种冲突的影响有多深,我是否监督了关于github的众多问题报告中的一篇,涉及该问题和/或引用了一个修复程序。
发布于 2014-11-04 18:07:26
我在https://code.launchpad.net/~krichter722/+junk/grub2_zfs_支持_改进创建了一个可用的修补程序。只要它没有集成到包中(如果没有被拒绝)。应该有可能解决这个问题。
sudo apt-get update
sudo apt-get build-dep grub-efi # after you set up sources in apt repositories
bzr branch lp:~krichter722/+junk/grub2_zfs_support_improvement
cd grub2_zfs_support_improvement
./autogen.sh
./configure --with-platform=efi
make
sudo make install
sudo mv /etc/grub.d/10_linux /etc/grub.d/10_linux.bk
sudo cp 10_linux /etc/grub.d/然后您可以像往常一样运行sudo update-grub (将安装grub的一个实验性版本!)。
https://askubuntu.com/questions/541858
复制相似问题