一、磁盘结构
1.1硬盘的物理结构
盘片: 硬盘有多个盘片,每盘片2面
磁头: 每面一个磁头
1.2磁盘的数据结构
扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据,硬盘的最小存储单位
磁道:同一盘片不同半径的同心圆, 是由磁头在盘片表面划出的圆形轨迹,方便数据存储
柱面:不同盘片相同半径构成的圆柱面,由同一半径圆的多个磁道组成
1.3磁盘的存储容量
硬盘存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数 (512字节)
可以用柱面/磁头扇区来唯一定位磁盘上每一个区域
1.4磁盘接口类型
1.5查看分区信息
1.6磁盘分区表示
主引导记录MBR:Master Boot Record
MBR位于硬盘第一个物理扇区处 , MBR中包含硬盘的主引导程序和硬盘分区表
MBR总共512字节,前446字节是主引导记录,分区表保存在MBR扇区中的第447-512字节中。
分区表有4个分区记录区,每个分区记录区占16字节
Linux中将硬盘、分区等设备均表示为文件
表示:/dev/hda5
/dev/:硬件设备文件所在的目录
hd:表示IDE设备(sd表示scsi设备)
a:硬盘的顺序号,表示的第几块硬盘,以a、b、c…表示
5:分区的顺序号,表示第一块硬盘接口的第五个分区
主分区从1-4,第一个逻辑分区始终从5开始
硬盘中的主分区数目只有4个
主分区和扩展分区的序号限制在1 ~4
扩展分区再分为逻辑分区
逻辑分区的序号将始终从5开始
主分区也叫引导分区,一块硬盘,最多可以同时创建4个主分区,当创建完四个主分区后,就无法再创建扩展分区和逻辑分区了。
扩展分区是一个概念,除了主分区外,剩余的磁盘空间就是扩展分区。因此,如果当一块硬盘将所有容量都分给了主分区,那就没有扩展分区了。所以,仅当主分区容量小于硬盘容量时,剩下的空间就属于扩展分区,而扩展分区可以进行扩展切割分为多个逻辑分区。
以我们大多数人的电脑为例,都是分了一个C盘主分区,然后其他的D盘、E盘和F盘等都属于逻辑分区。D盘、E盘、F盘等除了主分区之外的磁盘组合,则就属于一个扩展分区。
二、Linux中使用的文件系统类型
文件系统类型决定了向分区中存放、读取数据的方式和效率。
2.1 XFS文件系统
存放文件和目录数据的分区
高性能的日志型文件系统,特别擅长处理大文件,可支持上百万TB的存储空间
CentOS系统中默认是用的文件系统
2.2 Swap交换文件系统
(相当于Windows系统下的虚拟内存)
为Linux系统建立交换分区
一般设置为物理内存的1.5~2倍
2.3 EXT4 (第四代扩展文件系统)
相当于存放目录和数据的分区
典型的日志型文件系统
2.4 Linux支持的其他文件系统类型
EXT4(centos6)
FAT32(windows)
NTFS(windows)
LVM
三、管理磁盘及分区
3.1 查看或管理磁盘分区——fdisk
基本格式:
查看磁盘分区: fdisk -l [磁盘设备]
[root@localhost ~]# fdisk -l /dev/sda
管理磁盘分区: fdisk [磁盘设备]
[root@localhost ~]# fdisk /dev/sda
3.2七个字段
Device: 分区的设备文件名称;
Boot: 是否是引导分区,是的话则有“ * ”的标志;
Start: 该分区在硬盘中的起始位置(柱面数);
End: 该分区在硬盘中的结束位置(柱面数);
Blocks: 分区的大小,以Block(块)为单位,默认的块大小为1024字节
ID: 分区对应的系统ID号
system: 分区类型
3.3管理磁盘分区——fdisk /dev/sdb
交互操作指令指令
m 获取帮助菜单
p 查看分区情况
n 新建分区
d 删除分区
t 变更分区的类型
w 保存分区操作并退出
q 不保存分区操作并退出
示例:
创建完成后重启可以用shell命令init 6或者不重启不重启的情况下识别磁盘:
echo "- - - "> /sys/class/scsi_host/host0/scan
echo "- - - "> /sys/class/scsi_host/host1/scan
echo "- - - "> /sys/class/scsi_host/host2/scan
d #删除一个分区
l #显示己知的分区类型,其中82为Linux swap分区,83为Linux分区
m #最示帮助菜单I
n #增加一个新的分区
p #显示磁盘当前的分区表
q #退出fdisk程序,不保存任何修改
s #创建一个新的空白的sun磁盘标签
t #改变一个分区的系统号码
u #改变显示记录单位
v #对磁盘分区表进行验证
w #保存修改结果并退出fdisk程序复制
a #设置可引导标记
b #修改bsd的磁盘标签
c #设置DOS操作系统兼容标记
o #创建一个新的空白的Dos分区表
x #特殊功能,不建议初学者使用
3.4显示文件系统磁盘使用情况统计——df
格式:df [选项] [文件]
常用选项:
-T:显示文件系统类型。
-h:以容易理解的格式印出文件系统大小,例如136KB、24MB、21GB。
-l:计算所有的文件大小,对硬链接文件则计算多次。
-s:对每个Names参数只给出占用的数据块总数。
示例:
3.5树形查看磁盘分区——lsblk
示例:
3.5查看磁盘的UUID——blkid
示例:
四、创建文件系统
4.1Make Filesystem,创建文件系统(格式化)——mkfs命令
要用绝对路径
格式:
mkfs -t 文件系统类型 分区设备
或
mkfs.xfs 分区设备
4.2创建交换文件系统——mkswap
创建交换分区之前,目标分区应先通过 fdisk 工具将分区类型号设置为 82
fdisk /dev/sdb
—>t
—>5(分区号)
—>L查看一下所有代码,82是swap类型
—>82(设置类型为swap)
mkswap /dev/sdb5
swapon /dev/sdb5 #启用新增加的交换分区
swapoff /dev/sdb5 #停用指定的交换分区
swapon -s #查看每个分区的swap状态
free -m #查看总的swap状态信息
五、挂载、卸载文件系统
5.1挂载文件系统、ISO镜像到指定文件夹
mount [ -t类型] 存储设备 挂载点目录
#用于指定文件系统类型,通常可以省略,由系统自动识别
示例:
[root@localhost /]# mount /dev/sr0 /mnt/
mount -o loop iso镜像文件 挂载点目录
#挂载参数列表,以英文逗号分隔:如用来描述特殊设备,用loop指定
loop:用来把一个文件当成硬盘分区挂接上系统
1.最好挂空文件,不然文件可能丢失
2.如果挂载目录下,你不能解挂载的
3.不能一个目录挂载多个设备
5.2卸载已挂载的文件系统
卸载前提:挂载的设备或目录没有被正在使用中,要先退出挂载目录
加入参数 -lf ,表示强制卸载
格式:
umount 存储设备位置
umount 挂载点目录
5.3永久挂载
系统中的**/etc/fstab** 文件可以视为mount命令的配置文件,其中存储了文件系统的静态挂载数据。Linux在每次开机时,会自动读取这个文件的内容,自动挂载所指定的文件系统,默认的fstab文件中包括了根分区、/boot分区、交换分区及proc、tmpfs等伪文件系统的挂载配置。
在**/etc/fstab**文件中,每一行记录对应一个分区或设备的挂载配置信息,这些信息从左到右包括六个字段(使用空格或制表符分隔),各部分的含义如下所述。
/dev/sdb1 /mailbox xfs defaults 0 0
第1字段:设备名或设备卷标名
第2字段:文件系统的挂载点目录的位置
第3字段:文件系统类型,如xfs、swap等
第4字段:挂载参数,即mount命令"-o"选项后可使用的参数。例如,defaults、rw、ro、noexec分别表示默认参数、可写、只读、禁用执行
程序 第5字段:表示文件系统是否需要dump备份(dump是一个备份工具)。一般设为1时表示需要,设为o时将被dump忽略
第6字段:该数字决定在系统启动时进行磁盘检查的顺序。0表示不进行检查,1表示优先检查,2表示其次检查。根分区应设为1,其他分区设为2
利用uuid或者设备名或设备卷标名都可以挂载