Linux目录结构、Linux分区大小、挂载点和如何分区

简介:

一、关于硬盘种类、物理几何结构及硬盘容量、分区大小计算;

1、硬盘种类、物理几何结构

硬盘的种类主要是SCSI 、IDE 、以及现在流行的SATA等;任何一种硬盘的生产都要一定的标准;随着相应的标准的升级,硬盘生产技术也在升级;比如 SCSI标准已经经历了SCSI-1 、SCSI-2、SCSI-3;其中目前咱们经常在服务器网站看到的 Ultral-160就是基于SCSI-3标准的;IDE 遵循的是ATA标准,而目前流行的SATA,是ATA标准的升级版本;IDE是并口设备,而SATA是串口,SATA的发展目的是替换IDE;硬盘的物理几何结构是由盘、磁盘表面、柱面、扇区组成,一个张硬盘内部是由几张碟片叠加在一起,这样形成一个柱体面;每个碟片都有上下表面;磁头和磁盘表面接触从而能读取数据;

2、硬盘容量及分区大小的算法;

我们通过fdsik -l 可以发现如下的信息:

  
  
  1. Disk /dev/hda: 80.0 GB, 80026361856 bytes  
  2. 255 heads, 63 sectors/track, 9729 cylinders  
  3. Units = cylinders of 16065 * 512 = 8225280 bytes  
  4.    Device Boot      Start         End      Blocks   Id  System  
  5. /dev/hda1   *           1         765     6144831    7  HPFS/NTFS  
  6. /dev/hda2             766        2805    16386300    c  W95 FAT32 (LBA)  
  7. /dev/hda3            2806        9729    55617030    5  Extended  
  8. /dev/hda5            2806        3825     8193118+  83  Linux  
  9. /dev/hda6            3826        5100    10241406   83  Linux  
  10. /dev/hda7            5101        5198      787153+  82  Linux swap / Solaris  
  11. /dev/hda8            5199        6657    11719386   83  Linux  
  12. /dev/hda9            6658        7751     8787523+  83  Linux  
  13. /dev/hda10           7752        9729    15888253+  83  Linux  

其中 heads 是磁盘面;sectors 是扇区;cylinders 是柱面;每个扇区大小是 512byte,也就是0.5K;通过上面的例子,我们发现此硬盘有 255个磁盘面,有63个扇区,有9729个柱面;所以整个硬盘体积换算公式应该是:

磁面个数 x 扇区个数 x 每个扇区的大小512 x 柱面个数 = 硬盘体积 (单位bytes)

所以在本例中磁盘的大小应该计算如下: 255 x 63 x 512 x 9729 = 80023749120 bytes 提示:由于硬盘生产商和操作系统换算不太一样,硬盘厂家以10进位的办法来换算,而操作系统是以2进位制来换算,所以在换算成M或者G 时,不同的算法结果却不一样;所以我们的硬盘有时标出的是80G,在操作系统下看却少几M;上面例子中,硬盘厂家算法 和 操作系统算数比较:硬盘厂家: 80023749120 bytes = 80023749.120 K = 80023.749120 M (向大单位换算,每次除以1000)

操作系统: 80023749120 bytes = 78148192.5 K = 76316.594238281 M (向大单位换算,每次除以1024)我们在查看分区大小的时候,可以用生产厂家提供的算法来简单推算分区的大小;把小数点向前移动六位就是以G表示的大小;比如 hda1 的大小约为 6.144831G ;

二、关于硬盘分区划分标准及合理分区结构;

1、硬盘分区划分标准

硬盘的分区由主分区、扩展分区和逻辑分区组成;所以我们在对硬盘分区时要遵循这个标准;主分区(包括扩展分区)的最大个数是四个,主分区(包含扩展分区)的个数硬盘的主引导记录MBR(Master Boot Recorder)决定的,MBR存放启动管理程序(GRUB,LILO,NTLOARDER等)和分区表记录。其中扩展分区也算一个主分区;扩展分区下可以包含更多的逻辑分区;所以主分区(包括扩展分区)范围是从1-4,逻辑分区是从5开始的;比如下面的例子:

  
  
  1. Device Boot      Start         End      Blocks   Id  System  
  2. /dev/hda1   *           1         765     6144831    7  HPFS/NTFS  
  3. /dev/hda2             766        2805    16386300    c  W95 FAT32 (LBA)  
  4. /dev/hda3            2806        9729    55617030    5  Extended  
  5. /dev/hda5            2806        3825     8193118+  83  Linux  
  6. /dev/hda6            3826        5100    10241406   83  Linux  
  7. /dev/hda7            5101        5198      787153+  82  Linux swap / Solaris  
  8. /dev/hda8            5199        6657    11719386   83  Linux  
  9. /dev/hda9            6658        7751     8787523+  83  Linux  
  10. /dev/hda10           7752        9729    15888253+  83  Linux  

