linux 磁盘分区详解

在学习 Linux 的过程中,安装 Linux 是每一个初学者的第一个门槛。在这个过程中间,最大的困惑莫过于给硬盘进展分区。虽然,现在各种发行版本的 Linux 已经供给了友好的图形交互界面,但是很多的人还是感觉无从下手。这其中的缘由主要是不清楚 Linux 的分区规定,以及它下面最有效的分区工具― Fdisk 的使用方法。

首先我们要对硬盘分区的根本概念进展一些初步的了解,硬盘的分区主要分为根本分区

〔primary partion〕和扩大分区(extension partion)两种,根本分区和扩大分区的数目之和不能大于四个。且根本分区可以马上被使用但不能再分区。扩大分区必需再进展分区后才能使用, 也就是说它必需还要进展二次分区。那么由扩大分区再分下去的是什么呢?它就是规律分区

〔logical partion〕,况且规律分区没有数量上限制。

对习惯于使用 dos 或windows 的用户来说,有几个分区就有几个驱动器,并且每个分区都会获得一个字母标识符,然后就可以选用这个字母来指定在这个分区上的文件和名目,它们的文件构造都是独立的,格外好理解。但对这些初上手 red hat linux 的用户,可就有点恼人了。由于对 red hat linux 用户来说无论有几个分区,分给哪一名目使用,它归根结底就只有一个根名目,一个独立且唯一的文件构造。red hat linux 中每个分区都是用来组成整个文件系统的一局部,由于它承受了一种叫"载入"的处理方法,它的整个文件系统中包含了一整套的文件和名目,且将一个分区和一个名目联系起来。这时要载入的一个分区将使它的存储空间在 一个名目下获得。

对 windows 用户来说,操作系统必需装在同一分区里,它是商业软件! 所以你没有选择的余地!对 red hat linux 来说,你有了较大的选择余地,你可以把系统文件分几个区来装〔必需要说明载入点〕,也可以就装在同一个分区中〔载入点是"/"〕。

下面从这两个方面入手,来讲解这个困扰大家的问题。

Linux 的分区规定

  1. 设备治理

在 Linux 中,每一个硬件设备都映射到一个系统的文件,对于硬盘、光驱等 IDE 或 SCSI 设备也不例外。Linux 把各种 IDE 设备安排了一个由 hd 前缀组成的文件;而对于各种SCSI 设备,则安排了一个由 sd 前缀组成的文件。

对于 ide 硬盘,驱动器标识符为"hdx~",其中"hd"说明分区所在设备的类型,这里是指 ide 硬盘了。"x"为盘号〔a 为根本盘,b 为根本附属盘,c 为关心主盘,d 为关心附属盘〕,"~"代表分区,前四个分区用数字 1 到 4 表示,它们是主分区或扩展分区,从 5 开头就是规律分区。例,hda3 表示为第一个 ide 硬盘上的第三个主分区或扩展分区,hdb2 表示为其次个 ide 硬盘上的其次个主分区或扩展分区。对于 scsi 硬盘则标识为"sdx~",scsi 硬盘是用"sd"来表示分区所在设备的类型的,其余则和 ide 硬盘的表示方法一样,不在多说。

例如,第一个 IDE 设备,Linux 就定义为 hda;其次个 IDE 设备就定义为 hdb;下面以
此类推。而 SCSI 设备就应当是 sda、sdb、sdc 等。

  1. 分区数量

要进展分区就必需针对每一个硬件设备进展操作,这就有可能是一块 IDE 硬盘或是一块SCSI 硬盘。对于每一个硬盘〔IDE 或 SCSI〕设备,Linux 安排了一个 1 到 16 的序列号码,这就代表了这块硬盘上面的分区号码。

例如,第一个 IDE 硬盘的第一个分区,在 Linux 下面映射的就是 hda1,其次个分区就称作是 hda2。对于 SCSI 硬盘则是 sda1、sdb1 等。

  1. 各分区的作用

在 Linux 中规定,每一个硬盘设备最多能有 4 个主分区〔其中包含扩展分区〕构成,任何一个扩展分区都要占用一个主分区号码,也就是在一个硬盘中,主分区和扩展分区一共最多是 4 个。

