admin管理员组

文章数量:1122851

文章目录

  • 安装 Windows 10 系统
  • 制作 U 盘启动盘
  • 安装前工作
  • 安装 FreeBSD 系统
    • 重点在分区这一步
    • 手动分区方法:
    • 创建双引导
  • 参考资料:

安装 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
  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  # 验证
  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/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/wp/2016/07/freebsd-uefi-root-on-zfs-and-windows-dual-boot/
https://forums.freebsd/threads/uefi-gpt-dual-boot-how-to-install-freebsd-with-zfs-alongside-another-os-sharing-the-same-disk.75734/
https://wiki.freebsd/RootOnZFS/GPTZFSBoot

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

本文标签: 文件系统双系统ZFSFreeBSDUEFI