Windows10 和 ZFS 文件系统 FreeBSD UEFI 引导 双系统安装

安装 Windows 10 系统

注意:记得使用 UEFI 引导方式。
另外,Windows 10 的 EFI 分区大小最好大一点,我的大小为 512M。否则后面制作双引导的时候有可能 EFI 空间太小,放不下 Freebsd 的引导。

双引导创建成功

Windows10 的具体安装找其他资料吧,一找一大把。

制作 U 盘启动盘

我制作 U 盘启动盘的系统是 Windows 所以就用 Rufus 工具来制作
下载链接: Rufus

安装前工作

使用 Windows 磁盘管理器给 FreeBSD 分出一部分空间(这部分空间最好不是在中间,也就是说一块磁盘从某处开始到结束都是 FreeBSD,因为目前还没有找到没有实验在中间一段磁盘分区的方法),这个网上资料也很多,和 Linux 一样(预留出的空间最好不分区)。

安装 FreeBSD 系统

  1. 进入 U 盘启动引导界面, 直接回车。
    在这里插入图片描述
  2. 进入下一步,直接回车选择 Install
    在这里插入图片描述
  3. 直接选择默认键盘布局,回车。
    在这里插入图片描述
  4. 设置一个自己的主机名,建议按照这种格式设定:machine.example.com
    在这里插入图片描述
  5. 选择安装组件,因为我想要学习的性质,所以就全选了。根据自己需要选择就好
    在这里插入图片描述

重点在分区这一步

  1. 在这里插入图片描述
    想要使用 ZFS, 而且是在同一块磁盘上和 Windows 共存,就必须选择 Shell 模式进行手动分区。如果选择 Auto(ZFS) 那么就必须覆盖整个磁盘,这也就是 FreeBSD 不好的地方,没有 Linux 灵活。

手动分区方法:

  1. 选择 Shell 回车.
  2. 配置 SSH 服务和网络,这样就可以直接通过粘贴复制来执行下列命令了,当然需要两台电脑。如果不需要这一步可以直接跳过
    配置启动 SSH
mkdir /tmp/etc /tmp/root
mount -t unionfs /tmp/etc /etc
mount -t unionfs /tmp/root /root
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
passwd
service sshd onestart

连接:

ssh root@IP地址

配置网络(网线连接)
查看网口: ifconfig
配置网络

dhclient em0

ping www.baidu.com  # 验证
  1. 查看自己磁盘概况, 记住自己预留的磁盘盘符,例如: ada1p*
gpart show -p
  1. 创建分区,这里就直接放一块了,想知道这些命令是做什么用的,后面会给出官方文档链接
kldload zfs

sysctl vfs.zfs.min_auto_ashift=12

gpart add -a 1m -s 8G -t freebsd-swap -l swap0 ada1  // 交换空间大小根据自己情况而定
gpart add -a 1m -t freebsd-zfs -l disk0 ada1  // 直接使用后面所有剩余磁盘

mount -t tmpfs tmpfs /mnt
zpool create -o altroot=/mnt zroot ada1p3  // ada1p3 为前面创建的 freebsd-zfs 分区,也就是 disk0, 可使用 gpart show -p ada1 查看对应盘符

zfs set compress=on                                            zroot

zfs create -o mountpoint=none                                  zroot/ROOT
zfs create -o mountpoint=/ -o canmount=noauto                  zroot/ROOT/default
mount -t zfs zroot/ROOT/default /mnt