对于早期的 DOS 和 Windows〔Windows 2023 以前的版本〕,系统只成认一个主分区, 可以通过在扩展分区上增加规律盘符〔规律分区〕的方法,进一步地细化分区。

主分区的作用就是计算机用来进展启动操作系统的,因此每一个操作系统的启动,或者称作是引导程序,都应当存放在主分区上。

这就是主分区和扩展分区及规律分区的最大区分。

我们在指定安装引导 Linux 的 bootloader 的时候,都要指定在主分区上,就是最好的例证。

Linux 规定了主分区〔或者扩展分区〕占用 1 至 16 号码中的前 4 个号码。以第一个IDE 硬盘为例说明,主分区〔或者扩展分区〕占用了 hda1、hda2、hda3、hda4,而规律分区占用了 hda5 到 hda16 等 12 个号码。

因此,Linux 下面每一个硬盘总共最多有 16 个分区。

对于规律分区,Linux 规定它们必需建立在扩展分区上〔在 DOS 和 Windows 系统上也是如此规定〕,而不是主分区上。

因此,我们可以看到扩展分区能够供给更加灵敏的分区模式,但不能用来作为 操作系统 的引导。 除去上面这些各种分区的差异,我们就可以简洁地把它们一视同仁了。

  1. 分区指标

对于每一个 Linux 分区来讲,分区的大小和分区的类型是最主要的指标。容量的大小读者很简洁理解,但是分区的类型就不是那么简洁承受了。分区的类型规定了这个分区上面的文件系统的格式。

Linux 支持多种的文件系统格式,其中包含了我们生疏的 FAT32、FAT16、NTFS、HP-UX, 以及各种 Linux 特有的 Linux Native 和 Linux Swap 分区类型。

在 Linux 系统中,可以通过分区类型号码来区分这些不同类型的分区。各种类型号码在介绍 Fdisk 的使用方式的时候将会介绍。

5 常用分区

/boot 分区,它包含了操作系统的内核和在启动系统过程中所要用到的文件,建这个 分区是
有必要的,由于目前大多数的 pc 机要受到 bios 的限制,况且假设有了一个单独的/boot 启动分区,即使主要 的根分区出 现了问题, 计算机照旧能 够 启动。这个分区的 大小约在50mb---100mb 之间。但是假设想用 lilo启动 red hat linux 系统的话,含有/boot 的分区必需完全在柱面 1023 以下。又由于 8gb 后的数据lilo 不能读取,所以 red hat linux 要安装在 8gb 的区域以内。

/usr 分区,是red hat linux 系统存放软件的地方,如有可能应将最大空间分给它。

/home 分区,是用户的 home 名目所在地,这个分区的大小取决于有多少用户。如 果是多用户共同使用一台电脑的话,这个分区是完全有必要的,况且根用户也可以很好地把握一般用户使用计算机,如对用户或者用户组实行硬盘限量使用,限制普 通用户访问哪些文件等。其实单用户也有建立这个分区的必要,由于没这个分区的话,那么你只能以根用户的身份登陆系统,这样做是危急的,由于根用户对系统有 确定的使用权,可一旦你对系统进展了误操作,麻烦也就来了。

/var/log 分区,是系统日志记录分区,假设设立了这一单独的分区,这样即使系统的日志文件消灭了问题,它们也不会影响到操作系统的主分区。

/tmp 分区,用来存放临时文件。这对于多用户系统或者网络效劳器来说是有必要的。 这样即使程序运行时生成大量的临时文件,或者用户对系统进展了错误的操作,文件系统的其它局部照旧是安全的。由于文件系统的这一局部照旧还承受着读写操 作,所以它通常会比其它的局部更快地发生问题。

/bin 分区,存放标准系统有用程序。

/dev 分区,存放设备文件。

/opt 分区,存放可选的安装的软件。

/sbin 分区,存放标准系统治理文件。

