FreeBSD可以安装Linux软件吗,在Linux服务器上面通过网络安装FreeBSD
发布日期:2021-06-24 14:52:48 浏览次数:3 分类:技术文章

本文共 3589 字,大约阅读时间需要 11 分钟。

原文出自 http://www.daemonology.net/blog/2008-01-29-depenguinator-2.0.html,有修改。

有时候,出于某种需要,我们可能想把自己的主机重装成FreeBSD,但是,亲自去一趟机房可能会相当麻烦,更糟糕的是机房可能没人懂安装FreeBSD的,这种情况下,只能我们自己想办法了。

原理,我们把FreeBSD启动盘写入硬盘某一个区里面,然后通过grub启动,让FreeBSD直接在内存里面启动,这样我们就可以对硬盘进行分区等操作了。

目前depenguinator支持大部分Linux发行版(仅i386版本,不支持x86_64),支持安装FreeBSD6、7系列,下面马上开始。

1.安装依赖的软件包.

depenguinator制作FreeBSD硬盘镜像文件时需要编译makefs,下列软件包是必须的.

curl

gcc

zlib

zlib-devel

glibc-devel

bsdtar ( http://people.freebsd.org/~kientzle/libarchive/ )

自己逐个安装吧,这些应该没什么困难的,只有bsdtar需要编译安装,其他的直接使用yum安装就可以了

2.下载daemonology最新版本

wget http://www.daemonology.net/depenguinator/depenguin-2.0.tar.gz

3.编辑配置文件

tar -xzf depenguin-2.0.tar.gz

cd depenguin-2.0

4.创建depenguinator.conf并且根据自己的实际情况修改,(注意:这部分内容不能有错误,否则FreeBSD启动也无法安装连接网络)

depenguinator.conf.dist depenguinator.conf

hostname="服务器机器名"

defaultrouter="服务器网关"

depenguinator_mac_external="网卡mac地址"

depenguinator_ip_external="服务器IP地址"

depenguinator_netmask_external="子网掩码"

保存退出

5.下载FreeBSD disc1 ISO image,并且改名为disc1.iso

curl ftp://ftp.freebsdchina.org/pub/FreeBSD/releases/i386/ISO-IMAGES/7.0/7.0-RELEASE-i386-disc1.iso > disc1.iso

6.上传你的ssh authorized key到/root/.ssh,执行makeimage.sh创建硬盘镜像文件(ssh authorized key用来验证ssh登录,没有的话无法连接sshd)

sh -e makeimage.sh disc1.iso 7.0-RELEASE ~/.ssh/authorized_keys

7.这一步,作者的做法是关闭swap,然后把镜像文件写入swap,通过grub启动,不过我在测试的时候grub无法启动swap分区,提示filesystem unknow,可能是我的CentOS版本太低了吧(CentOS3.8),所以我稍微做了修改:先关闭swap,然后把swap转换成FreeBSD文件系统,再把disk.img写入swap分区,这样grub就可以正常启动了。(我的swap是/dev/sda2,如果你的swap是其他分区,要做相应修改)

swapoff /dev/sda2

fdisk /dev/sda2

选择t修改分区类型

输入sda2分区号码2

分区类型输入a5 (这是FreeBSD文件系统标号)

按w保存退出

8.把disk.img写入硬盘

dd if=disk.img of=/dev/sda2

9.更新gurb启动,增加FreeBSD选择并且设置为默认

vi /boot/grub/menu.lst

在最后增加下面部分:

title FreeBSD

root (hd0,1)

makeactive

chainloader +1

修改default=0 为default=2

10.重启系统

shutdown -r now

11.系统启动,这时FreeBSD完全是在内存里面运行着.enjoy yourself and god bless you

后记:系统启动后安装也比较困难的,因为FreeBSD安装过程的分区有点问题,反正大家在没熟悉操作之前,千万不要拿服务器开刀,否则丢数据请不要找本人麻烦.

现在就继续讨论一下如何安装FreeBSD

由于这样安装系统跟光盘安装有不同,所以我写一下我的经验给大家吧.

安装过程最大的问题是分区,有这样一个问题,系统启动后md0和md1分别挂载在 / 根分区和/usr分区,一旦你sysinstall过程中对硬盘分区格式化然后挂载到/ 和/usr,那么这两个分区就变成空白分区了,sysinstall可能无法继续,所以这里不得不耍点小手段才行。

我的解决方法:

先对硬盘分区格式化,然后mount 到 /1 和 /2 ,再把/根分区和/usr分区里面的文件分别拷贝到这两个分区里面,然后重新挂载到根分区和/usr分区,sysisntall过程就不需要再分区了。

至于如何分区格式化,参考FreeBSD使用手册里面的说明:

http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/disks-adding.html

dd if=/dev/zero of=/dev/da0 bs=1k count=1

fdisk -BI da0 #初始化新磁盘

bsdlabel -B -w da0s1 auto #加上标签

mkdir /1

mkdir /2

进入sysinstall

选择Configure

选择lable

删掉原来的da0s1a,然后对da0s1分区。通常来说,下面分区是必须的

swap

/1 (用来挂载根分区,不要使用softupdate)

/2 (用来挂载/usr分区)

一般还会分/tmp和/var

根据自己需要划分分区大小,然后按w保存,退出sysinstall ,按照我的实际情况,得到/1和/2分别是/dev/da0s1a和/dev/da0s1e

把根目录的东西都拷贝到/1里面去(会提示有错误,不用管)

cp -Rp .cshrc boot lib mnt sbin usr .profile COPYRIGHT dev libexec proc sys usr.tgz bin etc media root tmp var 1/

把/usr目录的东西都拷贝到/2里面去

cd /usr

cp -Rp * /2/

umount /1 和/2

umount /1

umount /2

mount /dev/da0s1e /usr

mount /dev/da0s1a /

好了,重新进入sysinstall

开始安装过程,直接跳过fdisk,lable这步只需要指定你分好的分区挂载到哪里就行了,不要重新格式化分区,按w保存修改,然后就是安装系统了,这里不再重复,只说明一下系统安装好之后的步骤。

1.检查内核是否安装好,如果 /boot/kernel下面没有内核文件,把/boot/GENERIC/下面的所有文件全部拷贝到/boot/kernel里面

cp -Rp /boot/GENERIC/* /boot/kernel/

2.更新/etc/fstab

按照自己的实际分区状况来写,例如我的

# Device        Mountpoint        FStype        Options        Dump        Pass#

/dev/da0s1a        /        ufs        rw        1        1

/dev/da0s1d        /tmp        ufs        rw         2        2

/dev/da0s1b        none        swap        sw        0        0

/dev/da0s1e        /usr        ufs        rw        2        2

3.更新/etc/rc.conf

mv /etc/rc.conf /etc/rc.conf.sysinstall

vi /etc/rc.conf (根据自己的实际情况修改)

defaultrouter="192.168.1.1"

hostname="host.youdoman.com"

ifconfig_em0="inet 192.168.1.8 netmask 255.255.255.0"

sshd_enable="YES"

重启,OK,系统安装完成,如果有时间,不防重新编译源码和内核吧。

转载地址:https://blog.csdn.net/weixin_33458486/article/details/116728743 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:.net core linux 桌面应用,C# dotnet core + AvaloniaUI 开发桌面软件,hello world
下一篇:linux创建硬盘分区lvm,LVM创建及分区调整、更换LVM硬盘

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月16日 12时22分20秒