为了保持桌面系统和服务器环境的统一,最近在想办法将自己的桌面系统从 Ubuntu 转移到 FreeBSD;当然,最主要还是想使用 FreeBSD 的 Ports 系统,Ubuntu 的软件更新比较迟缓。安装完 FreeBSD 基本系统,为了保留 LD 同志使用的 Win2K,需要安装一个多系统启动管理器,FreeBSD 的 Boot Manager 应该说是非常非常简陋的东西,太不友好;我在 Ubuntu 环境下使用的是 Grub,在 FreeBSD 下也有,同样可以非常方便的安装。
(注意:以下过程以 Win2K + FreeBSD 6.2p1 i386 环境下通过)
第一步,我们需要安装 Grub,可以通过 Ports 安装:
[root@tianlap.dirk.sh:~]# cd /usr/ports/sysutils/grub
[root@tianlap.dirk.sh:/usr/ports/sysutils/grub]# make install clean第二步,我们需要准备镜像文件和菜单文件:
Grub 把镜像文件安装到了 /usr/local/share/grub/i386-freebsd 目录下,我们需要将相应的文件拷贝到 grub 的主目录,也就是 /boot/grub 目录。
[root@tianlap.dirk.sh:~]# mkdir -p /boot/grub
[root@tianlap.dirk.sh:~]# cp -Rf /usr/local/share/grub/i386-freebsd /boot/grub/编辑一个 Grub 菜单文件 menu.lst,以我的环境为例:
default 1
timeout 3
title Microsoft Windows 2000 Advanced Server
root (hd0,0)
makeactive
chainloader +1
savedefault
title FreeBSD 6.2 Release
root (hd0,1,a)
kernel /boot/loader
makeactive
savedefault注意:hd0 是在 /boot/grub/device.map 文件中列出的对应到真实硬盘的映射符号,我的真实硬盘是 /dev/ad0。
第三步,我们需要让 FreeBSD 允许 Grub 将数据写到硬盘 MBR 中,这需要临时打开 FreeBSD 的以下开关(否则会在 Grub 安装的时候报告 Error 29: Disk write error):
[root@tianlap.dirk.sh:~]# sysctl kern.geom.debugflags=16最后,我们要将镜像文件和菜单安装到硬盘引导区中(我的硬盘是 /dev/ad0):
[root@tianlap.dirk.sh:~]# grub-install /dev/ad0或者可以使用 Grub 的命令工具:
grub> find /boot/grub/stage1
(hd0,1,a)
grub> root (hd0,1,a)
Filesystem type is ufs2, partition type 0xa5
grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/ufs2_stage1_5" exists... yes
Running "embed /boot/grub/ufs2_stage1_5 (hd0)"... 17 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+17 p (hd0,1,a)/boot/grub/stage2
/boot/grub/menu.lst"... succeeded
Done.打完收功!
(注意:以下过程以 Win2K + FreeBSD 6.2p1 i386 环境下通过)
第一步,我们需要安装 Grub,可以通过 Ports 安装:
[root@tianlap.dirk.sh:~]# cd /usr/ports/sysutils/grub
[root@tianlap.dirk.sh:/usr/ports/sysutils/grub]# make install clean第二步,我们需要准备镜像文件和菜单文件:
Grub 把镜像文件安装到了 /usr/local/share/grub/i386-freebsd 目录下,我们需要将相应的文件拷贝到 grub 的主目录,也就是 /boot/grub 目录。
[root@tianlap.dirk.sh:~]# mkdir -p /boot/grub
[root@tianlap.dirk.sh:~]# cp -Rf /usr/local/share/grub/i386-freebsd /boot/grub/编辑一个 Grub 菜单文件 menu.lst,以我的环境为例:
default 1
timeout 3
title Microsoft Windows 2000 Advanced Server
root (hd0,0)
makeactive
chainloader +1
savedefault
title FreeBSD 6.2 Release
root (hd0,1,a)
kernel /boot/loader
makeactive
savedefault注意:hd0 是在 /boot/grub/device.map 文件中列出的对应到真实硬盘的映射符号,我的真实硬盘是 /dev/ad0。
第三步,我们需要让 FreeBSD 允许 Grub 将数据写到硬盘 MBR 中,这需要临时打开 FreeBSD 的以下开关(否则会在 Grub 安装的时候报告 Error 29: Disk write error):
[root@tianlap.dirk.sh:~]# sysctl kern.geom.debugflags=16最后,我们要将镜像文件和菜单安装到硬盘引导区中(我的硬盘是 /dev/ad0):
[root@tianlap.dirk.sh:~]# grub-install /dev/ad0或者可以使用 Grub 的命令工具:
grub> find /boot/grub/stage1
(hd0,1,a)
grub> root (hd0,1,a)
Filesystem type is ufs2, partition type 0xa5
grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/ufs2_stage1_5" exists... yes
Running "embed /boot/grub/ufs2_stage1_5 (hd0)"... 17 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+17 p (hd0,1,a)/boot/grub/stage2
/boot/grub/menu.lst"... succeeded
Done.打完收功!
评论
发表评论
读过之后是不是文思泉涌了?,快快让大家拜读一下你的高见吧~~~