本节学习前首先要记住一句重要的话“
Linux中所有内容以文件形式保存,包括硬件”。
一、Linux下磁盘分区的设备文件
通过命令:fdisk -l 我们先来查看一下当前系统的磁盘和分区,
下面开始讲解一下磁盘分区中文件名的含义,
/dev 下保存特殊文件,所有硬件设备文件;
hd ——硬件设备的编号 IDE;
sd ——SCSI或者SATA;
a ——同类型设备的编号,第一个硬盘;
b ——第二块硬盘,如此类推,即/dev/hda 表示第一个IDE信道的第一个设备(master),/dev/hdb表示第一个IDE信道的第二个设备(slave)。/dev/hdc 和/dev/hdd为第二个IDE信道的master和slave设备。
5 ——分区号,第一个逻辑分区;
1 —— 第一个主分区 (分区类型:主分区、扩展分区、逻辑分区,扩展分区用于容纳(建立)逻辑分区)
IDE硬盘采用/dev/hdxy来命名。x表示硬盘(a是第一个块硬盘,b是第二块硬盘...),y是分区号码(从0开始,1、2、3等)。
SCSI硬盘采用/dev/sdxy来命名。SCSI硬盘或者光驱设备依赖于设备的ID号码,不考虑遗漏的 ID号码。比如三个SCSI设备的ID号码分别是0,2,5,设备名称分别是/dev/sda,/dev/sdb,/dev/sdc。如果现在再添加一个 ID号码为3的设备,那么这个设备将被以/dev/sdc来命名,ID号码为5的设备将被称为/dev/sdd。
分区号码不依赖于IDE或SCSI设备。1-4为主分区和扩展分区保留,5开始用来为逻辑分区命名,所以有号码漏洞。举一些具体的例子说明下:
/dev/hda 表示整个IDE硬盘
/dev/hda1 表示第一块IDE硬盘的第一个主分区
/dev/hda2 表示第一块IDE硬盘的扩展分区
/dev/hda5 表示第一块IDE硬盘的第一个逻辑分区
/dev/hdb 表示第二个IDE硬盘
/dev/hdb1 表示第二块IDE硬盘的第一个主分区
/dev/sda 表示第一个SCSI硬盘
/dev/sda1 表示第一个SCSI硬盘的第一个主分区
/dev/sdd3 表示第四个SCSI硬盘的第三个主分区
硬盘分两个区域: 一个放置硬盘信息,即主引导扇区MBR,一个放置实际数据文件。MBR是硬盘最重要的地方,记录着启动管理程序与硬盘分区表(partition table)。(MBR物理实体坏了,硬盘就差不多报废了)。
分区: 实质上就是对硬盘的一种格式化,创建分区时就设置好了硬盘的各项物理参数,指定了硬盘的MBR(主引导记录)和引导记录备份的存放位置。
安装操作系统和软件之前,要对硬盘分区和格式化,才能保存信息。不论划分多少分区,使用SCSI或IDE硬盘,都必须把硬盘主分区设定为活动分区,才能从硬盘启动系统。
硬盘分区类型:主分区、扩展分区和逻辑分区。
主分区和扩展分区信息保存在MBR内,逻辑分区的信息保存在扩展分区内。(也就说硬盘无论多少分区,启动记录中只包含主分区,即启动分区和扩展分区两个分区信息)。
扩展分区是逻辑分区的“容器”。实际上只有主分区和逻辑分区存储数据(每个主分区和逻辑分区都会被存储一个识别文件系统的附加信息,操作系统能通过这些信息识别和确认)。
既然Linux中所有内容以文件形式保存,那么要想使用必须先来挂载。/dev/hda5 ←挂载→ 目录(挂载点) 所有文件均可挂载(特殊文件一般不再挂载),详细挂载后面介绍。
这里补充一些硬盘种类、物理几何结构方面知识:
硬盘的种类 主要是SCSI 、IDE 、以及现在流行的SATA等;任何一种硬盘的生产都要一定的标准;随着相应的标准的升级,硬盘生产技术也在升级;比如 SCSI标准已经经历了SCSI-1 、SCSI-2、SCSI-3;其中目前咱们经常在服务器网站看到的 Ultral-160就是基于SCSI-3标准的;IDE 遵循的是ATA标准,而目前流行的SATA,是ATA标准的升级版本;IDE是并口设备,而SATA是串口,SATA的发展目的是替换IDE。
硬盘的物理几何结构 是由盘、磁盘表面、柱面、扇区组成,一个张硬盘内部是由几张碟片叠加在一起,这样形成一个柱体面;每个碟片都有上下表面;磁头和磁盘表面接触从而能读取数据。
二、文件系统
Windows下的文件系统: Fat16、Fat32、NTFS
Linux下的文件系统:ext2、ext3、swap(交换分区)类似于虚拟内存
EXT2和EXT3都是Linux操作系统默认使用的文件系统类型,EXT3属于日志文件类型,是EXT2文件系统的升级版。
swap类型的文件系统在Linux系统的交换分区中使用。
Linux支持对Fat格式文件系统(包括Fat16和Fat32)的读写;
Linux支持对NTFS文件系统的读取,默认不支持对NTFS文件系统的写入(如果编译内核就另当别论了)。
三、目录层次结构
Linux系统使用树型目录结构,在整个系统中只存在一个根目录(文件系统);
Linux系统中总是将文件系统挂载到树型目录结构中的某个目录节点中使用。
根目录相下: /
/ 根目录,一般来讲,根目录下很少保存文件(只有一个内核映像在这里)
/bin 保存系统命令(任何用户可执行命令)
/sbin 保存系统命名(超级用户/管理员可执行的命令)
/home 家目录(普通用户)
/boot 启动目录(启动文件和Linux系统内核映像)
/dev 特殊文件目录(硬件目录),保存着所有的设备文件
/usr 用户目录,用户相关文件的保存
/usr/bin 二进制可执行文件存放的目录,放着大不部分的应用程序;
/usr/sbin 放着大部分的系统程序;
/usr/games 游戏程序和相应的数据会放在这里;
/usr/include 保存着C和C++的头文件;
/usr/lib 启动时用不到的库文件都放在这里;
/usr/info 保存着GNU Info程序所需要的数据;
/usr/man 保存着man程序所需要的数据;
/usr/src 保存着源代码文件;
/usr/doc 保存着各种帮助文档文件;
/usr/local 保存本地计算机所需要的文件;
/usr/share 保存着各种共享文件
/etc 保存配置文件的目录,相对来讲,单个用户的系统配置文件会保存在该用户家目录下。举一些重要的子目录:
/etc/X11 存放X窗口系统(图形界面系统)所需要的配置文件;
/etc/init.d 保存启动描述文件,包括各种模块和服务的加载描述
/var 保存日志目录
/var/log 保存日志文件目录,这个目录与时间成正比,会越来越大,要定期清理;
/var/run 各种运行时的信息;
/var/lib 一些系统运行时需要的文件;
/var/spool 邮件,新闻,打印序列的所在地
/root 超级用户家目录
/tmp 临时目录,启动时产生的临时文件放在这里
/mnt 存放用来安装其他设备的子目录,如/mnt/cdrom 或者/mnt/floppy
/lib 启动用到的库文件放在此目录下。非启动库文件放在/usr/lib下。内核模块放在/lib/modules/(内核版本)下
/proc 只它不写入硬盘,保存在内存中,存放检测信息(正在运行的进程、硬件状态、内存使用多少等)
今天就为大家介绍到这里,更多知识点请见后续文章。写作过程中参考了《鸟哥私房菜》,本系列结束后为大家奉上此书。文章如有不足之处,请多多指教!
本文出自 “冰泉” 博客,谢绝转载!