[FAQ] Linux File System Overview


Recommended Posts

  • 4 weeks later...
  • 1 month later...

Very interesting read, I've read the whole of Page 1 (slowly getting through Page 2). But I've been looking for this sort of guide to help me learn more about the folder...I mean, Directory Structure. I seriously did not know that a 'Folder' and a 'Directory' are two different things, but have the same result.

Directory = Physical (Think Command Line)

Folder = Graphical Representation of a Directory

Ext3 = /boot

Reiser3/FS = /root

What about a SWAP partition? Since we're on file structures, I'm confused about the following:

Why does Linux need 3 partitions to install Fedora Core or Gentoo when Windows only needs 1 partition?

/boot (+32M)

/swap (+512M)

/root (remaining space)

My incorrect theory (so please correct me):

- The kernel is stored in /boot as a compressed 2-4MB file.

- The reason it's stored here is because when you turn your system on, the MBR detects GRUB and loads up the kernel here as opposed to /root for file protection???

- /boot decompresses into /swap for your session (for some reason).

- /root all your files, system files...everything (except for the kernel).

^^ You can see why I'm confused.

Why does Linux need 3 partitions to install Fedora Core or Gentoo when Windows only needs 1 partition?

/boot (+32M)

/swap (+512M)

/root (remaining space)

585662167[/snapback]

Linux can install just fine on a single partition, if you'd prefer it that way. Here's a few reasons why most distributions have traditionally used 3 or sometimes even more partitions:

- because it facilitates easier backups and reinstalls of the OS

- with a seperate /boot partition, your kernel can be placed in there and then the partition not mounted automatically at boot so that your vital boot files aren't available to be messed around with unless you specifically mount them

- using a swap partition instead of a swap file (linux can happily handle either) again prevents silly errors like people deleting the file by mistake and so not getting any swap space available at next boot

- using multiple partitions can just make managing your system easier - for example many servers use a seperate partition for /var which is traditionally where the http documentroot is on an apache webserver and also where the mail spooler normally resides on mailservers

- many people keep their /home mounted on a seperate partition which they mount from multiple operating systems - back when I used redhat 9 alongside gentoo, I had a seperate /home dir which got mounted from both distros, so I kept the same home folder all the time

Hope that gives you some idea of why multiple partitions are normally used.

Thanks rezza, I think I understand it all, and according to your notes hopefully this would be a possible partition table (3 HDDs):

hda1 /boot (kernel storage)

hda2 /swap (still confused as to what gets stored here)

hda3 /root (operating system)

hdb1 /home (personal files)

