在学习 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 的分区规定
- 设备治理
在 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 等。
- 分区数量
要进展分区就必需针对每一个硬件设备进展操作,这就有可能是一块 IDE 硬盘或是一块SCSI 硬盘。对于每一个硬盘〔IDE 或 SCSI〕设备,Linux 安排了一个 1 到 16 的序列号码,这就代表了这块硬盘上面的分区号码。
例如,第一个 IDE 硬盘的第一个分区,在 Linux 下面映射的就是 hda1,其次个分区就称作是 hda2。对于 SCSI 硬盘则是 sda1、sdb1 等。
- 各分区的作用
在 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 系统上也是如此规定〕,而不是主分区上。
因此,我们可以看到扩展分区能够供给更加灵敏的分区模式,但不能用来作为 操作系统 的引导。 除去上面这些各种分区的差异,我们就可以简洁地把它们一视同仁了。
- 分区指标
对于每一个 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 级别的分区工具,它让初学者有点望而却步。
- Fdisk 参数说明
运行 Fdisk 的时候,首先映入眼帘的是欢送界面,用户通过在这个界面中输入命令参数来操作 Fdisk。用户通过提示键入 "m",可以显示 Fdisk 命令各个参数的说明。 读者可
以看到 Fdisk 有很多参数,可是常常使用的就是几个,假设读者娴熟把握这几个参数就可以流畅地运用 Fdisk,对 Linux 的硬盘进展分区。我们先简洁介绍各个参数的意义,然后具体说明几个重点参数。
用户在 Linux 中进展分区的时候,最常用的参数分别是 d、l、m、n、p、q、t、w 等。
- 用 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 进阶中的绊脚石了。