Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

搜索
查看: 3424|回复: 7

[原创] 在纯ZFS安装Gentoo Linux [复制链接]

iBSD

Rank: 5Rank: 5Rank: 5

UID
259105
帖子
335
PB币
399
贡献
0
技术
0
活跃
32
发表于 2012-9-4 23:47:47 |显示全部楼层
关于ZFS文件系统,不多做介绍,在这里有详细信息:http://zh.wikipedia.org/wiki/ZFS

虽然ZFS本身开源,但是由于ZFS的CDDL许可证和Linux的GPL许可证并不兼容,因此ZFS无法进入Linux内核。尽管如此,并不代表我们就不能在纯ZFS的/安装Linux。本人最近就一直在研究ZFS on Linux,今天才顺利安装启动,特把教程分享如下。

注意:目前能安装到ZFS的发行版不多,只有Ubuntu,Gentoo和Arch等有限的几种。经过我的测试,个人认为Gentoo是最方便安装到ZFS的,Ubuntu需要进行debootstrap,而且由于教程步骤有错,导致无法卸载/mnt/dev,步骤无法进行下去。本文仅以amd64为例,i386未测试。

本文主体内容来自:https://github.com/ryao/zfs-overlay,感谢ryao的贡献。本人主要负责资料整理和步骤完善。

安装介质准备:
推荐使用Gentoo LiveDVD 2012.1,可以写入U盘启动,因为这个ISO包含了ZFS模块。

硬盘分区要求:
GPT分区表,分出32MB的BIOS boot partition,另外的部分随便分一个分区,文件系统随意,之后给ZFS用。
以我的为例,我的BIOS boot partition在/dev/sdb3,ZFS在/dev/sdb2。

安装步骤:
启动Gentoo LiveDVD 2012.1

创建zpool
  1. zpool create -f -o ashift=12 -o cachefile= -O normalization=formD -m none -R /mnt/gentoo rpool /dev/sdb2
复制代码
创建rootfs
  1. zfs create -o mountpoint=none rpool/ROOTzfs create -o mountpoint=/ rpool/ROOT/gentoo
复制代码
创建home目录
  1. zfs create -o mountpoint=/home rpool/HOME
  2. zfs create -o mountpoint=/root rpool/HOME/root
复制代码
创建portage目录
  1. zfs create -o mountpoint=none rpool/GENTOO
  2. zfs create -o mountpoint=/usr/portage rpool/GENTOO/portage
  3. zfs create -o mountpoint=/usr/portage/distfiles rpool/GENTOO/distfiles
复制代码
建立packages目录(可选)
  1. zfs create -o mountpoint=/usr/portage/packages rpool/GENTOO/packages
复制代码
建立ccache目录(可选)
  1. zfs create -o mountpoint=/var/tmp/ccache -o compression=gzip-9 rpool/GENTOO/ccache
复制代码
下载stage3
  1. wget ftp://gentoo.osuosl.org/pub/gentoo/releases/amd64/current-stage3/stage3-amd64-*.tar.bz2
复制代码
解压stage3
  1. tar -xf stage3-amd64-*.tar.bz2 -C /mnt/gentoo
复制代码
把zpool.cache复制到目标ZFS分区
  1. mkdir -p /mnt/gentoo/etc/zfs
  2. cp /etc/zfs/zpool.cache /mnt/gentoo/etc/zfs/zpool.cache
复制代码
把resolv.conf复制到目标ZFS分区
  1. cp /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
复制代码
挂载文件系统
  1. mount -t proc none /mnt/gentoo/proc
  2. mount --rbind /dev /mnt/gentoo/devmount --rbind /sys /mnt/gentoo/sys
复制代码
chroot
  1. chroot /mnt/gentoo /bin/bashenv-update; source /etc/profile; export PS1="(chroot) $PS1"; cd
复制代码
同步portage
  1. portage --sync
复制代码
由于Gentoo的stage3相当老旧,最好先emerge -avuDN world,把所有包升级一遍,有几个软件冲突也要处理一下。

安装genkernel(最好在/etc/make.conf设置ACCEPT_KEYWORDS="~amd64")
  1. emerge sys-kernel/genkernel
复制代码
安装内核源代码
  1. emerge sys-kernel/gentoo-sources
复制代码
安装完内核源代码之后,请到/usr/src/linux按照自己的硬件配置内核,推荐把驱动编入内核,而不是编为模块

初步安装内核(sys-kernel/spl和sys-fs/zfs会检查内核文件)
  1. genkernel kernel --no-clean --no-mountboot
复制代码
安装layman
  1. emerge app-portage/layman
复制代码
添加ryao的overlay
  1. layman -o https://raw.github.com/ryao/zfs-overlay/master/overlay.xml -f -a zfs
