While I’m thinking about it, I might as well document what my install experience was like getting Gentoo/FreeBSD up and running.
First of all, I was really skeptical that this would even work at all. I figured that with my complete ineptitude when it comes to *BSD would just make me fall flat on my face, and get stuck on some simple command or config or something. Turns out, it wasn’t that bad or hard at all.
I didn’t want to take the chance of completely screwing up my harddrive and partitions with this new frontier, so instead I installed vmware-player on my box and created a VMX for FreeBSD using EasyVMX. Then I downloaded the FreeSBIE LiveCD iso, and setup my vmx config to boot into that thing. For the record, here’s a great forums post on how to do that.
After booting into it, I just followed the install guide, and it went well. I was a little confused by the fdisk utility, and I certainly felt out of my element not being able to do something like fdisk -l to make sure I had set it all up correctly. In fact, FreeBSD apparently uses some weird partitioning scheme that I can’t even begin to explain. The only other problem I ran into was that the naming scheme on the ethernet devices was really weird, and I couldn’t really tell which one was which.
Once I got chrooted into my Gentoo stage3 install, things felt much better. Installing a kernel was really simple, though I miss the glorious funnity that is make menuconfig. Apparently, and this is from my limited exploration of all but two minutes, FreeBSD uses a different method to tell your kernel what to do, and it looks like it just loads modules, with a config in /boot. Interesting approach, I think. I have no idea how to tell what modules are loaded or anything like that, but so far I haven’t had to worry about it — everything’s been working fine.
I got my vmware all setup and working, and I felt pretty confident after that, so that night I went home and did the same thing on my laptop. I already had four partitions on my harddrive one of which wasn’t being used at all. So I just fired up fdisk in Linux, and changed the partition type to FreeBSD, and then rebooted into the Live CD. I went through the same steps as well, and quickly got into my Gentoo install. On my vmware image, I had problems installing GRUB, and everytime I boot it I have to tell it where my kernel is each time, which is a bit of a pain. My laptop, however, already had GRUB installed, so I just edited my config in Linux to add an entry for BSD, and it booted up just fine.
Like I said earlier, I’ve been really happy with the package selection. It’s a little weird to me having the entire profile be ~arch, since I’ve been running stable for my entire Gentoo experience, but it works out well in this case. Being a minority arch, it also saves time since you don’t have to hassle with stable keywording bugs (something that other small arches could learn from, in my opinion, and will probably hate me for posting my opinion). The downside though is that there are a lot of dependencies that are broken, so you either have to creatively work around them or keyword them yourself. So far I’ve just been testing them best I can and keywording them as I go along, although I don’t think I’ve done more than three packages just yet.
Now one thing I know that Gentoo/BSD does differently than Gentoo/Linux is that it uses not just BSD’s kernel to boot, but also their toolchain. That means a lot of those core utilities that you’re used to are GNU no more. This is the area that I was afraid was really going to throw me for a loop, and would have to relearn how to navigate my system. So far, though, it hasn’t really bitten me much. Then again, I’m still installing half of my packages, and haven’t used it much, so I’m not really in a good position to say. The fact does remain though that I had anticipated a lot of hurdles and brick walls that I’d have to scale over just to get a working, familiar system, and that has not been the case at all.
It’s not all strawberries and corn flakes, though. There are some differences between BSD and Linux, and I’m still learning those. For one, there’s nothing in /proc. This means things like htop won’t work, and I can’t remember what my /proc/cpuinfo was, so as to set stuff like my mmx use flags. The other thing I’m not sure is possible or not is sharing my /home directory across arch profiles. Since the partitioning scheme is so different (basically, it stores all its partitioning in one normal partition shared with everything else … or something), I don’t think it’s possible to see anything outside. Kind of a bummer, but I can get used to that. I’m also not sure if ACPI is working, since my fan never seems to kick on, which has me kind of worried. I’m going to have to do a bit of research on that one.
I’m hoping that I can recommend the profile for general desktop or server usage, but right now the jury is still out, and it’s far too soon to draw any conclusions. I have, however, been extremely impressed at how easy it is to setup and install, and Gentoo’s familiar tools and portage have only made this so much simpler. Add to the fact that you’ve got some great developers (not me, of course) working on the arch, and I think this is something that could do pretty well, given time. I’m really excited and interested to see where this could go.
I tried for *hours* to get Debian GNU/kFreeBSD up and running, but to no avail. The dhclient refuses to pick up an IP and resolve anything, and even when I enter the networking manually during the install, it still refuses to resolve an address. So, after many failed attempts, I decided to go with a vanilla FreeBSD install. I would have much rather preferred used the Debian GNU toolchain and package management, rather than learn a new package manager, but I’m so curious about FreeBSD, that I guess I need to take the leap anyway. I’ll post my experiences in about a week or so, when I have a full fledged running FreeBSD system.
Thanks for the Link to the install guide.
Thats cool.
Hans from Germany
FreeBSD’s disk layout is not based on DOS-style partitioning, but on disklabels which are vastly more flexible. The common practice on x86 is to create a DOS-style partition on your disk (called `slice’ in FreeBSD speak, the first slice on disk 0 is ad0s1) and partition that further using a disklabel (that’s where the letters come from: ad0s1a is the first partition in that slice).
FreeBSD has no problem accessing other DOS-style partitions. These look like adXsY (note the missing letter). Linux has no problem to access BSD disklabels as well, if you enable that in your kernel. The real problem with sharing your /home is selecting a filesystem. Linux has only limited UFS2 capabilities and EXT3 is not supported on FreeBSD (EXT2 is)…
Btw, kernel configuration in FreeBSD is done through a config file in /sys//conf/. You are probably running the GENERIC kernel which has almost all drivers enabled and reasonable defaults for everything else. The FreeBSD manual is the way to go if you want to compile your own kernel.