Reproduced from: http://blog.csdn.net/intlgj/article/details/8575192
Introduction to Linux File system architecture
The Linux operating system has some fixed directories. The directory structure of various Linux distributions is not exactly the same, but there is no big difference. Knowing the role of these catalogs is helpful not only for your disk partitioning program, but also for your day-to-day maintenance work to be easier.
The main directory of the Ubuntu file system is shown in table 2.2.
Table 2.2 The main directory of the Ubuntu Linux file system
Directory |
English full Name |
Use |
/ |
/ |
The starting point for the entire directory structure, all other files and directories are underneath it |
/bin |
Binaries |
Used to store the most commonly used binary commands |
/boot |
Boot |
Contains primary files for booting Linux, such as grub and kernel files |
/dev |
Devices |
All devices are in this directory, including hard drives and monitors |
/etc |
etc |
All of the system's configuration files are placed underneath it |
/home |
Home |
Store the Home directory ($HOME) of each user and its files and configuration |
/lib |
Libraries |
System library files, sort of like Windows program files |
/lost+found |
Lost+found |
Files that are missing when a system exception is stored (such as sudden downtime) to facilitate recovery |
/media |
Media |
Load various media, such as CD-ROM, floppy disk, etc. |
/mnt |
Mount |
Loading various file systems |
/opt |
Optionally |
"Optional" program for storing the installation |
/proc |
Processes |
Contains information such as processes, which are memory mappings, not real directories |
/root |
Root |
The directory is the root directory of the root user |
/sbin |
System-only binaries |
Store system-specific binary commands |
/sys |
System |
Storing System Information |
/tmp |
Temporary files |
Storing temporary files |
/usr |
User |
Store ordinary users ' applications, library files and documents, etc. |
/var |
Variable files |
Store files that change frequently in time, size, and content |
The use of the various directories in table 2.2 should be well understood. As long as you understand the purpose of each directory, you can not make a big mistake in the hard disk partition. partitions and mount points
Usually, when we discuss Linux "partitioning", we often confuse the concept of "mount point" and "Partition". In fact, as long as we can understand it, do not have to pick words. However, as a Linux system administrator, we should still understand the differences between the two concepts.
What we normally call "/var zoning" actually says "/var", and "/var" is just a mount point. So what is "zoning"?
In Linux, "zoning" is a single device, placed in the/dev directory. If the IDE hard disk, their names should be/dev/hda1,/dev/hda2, and so on, if SATA or SCSI hard drives, their names are/dev/sda1,/dev/sda2 and so on. presentation method for hard disk partitions
So what is HDA and SDA? They are shorthand for hard Driver number A and SCSI Driver number A, that is, HD and SD point to the interface type of the hard disk, followed by an ordinal, which represents the first few hard drives. The 1th IDE hard disk is HDA, the 2nd IDE hard disk is HDB, and so on, and the 1th SCSI hard drive is represented by SDA, then the 2nd block SCSI is represented by SDB, and so on, then SDC, SDD, and so on.
In fact, SD represents more than just SCSI devices. In addition to IDE devices, storage devices for SCSI, SATA, USB, Firewire, and so on are represented in SD.
As you already know,/DEV/SDB2 refers to the 2nd partition of the 2nd SCSI hard drive, while/dev/hda5 refers to the 5th partition of the 1th IDE hard disk.
Table 2.3 Linux Hard Disk Partitioning presentation method
|
IDE interface Hard Disk |
SCSI Interface Hard Drive |
Representation of the entire hard disk |
/dev/hda /dev/hdb /dev/hdc ...... |
/dev/sda /dev/sdb /dev/sdc ...... |
Presentation method for hard disk partitions |
/DEV/HDA1,/dev/hda2 ... /DEV/HDB1,/DEV/HDB2 ... /DEV/HDC1,/dev/hdc2 ... |
/DEV/SDA1,/dev/sda2 ... /DEV/SDB1,/DEV/SDB2 ... /DEV/SDC1,/dev/sdc2 ... |
In the older Linux kernel, all IDE-related driver code is not only too complex, but also a lot of problems. As a result, Linux kernel developers start with kernel 2.6.19, providing libata based PATA drivers that enable IDE devices to be used like SCSI devices.
So, what we're using in Ubuntu, whether you're using an IDE hard disk or a SATA hard drive, you see devices that are/DEV/SDX instead of/DEV/HDX. From then on,/DEV/HDX ceased to exist.
It should be noted that in Linux, there is another way to represent a hard disk partition, which is used in grub. Grub originated in Grand Unified Bootloader, is a general-purpose computer bootstrapper that supports multiple booting of multiple operating systems. In grub, whatever the interface's storage device, it is represented by HDX, where x is the number, starting at 0. For example, the 1th partition of the 1th hard disk is represented as (hd0,0). Linux Zoning Guide
With any Linux system, there must be at least two partitions: one is the root partition, the "/" is the other, and the other is the swap (swap) partition. So, the simplest partitioning method is to create a swap partition, where all the remaining space is allocated to the root partition "/".
The size of the swap partition should be as large as memory, with a maximum of twice times the size of memory.
The swap partition is like a Windows virtual memory Exchange file Pagefile.sys, which the system uses as virtual memory when needed. For example, when running a large program, in memory optimization, or when the system is dormant. When the system sleeps, writes the entire memory data to the swap partition, which is why your swap partition should be at least as large as memory.
Also, it's a good idea to create/boot on a single partition. Because the files in this directory are more important, the system may not start if the partition is corrupted. If you create a separate partition, other partitions will not damage it, thereby increasing the stability of the system. Under normal circumstances, the/boot partition does not need to be too large, 128MB is enough.
As for the other partitions, it depends on your actual needs.
For example, if your server will have a lot of users log in to put files, then/home best separate partition, and give enough space.
For example, if your server is to put the database, the database may become very large, then/var best separate partition, and give enough space. Because the database is placed under/var by default.
The same is true for Web servers, because Web pages are placed under/var by default. So if you think someone will upload a lot of files, it's best to separate the/var and give it plenty of space.
hint : As a server, Hiweed also recommends/TMP as a separate partition. Because most applications will write temporary files to this directory, although the directory will be emptied every time Ubuntu restarts, no one will be able to reboot the server at all times. Linux Partition Case
Hiweed is doing a system architecture for a friend's company, a development server inside the company, and a Web server and database server in the engine room.
The development server is for the company developers who want to store a large number of files in the home directory. Normally, when their workstation is started, it automatically mounts their own "home directory" on the development server to the local. Therefore, this server's/home is used most, and needs the relatively big space.
In addition, because it is the development server, we also need a version management source code warehouse, this warehouse is placed under the/var. Although the file size of the source code is not particularly large, it does not require extra space, but the code is very important, so we also need to protect them like/boot.
Therefore, for this development server, our partitioning scheme (server hard disk has a total of gb[10 GB], memory is 1 gb[512 MB), see table 2.4.
Table 2.4 Development Server partition scheme
File system |
Mount point |
Size |
Partition format |
/DEV/SDA1 (Main) |
/boot |
254 mb[254] |
Ext2 |
/dev/sda2 (Main) |
/ |
Ten gb[2] |
Ext4 |
/dev/sda5 |
No |
2 gb[768] |
Swap |
/dev/sda6 |
/var |
20.3 Gb[2] |
Ext4 |
/dev/sda7 |
/home |
46.8 gb[4.3] |
Ext4 |
/dev/sda8 |
/tmp |
2 gb[768] |
Ext4 |
The above zoning plan is only a reference, the actual zoning plan should be based on its own actual situation.
Our zoning scheme (2T)
File system |
Mount point |
Size |
Partition format |
Sda2 |
/ |
500G |
Ext4 |
Sda3 |
/boot |
2G |
Ext4 |
Sda4 |
/home |
1.2T |
Ext4 |
Sda5 |
|
20G |
Swap |
Sda6 |
/tmp |
50G |
Ext4 |
Sda7 |
/var |
200G |
Ext4 |
/etc/fstab Introduction
All of the static file systems in the Linux system are described in the/etc/fstab file. Fstab is a shorthand for the file system table, which is the "FileSystem tables." When the system starts, it is through the information in the fstab to mount each partition. The Fstab file System entry has 6 fields, as shown in Table 2.5.
Table 2.5 fstab Format
Equipment |
Mount point |
Format |
Mount Options |
Whether to back up |
Check Order |
/dev/sdb2 |
/home |
Ext4 |
Defaults |
0 |
2 |
Let's take a look at what each field means, as shown in table 2.6.
Table 2.6 fstab each field meaning
Word paragraph |
Stroke ; |
Device |
Storage device ( partition) name or uuid |
Mount point |
The destination folder name to be mounted. When mounted, the device can be accessed from the folder |
Format |
File system format, such as: Ext4 |
. mount options | The option to mount the
. The same options as the mount command, please refer to the man Mount |
Whether backup |
Enable/ disable dump Back up |