# Newbie, installation over separate patitioned disks (old-school?)



## fabric (Jan 26, 2017)

Hi, I coming to FreeBSD from linux and very excited about it; please be understanding!

I've run out of patience with RHEL & other distros during the last few years and would like to investigate FreeBSD. At home I have an old empty machine with 1x 200G disk and separately 3 x 1T disks (under raid hardware).  In the past I have placed the Linux OS partitions on the single disk and the data on /home, /var/db, /opt and /usr/local (for example) on the RAID group.  Further, I have also partitioned the single OS disk in a fairly granular fashion, i.e. /, /usr, /var, /var/log, /tmp and /swp. Whilst a little old fashioned it seemed like the thought-out-way to do it.  Now coming to FreeBSD it seems, from my reading, that things are little different.

1. I cannot find many detailed examples of placing FreeBSD OS on one disk and precious data on another disk (RAID or otherwise). Generally, the talk is of a single disk (RAID or otherwise) or a ZFS pool. I'm thinking I could use UFS on single and ZFS on the raid but ZFS seems far more involved; so most likely UFS on single and RAID group?

2. It seems FreeBSD uses far fewer partitions; this seems a little odd as the structure of the file system seems similar to linux; so why isn't the file system more divided (partitioned) as in the old-school way?

3. On my Linux boxes I have generally used an unencrypted USB stick for the /boot and entire disk encryption for the OS and data disks. It seems many Linux users do this but not for FreeBSD?

I would really appreciate some insight here to clear up my thought process.  I am prepared to spend some time learning FreeBSD and don't just want to bang it onto a single disk!
Many thanks,
fabric.


----------



## SirDice (Jan 26, 2017)

Don't put ZFS on top of hardware RAID. While it's possible and it will work you will not get the benefits from ZFS. ZFS works best if it can handle disks by itself. 

As for the partitions, you can split it up as much as you like. But don't put /boot and/or /etc/ on a separate filesystem. Pretty much everything else can be on its own filesystem. You probably won't find any detailed examples because everybody uses his/her own way.


----------



## Deleted member 9563 (Jan 26, 2017)

fabric Welcome!
As said, everybody has different ideas and needs. My root partition currently has 14GB on it, so I'd say 20GB would be nice and safe. Do the rest as you like, it's probably not so important. However, consider putting /home on a separate partition so you can move it if want, or upgrade the OS without issue. There are some great how-tos on this site: http://www.wonkity.com/~wblock/docs/html/disksetup.html


----------



## SirDice (Jan 26, 2017)

