(very OT) Ideal partition schemes (history of partitioning)

Doug Hardie bc979 at lafn.org
Sat Aug 29 05:19:54 UTC 2020


> On 28 August 2020, at 20:08, Aryeh Friedman <aryeh.friedman at gmail.com> wrote:
> 
> When installing another OS then FreeBSD (won't state which one to avoid
> flame wars) I noticed it's default partitioning scheme breaks the main (and
> only) drive on the system down into 50 GB chunks (in my case / and /home)
> by default (I over road to FreeBSD's default of one big partition for the
> whole drive [minus swap]).
> 
> I was wondering what people think of different generalized partitioning
> schemes? (there is no right answer here but I might question your comments)
> 
> Also why are partitioned need at all? (both currently and historically)

I may not be the best to address this, but I have been running systems since the late 60's.  In the (not so good old days) the disk drives were unreliable, the drivers were unreliable, and software was unreliable.  Disks had no partitions.  So if any of the disk control tables got corrupted, generally you had a worthless drive.  It had to be completely restored.  I went so far as to dump a good disk setup to punched cards (lots of them) so that when corruption occurred, I could easily, but not quickly, restore the disk to a working state.

As disks got bigger, someone came up with the partition concept.  You would put the stuff that the system needs to run in one "read only" partition.  In theory, it would not get corrupted by problems with other partitions.  Unix used the / partition to hold most of that.  /var was generally a separate partition because its contents were always changing.  Likewise with /tmp.  User partitions were often setup so that a rogue user would not corrupt other users.  Often, if you had the money, some of those partitions would be put on different drives.

The problem with this approach showed up as system software increased in size.  For example, the first FBSD systems I use were setup for 3.5 and 3.7.  The / partition was doubled what the best practice said was needed.  Var and tmp were in separate partitions as was user data.  Somewhere around FBSD 5 or 6, I was no longer able to upgrade the kernel.  The kernel was larger than the / partition.  These were production system with no acceptable down time.  I had to purchase four new systems and repartition the drives with much larger partitions for /, var, and tmp.  Then everything had to be rebuilt, and the systems swapped.  There was still a lot of down time.

Then OSX arrived and it used only one partition for everything.  At first I thought that was going to be a disaster, but it was not.  UFS was by that time quite stable.  I have never encountered an issue with it, although others have.  Not long after that, I encountered the same issue with FBSD.  The / partition was now smaller than the most recent kernel.  I had to delete all the symbol files from the kernel to be able to update a system.  As a result, I bought more drives, and partitioned them as a single partition which is now what I run on all my systems.  Often I will put archival information on a second drive, or a second system.  Interestingly enough, OSX has recently gone to multiple partitions.  In this situation Apple is trying to prevent anyone from modifying their code.

I do recall one situation, probably in the FBSD 4 era where syslog went berserk and completely wrote over the entire var partition.

As a side note, a friend of mine in college worked at IBM in San Jose on OS360.  His job was to take all of the example code in the assembler reference manual, punch them up and run them to ensure that they actually worked.  There was only one 360 working so everything ran on it.  His jobs were the lowest priority, so he had to wait days sometimes to get them run.  Once, he was in the computer room watching them run and every disk was actively writing at max speed.  Since none of code wrote anything anywhere, he was a bit concerned.  So was the operator and he quickly terminated the jobs.  But the damage was done.  All of the single copy of the OS 360 source had been overwritten.  As I recall, both he and the rest of the OS team were terminated.  OS 360 was already years late at that point.  I don't recall OS 360 supporting disk partitioning.

-- Doug



More information about the freebsd-questions mailing list