复制代码
安装ZFS
  1. emerge sys-fs/zfs
复制代码
把ZFS添加到boot运行级
  1. rc-update add zfs boot
复制代码
把zfs-shutdown添加到shutdown运行级
  1. rc-update add zfs-shutdown shutdown
复制代码
安装grub2
  1. echo "sys-boot/grub libzfs" >> /etc/portage/package.use
  2. env FEATURES='-sandbox -usersandbox' emerge sys-boot/grub:2
  3. touch /etc/mtab
  4. grub2-install /dev/sdbgrub2-mkconfig -o /boot/grub2/grub.cfg
复制代码
安装module-rebuild
  1. emerge module-rebuild
复制代码
编译内核和initramfs
  1. genkernel all --no-clean --no-mountboot --zfs --bootloader=grub2 --callback="module-rebuild rebuild"
复制代码
之后把/etc/fstab里面的BOOT,ROOT和SWAP行都注释掉
然后按照Gentoo手册的8-12章节做最后的系统配置:http://www.gentoo.org/doc/en/handbook/

启动进入新系统之后,可以先做个快照
  1. zfs snapshot rpool/ROOT/gentoo@install
复制代码
由于在ZFS卷组内创建swap尚未有良好支持,会带来一定风险,如果对swap有要求,可以创建一个独立的swap分区,在/etc/fstab进行配置。

基本系统到此安装完毕,后续的软件和设置可以自行参照Gentoo的wiki和文档。




附上安装完成的靓照:





附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 5Rank: 5Rank: 5

UID
1525252
帖子
608
PB币
1534
贡献
0
技术
0
活跃
76
发表于 2012-9-5 00:26:25 |显示全部楼层
只有路过帮顶的份了。只在BSD上试过ZFS,没显卡驱动,立马删了……

热爱开源的码盲

Rank: 5Rank: 5Rank: 5

UID
1476976
帖子
861
PB币
3784
贡献
0
技术
0
活跃
141
发表于 2012-9-5 00:36:31 来自手机 |显示全部楼层
^ω^

iBSD

Rank: 5Rank: 5Rank: 5

UID
259105
帖子
335
PB币
399
贡献
0
技术
0
活跃
32
发表于 2012-9-5 09:11:40 |显示全部楼层
jeff2229 发表于 2012-9-5 00:26
只有路过帮顶的份了。只在BSD上试过ZFS,没显卡驱动,立马删了……

FreeBSD吗?我也在用,目前就等着9.1发布,正式并入KMS补丁了。

附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 5Rank: 5Rank: 5

UID
1525252
帖子
608
PB币
1534
贡献
0
技术
0
活跃
76
发表于 2012-9-5 09:48:17 |显示全部楼层
darkduke 发表于 2012-9-5 09:11
FreeBSD吗?我也在用,目前就等着9.1发布,正式并入KMS补丁了。

算是吧,其实是PC-BSD。Intel、AMD显卡驱动都没有,心碎……摆弄了半天,还是回到了Linux世界。

iBSD

Rank: 5Rank: 5Rank: 5

UID
259105
帖子
335
PB币
399
贡献
0
技术
0
活跃
32
发表于 2012-9-5 10:19:18 |显示全部楼层
jeff2229 发表于 2012-9-5 09:48
算是吧,其实是PC-BSD。Intel、AMD显卡驱动都没有,心碎……摆弄了半天,还是回到了Linux世界。

好吧……不过PC-BSD真心难用,系统体积臃肿。我还是喜欢原版FreeBSD,从基础系统开始自己定制需要的软件。
OpenBSD也很好用哦。
PS:前几天问过开发人员,9.1支持Intel HD3000,对于老Intel显卡的KMS支持更是早就有了。

Rank: 5Rank: 5Rank: 5

UID
1525252
帖子
608
PB币
1534
贡献
0
技术
0
活跃
76
发表于 2012-9-5 12:24:43 |显示全部楼层
darkduke 发表于 2012-9-5 10:19
好吧……不过PC-BSD真心难用,系统体积臃肿。我还是喜欢原版FreeBSD,从基础系统开始自己定制需要的软件。 ...

是吗,我是i3 2100集显,选intel驱动结果花屏了。只有选vesa才正常……

Rank: 7Rank: 7Rank: 7

UID
1652137
帖子
3419
PB币
3758
贡献
0
技术
0
活跃
125

7周年庆典勋章 8周年庆典勋章

发表于 2012-10-11 15:28:02 来自手机 |显示全部楼层
很多事要做啊
回顶部
Copyright (C) 2005-2020 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛 | 电脑硬件 | 安卓软件