磁盘管理与文件系统
磁盘基础
-
磁盘的物理结构
盘片:硬盘有多个盘片,每个盘片有2面
磁头:每面1个磁头 -
硬盘的数据结构
扇区:盘片被分成多个扇形区域,每个扇区存放512字节数据。扇区是硬盘最小的存储单元
磁道:同一盘片不同的半径的同心圆,是由磁头在盘片表面划出的圆形轨迹
柱面:不同盘片相同半径构成的圆柱面,由同一半径圆的多个磁道组成
-
硬盘存储容量=磁头数x磁道(柱面)数x每道扇区数x每扇区字节数(512字节)
-
可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域
-
磁盘接口类型
类型 | 说明 |
---|---|
IDE | 并行数据线连接主板与硬盘,抗干扰性太差,且排线占用空间较大,不利电脑内部散热,已逐渐被SATA所取代 |
SATA | 抗干扰性强,支持热插拔等功能,速度快,纠错能力强 |
SCSI | 小型机系统接口,SCSI硬盘广为工作站级个人电脑以及服务器所使用,资料传输时CPU占用率较低,转速快,支持热插拔等。 |
SAS | 是新一代的SCSI技术,和SATA硬盘相同,都是采取序列式技术以获得更高的传输速度,可达到6Gb/s。 |
MBR与磁盘分区表示
- 主引导记录(MBR:Master Boot Record)
- MRB位于硬盘第一个物理扇区处
- MBR中包含硬盘的主引导程序和硬盘分区表
- 分区表又4个分区记录区,每个分区记录区占16个字节
- Linux中将硬盘、分区等设备均表示为文件
- MBR磁盘分区支持最大卷为2.2TB,每个磁盘最多有4个主分区,或者3个主分区1个扩展分区和在扩展分区里面分多个逻辑分区
- MBR总共512字节,前476个字节是主引导记录,后477-510字节则用于保存分区表。分区表共4个分区记录区,每个分区记录区占16个字节
字符 | 说明 |
---|---|
sd | SCSI设备 |
hd | IDE设备 |
a | 硬盘的顺序号 |
5 | 分区的顺序号 (主分区1-4,第一个逻辑分区始终从5开始) |
例如 | /dev/hda5 |
磁盘分区结构
- 硬盘中的主分区数目只有4个
- 主分区和扩展分区的序列号限制在1-4
- 扩展分区再分则为逻辑分区
- 逻辑分区的序号始终从5开始
- fdisk -l [磁盘设备] (查看磁盘分区)
管理磁盘及分区
全局唯一标识分区表(GPT:GUID Partition Table)
- GPT是一个实体硬盘的分区结构。它是可扩展固件接口标准的一部分,用来替代BIOS中的主引导记录分区表。 传统的主启动记录(MBR)磁盘分区支持最大卷为2.2TB,每个磁盘最多有4个主分区,或3个主分区、1个扩展分区和在扩展分区里面分多个逻辑分区。
- 与MBR分区方法相比,GPT具有更多的优点,因为它允许每个磁盘有多达128个分区,支持高达18EB(千兆兆字节)的卷大小,允许将主磁盘分区表和备份磁盘分区表用于冗余,还支持唯一的磁盘和分区 ID (GUID)。
- 若磁盘小于2TB,可用fdisk /dev/sdb 进行分区,即MBR 分区格式
- 若磁盘大于2TB,可用parted /dev/sdb 进行分区,因为MBR分区磁盘是不能大于2.2TB,所以超过2TB一般使用GPT 分区格式
操作步骤
1.选择分区硬盘
- 首先类似fdisk一样,先选择要分区的硬盘,此处为/dev/hdd: ((parted)表示在parted中输入的命令,其他为自动打印的信息)
- #parted /dev/hdd
GNU Parted 1.8.1
Using /dev/hdd
Welcome to GNU Parted! Type ‘help’ to view a list of commands.
2.创建分区
- 选择了/dev/hdd作为我们操作的磁盘,接下来需要创建一个分区表(在parted中可以使用help命令打印帮助信息)
- (parted) mklabel
New disk label type? gpt
要正确分区大于2TB的磁盘,应该使用gpt方式的分区表,输入gpt后回车
3.完成分区操作
- 创建好分区表以后,就可以进行分区操作了,执行mkpart命令,分别输入分区名称,文件系统和分区的起止位置
- (parted) mkpart
Partition name? []? dp1
File system type? [ext2]? ext4
Start? 0
End? 500GB
可以用百分比表示,比如Start? 0% , End? 50%)
4.验证分区信息
- 分好区后可以使用print命令打印分区信息,例如↓↓↓
- (parted) print
Model: VBOX HARDDISK (ide)
Disk /dev/hdd: 2199GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 500GB 500GB dp1
5.格式化操作,完成后即可挂载使用
- mkfs.ext4 /dev/hdd1
mkdir /data
mount /dev/hdd1 /data
6.最后加入/etc/fstab自动挂载
- vi /etc/fstab
/dev/sdd1 /data ext4 defaults 0 0
7.删除分区
- 如果分区错了,可以使用rm命令删除分区
- (parted) rm 1(rm后面使用分区的号码,就是用print打印出来的Number)
(parted) print
Model: VBOX HARDDISK (ide)
Disk /dev/hdd: 2199GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
检测并确认新硬盘fdisk
作用:查看或管理磁盘分区
fdisk -l [磁盘设备]
或者
fdisk [磁盘设备]
不带磁盘设备选项则查看所有磁盘
字段含义
字段 | 说明 |
---|---|
Device | 分区的设备文件名称 |
Boot | 是否为引导分区。若是则带“*”表示 |
Start | 该分区在硬盘中的起始位置(柱面数) |
End | 该分区在硬盘中的结束位置(柱面数) |
Blocks | 分区的大小,以Blocks(块)为单位 默认的块大小为1024字节 一个块由多个扇区组成 |
ID | 分区对应的系统ID号 例如:83代表XFS或EXT4分区 8e代表LVM逻辑卷 82代表SWAP |
system | 分区类型 |
例如 | /dev/sda1 * 2048 1026047 512000 83 linux |
交互模式常用命令
命令 | 说明 |
---|---|
m | 获取帮助菜单 |
n | 新建分区 |
p | 查看分区情况 |
d | 删除分区 |
t | 变更分区类型 |
w | 保存分区操作并退出 |
q | 不保存分区操作并退出 |
创建分区步骤
n
↓
p:主分区;e:扩展分区;l:逻辑分区
↓
设置分区:1(范围1-4,Enter键接收默认值)
↓
设置柱面序列(直接Enter接收默认值)
↓
设置分区大小:+20G("+"指定大小为20GB,直接Enter接收默认值表示所有空间)
↓
w
创建文件系统
mkfs
- Make Filesystem,创建文件系统的过程也是格式化过程
- mkfs -t 文件系统类型 分区设备
- df -hT 查看当前文件系统类型
命令
- mkfs -t xfs /dev/sdb1
- mkfs.xfs /dev/sdb1
mkswap
-
make swap (创建交换文件系统)
-
mkswap 分区设备
-
主分区和逻辑分区都可用于创建交换分区
-
创建交换文件系统(swap)之前,目标分区应先通过fdisk工具将分区类型的ID号设为82
fdisk /dev/sdb
↓
t
↓
5
↓
82
↓
w
命令
- swapon /dev/sdb2 (启用新增加的交换分区)
- swapoff /dev/sdb2 (停用指定的交换分区)
- swpon -s (查看每个分区的swap状态信息)
- free -m (查看总的swap状态信息)
注意事项
变更硬盘(特别是正在使用的硬盘)的分区设置以后,最好选择将系统重启一次或者执行"partprobe"命令使操作系统检测新的分区表情况,以防格式化分区时损坏硬盘中已有的数据
partprobe /dev/sdb
挂载、卸载文件系统
mount
- 作用:挂载文件系统、IOS镜像到指定文件夹
命令
- mount [-t 类型] 存储设备 挂载点目录 (-t:用于指定文件系统类型,可省略)
- mount -o loop ISO镜像文件 挂载点目录 (-o:挂载参数列表,以英文逗号分开;如果用来描述特殊设备,则用loop指定)
umount
- 作用:卸载已挂载的文件系统
- 需要挂载的设备或目录没有被在使用中,有的话要先退出挂载目录
命令
- umount 存储设备位置
- umount 挂载点目录
- umount [-lf] 存储设备目录或挂载点目录 (-if:强制卸载/解挂)
查看挂载情况
1.直接mount命令
2.df [选项]
选项 | 说明 |
---|---|
-i | 显示分区的inode号码数量 |
-h | 显示分区的容量单位 |
-T | 显示文件系统类型 |
查看设备的UUID和文件系统类型
blkid [设备]
设置文件系统的自动挂载
- [ ]
- linux操作系统在每次开机时,会自动读取/etc/fstab 文件的内容,自动挂载所指定的文件系统
- /etc/fstab 配置文件 包含需要开机后自动挂载的文件系统记录
操作步骤
进入vim或vi编辑器对 /etc/fstab 配置文件进行相应修改
vim /etc/fstab
字段 | 说明 |
---|---|
第1字段 | 分区名或设备卷标名 |
第2字段 | 文件系统的挂载点目录的位置 |
第3字段 | 文件系统类型,如xfs、 swap等 |
第4字段 | 挂载参数,即mount命令"-o"选项后可使用的参数。 例如:defaults(默认参数)、rw(可读写)、r0(只读)、noexec(禁用执行程序) |
第5字段 | 表示文件系统是否需要 dump备份(dump 是一个备份工具),一般设为1时表示需要,设为0时将被dump 忽略 |
第6字段 | 该数字决定在系统启动时进行磁盘检查的顺序。0表示不进行检查,1表示优先检查,2表示其次检查。根分区应设为1,其他分区设为2 |
例如 | /dev/sdb1 /opt xfs defaults 0 0 /dev/sr0 /mnt iso9660 defaults 0 0 |