一、磁盘结构
1、硬盘的物理结构
- 盘片 :硬盘有多个盘片,每个盘片 2 面
- 磁头 :每面一个磁头
2、硬盘的数据结构
- 扇区 :盘片被分为多各扇形区域,每个扇形区存放 512 的数据
- 磁道 :统一盘片不同半径的同心圆
- 柱面 :不同盘片的相同半径构成的圆柱面
3、硬盘存储容量 = 磁头数 x 磁道 (柱面)数 x 每到扇区数 x 没扇区字节数
4、可以用柱面 / 磁头 / 扇区来唯一定位磁盘的每一个区域
二、磁盘接口
1、IDE (并口)
2、SATA (串口)
- 速度快
- 纠错能力强
3、SCSI
- 转速快
- CPU占用资源低
- 主持热插拔
三、MBR
1、定义 : MBR (Master Boot Record)主引导记录
2、位置 :MBR位于硬盘第一个物理扇区处
3、MBR中包含硬盘的主引导程序和硬盘分区表。分区表有 4 个分区记录区,区占16字节,共 64 字节。446 字节存放主引导程序, 2 字节校验。
四、磁盘分区表示
1、Linux中将硬盘等硬盘设备均表示为文件
2、磁盘分区结构
硬盘中的主分区数目只有 4 个,因此主分区和扩展分区的序号也就限制在1~4.扩展分区再分为逻辑分区,逻辑分区的序号始终从 5 开始。
五、实战操作命令
企业真实场景由于硬盘常年大量读写,经常会出现坏盘,需要更换硬盘。或者由于硬盘空间不足,需添加新硬盘,新添加的硬盘需要经过格式化、分区才能被 Linux 系统所使用。
1、检测并确认新硬盘 fdisk -l 命令
①、格式 :fdisk -l [磁盘设备]
②、输出信息说明
- Device :分区的设备文件名称
- Boot :是否是引导分区。是,则有 “ * ” 标识
- Stat / End :分区的初始 / 结束位置 (柱面数)
- Blocks :块,默认大小为 1024 字节
- Id :分区对应的系统ID号,83 表示Linux中的EXT4 分区、8e表示LVM逻辑卷、82 表示 swap、fd 表示 RAID
- System :分区类型
示例:列出当前系统中所有硬盘设备及其分区的信息
[root@localhost ~]# fdisk -l
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000e6128
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xaabc2cc8
2、划分硬盘中的分区 fdisk 命令
①、作用 :在交互式的操作环境中管理磁盘分区
②、格式 :fdisk [ 磁盘设备 ]
③、常用选项 :
- m :查看操作指令的帮助信息
- p :列表查看指令分区信息
- n :新建分区
- d :删除分区
- t :变更分区类型
- w :保存分区设置并退出
- q :放弃分区设置并退出
- Ctrl + 退格键 :删除输入的错误字符
④、示例 :
- 检查新硬盘是否添加
- 使用fdisk 进行分区
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xaee2b609 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):m
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xaee2b609
设备 Boot Start End Blocks Id System
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): “直接回车或p”
Using default response p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):回车
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): “直接回车或 p”
Using default response p
分区号 (2-4,默认 2):2
起始 扇区 (10487808-41943039,默认为 10487808):回车
将使用默认值 10487808
Last 扇区, +扇区 or +size{K,M,G} (10487808-41943039,默认为 41943039):+5G
分区 2 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): e
分区号 (3,4,默认 3):4
起始 扇区 (20973568-41943039,默认为 20973568):回车
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-41943039,默认为 41943039):回车
将使用默认值 41943039
分区 4 已设置为 Extended 类型,大小设为 10 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (2 primary, 1 extended, 1 free)
l logical (numbered from 5)
Select (default p): l
添加逻辑分区 5
起始 扇区 (20975616-41943039,默认为 20975616):回车
将使用默认值 20975616
Last 扇区, +扇区 or +size{K,M,G} (20975616-41943039,默认为 41943039):+1G
分区 5 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):t
分区号 (1,2,4,5,默认 5):5
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”
命令(输入 m 获取帮助):n
Partition type:
p primary (2 primary, 1 extended, 1 free)
l logical (numbered from 5)
Select (default p): l
添加逻辑分区 6
起始 扇区 (23074816-41943039,默认为 23074816):回车
将使用默认值 23074816
Last 扇区, +扇区 or +size{K,M,G} (23074816-41943039,默认为 41943039):回车
将使用默认值 41943039
分区 6 已设置为 Linux 类型,大小设为 9 GiB
3、大小超过 2T 的分区规划 parted 命令
①、 作用 :规划大小超过 2 T的分区,也可用于小分区的规划
②、 格式 :parted [选项] … [分区设备]
③、 交互式状态下的常用命令 :
- ? / help / --help :帮助
- quit / q :保存退出
- print / p :打印
- mklable :改变硬盘的文件类型
- mkpart : 分区
- rm :删除某分区,后面跟分区号, 例如 :rm 3
④、示例:
- 查看新硬盘是否添加
六、 mount命令工具
mount命令工具主要用于将设备或者分区挂载至Linux系统目录下,Linux系统在分区时,基于mount机制将 /dev/sda 分区挂载至系统目录,将设备与目录挂载之后,Linux操作系统方可进行文件的读取和储存。
1、用法:
- mount [-lhV]
- mount -a [选项]
- mount [选项] [–source] <源> | [–target] <目录>
- mount [选项] <源> <目录>
- mount <操作> <挂载点> [<目标>]
2、常见选项:
- -V, --version 显示版本信息并退出
- -l, --show-labels 列出所有带有指定标签的挂载
- -h, --help 显示此帮助并退出
- -v, --verbose 打印当前进行的操作
- -n, --no-mtab 加载没有写入文件/etc/mtab中的文件系统
- -r, --read-only 将文件系统加载为只读模式(同 -o ro)
- -a, --all 挂载 fstab 中的所有文件系统
- -o, --options <列表> 挂载选项列表,以英文逗号分隔
3、企业常用 mount 案例
mount /dev/sdb1/date
挂载 /dev/sdb1分区至/date/目录。
mount /dev/cdrom/mnt
挂载cdrom光盘至/mnt目录。
mount -o remount。rw、
重新以读写模式挂载 / 系统