hdb2 /var/httpd/website_pages (client's web sites)

hdc1 /var/mysql_db (mysql database server)

For a mid-size business it would be better to have this (3 PC's):

PC1 - hda1 /boot (kernel storage)

PC1 - hda2 /swap (still confused as to what gets stored here)

PC1 - hda3 /root (operating system)

PC1 - hdb1 /home (personal files)

PC2 - hda1 /var/httpd/website_pages (client's web sites)

PC3 - hda1 /var/mysql_db (mysql database server)

^ I decided to make more then three partitions and reinstall Fedora Core 3 to see what the differences were.

I have two 20GB hard drives and they are partitioned as followed:

hda1 /dev/hda1 /boot reiserfs 102MB

hda1 /dev/mapper/VolGroup00-LogVol01 / reiserfs 5.2GB

hda1 /dev/mapper/VolGroup00-LogVol03 /tmp reiserfs 5.2GB

hda1 /dev/mapper/VolGroup00-LogVol07 /opt reiserfs 5.0GB

hda1 /swap swap 1GB

hda1 none /dev/shm tmpfs 251MB

hda2 /dev/mapper/VolGroup01-LogVol04 /usr reiserfs 5.0GB

hda2 /dev/mapper/VolGroup01-LogVol06 /usr/local reiserfs 5.0GB

hda2 /dev/mapper/VolGroup01-LogVol02 /home reiserfs 5.0GB

hda2 /dev/mapper/VolGroup01-LogVol05 /var reiserfs 5.0GB

So far I haven't seen any benefit in splitting it up like this, but I don't plan on changing it anytime soon though.

hda2 /swap (still confused as to what gets stored here)

Swap= virtual memroy= page file in windows.

^ I decided to make more then three partitions and reinstall Fedora Core 3 to see what the differences were.

I have two 20GB hard drives and they are partitioned as followed:

hda1 /dev/hda1 /boot reiserfs 102MB

hda1 /dev/mapper/VolGroup00-LogVol01 / reiserfs 5.2GB

hda1 /dev/mapper/VolGroup00-LogVol03 /tmp reiserfs 5.2GB

hda1 /dev/mapper/VolGroup00-LogVol07 /opt reiserfs 5.0GB

hda1 /swap swap 1GB

hda1 none /dev/shm tmpfs 251MB

hda2 /dev/mapper/VolGroup01-LogVol04 /usr reiserfs 5.0GB

hda2 /dev/mapper/VolGroup01-LogVol06 /usr/local reiserfs 5.0GB

hda2 /dev/mapper/VolGroup01-LogVol02 /home reiserfs 5.0GB

hda2 /dev/mapper/VolGroup01-LogVol05 /var reiserfs 5.0GB

So far I haven't seen any benefit in splitting it up like this, but I don't plan on changing it anytime soon though.

585667869[/snapback]

Why all reiserfs? Ext3 seems to have better compatibility on Ubuntu.

  • 6 months later...

I have a doubt!

In windows there is a folder named "Program Files" In which by defauly all the files go into.. :sleep:

In linux for example, if I get a .bzip or .tar file I usually extract it to /opt folder and do a ./configure, make, make install. Actually In which folder in Linux is it **RECOMMENDED** to extract and Install? :blink:

---------------------------------------------------------------

Naveen Chandran

http:\\naveenchandran.blogspot.com

^^^ Only some of the stuff goes into "Program Files". There are .dlls and registry entries and so forth.

But *nix is set up for multi-users, so it is set up a bit differently. There is /sbin/ for sytem binaries (executables), /bin/ for all-user binaries that are part of the installation. Individual users can put their personal executables in the bin/ directory in their home, and "extra" apps that you (as sys admin) want all users to have access to are usually thrown in /usr/bin/ or /usr/local/bin/

I guess for a single-user machine, "Program Files" is fine. For a system that was designed for multi-user, though, it doesn't cut it.

  • 2 months later...

I have tryed linux, liked it, and headed back to windows. Why ? 'cause i got scared of the thought of learning a hole new file system! after this, i really have my head set on linux, wich pops 2 questions on my mind (and yes its only 2 questions :p)

Wich distro is more suitable to handle media, games, and all around fun? (Yes my computer is my favorite toy !)

How can i have complex games (like counter strike) on my linex (probably using wine, if you have a guide to this prog, please share :))

Thanks for the attention, and thank you markjensen and everione else, for showing that linux is not a 2 headed monster !

Which distro? All are about the same, and anything lacking due to potential patent issues can easily be added with a command or two. Same for games (though, it may be easier to keep Windows around for your easy gaming needs).

  • 1 year later...
Recommended Link: (suggested to be added to first post)

Filesystem Hierarchy Standard:

http://www.pathname.com/fhs/

This is the basis of the layout of the *nix file system.

Good reference from my quick overview. (Y)

Added to first post. Thanks!

  • 3 months later...

A graphical example layout would probably be helpful, I'll make one when I understand it myself (which I more or less do, except for the no top-level hard drive thing. What is the utmost highest level?)

and, ****, I'd hoped I'd be able to get rid of the annoying 'all users' 'username' program folders nonsense. What if you're the only one using your computer, all the time, and are kind of a neatfreak to boot? Whatevs

Thanks for info.

A graphical example layout would probably be helpful, I'll make one when I understand it myself (which I more or less do, except for the no top-level hard drive thing. What is the utmost highest level?)

and, ****, I'd hoped I'd be able to get rid of the annoying 'all users' 'username' program folders nonsense. What if you're the only one using your computer, all the time, and are kind of a neatfreak to boot? Whatevs

Thanks for info.

Graphics would be nice! :yes:

As far as top level, that is the root, or "/". You can attach (mount) hard drive, networked drives and anything else to locations in the regular filesystem.

And, *nix OSes have been multi-user for a very long time, so the foundation to separate users is a fundamental part of the OS design. You can, however, run as root if you like, and symlink your bin directories to one common spot, if you like. However, if you ever do want to set up (for testing, or what-not) an additional user account, you kinda just screwed yourself and made things a bit more complex by doing by it that way.

EDIT: A few filesystem graphics for you to get ideas from, for starters can be found using Google Image.

Well, I don't know how things are the Linux way, but if you're intending to use multiple disks, consider using a volume manager. LVM or what it is in Linux. It treats all added disks as one large logical volume. I think that's preferable over mounting different drives in a specific locations and play the remaining disk space game for each of those mounts. Instead, set up your system as you want, and when you run out of space, put disk into the computer, add it to the LVM and grow the filesystem running out of space.

Myself I've been spoiled by ZFS and don't want to miss it (Solaris user). I guess under Linux, putting at least your home folders on ZFS/FUSE may be an option if it becomes stable in future, since those will be the ones growing out of proportions while the rest staying more or less stable.

Here, it currently looks like this:

root@bigmclargehuge:~ > zpool status
  pool: tank
 state: ONLINE
 scrub: none requested
config:

		NAME		STATE	 READ WRITE CKSUM
		tank		ONLINE	   0	 0	 0
		  c3d0s7	ONLINE	   0	 0	 0
		  c0d0s1	ONLINE	   0	 0	 0

errors: No known data errors
root@bigmclargehuge:~ > zpool list
NAME					SIZE	USED   AVAIL	CAP  HEALTH	 ALTROOT
tank					293G   68.9G	224G	23%  ONLINE	 -
root@bigmclargehuge:~ > zfs list  
NAME						 USED  AVAIL  REFER  MOUNTPOINT
tank						68.9G   219G  8.03M  /tank
tank/home				   65.5G   219G	21K  /export/home
tank/home/root			   336K   219G   336K  /export/home/root
tank/home/servo			 65.5G   219G  1003M  /export/home/servo
tank/home/servo/Documents   1.12G   219G  1.12G  /export/home/servo/Documents
tank/home/servo/LargeFiles  11.3G   219G  11.3G  /export/home/servo/LargeFiles
tank/home/servo/Music	   2.74G   219G  2.74G  /export/home/servo/Music
tank/home/servo/Pictures	1.10G   219G  1.10G  /export/home/servo/Pictures
tank/home/servo/Video	   48.3G   219G  48.3G  /export/home/servo/Video
tank/opt					 448M   219G   448M  legacy
tank/usr					2.87G   219G  2.87G  legacy
tank/var					82.0M   219G  82.0M  legacy
root@bigmclargehuge:~ >
  • 1 month later...
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.