一、磁盘接口分类:
IDE:集成设备电路,也称为ATA,控制器电路就驻留在驱动器中,不需要单独的适配器卡。
SATA:串行高级技术附件,SATA接口需要硬件芯片的支持,可支持热插拔。
对于一个IDE接口来说,一个IDE扁平电缆可以连接两个IDE设备,通常主机会提供两个IDE接口,所以最多可以连接四个IDE设备
IDE设备文件名
对于SATA接口来说,由于SATA/USB/SCSI等磁盘接口都是使用SCSI模块来驱动的,因此这些磁盘设备文件名都是/dev/sda-p。与IDE不同,SATA/USB接口的磁盘没有一定的顺序。
磁盘的组成:磁盘是由盘片、机械手臂、磁头、主轴马达所组成。
数据的写入是在盘片上,盘片可分为扇区(Sector)与柱面(Cylinder),其中每个扇区为512bytes。其中整块磁盘的第一个扇区最为重要,因为它记录着主引导分区和分区表。
主引导分区(MBR):可以安装引导加载程序的地方,有446bytes。
分区表:记录整块磁盘分区的状态,有64bytes。
扩展分区的目的是使用额外的扇区来记录分区信息
二、有关主分区、扩展分区、逻辑分区的特性:
1.主分区和逻辑分区最多只能存在四个(硬盘限制)
2.逻辑分区最多只能有一个(操作系统限制)
3.逻辑分区是由扩展分区持续切割出来的分区
4.可被格式化后作为数据访问的分区为主分区和逻辑分区,扩展分区无法被格式化
5.在Linux系统中,IDE硬盘最多有59个逻辑分区(5号到63号),SATA硬盘只有11个(5号到15号)
注:在磁盘中1~4号是保留给主分区及扩展分区的,逻辑分区从5号开始
开机流程:
1.BIOS:开机主动执行的韧体,会认识第一个可开机的设备。(韧体:写入到硬件上的一个软件程序)
2.MBR:第一个可开机设备的第一个扇区内的主引导分区块,内包含引导加载程序
3.引导加载程序(BIOS loader):一支可读取内核文件来执行的软件
4.内核文件:开始操作系统的功能
BIOS loader:是操作系统安装在MBR上面的一套软件
其主要任务: 1.提供菜单:用户可以选择不同的开机选项(多重引导)
2.载入内核文件:直接指向可开机的程序区段来开始操作系统
3.转交其他loader:将引导加载功能转交给其他loader来负责
多重引导(多系统):
开机时,MBR的引导加载程序(BIOS loader)提供了两个菜单(这里假设是双系统,M1是Windows,M2是Linux),菜单一(M1)可以直接加载Windows的内核文件开机;菜单2(M2)则是将引导加载程序的工作交给第二个分区的启动扇区(boot sector)。当用户在开机时选择菜单二,那么整个引导加载的工作就会交给第二分区的引导加载程序。
由上述可得出:
1.每个分区都拥有自己的启动扇区(boot sector)
2.实际可开机的内核文件是放置到各个分区的
3.loader只认识自己系统分区内的可开机文件内核,以及其他loader
4.loader可直接指向或间接将管理权限转交给另一个管理程序
三、磁盘的分区、格式化、检验与挂载
当新增一块硬盘时:1.对磁盘分区,以创建新的可用分区 2.对分区进行格式化,以创建系统可用的文件系统 3.可对新创建的文件系统进行检验 4.创建挂载点(目录),并将其挂载
1)磁盘分区:
fdisk:后接设备名
-l:将整个设备的分区均列出;若果接设备名,只列出该设备的分区
2)磁盘格式化:
mkfs
.:接文件系统格式
-t:可以接文件系统格式
mkfs2fs:
-b:设置每个block大小
-i:多少容量分配一个inode
-c:检查磁盘错误,一次-c会进行快速度去测试;-c -c,会测试读写
-L:后面接卷名(label)
-j:可将文件系统升级(原本为EXT2,主动加入journal成为EXT3)
3)磁盘检验:
fsck:
-t:接文件系统的格式
-A:依据/etc/fstab的内容,将需要扫描的设备扫描一次(开机过程会执行此命令)
-a:自动修复检查修复有问题的扇区
-y:与-a类似
-C:在校验过程中显示目前进度
EXT2/EXT3的额外功能:
-f:强制检查,并且细化检查(一般不主动进入细化检查)
-D:针对文件系统下的目录进行优化配置
注:
1.使用该命令是在系统出现重大问题时,进入单用户模式下的维护行为;
2.此外在格式化完硬盘是先要检查,也可使用;
3.执行fsck时,被检查的分区不能挂载到系统上
4.在ext2/ext3中最顶层(挂载点目录),会存在一个lost+found目录,该目录为使用fsck时,出现问题的数据会放在这里
badblocks:
-s:在屏幕上列出进度
-v:可在屏幕上看到进度
-w:使用写入方式来测试(在有文件的待检设备,不要使用此命令)
注:fsck为检查文件系统是否出错;badblocks为检查硬盘或软盘扇区有没有坏轨
4)磁盘挂载与卸载
1.单一文件系统不应该被重复挂载在不同的挂载点中
2.单一目录不应重复挂载多个文件系统
3.作为挂载点的目录应为空目录
如果挂载目录不为空,当挂载了文件系统后,原目录下的东西会暂时消失
mount:
-a:依照/etc/fstab的数据将所有未挂载的磁盘挂在上来
-l:单纯输入mount会显示所有挂载信息,加上-l可增列Label(卷标)名称
-t:可指定挂载类型
-n:默认情况下,系统会将实际挂在的情况写入/etc/mtab中,已利用其他程序的运行;在某些情况下,为了避免问题,不会可以写入
-L:除了可以利用设备文件名,还可以使用文件系统的卷标名称
-o:后接挂载时额外加上的参数
Linux可以分析super block搭配Linux自己的驱动程序去测试挂载,如果挂在成功,会立即使用该类型的文件系统挂载起来
/etc/filesystems:系统指定的测试挂载文件系统
/proc/filesystems:Linux已加载的文件系统类型
/lib/modules/$ (uname -r) /kernel/fs/:Linux支持的文件系统的驱动程序
重新挂载与挂载不特定目录:
remount
--bind:将某个目录挂载到另一个目录去
卸载文件设备
umount:
-f:强制卸载
-n:不更新/etc/fstab的情况下卸载
在卸载之后才能退出光盘、软盘、U盘等设备
使用Label name进行挂载
dumpe2fs -h:来查询卷标
5)磁盘参数修改:
mknod:通过设置文件的major(主设备代码)和minor(次设备代码)来表示该设备
b:设置设备名称为一个外部存储设备文件,硬盘等
c:设置设备名称为一个外部输入设备文件,鼠标、键盘等
p:设置设备名称为一个FIFO
[major]:主设备代码
[minor]:次设备代码
磁盘文件名 | major | minor |
/dev/hda | 3 | 0~63 |
/dev/hdb | 3 | 64~127 |
/dev/sda | 8 | 0~15 |
/dev/sdb | 8 | 16~31 |
e2label:
修改系统卷标
优点:不论磁盘文件名怎么改变,不论磁盘插入接口是什么(IDE/SATA)
缺点:有两块硬盘的Label重复时,系统无法判断哪个磁盘分区是正确的
tune2fs:
-l:类似dumpe2fs -h,将super block内的数据读出
-j:将ext2文件系统转换为ext3的文件系统
-L:修改卷标
hdparm:(主要针对IDE接口)
-i:将内核检测到的硬盘参数显示出来
-c:设置32bit访问模式(硬盘与PCI接口的访问模式,硬盘本身仍以16位在运行)
-d:是否启用DMA,-d1为启动,-d2为取消
-m:同步读取多个sector
-X:设置UtraDMA模式
-T:测试暂存区cache的访问
-t:测试硬盘实际访问性能(SATA可用)
6)开机挂载
系统挂载限制:
1./必须挂载,且要先于其他挂载点被挂载
2.其他挂载点必须为已新建的目录
3.所有挂载点在同一时间,只能挂载一次
4.所有分区在同一时间内,只能挂载一次
5.若进行卸载,必须将工作目录移到挂载点之外
实现开机自动挂载要到/etc/fstab目录中修改
第一列:磁盘设备名或该设备的label
第二列:挂载点
第三列:磁盘分区的文件系统
第四列:文件系统参数
第五列:能否被dump备份命令作用(0表示不做备份,1表示每天进行备份,2表示不定时进行备份)
第六列:是否已fsck检查扇区(0表示不需要检验,1表示最早检验,2表示比1晚检验)
注:实际文件挂载是记录在/etc/mtab与/proc/mounts中,每次改动文件挂载时同时也改动这两个文件;当记录在/etc/fstab输入有误,导致无法正确开机,进入单用户模式需要mount -n -e remount,rw/
7)特殊设备loop挂载
挂载光盘/DVD镜像文件
mount -o loop
8)内存交换空间(swap)
当物理内存不足时,将内存中所占用的程序暂时移到swap中,让物理内存可以被需要的程序使用
1.使用物理分区构建swap
2.受用文件构建swap
mkswap:将文件格式化为swap的文件格式
swapon:将已格式化后的文件启动
swapoff:关闭swap file
当Linux可以进入休眠模式时,运行当中的程序状态会被记录到swap中,以作为唤醒主机状态的依据