在学习 Linux 的过程当中,安装 Linux 是每个初学者的第一个门槛。在这个过程当中间,最大的困惑莫过于给硬盘进行分区。虽然,如今各类发行版本的 Linux 已经提供了友好的图形交互界面,可是不少的人仍是感受无从下手。这其中的缘由主要是不清楚 Linux 的分区规定,以及它下面最有效的分区工具― Fdisk 的使用方法。linux
首先咱们要对硬盘分区的基本概念进行一些初步的了解,硬盘的分区主要分为基本分区(primary partion)和扩充分区(extension partion)两种,基本分区和扩充分区的数目之和不能大于四个。且基本分区能够立刻被使用但不能再分区。扩充分区必须再进行分区后才能使用,也就是说它必须还要进行二次分区。那么由扩充分区再分下去的是什么呢?它就是逻辑分区(logical partion),何况逻辑分区没有数量上限制。ios
对习惯于使用dos或windows的用户来讲,有几个分区就有几个驱动器,而且每一个分区都会得到一个字母标识符,而后就能够选用这个字母来指定在这个分区上的文件和目录,它们的文件结构都是独立的,很是好理解。但对这些初上手 red hat linux的用户,可就有点恼人了。由于对red hat linux用户来讲不管有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且惟一的文件结构。red hat linux中每一个分区都是用来组成整个文件系统的一部分,由于它采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下得到。windows
对windows用户来讲,操做系统必须装在同一分区里,它是商业软件! 因此你没有选择的余地!对red hat linux来讲,你有了较大的选择余地,你能够把系统文件分几个区来装(必需要说明载入点),也能够就装在同一个分区中(载入点是“/”)。安全
下面从这两个方面入手,来说解这个困扰你们的问题。服务器
Linux 的分区规定网络
1. 设备管理 ide
在 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 等。操作系统
2. 分区数量
要进行分区就必须针对每个硬件设备进行操做,这就有多是一块IDE硬盘或是一块SCSI硬盘。对于每个硬盘(IDE 或 SCSI)设备,Linux 分配了一个 1 到 16 的序列号码,这就表明了这块硬盘上面的分区号码。
例如,第一个 IDE 硬盘的第一个分区,在 Linux 下面映射的就是 hda1,第二个分区就称做是 hda2。对于 SCSI 硬盘则是 sda一、sdb1 等。
3. 各分区的做用
在 Linux 中规定,每个硬盘设备最多能有 4个主分区(其中包含扩展分区)构成,任何一个扩展分区都要占用一个主分区号码,也就是在一个硬盘中,主分区和扩展分区一共最可能是 4 个。
对于早期的 DOS 和 Windows(Windows 2000 之前的版本),系统只认可一个主分区,能够经过在扩展分区上增长逻辑盘符(逻辑分区)的方法,进一步地细化分区。
主分区的做用就是计算机用来进行启动操做系统的,所以每个操做系统的启动,或者称做是引导程序,都应该存放在主分区上。
这就是主分区和扩展分区及逻辑分区的最大区别。
咱们在指定安装引导 Linux 的 bootloader 的时候,都要指定在主分区上,就是最好的例证。
Linux 规定了主分区(或者扩展分区)占用 1 至 16 号码中的前 4 个号码。以第一个 IDE 硬盘为例说明,主分区(或者扩展分区)占用了 hda一、hda二、hda三、hda4,而逻辑分区占用了 hda5 到 hda16 等 12 个号码。
所以,Linux 下面每个硬盘总共最多有 16 个分区。
对于逻辑分区,Linux 规定它们必须创建在扩展分区上(在 DOS 和 Windows 系统上也是如此规定),而不是主分区上。
所以,咱们能够看到扩展分区可以提供更加灵活的分区模式,但不能用来做为 操做系统 的引导。 除去上面这些各类分区的差异,咱们就能够简单地把它们一视同仁了。
4. 分区指标
对于每个 Linux 分区来说,分区的大小和分区的类型是最主要的指标。容量的大小读者很容易理解,可是分区的类型就不是那么容易接受了。分区的类型规定了这个分区上面的文件系统的格式。
Linux 支持多种的文件系统格式,其中包含了咱们熟悉的FAT3二、FAT1六、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 等。
2.用 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 进阶中的绊脚石了。