上面介绍了几个常用的分区,一般来说我们需要一个 swap 分区,一个/boot 分区,一个/usr 分区,一个/home 分区,一个/var/log 分区。固然这没有什么规定,完全是依照你个人来定的。但记住至少要有两个分区,一个 swap 分区,一个/分区。

Fdisk 使用详解

下面通过介绍 Fdisk 的使用方法,来稳固上面所学到的各种关于 Linux 分区的学问。

Fdisk 是各种 Linux 发行版本中最常用的分区工具,是被定义为 Expert 级别的分区工具,它让初学者有点望而却步。

  1. Fdisk 参数说明

运行 Fdisk 的时候,首先映入眼帘的是欢送界面,用户通过在这个界面中输入命令参数来操作 Fdisk。用户通过提示键入 "m",可以显示 Fdisk 命令各个参数的说明。 读者可
以看到 Fdisk 有很多参数,可是常常使用的就是几个,假设读者娴熟把握这几个参数就可以流畅地运用 Fdisk,对 Linux 的硬盘进展分区。我们先简洁介绍各个参数的意义,然后具体说明几个重点参数。

用户在 Linux 中进展分区的时候,最常用的参数分别是 d、l、m、n、p、q、t、w 等。

  1. 用 Fdisk 进展分区

在 Linux 分区过程,一般是先通过 p 参数来显示出硬盘分区表信息,然后依据信息确定将来的分区。假设想完全转变硬盘的分区格式,就可以通过 d 参数一个个删除存在的硬盘分区。

例如 d1,d2。 删除完毕,就可以通过 n 参数来增加的分区。当按下 "n" 后,我们就可以看到增的分区。这里要选择建的分区类型,是主分区还是扩展分区;然后选择 p 或是 e。它们的区分在上文中已经说明。然后就是设置分区的大小。需要提示留意的是,假设硬盘上有扩展分区,就只能增加规律分区,不能增加扩展分区了,在增加分区的时候,其类 型都是默认的 Linux Native,假设需要把其中的某些分区转变为其它类型,例如 Linux Swap 或 FAT32 等,可以通过命令 t 来转变, 当按下 "t" 转变分区类型的时候,系统会提示要转变哪个分区,并且转变为什么类型〔假设想知道系统所支持的分区类型,键入 l〕。Linux所支持的分区类型号码和其对应的分区类型,可以参考表 2〔这些信息可以用 l 命令得到〕。转变完了分区类型,就可以按下 "w",保存并且退出。假设不想保存,那么可以选择 "q" 直接退出。

fdisk 是一款强大的磁盘操作工具,来自util-linux 软件包,我们在这里只说他如何查看磁盘分区表及分区构造;参数 -l ,通过-l 参数,能获得机器中全部磁盘的个数,也能列出全部磁盘分区状况;

[root@localhost beinan]# fdisk -l

Disk /dev/hda: 80.0 GB, 80026361856 bytes

255 heads, 63 sectors/track, 9729 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

|-----------|------|-------|------|----------|----|----------------------|
| Device | Boot | Start | End | Blocks | Id System ||
| /dev/hda1 | * | 1 | 765 | 6144831 | 7 HPFS/NTFS ||
| /dev/hda2 | | 766 | 2805 | 16386300 | c W95 FAT32 (LBA) ||
| /dev/hda3 | 2806 || 7751 | 39728745 | 5 | Extended |
| /dev/hda5 | 2806 || 3825 | 8193118+ | 83 | Linux |
| /dev/hda6 | 3826 || 5100 | 10241406 | 83 | Linux |
| /dev/hda7 | 5101 || 5198 | 787153+ | 82 | Linux swap / Solaris |
| /dev/hda8 | 5199 || 6657 | 11719386 | 83 | Linux |
| /dev/hda9 | 6658 || 7751 | 8787523+ | 83 | Linux |

在上面 Blocks 中,表示的是分区的大小,Blocks 的单位是byte ,我们可以换算成M,比方第一个分区/dev/hda1 的大小假设换算成 M,应当是 6144831/1024=6000M,也就是 6G 左右, 其实没有这么 麻烦,粗略的看一下把小数点向前移动三位,就知道大约的体积有多大了;
System 表示的文件系统,比方/dev/hda1 是 NTFS 格式的;/dev/hda2 表示是 fat32 格式的文件系统;.

