1.1 主分区 vs 扩展分区
1.2 驱动器标示的含义
下面我们先来看看Red Hat Linux的驱动器是如何标识的。 对于IDE硬盘,驱动器标识符为“hdx1”,其中“hd”表明分区所在设备的类型,这里是指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“1”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。对于SCSI硬盘则标识为“sdx1”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样,不再赘述。
下面我们先对“Linux Native”和“Linux Swap”有个初步的了解。
- SWAP分区是LINUX暂时存储数据的交换分区,它主要是把主内存上暂时不用得数据存起来,在需要的时候再调进内存内,且作为SWAP使用的分区不用指定“Mout Point”(载入点),既然它作为交换分区,我们理所当然应给它指定大小,它至少要等于系统上实际内存的量,一般来说它的大小是内存的一至两倍。另外你也可以创建和使用一个以上的交换分区,最多16个。
- Linux Native是存放系统文件的地方,一般用EXT3的分区类型,对Red Hat Linux来说,有了较大的选择余地,可以把系统文件分几个区来装(必须要说明挂载点),也可以就装在同一个分区中(挂载点是“/”)。
分多个区有以下几个目的:
- 在不损失数据的情况下重装系统,比如独立设置/home挂载点,重装系统的时候直接标记回/home,数据不会有任何损失。
- 针对不同挂载点的特性分配合适的文件系统以合理发挥性能,比如对/var使用reiserfs,对/home使用xfs,对/使用ext4。
- 针对不同的挂载点开启不同的挂载选项,如是否需要即时同步,是否开启日志,是否启用压缩。
- 大硬盘搜索范围大,效率低
- 磁盘配额只能对分区做设定
- /home、/var、/usr/local 经常是单独分区,因为经常会操作,容易产生碎片
2、挂载点目录简介
每块硬盘都分为若干个分区,每个分区都有自己的文件系统。Windows为这些文件系统各自指定了一个字母。不过 GNU/Linux 使用唯一的树形结构来管理文件,而每个文件系统都挂载于树形结构的某个位置。
挂载点实际上就是linux中的磁盘文件系统的入口目录
目录 内容
/boot boot loader 的静态链接文件,存放与Linux启动相关的程序
/tmp 临时文件
/usr/local 自已安装程序安装在此
/opt (Option可选的)附加的应用程序软件包
/dev 设备文件
/lib 基本共享库以及内核模块
/mnt 用于临时挂载文件系统或者别的硬件设备(如光驱、软驱)
/root root 用户的目录
/sys 系统信息的虚拟目录(2.6 内核)
/usr/X1186 X-Windows目录,存放一些X-Windows的配置文件
/usr/src Linux内核源代码,Linux系统所安装的内核源代码都保存在此
/usr/sbin 对/sbin目录的一些补充
/boot: 必须总是物理地包含 /etc、/bin、/sbin、/lib 和 /dev,否则您将不能启动系统。
/tmp: 程序创建的临时数据大都存到这个目录。
/var:所有的可变数据,如新闻组文章、电子邮件、网站、数据库、软件包系统的缓存等等,将被放入这个目录。这个目录的大小取决于您计算机的用途,但是对大多数人来说,将主要用于软件包系统的管理工具。如果做服务器的话空间应尽量大。我的服务器的实际分法及实际使用的大小,还没有实际投入使用。所以/var目录没有用那么多。一般WEB存放网页的目录是/var/www,postfix邮件的存放邮件的目录是:/var/mail,var/log,是系统日志记录分区, /var/spool:存放一些邮件、新闻、打印队列等。
上面介绍了几个挂载点,一般来说我们最少需要两个分区(当然只要一个 / 分区也可以),需要一个SWAP分区,和一个“/”分区,但把一些常用、重要的挂载点分到其它分区,这样便于管理。一般一个/分区,一个/usr分区,一个/home 分区,一个/var/log分区。当然这没有什么规定,完全是依照需要来定的。我们可以使用Red Hat Linux提供的硬盘管理工具Disk Druid来完成分区和挂载点设置。
/ 为大树的树根
挂载点下的文件为树叶
如果你看过我之前写的 Linux 系列文章,那么应该记得我曾经标红过一句话:linux 下一切皆文件!换言之就是linux操作系统将系统中的一切都作为文件来管理。在windows中我们常见的硬件设备(打印机、网卡、声卡...)、磁盘分区等,在linux中统统都被视作文件,对设备、分区的访问就是读写对应的文件。
3、实战分区挂载
举个栗子,原来分区情况如下:
[root@sg-sl-data]# df -hFilesystem Size Used Avail Use% Mounted on/dev/sda2 20G 5.6G 13G 31% //dev/sda6 996M 35M 910M 4% /data/dev/sda5 426G 199M 404G 1% /disk1/dev/sda1 996M 46M 899M 5% /boottmpfs 7.9G 0 7.9G 0% /dev/shm
umount /disk1
3.1.2 再重新挂起来:
mount /dev/sda6 /disk1
3.2 永久挂载:开机自动挂载
LABEL=/data /data ext3 defaults 1 2
修改为:
/dev/sda6 /disk1 ext3 defaults 1 2
3.3 以下是添加硬盘&分区&挂载(高危操作,新手慎用!)
更为详细的分区教程请参见:
fstab 文件大家都很熟悉,Linux 在启动的时候通过 fstab 中的信息挂载各个分区,一个典型的分区条目就像这样:
/dev/sda4 为需要挂载的分区,sda4 是 Linux 检测硬盘时按顺序给分区的命名,一般来讲,这个名称并不会变化,但是如果你有多块硬盘,硬盘在电脑中的顺序变化的时候,相同的名称可能代表着不同的硬盘分区,如果你是从 USB 设备启动,与其他 USB 设备的插入顺序也会导致分区识别的困难。
这个时候 UUID 就派上用场了,UUID 全称是 Universally Unique Identifier,也就是说,每个分区有一个唯一的 UUID 值,这样就不会发生分区识别混乱的问题了。
UUID=1234-5678 /mnt/usb vfat utf8,umask=0 0 0
那么,我们如何知道一个分区的 UUID 呢?
4.1 通过浏览 /dev/disk/by-uuid/ 下的设备文件信息
------
lrwxrwxrwx 1 root root 10 10-13 09:13 7c627a81-7a6b-4806-987b-b5a8a0a93645 -> ../../sda4
4.2 通过 vol_id 命令
ID_FS_USAGE=filesystem
ID_FS_VERSION=FAT32
ID_FS_UUID_ENC=0909-090B
ID_FS_LABEL_ENC=SWAP
4.3 通过 blkid 命令
/dev/sdb5: LABEL="SWAP" UUID="0909-090B" TYPE="vfat"
=======================================================
注:需要C/C++ Linux服务器开发学习资料私信“资料”,免费分享