The 'traditional' split was /, /var, /usr and /tmp. This was the default layout before it changed to a single filesystem with FreeBSD 9 (I think, can't remember the exact version).

/var is still good to split off, and even further /var/log, /var/db and /var/tmp (If you run a mail server; /var/mail). For /tmp I'd recommend tmpfs(5). And instead of /usr you may want to use /usr/local. I'd also put /usr/home on its own filesystem.


----------



## Sevendogs (Jan 26, 2017)

I run 3 disks: 1 SSD for /, 1 SSD for /usr/home and 1 spinning disk for backups. Not the traditional set up but the root file system is large enough I don't need separate partitions  for /var, /usr or /tmp. I know the consideration is not space in making those separate partitions but this is a desktop so not critical and this set up works fine for me. I have actually thought of putting /usr/local on a separate file system so I don't have to rebuild user land software if I reinstall the OS but I rarely have the need to its not a big deal to me.


----------



## gkontos (Jan 26, 2017)

fabric said:


> Hi, I coming to FreeBSD from linux and very excited about it; please be understanding!
> 
> I've run out of patience with RHEL & other distros during the last few years and would like to investigate FreeBSD. At home I have an old empty machine with 1x 200G disk and separately 3 x 1T disks (under raid hardware).  In the past I have placed the Linux OS partitions on the single disk and the data on /home, /var/db, /opt and /usr/local (for example) on the RAID group.  Further, I have also partitioned the single OS disk in a fairly granular fashion, i.e. /, /usr, /var, /var/log, /tmp and /swp. Whilst a little old fashioned it seemed like the thought-out-way to do it.  Now coming to FreeBSD it seems, from my reading, that things are little different.



Welcome, I understand the frustration with the Linux distros. I also have to use CentOS (7.X) on occasions and I really hate systemd.  



fabric said:


> 1. I cannot find many detailed examples of placing FreeBSD OS on one disk and precious data on another disk (RAID or otherwise). Generally, the talk is of a single disk (RAID or otherwise) or a ZFS pool. I'm thinking I could use UFS on single and ZFS on the raid but ZFS seems far more involved; so most likely UFS on single and RAID group?



As far as I recall, the old installer let you use different disks, controllers for partitions. I think you can still do it with bsdinstaller but it is more complicated.  Most people just use AUTO. Of course there are many ways that you can combine the bsdinstaller with manual interaction and create an appropriate layout. Like the others mentioned, do no use ZFS with hardware raid. If possible you can configure the controller in JBOD mode.



fabric said:


> 2. It seems FreeBSD uses far fewer partitions; this seems a little odd as the structure of the file system seems similar to linux; so why isn't the file system more divided (partitioned) as in the old-school way?



The old school was to separate, /tmp, /usr and /var. If you use ZFS you will see that the default install follows this and creates various datasets.


----------



## fabric (Jan 26, 2017)

Guys, thank you - that's great, I'm getting a better feel already.



SirDice said:


> But don't put /boot and/or /etc/ on a separate filesystem



I'm not sure I fully understood you. Surely, /boot would be unencrypted and /etc/ and / would be encrypted; or do you mean use UFS for both.  They can be on different partitions right?

Re ZFS on top of hardware RAID - thank you that would have cost me unnecessary pain!

I will revert when I have got a little further!
Many thanks


----------



## ASX (Jan 26, 2017)

fabric said:


> I'm not sure I fully understood you. Surely, /boot would be unencrypted and /etc/ and / would be encrypted;



You can safely have a separate /boot partition, but keeping a separate /etc is going to create unnecessary troubles.


----------



## ShelLuser (Jan 26, 2017)

This is the layout from my LAN / experimentation server. I'm not claiming that this is the way to do it, but it could give you some ideas and/or impressions:


```
macron:/home/peter $ df -lh
Filesystem                       Size    Used   Avail Capacity  Mounted on
/dev/mirror/root                 992M    201M    711M    22%    /
devfs                            1.0K    1.0K      0B   100%    /dev
/dev/mirror/var.journal          992M    539M    374M    59%    /var
/dev/mirror/tmp                  1.9G    139M    1.6G     8%    /tmp
/dev/mirror/home.journal          69G     22G     41G    35%    /home
/dev/mirror/usr.journal           47G     19G     25G    43%    /usr
/dev/mirror/src                  3.9G    2.0G    1.5G    57%    /usr/src
/dev/mirror/ports.journal        9.7G    2.4G    6.5G    27%    /usr/ports
/dev/mirror/distfiles.journal    3.9G    1.6G    1.9G    46%    /usr/ports/distfiles
procfs                           4.0K    4.0K      0B   100%    /proc
devfs                            1.0K    1.0K      0B   100%    /var/db/named/dev
```
This is all UFS and I also applied both a Raid1 & Journal through use of gmirror(8) and gjournal(8). Both of which are obviously not required but, as mentioned above, this is an experimentaiton machine which is also where this approach comes from (a little bit).

And welcome to FreeBSD!

For what's it worth I moved from Linux to FreeBSD quite a few years ago (mostly because I got highly annoyed with the LTS versions which simply couldn't deliver when it was time to upgrade) and quite literally never looked back.


----------



## ridel (Jan 27, 2017)

my desktop/laptop zfs conf:

```
fs                  mountpoint  exec  setuid
zroot               none        on    on
zroot/CURRENT       legacy      on    on
zroot/CURRENT/var   /var        off   off
zroot/home          /home       off   off
zroot/home/root     /home/root  on    off
zroot/jails         /jails      on    on
zroot/jails/j0      /jails/j0   on    on
zroot/tmp           /tmp        off   off
```
and atime=off compression=lz4 (lz4 good recognizes incompressible data) for all

I switch manually exec=on/off on /tmp. This is needed for `make installworld` and to build some ports (rarely, ffmpeg for example)
Separate jails fs for snapshots.


----------



## fabric (Jan 27, 2017)

Thank you very much all, I shall try in anger this weekend!


----------



## HL1234 (Jan 28, 2017)

One thing, may be you know alright, I had have to understand first, was:
in Linux every configuration files are in /etc. In FreeBSD there is a other philosophy:
all what belongs to the operation system are in /etc and all programs and other software installation you do need goes to /usr/local/etc. All own things, programs goes to /usr/local/.... And /opt I have never used in FreeBSD.

I also like BSD more then Linux because of some accepts. One was the kind of installation option. Ok - for a Desktop Linux system, just use the packages systems, i.e. apt-get, and there GUI for it. But if you have a server system and/or also like to compile some software by yourself, I got a lot of problems because the many dependencies and may be required additional lib's and programs for this software. In FreeBSD it is very easier. There is a port system in /usr/ports. In the subdirectories you can find all software what at most could be needed. Every part or so called "port" has a makefile called Makefile, which is not the same makefile like in c++ sources, but a script with instructions. It has all instructions and examinations the software need to build. make is not the same as make for compiling C++ Source code. It runs the script. The script does everything from download all needed sources until installation the compiled software. With `make config` a screen appears and you can click to activate more option or deactivate some for this software if available. And the best: this script is maintained by a Maintainer and so get keep up to date. This is pretty much easier as in Linux, I think.


----------