在此例中,我们要特别留意的是/dev/hda3 分区,这是扩展分区;他下面包含着规律分区, 其实这个分区相当于一个容器;附属于她的有 hda5,hda6,hda7,hda8,hda9 ;

我们还留意到一点,怎么没有 hda4 呢?为什么 hda4 没有包含在扩展分区?一个磁盘最多有四个主分区; hda1-4 算都是主分区;hda4 不行能包含在扩展分区里,另外扩展分区也算主分区;在本例中,没有hda4 这个分区,固然我们可以把其中的一个分区设 置为主分区,只是我当时分区的时候没有这么做而已;

再认真统计一下,我们看一看这个磁盘是不是还有空间?hda1+hda2+hda3=实际已经分区的 体积,所以我们可以这样算 hda1+hda2+hda3=6144831+16386300+39728745 = 62259876 (b), 换算成 M 单位, 小数点向前移三位,所以目前已经划分好的分区大约占用体积是62259.876(M),其实最准确的计算 62259876/1024=60800.67〔M〕;而这个磁盘大小是 80.0 GB

〔80026361856byte),其实实际大小也就是 78150.744〔M〕;通过我们一系列的计算,我们可以得出这个硬盘目前还有使用的空间;大约还有 18G 未分区的空间;

我们也可以指定 fdisk -l 来查看其中一个硬盘的分区状况;

[root@localhost beinan]# fdisk -l /dev/sda Disk /dev/sda: 60.0 GB, 60011642880 bytes

64 heads, 32 sectors/track, 57231 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes

|-------------|-------|-------|----------|-----------|
| Device Boot | Start | End | Blocks | Id System |
| /dev/sda1 | 1 | 57231 | 58604528 | 83 Linux |

通过上面状况可以知道,在/dev/sda 这个磁盘中,只有一个分区;使用量差不多是百分百了; 我们还可以来查看 /dev/hda 的

[root@localhost beinan]# fdisk -l /dev/hda

自己试试看?

我们也可以通过: cat /proc/partitions 查看目前机器中的全部磁盘及分区状况

df 命令;

df 是来自coreutils 软件包,系统安装时,就自带的;我们通过这个命令可以查看磁盘的使

用状况以及文件系统被挂载的位置; 举例:

[root@localhost beinan]# df -lh

Filesystem 容量 已用 可用 已用% 挂载点

/dev/hda8 11G 6.0G 4.4G 58% /

/dev/shm 236M 0 236M 0% /dev/shm

/dev/sda1 56G 22G 35G 39% /mnt/sda1

我们从中可以看到 , 系统安装在 /dev/hda8 ;还有一个 56G 的磁盘分区 /dev/sda1 挂载在

/mnt/sda1 中;

其它的参数请参考 man df

通过以上两个方面的学习,信任对于初学者来说,分区已经不再是 Linux 进阶中的绊脚石了。

相关推荐
IpdataCloud5 分钟前
IP数据云 识别和分析tor、proxy等各类型代理
运维·服务器
五味香6 分钟前
Linux学习,ip 命令
linux·服务器·c语言·开发语言·git·学习·tcp/ip
想学习java初学者24 分钟前
Docker compose部署elasticsearch(单机版)
运维·docker·容器
落落落sss30 分钟前
MQ集群
java·服务器·开发语言·后端·elasticsearch·adb·ruby
我救我自己30 分钟前
UE5运行时创建slate窗口
java·服务器·ue5
人类群星闪耀时1 小时前
未来运维的发展趋势:运维领域的新技术与趋势
运维
落非1 小时前
NFS存储基础操作
运维
Vanish_ran1 小时前
gitlab与jenkins
运维·gitlab·jenkins
朱容君1 小时前
Linux系统编程多线程之读写锁讲解
linux·开发语言
大风吹PP凉1 小时前
38配置管理工具(如Ansible、Puppet、Chef)
linux·运维·服务器·ansible·puppet