day24学习笔记(4月6日)
磁盘管理
硬盘的概念
- 硬盘是什么
硬盘是计算机中用来存储、持久化存储数据的一个设备。市面上主流的硬盘有两类、机械硬盘、固态硬盘,有不同的接口(M.2、SATA、IDE、SCSI、SAS等),有个人硬盘,服务器硬盘
- 与内存的区别
硬盘中的数据,关机后,一直存在。硬盘也被成为磁盘,因为磁盘存储数据和电磁有关,比如机械硬盘中就有多张磁盘。
新磁盘的启用过程
- 磁盘分区
/dev/sda1
、/dev/sd1
、/dev/sdc
、- 格式化文件系统 NTFS、ext3、ext4、xfs
- 挂载
- 读写数据
磁盘分区工具
磁盘的工作原理
工作原理:磁头在旋转的盘面找到数据,完成读写
主要组成部分:
内部零件:
机械手臂
磁头
盘片
主轴马达
硬盘接口(M.2NAMV协议、SATA、SAS、PACIE、)
盘面需要记忆内容:
磁道
扇面
扇区(sector):扇区是磁盘读写信息的最小单位,大小为512bytes (512字节)
块(block):多个连续的、相邻的扇区,组合在一起,形成块(linux下的block)、在windows中成为簇,linux文件系统会读取8个连续的相邻扇区,因此最小的linux文件单位是4k即(8*512bytes=4096bytes=4KB)
文件的数据,是存储在硬盘中的block块中,也就是连续多个扇区中
MBR分区表(master、boot、record disk partition table)
在MBR磁盘的第一个扇区内保存着系统启动代码
和硬盘分区表。开启机器启动代码就会指引计算机从活动分区引导启动操作系统;分区表的作用是记录硬盘的分区信息。
mbr分区的特点
1、MBR分区表最多只能识别2T的空间,大于2T的容量无法识别,造成磁盘空键的浪费
2、MBR分区表最多只能支持4个主分区或3个主分区1个扩展分区,逻辑分区不受限制
3、优点是兼容性较好
GPT分区(Globally Unique Identifier Partition Table)
GPT分区的特点
1、在windows系统中可支持128个分区
2、自带磁盘数据保险机制
更多关于Mbr的原理,https://baike.baidu.com/item/%E4%B8%BB%E5%BC%95%E5%AF%BC%E6%89%87%E5%8C%BA/7612621
关于mbr、gpt更多硬盘原理,https://www.eassos.cn/jiao-cheng/ying-pan/mbr-vs-gpt.php
硬盘命名规则
不同硬盘(不同接口)插入到系统中,有不同的名字
OS | IDE(并口) | SATA(串口) | SCSI |
---|---|---|---|
RHEL5 | /dev/hda | /dev/sda | /dev/sda |
RHEL6 | /dev/sda | /dev/sda | /dev/sda |
RHEL7 | /dev/sda | /dev/sda | /dev/sda |
按分区数量命名
/dev/sda1
/dev/sda2
/dev/sda3
系统分区的三种类型
- 主分区
一个硬盘的主分区也就是包含操作系统启动所必需的文件和数据的硬盘分区,要在硬盘上安装操作系统,则该硬盘必须得有一个主分区。
第一块硬盘,系统启动的分区/dev/sda,安装操作系统
- 扩展分区
扩展分区也就是除主分区外的分区,但它不能直接使用,必须再将它划分为若干个逻辑分区才行。
- 逻辑分区
逻辑分区大小总和不能超过扩展分区大小
逻辑分区分区编号从5开始
文件系统的分类
windows识别FAT32、exFAT、NTFS类型的文件系统
macos识别exexFAT、HFS/HFS+、APFS
linux识别Ext2/3/4(centos4/5/6)、XFS(centos7)
u盘使用的文件系统是exFAT
fdisk命令
#用于完成MRB类型的分区操作
-v 打印 fdisk 的版本信息并退出.
-l 列出指定设备的分区表信息并退出。 如果没有给出设备,那么使用那些在 /proc/partitions (如果存在)提到的.
-u 以扇区数而不是以柱面数的形式显示分区表中各分区的信息
#交互式的参数
Command action
a toggle a bootable flag 切换可启动标志
b edit bsd disklabel 编辑 bsd 磁盘标签
c toggle the dos compatibility flag 切换 dos 兼容性标志
d delete a partition 删除分区
g create a new empty GPT partition table 创建新的空 GPT 分区表
G create an IRIX (SGI) partition table 创建一个 IRIX (SGI) 分区表
l list known partition types 列出已知分区类型
m print this menu 打印此菜单
n add a new partition 添加新分区
o create a new empty DOS partition table 创建新的空 DOS 分区表
p print the partition table 打印分区表
q quit without saving changes 退出而不保存更改
s create a new empty Sun disklabel 创建新的空 Sun 磁盘标签
t change a partition's system id 更改分区的系统 ID
u change display/entry units 更改显示/输入单位
v verify the partition table 验证分区表
w write table to disk and exit 将表写入磁盘并退出
x extra functionality (experts only) 额外功能(仅限专家)
gdisk命令
#需要安装
yum install gdisk -y
#用于完成GTP类型分区
#交互式的参数
Command (? for help): ?
b back up GPT data to a file 将 GPT 数据备份到文件
c change a partition's name 更改分区的名称
d delete a partition 删除分区
i show detailed information on a partition 显示分区上的详细信息
l list known partition types 列出已知分区类型
n add a new partition 添加新分区
o create a new empty GUID partition table (GPT) 创建新的空 GUID 分区表 (GPT)
p print the partition table 打印分区表
q quit without saving changes 退出而不保存更改
r recovery and transformation options (experts only) 恢复和转换选项(仅限专家)
s sort partitions 对分区进行排序
t change a partition's type code 更改分区的类型代码
v verify disk 验证磁盘
w write table to disk and exit 将表写入磁盘并退出
x extra functionality (experts only) 额外功能(仅限专家)
? print this menu 打印此菜单
parted命令
#可以使用parted命令修改磁盘分区的类型(gpt改为mbr)
#参数
-l, --list lists partition layout on all block devices 列出所有块设备上的分区布局
-m, --machine displays machine parseable output 显示机器可解析输出
-s, --script never prompts for user intervention 从不提示用户干预
-v, --version displays the version 显示版本信息
-a, --align=[none|cyl|min|opt] alignment for new partitions 新分区的对齐方式
#交互式常用的参数
mklabel,mktable LABEL-TYPE create a new disklabel (partition table) 创建新的磁盘标签(分区表)
print display the partition table 显示分区表
磁盘管理常用命令
lsblk #查看新增磁盘的信息
lsblk -f #查看磁盘分区的文件系统
df -h #查看磁盘的信息
挂载的理解
挂载通常是将一个存储设备
挂接到一个已经存在的目录
上,访问这个目录(挂载点)
就是访问该存储设备的内容。
对于Linux系统来说,一切皆文件,所有文件都放在以根目录
为起点的树形目录结构中,任何硬件设备也都是文件形式。
挂载注意事项
1.一个目录、同一时间只能被一个设备挂载
2.一个设备可以挂载多个目录
3.如果一个目录被多个设备挂载,只能看到最后一个挂载的设备数据,其他的设备数据会被隐藏。
4.工作里建议用新的文件夹,作为挂载点。
mount命令
mount命令可以将指定的文件系统
挂载到指定目录(挂载点)
,在Linux系统下必须先挂载后才能访问设备
- 新的硬盘插到机器上,分区、格式化文件系统后,此时可以可以存放数据了
- 此时的硬盘插到linux上,也只是读取出了一个封闭的盒子,无法读写
- 和linux的文件夹进行
关联、挂载
后,即可通过访问被挂载的文件夹
,访问到硬盘的数据
参数 | 解释 |
---|---|
-l | 显示系统以挂载的设备信息 |
-a | 加载文件/etc/fstab中设置的所有设备 |
-t | t<文件系统类型> 指定设备的文件系统类型。如果不设置,mount自行选择挂载的文件类型 minix Linux最早使用的文件系统。 ext2 Linux目前的常用文件系统。 msdos MS-DOS 的 FAT。 vfat Win85/98 的 VFAT。 nfs 网络文件系统。 iso9660 CD-ROM光盘的标准文件系统。 ntfs Windows NT的文件系统。 hpfs OS/2文件系统。Windows NT 3.51之前版本的文件系统。 auto 自动检测文件系统。 |
-o | 添加挂载选项,是安全、性能优化重要参数 |
-r | 只读,等于-o ro |
-w | 读写,等-o rw |
mount -o选项详解
参数 | 含义 |
---|---|
async | 以异步方式处理文件系统I/O操作,数据不会同步写入磁盘,而是写到缓冲区,提高系统性能,但损失数据安全性 |
sync | 所有I/O操作同步处理,数据同步写入磁盘,性能较弱,数据安全性高 |
atime/noatime | 文件被访问时是否修改时间戳,不更改时间,可以提高磁盘I/O速度 |
auto/noauto | 通过-a参数可以自动被挂载/不自动挂载 |
defaults | 默认值包括rw、suid、dev、exec、auto、nouser、async,/etc/fstab大多默认值 |
exec/noexec | 是否允许执行二进制程序,取消提供安全性 |
suid/nosuid | 是否允许suid(特殊权限)生效 |
user/nouser | 是否允许普通用户挂载 |
remount | 重新挂载 |
ro | 只读 |
rw | 读写 |
umount命令和注意事项
umount命令用于取消已挂载的设备
-f 强制卸载
#注意:当使用umount取消设备挂载提示繁忙则说明,目录仍有人使用。正确的排错思路
1、使用lsblk命令查看核实挂载情况
2、如果当前工作目录处于挂载目录内,需用用cd命令切换目录,再进行取消挂载动作
3、使用lsof命令加设备路径,查看进程信息
4、使用kill -9强制杀死进程,再进行取消挂载动作
5、可以使用df -h 命令查看挂载是否取消
Eject弹出设备命令
eject # 弹出光驱
eject -r /dev/sr0 # 指定设备弹出
[yuchao-linux-242 root ~]#eject
自动挂载磁盘分区
#开机自动挂载
vim /etc/fstab
参照写入即可
#自动挂载磁盘分区
blkid /dev/sdb
/dev/sdb: UUID="c7f28407-0c4d-4dcf-9b45-dcb8ffe24c83" TYPE="xfs"
vim /etc/fstab
UUID="c7f28407-0c4d-4dcf-9b45-dcb8ffe24c83" TYPE="xfs" /opt/yy xfs defaults 0 0
df -h #检查当前挂载数情况
mount -a #挂载所有设备