FreeBSD有个很神奇的功能,就是跟Linux二进制兼容,也就是可以直接运行linux的bin文件。还有个更神奇的功能,就是能运行出一套Linux系统,完全是linux的用户,linux的目录系统,而且还可以选是Centos系统还是Ubuntu系统以及它们自己独特的软件包管理系统。
现在开始我们的神奇之旅吧!
配置和启动Linux兼容
sysrc linux_enable="YES"
service linux start
安装Debian/Ubuntu基本系统
pkg install debootstrap
debootstrap focal /compat/ubuntu
focal对应20.04版本,如果我们希望安装更新的版本,可以选择22.04 Jammy版本(临时版本23.04 Lunar或者23.10 Manti还不支持)
debootstrap jammy /compat/jammy
安装完那后,修改/etc/fstab
# Device Mountpoint FStype Options Dump Pass#
devfs /compat/jammy/dev devfs rw,late 0 0
tmpfs /compat/jammy/dev/shm tmpfs rw,late,size=1g,mode=1777 0 0
fdescfs /compat/jammy/dev/fd fdescfs rw,late,linrdlnk 0 0
linprocfs /compat/jammy/proc linprocfs rw,late 0 0
linsysfs /compat/jammy/sys linsysfs rw,late 0 0
/tmp /compat/jammy/tmp nullfs rw,late 0 0
/home /compat/jammy/home nullfs rw,late 0 0
进入Linux用户模式
chroot /compat/jammy /bin/bash
使用uname看一下,果然是Linux拉! 而且ubuntu的apt命令它也支持,真是太好用了!
调试
在ubuntu下su 进入普通用户报Permission denied
su - linuxskywalk
-su: /etc/profile: Permission denied
查看/etc/profile的权限发现是:-rw-------+ 修改成644问题解决:
chmod 644 /etc/profile
ubuntu下sudo ls 报错unable to resolve host fb14
sudo ls
sudo: unable to resolve host fb14
经查,是网络那边还没搞定
在linux兼容环境中,修改/etc/hosts文件,加入127.0.0.1 fb14即可。