一、硬盘分区
1.每个扇区,512字节 2.每个磁道划分为63个扇区 3.逻辑磁头(盘面)数设为255个 4.一个柱面的大小=255x63x512字节=8 MB 5.硬盘或分区的容量=柱面的大小x柱面数
磁面(head)
1.硬盘一般是由一片或几片圆形薄膜叠加而成。每个圆形薄膜都有两个"面"(Side),这两个面都是用来存储数据的。 2.依次称为0面、1面、2面……由于每个面都专有一个读写磁头,也常用0头(head)、1头……称之。 3.硬盘面数(或头数),少的只有2面,多的可达数十面。
track------磁道-----一个圈
1.读写硬盘时,磁头不动,磁盘是旋转的,则连续写入的数据是排列在一个 圆周上的。我们称这样的圆周为一个磁道(Track)。 2.磁头不动,就是在一个磁道上读写 3.磁头移动,就会在不同磁道上读写
cylinder----柱面---------外观象一个圆筒子
各面上磁道号相同的 磁道合起来,称为一个柱面(cylinder)距轴的距离相同的一组track cylinder也是磁盘分区时的最小单位,分区是按磁道和柱面连续分布的
Sector
一个track上可以容纳数KB的数据,而主机读写时往往并不需要一次读写那么多,于是,磁道又被按512字节划分成若干段,每段称为一个扇区(Sector)。
一个扇区size是固定的512字节
硬盘启用过程
新硬盘经历哪些步骤才能存储文档?
识别硬盘-->规划分区-->格式化-->挂载-->写入/读取数据
分区模式
MBR,Master Boot Record
1.主引导记录模式,也称为MSDOS模式
2.硬盘的第一个扇区(512字节)作为MBR扇区,用来记录引导程序和分区表
3.分区表只有64个字节,其中存储着硬盘上每个分区的信息,一个分区记录需要16字节
4. 此模式支持最多4个主分区、最大容量约2.2TB
GPT,GUID Partition Table
1.全局唯一标识分区表
2. 突破固定大小64字节的分区表限制
3. 最多可支持128个主分区,最大支持18EB
注意: 1 EB =1024 PB = 1024 x 1024 TB
磁盘分区工具
fdisk,只支持MSDOS分区布局
语法:
格式:fdisk 磁盘名
常见的fdisk交互指令:
a:切换分区启动标签 b:编辑BSD系统中的磁盘卷标 c、切换成为DOS兼容的标签 d:删除分区 l:列出支持的分区类型信息 m:查看帮助信息(显示fdisk命令菜单) n:新建分区 o:建立空的DOS分区数据表 p:列表查看分区信息 q:放弃分区设置并退出 -t:变更分区类型 82 swap 83 ext3 (默认) 8e LVM fd raid b fat32 u:修改显示的单位 v:检查分区数据表 w:保存分区设置并退出 x:进阶功能
常用分区系统标识符
b:windows 95的FAT使用的分区 c:windows 95的FAT使用的分区(支持LBA) f:windows 95生成的扩充分区 81:Linux的第一代ext使用 82:Linux的置换内存空间 83:Linux的第二代ext(ext2)与第三代ext(ext3) 8e:Linux LVM使用的分区 fd:Linux的“软件磁盘阵列”使用的分区
分区表记录
Device:分区的设备文件名
Boot:该分区是否可以被启动。整个硬盘只能有一个分区被标识为可启动。
Start:分区起始柱面编号
End:分区结束柱面编号
Blocks:分区的大小,单位是块(Block),默认一个块是1KB
例子:
fdisk -l /dev/sda #查看分区表 fdisk /dev/xdy #对/dev/xdy分区
parted,支持MSDOS、GPT分区布局
parted 常用分区工具用法
查看分区表:parted /dev/sdb print 进入交互模式:parted /dev/sdb 获取交互指令帮助:(parted) help 新增分区:mkpart [primary|logical|extended] [ext4|vfat]开始 结束 删除指定的分区:rm 序号 建立指定模式分区表:mktable msdos|gpt mapart primary 文件系统类型 start end #指定大小或百分比%作为开始、结束位置
例子:
parted /dev/sda print #查看分区表 parted /dev/xdy #对/dev/xdy分区
识别新的分区表
1.当硬盘的分区表被更改以后
需要将分区表的变化通知Linux内核
否则在访问分区时可能会找不到准确的设备
2.以下三种方式都可以
partx -a /dev/sda partprobe /dev/sda reboot
二、格式化分区
常见文件系统
Linux文件系统
EXT4,第四代扩展(Extended)文件系统
SWAP,交换文件系统
支持的其他文件系统
FAT 16、FAT 32、NTFS XFS,JFS,GFS
格式化工具
mkfs:Make Filesystem
格式:mkfs -t 文件系统类型 分区设备
mkfs -t 文件类型 /dev/xdyz #格式化
mkfs.文件类型 /dev/xdyz #格式化,两种方式功能相等
注意:
mkfs作为前端,通过-t ...调用各程序 使用mkfs.ext4时可通过-L选项为文件系统指定卷标
举例:
[root@localhost ~]# mkfs.ext3 /dev/sda2
创建EXT4文件系统
mkfs -t ext4 /dev/sda6 mkfs.ext4 /dev/sda6
创建VFAT文件系统
1.将分区/dev/sda7格式化成FAT32 文件系统
mkfs -t vfat -F 32 /dev/sda7 mkfs.vfat -F 32 /dev/sda7百分比
分区扩展SWAP空间
格式化交换分区
mkswap命令
格式:
mkswap -f 交换文件
fdisk命令中,调整分区类型为82;
mkswap /dev/xdyz #把/dev/xdyz格式化成swap类型分区 swapon /dev/xdyz #启用/dev/xdyz到swap分区中 swapoff /dev/xdyz #停用/dev/xdyz swapon -s #查看交换分区
dd
复制底层的数据流,可以复制文件的一部分
if=数据来源 of=数据存储目标 bs=1 //以一个字节为1个单位 count=2 seek=#: 创建数据文件时,跳过的空间大小;
例子:
dd if=/dev/sda of=/mnt/usb/mbr.backup bs=512 count=1 dd if=/mnt/usb/mbr.backup of=/dev/sda bs=512 count=1 dd if=/dev/zero of=/var/swapfile bs=1M count=1024
文件系统管理
e2label命令
为EXT分区命名
语法:
格式:e2lable 设备名 ["卷标名"]
例子:
e2label /dev/sdb1 "disk2part1" 设置卷标 e2label /dev/sdb1 查看卷标 e2label /dev/sdb1 "" 删除卷标
blkid命令——Block Identity
查看设备UUID
语法:
格式:blkid 设备名
tune2fs命令
查看EXT分区属性
语法:
格式:tune2fs [选项] 设备名
选项:
tune2fs: 调整文件系统的相关属性 -j: 不损害原有数据,将ext2升级为ext3; -L LABEL: 设定或修改卷标; -m #: 调整预留百分比; -r #: 指定预留块数; -o: 设定默认挂载选项; acl -c #:指定挂载次数达到#次之后进行自检,0或-1表关闭此功能; -i #: 每挂载使用多少天后进行自检;0或-1表示关闭此功能; -l: 显示超级块中的信息;
dumpe2fs
显示文件属性信息
-h: 只显示超级块中的信息
fsck
检查并修复Linux文件系统
选项:
-t FSTYPE: 指定文件系统类型
-a: 自动修复
e2fsck
专用于修复ext2/ext3文件系统
选项:
-f: 强制检查;
-p: 自动修复;
挂载文件系统
mount命令
语法:
格式:mount [选项] 设备名 挂载点
mount [options] [-o options] DEVICE MOUNT_POINT
设备:
设备文件:/dev/sda5 卷标:LABEL="" UUID: UUID=""
挂载点:目录
要求:
1、此目录没有被其它进程使用; 2、目录得事先存在; 3、目录中的原有的文件将会暂时隐藏;
常用命令选项
-a 加载所有fstab已配置的文件系统; 表示挂载/etc/fstab文件中定义的所有文件系统 -t 指定挂载类型 -o 指定挂载参数 -L 使用卷标名挂载 -o loop 挂载回环设备 //将ISO镜像文件挂载到指定位置 --bind 目录挂载目录下
-n: 默认情况下,mount命令每挂载一个设备,都会把挂载的设备信息保存至/etc/mtab文件;使用—n选项意味着挂载设备时,不把信息写入此文件;
-t FSTYPE: 指定正在挂载设备上的文件系统的类型;不使用此选项时,mount会调用blkid命令获取对应文件系统的类型;
-r: 只读挂载,挂载光盘时常用此选项
-w: 读写挂载
-o: 指定额外的挂载选项,也即指定文件系统启用的属性;
remount: 重新挂载当前文件系统
ro: 挂载为只读
rw: 读写挂载
fstab:开机自动挂载,进入vim /etc/fstab配置完 第一时间输入mount -a
mount: 显示当前系统已经挂载的设备及挂载点
挂载完成后,要通过挂载点访问对应文件系统上的文件;
文件系统的配置文件/etc/fstab
OS在初始时,会自动挂载此文件中定义的每个文件系统
要挂载的设备 挂载点 文件系统类型 挂载选项 转储频率(每多少天做一次完全备份) 文件系统检测次序(只有根可以为1)
例子:
/dev/sda5 /mnt/test ext3 defaults 0 0
fuser:
验证进程正在使用的文件或套接字文件
-v: 查看某文件上正在运行的进程 -k: -m fuser -km MOUNT_POINT:终止正在访问此挂载点的所有进程
df命令——Disk usage of File system
查看磁盘使用情况
语法:
格式:df [选项]... [文件]...
常见命令选项
-h 易读方式查看分区大小
-T 列出文件系统类型
umount命令
语法:
格式:umount 设备名|挂载点
常用命令选项
-a:卸载所有已挂载的非伪文件系统
卸载注意事项:
挂载的设备没有进程使用;
开机自动挂载
/etc/fstab 开机自动挂载文件
1.查看设备UUID
[root@localhost ~]# blkid /dev/sdb1 /dev/sdb5 //查看需要挂载的设备的UUID
2.进入fstab配置
进入配置:
[root@localhost ~]#vim /etc/fstab
格式:
设备文件(卷标名/UUID) 挂载点 类型 挂载参数 备份标记 检测顺序 UUID="............" /mnt ext3 defaults 0 0
etc/fstab文件的语法
DEVIDE MOUNT_POINT RFS_TYPE MOUNT_OPTIONS DUMP_FREQ FSCK_ORDER
详解:
DEVIDE:文件系统的名称,可以使用设备文件名或文件系统的标签名称
MOUNT_POINT:挂载点路径,必须是绝对路径,而且挂载点必须是一个目录
FS_TYPE:文件系统的类型
MOUNT_OPTONS:挂载这个文件系统时的参数
DUMP_FREQ:当使用dump工具时,是否要备份这个文件系统,以及备份的频率。DUMP_FREQ如果是1,代表需要备份;0则代表不需备份。
FSCK_ORDER:执行fsck时,是否要检查这个文件系统以及检查的顺序。如果FSCK_ORDER为0,则代表执行fsck -A时不会检查这个文件系统;
而使用非0的正整数则代表要检查。FSCK_ORDER非0时,也代表执行的顺序。例如1代表第一顺位....以此类推。
3.配置完成 加载更新挂载点
[root@localhost ~]# mount –a //加载更新下挂载点 [root@localhost ~]# mount 查看
autofs触发挂载
1.依赖于autofs服务,由autofs服务提供的”按需访问”机制
只要访问挂载点,就会触发响应,自动挂载预先指定的设备
闲置超过时限(默认5分钟)后,会自动卸载
2.主配置文件 /etc/auto.master
监控点目录 挂载配置文件的路径
挂载点父目录 挂载配置文件(自定义)
3.挂载配置文件,比如/etc/auto.misc
访问点子目录 -挂载参数 :设备名
4.访问autofs自动挂载的光盘目录
确认autofs服务已启动
5./etc/auto.xxx 挂载配置文件
格式:
挂载点子目录(不需要创建) 挂载参数 :设备名
# /etc/init.d/autofs stop 停止autofs服务
# /etc/init.d/autofs start 开启autofs服务
fsck:
检查文件系统
常用命令:
A:依据/etc/fstab的设置,检查所有文件系统的完整性
a:自动修复文件系统
y:去修复时,询问是否执行某一个动作
f:即时文件系统是干净的,也要强制检查文件系统