Top

本地磁盘小日记ヾ(≧▽≦*)ゝ

世界无限大.且行且珍惜w~
编码.计算机视觉.网络.语言.绘图在学/M2F/各种发烧友/死宅/见习天使w;

教程:在MBR主引导记录模式下实现Archlinux与FreeBSD双系统分区及引导的注意事项.

到目前为止笔者接触Archlinux这个发行版作为桌环并长期使用已经有惹两年多的日子惹(好快)..不过最近一段日子买惹FujitsuQ704这台机,画画上网和轻度开发运维什么的就都用的它w,没有再太多碰那台老扣肉本。直到前两周再次开启它并尝试Pacman -Syu的时候..(不说惹,一把辛酸泪。折腾惹半天环境。。然而现在作为连手机铃声都是默认的惹自己,在Gentoo和FreeBSD之间的抉择,毅然决然的选择惹投入BSD的怀抱w。

先简单介绍一下我的环境吧。当时那台老扣肉本是120GiB的固态盘,全部分给惹Arch,磁盘是用的MBR模式,引导是用的Grub。我首先将Arch的EXT4利用GParted光盘进行了无损大小调整,准备将调整后的分区安装Freebsd10.4。

这看似很简单,不过对于freebsd的话如果按照正常套路安装是会出现问题的。首先由于fbsd是用了自家的UFS(Unix的)文件系统管理磁盘的,而fbsd从9.0开始安装时的分区向导GUI又是基于gparted的,这个向导对mbr的支持不太友好,对mbr分区进行操作的时候会出现各种非法的报错问题。

因此首先我们再调整完分区后进入bsd安装等到分区向导的时候有必要进入shell模式手动调用gparted进行分区。


通过Shell进行MBR分区操作

此时此刻我们来到了安装界面的分区向导。我们不要选择向导提供给我们的GUI进行分区,而是选择Shell选项。

1
gpart show ada0 (ada0为磁盘号)

这下我们就可以通过gparted看到我们当前的磁盘信息。 我们接着建立FreeBSD的MBR信息:

1
2
gpart add -t freebsd ada0
gpart create -s bsd ada1s0

增加40GiB的Root(/)分区,卷标为freebsd-ufs。

1
gpart add -s 40G -t freebsd-ufs ada1s0

2GiB的交换分区

1
gpart add -s 2G -t freebsd-swap ada1s0

以此类推。

这样,再次返回freebsd的安装向导,我们就可以选择我们刚刚划分好的分区进行安装操作了。


Grub的引导设置

安装完FreeBSD后重启,我们发现它依然会走Arch下的Grub引导而并非FreeBSD的引导器。这个问题就更简单了,我们只需要写一条grub来引导到freebsd的引导器或者引导到核心也行。

Archlinux下编辑grub

1
nano /etc/default/grub

加入FreeBSD引导:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
直接加载内核

menuentry 'FreeBSD' {
  insmod ufs2
  set root='hd0,gpt4,bsd1'
  ## or 'hd0,msdos4,bsd1', if using an IBM-PC (MS-DOS) style partition table
  kfreebsd /boot/kernel/kernel
  kfreebsd_loadenv /boot/device.hints
  set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada0s4a
  set kFreeBSD.vfs.root.mountfrom.options=rw
}

Chainloading 嵌入的启动项

menuentry 'FreeBSD' {
  insmod ufs2
  set root='hd0,gpt4,bsd1'
  chainloader +1
}

运行传统的 BSD 第二阶段 loader

menuentry 'FreeBSD' {
  insmod ufs2
  set root='(hd0,4)'
  kfreebsd /boot/loader
}

加入后利用mkconfig命令写入并生成grub.cfg

1
grub-mkconfig -o /boot/grub/grub.cfg

现在我们就实现了共存的操作。

参考资料:

Grub配置:https://wiki.archlinux.org/index.php/GRUB_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#.E5.A4.9A.E7.B3.BB.E7.BB.9F.E5.90.AF.E5.8A.A8

MBR手动分区:http://daemon-notes.com/articles/system/install-ufs/gpart-mbr


@本地磁盘姬

ohayou.aimo.moe

微博:@萌萌的本地磁盘w

Twitter:@AmyGreen

2018年05月12日