通过这个例子,我们可以看到主分区有3个,从 hda1-hda3 ,扩展分区由 hda5-hda10 ;此硬盘没有主分区4,所以也没有显示主分区hda4 ;但逻辑分区不可能从4开始,因为那是主分区的位置,明白了吧;

2、硬盘设备(包括移动存储设备)在Linux或者其它类Unix系统的表示;

IDE 硬盘在Linux或者其它类Unix系统的一般表示为 hd* ,比如hda、hdb ... ... ,我们可以通过 fdisk -l 来查看;有时您可能只有一个硬盘,在操作系统中看到的却是 hdb ,这与硬盘的跳线有关;另外hdc 大多表示是光驱设备;如果您有两块硬盘,大多是 hda和hdb。在这方面说的太多也无用,还是以fdisk -l 为准为好; SCSI 和SATA 硬盘在Linux通常也是表示为 sd* ,比如 sda 、sdb ... ... 以fdisk -l 为准移动存储设备在linux表示为 sd* ,比如 sda 、sdb ... ... 以fdisk -l 为准

3、合理的规划分区;

关于一个磁盘的分区,一个磁盘应该有四个主分区,其中扩展也算一个主分区;存在以下情况:

1)分区结构之一:四个主分区,没有扩展分区;

[主|分区1] [主分|区2] [主|分区3] [主|分区4]

这种情况,如果您想在一个磁盘上划分五个以上分区,这样是行不通的;

三个主分区 一个扩展分区;

[ 主 | 分区1 ] [ 主 | 分区2 ] [ 主 | 分区3 ] [扩展分区]

|

[逻辑|分区5] [逻辑|分区6] [逻辑|分区7] [逻辑|分区8] ... ...

这种情况行得通,而且分区的自由度比较大;分区也不受约束,能分超过5个分区;这只是举一个例子;

2)最合理的的分区方式;

最合理的分区结构:主分区在前,扩展分区在后,然后在扩展分区中划分逻辑分区;主分区的个数+扩展分区个数要控制在四个之内;比如下面的分区是比较好的;

[主|分区1] [主|分区2] [主|分区3] [扩展分区]

|

[逻辑|分区5] [逻辑|分区6] [逻辑|分区7] [逻辑|分区8] ... ...

[主|分区1] [主|分区2] [扩展分区]

|

[逻辑|分区5] [逻辑|分区6] [逻辑|分区7] [逻辑|分区8] ... ...

[主|分区1] [扩展分区]

|

[逻辑|分区5] [逻辑|分区6] [逻辑|分区7] [逻辑|分区8] ... ...

最不合理的分区结构: 主分区包围扩展分区;比如下面的;

[主|分区1] [主|分区2] [扩展分区] [主|分区4] [空白未分区空间]

|

[逻辑|分区5] [逻辑|分区6] [逻辑|分区7] [逻辑|分区8] ... ...

这样 [主|分区2] 和 [主|分区4] 之间的 [扩展分区] 是有自由度,但[主|分区4]后的[空白未分区空间]怎么办?除非把主分区4完全利用扩展分区后的空间,否则您想在主分区4后再划一个分区是不可能的,划分逻辑分区更不可能; 虽然类似此种办法也符合一个磁盘四个主分区的标准,但这样主分区包围扩展分区的分区方法实在不可取;我们根据这个标题,查看一下我们的例子,是不是符合这个标准呢?

  
  
  1.  Device Boot      Start         End      Blocks   Id  System  
  2. /dev/hda1   *           1         765     6144831    7  HPFS/NTFS  
  3. /dev/hda2             766        2805    16386300    c  W95 FAT32 (LBA)  
  4. /dev/hda3            2806        9729    55617030    5  Extended  
  5. /dev/hda5            2806        3825     8193118+  83  Linux  
  6. /dev/hda6            3826        5100    10241406   83  Linux  
  7. /dev/hda7            5101        5198      787153+  82  Linux swap / Solaris  
  8. /dev/hda8            5199        6657    11719386   83  Linux  
  9. /dev/hda9            6658        7751     8787523+  83  Linux  
  10. /dev/hda10           7752        9729    15888253+  83  Linux  

接下来介绍Linux常用分区挂载点常识以及桌面、服务器分区挂载点的推荐配置,当然这个配置是天缘自己写的,分区大小这个话题是仁者见仁智者见智,欢迎大家一起交流这个话题,比如WEB服务、邮件服务、下载服务等,我们一起交流哪种类型服务下某挂载点应该加大就可以了,至于是否独立就看个人的了。

一、Linux分区挂载点介绍

Linux分区挂载点介绍,推荐容量仅供参考不是绝对,跟各系统用途以及硬盘空间配额等因素实际调整:

分区类型

介绍

备注

/boot

启动分区

一般设置100M-200M,boot目录包含了操作系统的内核和在启动系统过程中所要用到的文件。

/

根分区

所有未指定挂载点的目录都会放到这个挂载点下。

/home

用户目录

