首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使update将zfs数据集识别为/etc/fstab中的根数据集,并添加最小的zfs选项集?

如何使update将zfs数据集识别为/etc/fstab中的根数据集,并添加最小的zfs选项集?
EN

Ask Ubuntu用户
提问于 2014-10-26 12:44:06
回答 1查看 2.5K关注 0票数 2

我很难找到如何使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.cfglinux指令的参数,而自动添加是我的目标。

AFAIK解决方案应该独立于在多重引导中设置其他系统。我在Ubuntu14.04 amd64上运行。我安装了ubuntu-zfs 0.6.3和来自ppa:zfs-native/stablezfs-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的冲突而失败,这超出了我的理解,详细信息如下:

代码语言:javascript
复制
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的众多问题报告中的一篇,涉及该问题和/或引用了一个修复程序。

EN

回答 1

Ask Ubuntu用户

发布于 2014-11-04 18:07:26

我在https://code.launchpad.net/~krichter722/+junk/grub2_zfs_支持_改进创建了一个可用的修补程序。只要它没有集成到包中(如果没有被拒绝)。应该有可能解决这个问题。

代码语言:javascript
复制
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的一个实验性版本!)。

票数 3
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/541858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档