zfs create -o mountpoint=/tmp  -o exec=on      -o setuid=off   zroot/tmp
zfs create -o canmount=off -o mountpoint=/usr                  zroot/usr
zfs create                                                     zroot/usr/home
zfs create                     -o exec=off     -o setuid=off   zroot/usr/src
zfs create                                                     zroot/usr/obj
zfs create -o mountpoint=/usr/ports            -o setuid=off   zroot/usr/ports
zfs create                     -o exec=off     -o setuid=off   zroot/usr/ports/distfiles
zfs create                     -o exec=off     -o setuid=off   zroot/usr/ports/packages
zfs create -o canmount=off -o mountpoint=/var                  zroot/var
zfs create                     -o exec=off     -o setuid=off   zroot/var/audit
zfs create                     -o exec=off     -o setuid=off   zroot/var/crash
zfs create                     -o exec=off     -o setuid=off   zroot/var/log
zfs create -o atime=on         -o exec=off     -o setuid=off   zroot/var/mail
zfs create                     -o exec=on      -o setuid=off   zroot/var/tmp

ln -s /usr/home /mnt/home
chmod 1777 /mnt/var/tmp
chmod 1777 /mnt/tmp

zpool set bootfs=zroot/ROOT/default zroot

 cat << EOF > /tmp/bsdinstall_etc/fstab
 # Device                       Mountpoint              FStype  Options         Dump    Pass#
 /dev/gpt/swap0                 none                    swap    sw              0       0
 EOF

创建双引导

mount -t msdosfs /dev/ada0p1 /media   // /dev/ada01 为 windows10 引导所在的 EFI 分区盘符

cd /tmp
fetch https://nchc.dl.sourceforge.net/project/refind/0.13.1/refind-bin-0.13.1.zip
unzip refind-bin-0.13.1.zip

cd /media/EFI/Boot
mv bootx64.efi bootx64-windows10.efi
cp /boot/loader.efi bootx64-freebsd.efi
cp -a /tmp/refind-bin-0.13.1/refind/icons .
cp -a /tmp/refind-bin-0.13.1/refind/refind_x64.efi bootx64.efi
cp /tmp/refind-bin-0.13.1/refind/refind.conf-sample refind.conf

编辑 refind.conf, 在末尾添加(vim refind.conf)
menuentry "FreeBSD/amd64 -CURRENT" {
    loader \EFI\Boot\bootx64-freebsd.efi
    icon \EFI\Boot\icons\os_freebsd.png
}

menuentry "Windows 10 Professional x64" {
    loader \EFI\Boot\bootx64-windows10.efi
    icon \EFI\Boot\icons\os_win.png
}
三系统,四系统,同样办法添加即可

创建 refind 引导, 启动之后就会进入 refind 引导界面,就可以自由的选择系统启动了(不用再进入 BIOS 选择系统了,哈哈)
efibootmgr --create --activate --label "FreeBSD" --loader "/media/EFI/Boot/bootx64.efi"
umount /media
exit

exit 退出后,FreeBSD 安装程序会接着自动进行安装
在这里插入图片描述
11. 设置 Root 密码
在这里插入图片描述
12. 选择时区
我们就选择 Asia --> China --> Beijing
在这里插入图片描述
设置时间,就先跳过
13. 选择默认开启的服务
在这里插入图片描述
选择 sshd, moused, ntpdate, ntpd, dumpdev

  1. 安全选项,直接回车
    在这里插入图片描述
  2. 添加用户
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  3. 直接回车
    在这里插入图片描述
  4. 最后的手动配置,选择 Yes 进入 shell 模式
    在这里插入图片描述
    执行:
sysrc zfs_enable="YES"
echo zfs_load="YES" >> /boot/loader.conf
exit
  1. 重启,完成安装
    在这里插入图片描述

注意:需要进入 Bios 选择启动盘来启动对应的 FreeBSD

参考资料:

http://kev009.com/wp/2016/07/freebsd-uefi-root-on-zfs-and-windows-dual-boot/
https://forums.freebsd.org/threads/uefi-gpt-dual-boot-how-to-install-freebsd-with-zfs-alongside-another-os-sharing-the-same-disk.75734/
https://wiki.freebsd.org/RootOnZFS/GPTZFSBoot

本文到安装结束就完了,系统配置比如说安装 Nvidia 显卡驱动等,可以看我另一篇文章.

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值