一般每个用户100M左右,特殊用途,比如放大文件也可再加上G。分区大小取决于用户多少。对于多用户使用的电脑,建议把/home独立出来,而且还可以很好地控制普通用户权限等,比如对用户或者用户组实行磁盘配额限制、用户权限访问等。

/tmp

临时文件

一般设置1-5G,方便加载ISO镜像文件使用,对于多用户系统或者网络服务器来也有独立挂载的必要。临时文件目录,也是最常出现问题的目录之一。

/usr

文件系统

一般设置要3-15G,大部分的用户安装的软件程序都在这里。就像是Windows目录和Program Files目录。很多Linux家族系统有时还会把/usr/local单独作为挂载点使用。

/var

可变数据目录

包含系统运行时要改变的数据。通常这些数据所在的目录的大小是要经常变化的,系统日志记录也在/var/log下。一般多用户系统或者网络服务器要建立这个分区,设立这个分区,对系统日志的维护很有帮助。一般设置2-3G大小,也可以把硬盘余下空间全部分为var。

/srv

系统服务目录

用来存放service服务启动所需的文件资料目录,不常改变。

/opt

附加应用程序

存放可选的安装文件,个人一般把自己下载的软件资料存在里面,比如Office、QQ等等。

swap

交换分区

一般为内存2倍,最大指定2G即可

   

以下为其它常用的分区挂载点

/bin

二进制可执行目录

存放二进制可执行程序,里面的程序可以直接通过命令行调用,而不需要进入程序所在的文件夹。

/sbin

系统管理员命令存放目录

存放标准系统管理员文件

/dev

存放设备文件

驱动文件等

...

 

不再介绍...

当然上面这么多挂载点,实际上是没有比较每个目录都单独进行挂载,我们只需要根据自己的实际使用需要对个别目录进行挂载,这样系统结构看起来也会精简很多。

一般来讲Linux系统最少的挂载点有两个一个是根挂载点/,另一个是swap,虽然swap也可以采用其他方式类似方式替代,但从使用角度,天缘认为没这个必要,把swap单独设置一个挂载点似乎对Linux系统的标准性更好支持。

二、Linux系统桌面、服务器分区推荐方案

下面以80G独立硬盘安装Ubuntu为例,列一下简单的分区方案。

1、普通桌面用户推荐分区方案(示例:80G桌面用户):  

2、服务器用户推荐分区方案一(示例:80GWEB服务器用户,用户程序与系统程序合用usr):  

2、服务器用户推荐分区方案二(示例:80GWEB服务器用户,用户程序与系统程序分用opt和usr):  

分区方案关键点:

——大数据库一般要加大/usr挂载点

——多用户、下载类、多存储文件等要加大/home挂载点

——文件小,用户多要注意/tmp和/var挂载点大小






本文作者:佚名
来源:51CTO
目录
打赏
0
0
0
0
26199
分享
相关文章
在Linux中,⼀个EXT3的文件分区,当使用touch test.file命令创建⼀个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况?
在Linux中,⼀个EXT3的文件分区,当使用touch test.file命令创建⼀个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况?
Ubuntu Linux目录结构
理解Ubuntu Linux的目录结构对系统管理、维护和故障排除至关重要。每个目录都有其特定的用途和存放内容,通过了解这些目录,可以更高效地管理系统文件,确保系统的稳定运行。希望本文对你深入理解Ubuntu的目录结构有所帮助。
181 1
|
7月前
|
linux开机挂载镜像
【10月更文挑战第1天】在 Linux 系统中,开机挂载镜像通常涉及几个关键步骤,包括创建挂载点、编辑配置文件以及重新加载配置
247 0
|
7月前
|
Linux 系统目录结构
Linux 系统目录结构
53 2
|
9月前
|
内核实验(四):Qemu调试Linux内核,实现NFS挂载
本文介绍了在Qemu虚拟机中配置NFS挂载的过程,包括服务端的NFS服务器安装、配置和启动,客户端的DHCP脚本添加和开机脚本修改,以及在Qemu中挂载NFS、测试连通性和解决挂载失败的方法。
514 0
内核实验(四):Qemu调试Linux内核,实现NFS挂载
在Linux中,目录结构是怎样的?
在Linux中,目录结构是怎样的?
Linux0.11 根文件系统挂载(四)
Linux0.11 根文件系统挂载(四)
70 0
【应用服务 App Service】App Service For Linux 中如何挂载一个共享文件夹呢? Mount Azure Storage Account File Share
【应用服务 App Service】App Service For Linux 中如何挂载一个共享文件夹呢? Mount Azure Storage Account File Share
【Azure 存储服务】如何把开启NFS 3.0协议的Azure Blob挂载在Linux VM中呢?(NFS: Network File System 网络文件系统)
【Azure 存储服务】如何把开启NFS 3.0协议的Azure Blob挂载在Linux VM中呢?(NFS: Network File System 网络文件系统)
111 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等