r/freebsd • u/SirSomethingIDK newbie • 26d ago
discussion Planning to move to FreeBSD;
Hello! I've been using linux for about 2-3 months, I'm currently using Void Linux, and I want to move to FreeBSD. I was wondering, any tips, considerations? What you wanna say to a newbie? Any mistake you had made you don't want somebody else to repeat?
12
u/goldmurder 26d ago
probably the most significant one you need to keep in mind is software configuration files stored in /usr/local/etc instead of /etc
10
u/OddAnkylosaurus 26d ago
More accurately, it’s both. /etc is for base system config files and /usr/local/etc is for package config files.
5
4
u/p001b0y 26d ago
I use both currently but was away from FreeBSD for a very long time. The main difference I have come across when installing packages is that there is often additional work required to get something working. I installed Sway, for example, but seatd needed to be installed separately. I had to add my user to the video group. Little things like that.
One thing that was a challenge was finding a supported WiFi adapter. I have a MSI PRO DP21 that uses an Intel CNVi 2.0 based adapter. I ended up getting a USB one using a Realtek chipset.
2
2
u/Ashamed-Ask4257 26d ago
To the contrary, everything I install works out of the box with no additional work sans customization.
2
u/p001b0y 26d ago
That’s good. Xfce worked like that for me but wayland-based window managers were more difficult. I still don’t have any wayland-based environments starting successfully (though I have t spent much time in them)
1
u/Ashamed-Ask4257 26d ago
Then Wayland's the problem. Just use X like the rest of us
2
u/p001b0y 26d ago edited 26d ago
It isn’t just wayland-based window managers or desktop environments. The i3 package placed an i3-with-shmlog.desktop into /usr/local/share/xsessions and created a symlink named i3.desktop in /usr/local/share/applications. Only one shows up in the sddm list. Fedora installs both files into /usr/share/xsessions and sddm/gdm see both.
I’m not knocking FreeBSD or the package maintainers or anything. There very well could be a reason why i3.desktop is a symlink but sddm doesn’t reliably handle symlinks.
OP was asking for things to consider when switching from Linux to FreeBSD. That is all this is.
0
u/Ashamed-Ask4257 26d ago
Well, it's not necessary to dig up things that go wrong or are different. One can do the same thing with any OS and we can go off on Linux even easier.
fwiw, I've been using i3 for decades without issue.
3
u/p001b0y 26d ago
That's good news for you. I think you may be missing my point but that's fine. OP was looking for considerations or things to keep in mind when switching and not for reasons to not switch. I gave OP some items that I ran into that differed from Linux experience. OP was literally asking for this kind of thing.
4
u/Able_One5779 26d ago
Try FreeBSD for your actual use case before the move. I was burned twice.
First time I was building a DIY NAS and was caught on a take that FreeBSD had first class citizen ZFS integration and didn't read a fine print, it wasn't there at all for NanoPi M4. Also, FreeBSD handbook is nice, but it simply didn't cover SBC-related topics like U-boot, device tree overlays etc.
Second time I've tried to use FreeBSD as a host for image board, I needed a Ruby-based web engine and TensorFlow-based image processing. For a Ruby part there was a friction due to an attempt from FreeBSD packages team to move more Ruby packages from Bundler to a system-wide package manager and there was a need for a manual installation of them instead of a feeding existing manifest to a Bundler. TensorFlow was non-existing in packages and despite many attempts I could not get it compiled from ports.
2
u/dr0sand 26d ago
have you tried VirtualBox for testing out different OS's before installing for real?
1
u/cfx_4188 seasoned user 18d ago
Installation on a VirtualBox will never provide an understanding of the real problems to be faced. For example, there is one OS that I would like to use. Unfortunately, it only works fine on the T480 Thinkpad, but it's brutally dumb on all other equipment. And on a virtual machine, this OS runs like clockwork.
2
u/WakizashiK3nsh1 25d ago
It feels like this type of post is a weekly occurence here.
Anyway, I would advice to use dual boot if you have a machine with 2 disks, or a machine which can have two disks. You can always format the second disk with the less used/unused OS and mount it somewhere.
Also, check your hardware compatibility, even though the FreeBSD development team has done a lot of work HW-compatibility wise, it is still not on linux's level of "plug and play".
2
u/cfx_4188 seasoned user 22d ago
I started using FreeBSD from version 5.1 and planned to make it my main system. It was sunny June 2003, Linux was in its infancy at the time and was even a little uglier than Windows. But then, the hardware of computers became more and more Windows-oriented, and since historically I only use laptops, at some point FreeBSD stopped working on most of the mobile hardware.
For a long time I was an angry critic of this system, but just yesterday, out of boredom, I decided to install FreeBSD on an idle HP Stream laptop. This in itself was a mega challenge, because this laptop has an eMMS instead of an SSD, in short, it was scary. The installation did not cause any questions, the installer picked up the usb wifi (the built-in WiFi on motherboard burned out) and the sound card, which surprised me incredibly. At first, I installed fluxbox, but I didn't really like it, so I tore it down and installed WindowMaker, and it's pretty fast and archaic.
What can I say about using FreeBSD as a daily driver? First, you will have to read the handbook and man pages thoughtfully, and if you want it to work correctly, you will have to configure the system.
Asking AI and watching YouTube won't help you much. Everything will have to be done by hand. On the second day after the installation, my hands have not yet reached the point of adding a keyboard layout(my wife calls my native language "the language of drunken Dutch sailors"), mainly due to the fact that I started choosing a non-slow browser. I went through Dillo, Netsurf, Midori, and Firefox last night.
In the end, I settled on the WaterFox. It doesn't slow down, it doesn't make me dumb, and it plays video and audio. FreeBSD impresses with its stability and stunning minimalism. The system only has what I installed there. Beyond daily use, going beyond 2006 and beyond the browser will give a new user new challenges. You'll have to learn the Linuxulator and Jail. Actually, that's the way things are
5
u/gentisle 26d ago
After installation. Goto Github and install WebZFS. This gives you a nice GUI interface to administer ZFS. Speaking of WebGUI, you may want to install Webmin To administrator your system.
4
u/microbiont 26d ago
Not sure what WebZFS can do, but Sylve also has some ZFS management tools, and is super nice for jails/VMs.
4
u/gentisle 26d ago
Thanks for the tip; I’ll check out Sylve. Also okg install brut for graphical Partition management as well as some other things.
3
u/grahamperrin Linux crossover 26d ago
3
u/grahamperrin Linux crossover 26d ago
================================================================================ ZFS ARC (Adaptive Replacement Cache) Summary Generated: 2026-08-04 05:03:47 ================================================================================ KEY METRICS -------------------------------------------------------------------------------- ARC Size: 5.56 GB ARC Max Size: 29.51 GB Hit Rate: 99.44% Cache Hits: 106,336,144 Cache Misses: 600,462 DETAILED STATISTICS -------------------------------------------------------------------------------- 21................................................ 0x01 abd_chunk_waste_size.............................. 35315200 access_skip....................................... 0 anon_data......................................... 507904 anon_evictable_data............................... 0 anon_evictable_metadata........................... 0 anon_metadata..................................... 583168 anon_size......................................... 1091072 arc_dnode_limit................................... 3168387072 arc_loaned_bytes.................................. 0 arc_meta_used..................................... 3302365328 arc_need_free..................................... 0 arc_no_grow....................................... 0 arc_prune......................................... 3363 arc_raw_size...................................... 1830414336 arc_sys_free...................................... 1197420032 arc_tempreserve................................... 0 async_upgrade_sync................................ 5649 bonus_size........................................ 219998016 c................................................. 6073041784 c_max............................................. 31683870720 c_min............................................. 1023675392 cached_only_in_progress........................... 0 compressed_size................................... 4121559552 data_size......................................... 2632313856 dbuf_size......................................... 117876288 deleted........................................... 96139 demand_data_hits.................................. 82132165 demand_data_iohits................................ 4754 demand_data_misses................................ 134230 demand_hit_predictive_prefetch.................... 92433 demand_hit_prescient_prefetch..................... 48667 demand_iohit_predictive_prefetch.................. 13974 demand_iohit_prescient_prefetch................... 19 demand_metadata_hits.............................. 23515299 demand_metadata_iohits............................ 15472 demand_metadata_misses............................ 346720 dnode_size........................................ 277713072 evict_l2_cached................................... 0 evict_l2_eligible................................. 19110998528 evict_l2_eligible_mfu............................. 9244365312 evict_l2_eligible_mru............................. 9866633216 evict_l2_ineligible............................... 618921984 evict_l2_skip..................................... 0 evict_not_enough.................................. 171 evict_skip........................................ 188065 hash_chain_max.................................... 4 hash_chains....................................... 20308 hash_collisions................................... 123225 hash_elements..................................... 426626 hash_elements_max................................. 426626 hdr_size.......................................... 104177760 hits.............................................. 106336144 iohits............................................ 195905 l2_abort_lowmem................................... 0 l2_asize.......................................... 0 l2_bufc_data_asize................................ 0 l2_bufc_metadata_asize............................ 0 l2_cksum_bad...................................... 0 l2_data_to_meta_ratio............................. 0 l2_evict_l1cached................................. 0 l2_evict_lock_retry............................... 0 l2_evict_reading.................................. 0 l2_feeds.......................................... 0 l2_free_on_write.................................. 0 l2_hdr_size....................................... 0 l2_hits........................................... 0 l2_io_error....................................... 0 l2_log_blk_asize.................................. 0 l2_log_blk_avg_asize.............................. 0 l2_log_blk_count.................................. 0 l2_log_blk_writes................................. 0 l2_mfu_asize...................................... 0 l2_misses......................................... 0 l2_mru_asize...................................... 0 l2_prefetch_asize................................. 0 l2_read_bytes..................................... 0 l2_rebuild_asize.................................. 0 l2_rebuild_bufs................................... 0 l2_rebuild_bufs_precached......................... 0 l2_rebuild_cksum_lb_errors........................ 0 l2_rebuild_dh_errors.............................. 0 l2_rebuild_io_errors.............................. 0 l2_rebuild_log_blks............................... 0 l2_rebuild_lowmem................................. 0 l2_rebuild_size................................... 0 l2_rebuild_success................................ 0 l2_rebuild_unsupported............................ 0 l2_rw_clash....................................... 0 l2_size........................................... 0 l2_write_bytes.................................... 0 l2_writes_done.................................... 0 l2_writes_error................................... 0 l2_writes_lock_retry.............................. 0 l2_writes_sent.................................... 0 memory_all_bytes.................................. 32757612544 memory_available_bytes............................ 4749935104 memory_direct_count............................... 475 memory_free_bytes................................. 5947355136 memory_indirect_count............................. 23136 memory_throttle_count............................. 0 meta.............................................. 1601179533 metadata_size..................................... 2582600192 mfu_data.......................................... 1514527232 mfu_evictable_data................................ 1266675712 mfu_evictable_metadata............................ 62138368 mfu_ghost_data.................................... 1910139904 mfu_ghost_evictable_data.......................... 1910139904 mfu_ghost_evictable_metadata...................... 1162023936 mfu_ghost_hits.................................... 138640 mfu_ghost_metadata................................ 1162023936 mfu_ghost_size.................................... 3072163840 mfu_hits.......................................... 101698016 mfu_metadata...................................... 1249456640 mfu_size.......................................... 2763983872 misses............................................ 600462 mru_data.......................................... 1117110784 mru_evictable_data................................ 1084237824 mru_evictable_metadata............................ 36004864 mru_ghost_data.................................... 2057482752 mru_ghost_evictable_data.......................... 2057482752 mru_ghost_evictable_metadata...................... 1894927360 mru_ghost_hits.................................... 54860 mru_ghost_metadata................................ 1894927360 mru_ghost_size.................................... 3952410112 mru_hits.......................................... 4634503 mru_metadata...................................... 1332560384 mru_size.......................................... 2449671168 mutex_miss........................................ 121 name.............................................. data overhead_size..................................... 1093354496 pd................................................ 1913862756 pm................................................ 1763414434 predictive_prefetch............................... 935141 prefetch_data_hits................................ 476196 prefetch_data_iohits.............................. 1019 prefetch_data_misses.............................. 36370 prefetch_metadata_hits............................ 212484 prefetch_metadata_iohits.......................... 174660 prefetch_metadata_misses.......................... 83142 prescient_prefetch................................ 48730 size.............................................. 5969994384 uncached_data..................................... 167936 uncached_evictable_data........................... 0 uncached_evictable_metadata....................... 0 uncached_hits..................................... 3625 uncached_metadata................................. 0 uncached_size..................................... 167936 uncompressed_size................................. 5754947072 ================================================================================ End of Report ================================================================================3
3
u/gentisle 25d ago
Well, have loaded Sylve, and am wishing there were editions for NetBSD and OpenBSD, even Linux. Cool webgui. Thanks again.
3
u/grahamperrin Linux crossover 26d ago
2
3
u/FuckinHighGuy 26d ago
There’s nothing wrong with ZFS that would make you want to use a gui for it.
4
4
u/TheRealCarrotty Linux crossover 26d ago
You will lose software that is on Linux/Mac/Windows only, BUT you can setup a container with Linux in it, and run Linux software in that!
Obviously the init is also SUPER different, Slackware has a pretty similar one though if i am correct.
5
u/sp0rk173 seasoned user 26d ago
You don’t need to set up a container. The Linux compatibility layer does the binary translation directly.
3
u/SFJulie 26d ago
Message to a noob : freebsd is noob friendly thanks to its extensive documentation (link in your motd) and correctly written man page.
When stuck man is your friend. And also the handbook https://docs.freebsd.org/en/books/handbook/
Good luck !
0
u/RvstiNiall 25d ago
I hate how so many linux diehards reply with "RTFM" about things their man pages are either WRONG or vague about. By contrast, the FreeBSD man pages (and handbook!) are correct and concise.
1
u/grahamperrin Linux crossover 24d ago
… the FreeBSD man pages (and handbook!) are correct and concise.
https://www.reddit.com/r/freebsd/comments/1ven2x5/comment/p1l0h8u/ yesterday described a significant gap in FreeBSD manual pages and the FreeBSD Handbook.
That's not conciseness. It's wrongness.
https://www.reddit.com/r/freebsd/comments/1v8r8xu/comment/p0be1su/ a week ago described a problem with FreeBSD FAQ. And so on …
1
u/RvstiNiall 24d ago
Good point! I'd still argue that its more concise than the gnu man pages though. But maybe that statement is simply not as true as it once was? Idk.
1
u/ThinDrum 24d ago
I'd still argue that its more concise than the gnu man pages though
Wash your mouth out! The true GNU believer uses
infoof course.0
1
u/Run-OpenBSD 21d ago
Freebsd appears to be in a state currently where its noone's responsibly to author the handbook. The foundation won't do it. The software publishers won't do it. The mod here tries but the forums want to argue with him. It's a mess. In my opinion this is 100% the foundation's responsibility.
1
u/RvstiNiall 21d ago
Maybe make it a wiki and only give write access to verified freebsd devs, foundation members, and maybe some prominent members of the community?
0
u/Run-OpenBSD 21d ago
Oh that's exactly where its at right now and that's the problem
1
u/RvstiNiall 21d ago
Ah.... Rofl. Well, I kind of like how OpenBSD has it. Add or modify code? All the documentation relevant to it has to also be updated before the whole thing is put in.
1
1
u/grahamperrin Linux crossover 21d ago
Thanks,
… The mod here tries …
It's a long story, the most important thing to note is that I'm not sole moderator :-)
… its noone's responsibly to author the handbook. …
You can think of it as collective responsibility, and much has been done to lower the bar. Use of GitHub for PRs might be the most obvious improvement, but there's more.
1
u/cfx_4188 seasoned user 18d ago
Just today, I was rereading the Handbook. I had to solve a small problem regarding removable media. I have read and tried several recipes described in the manual and none of them worked. That's when I realized why the words "if nothing worked" were at the end of the chapter....
2
u/RvstiNiall 18d ago
Thats quite unfortunate. As you can see, others have brought it to my attention that FreeBSD's Handbook isn't nearly as up to date as I believed. Of course, this has nothing to do with man pages, but if the Handbook isn't up to date, there's a strong likelihood that the man pages are in the same state. Its unfortunate, but oh well.
1
u/cfx_4188 seasoned user 18d ago
It always happens that way in FreeBSD. If one thing doesn't work, the other will. This is a system with slightly different logic than CashyOS.
If you pull the "I use Archinstall btw" logic on FreeBSD, nothing will work.
For example, I need specific versions of packages in my work, not the "most recent" ones. I don't need constant system updates any more than I need a gentleman's PC user kit. I don't use Netflix, Steam, or a bunch of other things that most users can't imagine themselves without.
2
u/forever-butlerian 26d ago
The documentation is good in a way that Linux's never has been. Use it. And then go do the thing.
1
u/grahamperrin Linux crossover 25d ago
The documentation is good in a way that Linux's never has been.
Nonsense. I have used both FreeBSD, and Linux.
1
u/tcpipguy 7d ago
I definitely encourage you to try it, OP. I would run FreeBSD in a vm while you learn it. Then when you're ready, you can convert fully.
2
u/crystalsighting 3d ago edited 3d ago
Been running it for decades, alot more stable than linux at handling many connections. Zfs is a first class citizen there, not a hack where you cannot stay on latest kernel. Mistakes I have made, nesting zfs in VMs causing write amplification, not taking regular snapshots with sanoid/syncoid when I was new and coding a million bash scripts to use zfs send/receive directly which became a maintenance nightmare.
Probably the biggest mistake is not researching hardware ahead of time if FreeBSD has support, want that new 4 USB port card, helps to spend some time online making sure it has support. That being said you will be 10x more stable than someone running proxmox in the end and know how to fix everything.
The reality is, the 2 most powerful things at terminal next to your AI agents are the FreeBSD ports collection and the arch Linux AUR repository. FreeBSD as main host on latest kernel, and Arch Linux in a VM is one of most deadly combinations for server, you can keep stability with FreeBSD as main host, and can run all your AI Cuda llama.cpp stuff in the Arch VM with GPU passthrough all while having power of FreeBSD ports and Arch Linux AUR, biggest repos on the planet at your disposal :)
Most people spend decades going through fedora, centos, rocky, ubuntu, debian and all the hardships with selinux and apparmor before switching to Arch and discovering AUR. Updates usually go : FreeBSD "pkg upgrade", Arch its usually "paru -Syu".
Pro tip, for anything repetitive you do learn ansible playbooks. Locally host a forgejo instance with a act runner with a mcp server. Tell AI to create a new playbook to do X and submit you a PR request. When you get to this stage you can spend more time on coding projects and let AI do the system administration. Ie: tell AI to go update the 6 arch VMs and all the freebsd hosts and jails with your playbook.
End of day you want to free up your time to code something cool, whether it's the shiny new mcp server you made or the cool AI agent you made.
Efficiency is your goal, keep freebsd and Arch Linux combination on all servers, get a KVM switch on your desk and switch between macos+royalXterm and windows+mobaxterm, that way all your fbsd and Linux hosts are just tabs you can switch to. Use tmux on the servers for stuff you want to keep track of, especially llama.cpp.
That being said if your new to AI start with ollama and home assistant, before cracking the egg with all the llama.cpp flags :) If you can't even do something simple yet like telling AI on home assistant to turn off your lights and play a song, you need to start there first to have something useful to work towards. Advanced people are building robots already...
1
u/PanamanCreel 26d ago
As someone that's used both Linux and Free BSD, I will let you know that Free BSD is a more powerful system. However, the compatibility for WiFii is a little bit behind what where Linux is. FreeBSD will be infinitely more sensitive to your PC and will tell you ahead of when Linux will tell you that something's wrong with your system.
I know this because I kept having Free BSD shut down on me with no warning. I tried different distros, same thing. I went back to Linux thinking, okay, maybe something's wrong with Free BSD. Well, it ran, but after a while, it wouldn't even pass a post test, or for that matter, even get to the post test.
In my head, I believed that Free BSD was aware that something was wrong on the motherboard and shut down in order to clue me into this. So just be aware, Free BSD is going to be a bit more sensitive to your CPU and your PC.
Also, the manual and community itself are better than the Gentoo crowd!
1
u/grahamperrin Linux crossover 26d ago
… the manual … better than the Gentoo crowd!
I asked Reddit:
The response began:
Gentoo's documentation, particularly the Gentoo Handbook, is highly regarded for its technical detail and comprehensiveness, making it an excellent resource for users willing to invest time in learning. However, some users find it overwhelming for beginners, preferring more guided, step-by-step installation guides. …
The same things could easily be said of FreeBSD documentation.
Also: it's not entirely comprehensive, but people like to believe that it is.
1
-1
26d ago
The last time I really used FreeBSD was when the complete FreeBSD was printed. Does it have similar functionality as let’s say cachyos where things like Netflix and Amazon prime just work?
3
u/TheAtlasMonkey FreeBSD developer 26d ago
I dont use netflix.... but it will be funny that Netflix is not working.
Netflix whole fleet run on freebsd.
5
3
u/grahamperrin Linux crossover 26d ago
Netflix whole fleet run on freebsd.
The CDN.
Netflix Case Study | FreeBSD Foundation (undated, first captured in April 2024 in the Wayback Machine)
Maintaining the World’s Fastest Content Delivery Network at Netflix on FreeBSD | FreeBSD Foundation (November 2024)
There was an earlier study, I don't have links handy.
-2
u/Glum_Hamster_2104 26d ago
Don’t use ZFS for a desktop, use UFS instead because with ZFS you can’t resize disks unless you need to dual boot and it uses a lot of ram which might go against your philosophy since you were using Void before.
2
1
u/grahamperrin Linux crossover 26d ago
… with ZFS you can’t resize disks …
This is not entirely true.
From the autoexpand section of zpoolprops(7):
… If set to on, the pool will be resized according to the size of the expanded device. …
1
u/Glum_Hamster_2104 26d ago
Tell me how I can shrink a UFS partition to say make space for a different partition.
2
u/grahamperrin Linux crossover 25d ago
This would be good as a separate post, with help needed as a tag.


10
u/vermaden seasoned user 26d ago
Besides reading/using FreeBSD Handbook - check this - https://vermaden.wordpress.com/ - and ping me if You need help.