Linux磁盘管理学习总结
文章目录Linux磁盘设备使用逻辑磁盘设备管理设备挂载和卸载磁盘分区设备安装文件系统swap分区管理配额文件系统分区磁盘加密开机自动加载Linux磁盘设备使用逻辑新磁盘分区格式化挂载加密:Luks格式化磁盘设备管理fdisk -l#真实存在的设备fdisk 设备#设备分区后cat /proc/partitions#系统识别的设备mkfs.xfs#格式化后blk...
·
基础概念
- 硬盘中的概念
- 磁头:【head】:磁头指的是通过磁性原理读取磁性介质上数据的部件,每个盘片一般有上下两面,分别对应1个磁头,共2个磁头。
- 磁道:【track】当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道。
- 柱面:【cylinder】:在有多个盘片构成的盘组中,由不同盘片的面,但处于同一半径圆的多个磁道组成的一个圆柱面。
- 扇区:【sector】磁盘上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区。硬盘的读写以扇区为基本单位 。
- CHS:【Cylinder-head-sector,柱面-磁头-扇区】是早期对硬盘驱动器的每一个物理数据块进行编址的一种方法
- LBA:【Logical Block Address】逻辑区块地址,对是描述计算机存储设备上数据所在区块的通用机制,一般用在像硬盘这样的辅助记忆设备。LBA可以意指某个数据区块的地址或是某个地址所指向的数据区块。
- 分区类型
- MBR:【Master Boot Record】主引导记录,又叫做主引导扇区,是计算机开机后访问硬盘时所必须要读取的首个扇区,它在硬盘上的三维地址为(柱面,磁头,扇区)=(0,0,1)。
主引导记录的组成(512字节,LBA0):启动代码(446个字节)+硬盘分区表(64字节)+结束标志字(2字节)- 启动代码:【bootloader】446个字节为操作系统启动需要的数据;
- 硬盘分区表:【DPT】64个字节表示磁盘的分区信息,由于MBR分区表64个字节的长度限制,最多只能划分4个主分区,或者3个主分区1个扩展分区。当使用扩展分区来划分逻辑分区时,会即扩展分区后生成一个EBR的512字节的扇区,使用类似MBR的方式来表示 逻辑分区,但是EBR前446个字节为空,后64个字节为逻辑分区的分区信息,同样以55AA结束该扇区;
- 结束标志字:最后2个字节内容为55AA表示扇区结尾。
- GPT:GPT
GPT即全局唯一标识分区表(GUID Partition Table)是一个实体磁盘的分区表的结构布局的标准。它是可扩展接口(EFI)标准的一部分。由于MBR分区表最大可寻址的存储空间只有2TB这个局限性。CPT就诞生了,CGPT分类64bits给逻辑块地址,这就意味着寻址存储空间达到8ZB。GPT支持最多128个主分区。
GPT=保护性MBR(LBA0)+GPT头(LBA1)+分区表(LBA2 ~ 33)+分区(LBA34 ~ -34)+分区表备份(LBA-2 ~ -33)+GPT头备份(LBA-1)
通常每个逻辑块(LBA)为512字节,每个分区的记录为128字节。负数的LBA地址表示从最后的块开始倒数,−1表示最后一个块。
- 文件系统
文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。
【文件系统类型】:- vfat:支持包括一系列相关文件系统 ( VFAT/FAT16/FAT32 ), 这些文件系统针对较旧版本的 Microsoft Windows 开发 , 在大量的系统和设备上受支持
- 0iso9660: 光盘格式文件系统
- nfs:网络文件系统
- ramfs:内存文件系统
- ext4:rhel6的标准文件系统。它非常强大可靠 , 具有多项可以提高现代工作量处理性能的功能
- ext2:是常用于 Linux 中的较旧的文件系统。它简单可靠 ,非常适合小型存储设备,但是效率低于 ext4
- xfs:rhel7的标准文件系统其具备数据完全、性能稳定、扩展性强 ( 8eb-1byte ) 、传输速率高 ( 7G/s )
- Linux swap: 它是Linux中一种专门用于交换分区的swap文件系统
fstab
文件
/etc/fstab
是用来存放文件系统的静态信息的文件,当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。
规定格式:<fs_sepc> <fs_file> <fs_vfstype> <fs_mntops> <fs_freq> <fs_passno>
- 第1个字段:设备分区
- 第2个字段:挂载文件路径
- 第3个字段:挂载分区文件系统类型
- 第4个字段:挂载参数,参数如下
- Async/sync 设置是否为同步方式运行,默认为async
- auto/noauto 当下载mount -a 的命令时,此文件系统是否被主动挂载。默认为auto
- rw/ro 是否以以只读或者读写模式挂载
- exec/noexec 限制此文件系统内是否能够进行"执行"的操作
- user/nouser 是否允许用户使用mount命令挂载
- suid/nosuid 是否允许SUID的存在
- uesrquota 启动文件系统支持磁盘配额模式
- groupquota 启动文件系统对群组磁盘配额模式的支持
- Defaults 同时具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置
- 第5个字段:能否被dump备份命令作用
- 0 代表不做dump备份
- 1代表要进行dump备份
- 第6个字段:是否检验扇区,开机的过程中,系统默认会以fsck检验我们系统是否为完整
- 0 不要检验
- 1 1级别进行检验(一般根目录设置为1级别,选择最早检验)
- 2 1级别检验完成后进行2级别检验
crypttab
文件
/etc/crypttab 文件用于描述 在系统启动过程中创建的加密块设备(加密卷)。
规定格式:<name> <encrypted-device> [password] [options]
- 第1个字段:(必须)是加密卷的映射名称, 也就是映射在 /dev/mapper/ 目录下的设备名称。
- 第2个字段:(必须)是加密卷自身。
- 第3个字段:(可选)是加密卷的密码文件。 密码文件必须以绝对路径表示,并且其中仅包含用于解开加密卷的密码。
- 第4个字段:(可选)是逗号分隔的加密卷选项。
Linux磁盘设备使用逻辑
操作命令分类
- 新磁盘设备管理
fdisk -l #真实存在的设备
fdisk 设备 #给设备分区
cat /proc/partitions #系统识别的设备,查看设备分区
partprobe #重新加载分区表
- 设备加密(可选)
cryptsetup [选项] 设备 #设备加密
- 分区后设备格式化
mkfs.xfs #格式化为xfs文件格式
mkswap #格式化为swap文件格式
blkid #系统可以使用的设备
- 设备挂载
mount #挂载
umount #卸载
df #查看系统正在挂在的设备
- 其他
- swap分区
swapon [选项] 分区 #用于激活Linux系统中交换空间
swapon -a 分区 #激活指定swap分区
swapon -s #显示交换区的使用状况
swapoff 分区 #关闭swap分区
- 配额设置
edquota命令 #用于编辑指定用户或工作组磁盘配额;edquota预设会使用vi来编辑使用者或群组的quota设置
edquota -u username #设置用户的quota,这是预设的参数;
edquota -g groupname #设置群组的quota
edquota -t #设置宽限期限
edquota -p 用户1 -u 用户2 用户3 用户4
#将用户1的quota设置为模板设置其他用户或群组
#例如edquota -p tom -u lee leo harry
quotaoff 分区或挂载点 #关闭分区或者挂载点quota设置
磁盘分区
新硬盘设备分区,分区方式为mbr分区,最多4个主分区,或者3主分区+1个扩展分区,扩展分区中可以分多个逻辑分区(理论是多个,但是最多16个,16个以上无法读取)
- 先使用
fdisk -l
,查看硬件信息,选择要分区的硬盘设备 - 使用
fdisk
命令,针对要分区的硬盘进行分区,如fdisk /dev/vdb
,针对vdb设备进行分区 - 进入
fdisk
的命令提示:[m]查看帮助信息,[n]新建分区,[d]删除分区,[p]显示分区信息,[q]退出,[w]保存分区信息到设备,[t]修改分区类型
[n]新建分区
Command (m for help): n
#n新增分区
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p):
#选择分区方式:主分区p;扩展分区e;不输入为默认选项
Using default response p
#提示使用默认分区,此时默认选项为主分区
Partition number (2-4, default 2):
#分区号选择,不输入为默认选项
First sector (616448-20971519, default 616448):
#分区开始扇区点
Using default value 616448
Last sector, +sectors or +size{K,M,G} (616448-20971519, default 20971519): +300M
#分区结束扇区点,可以使用+size{K,M,G},方式规定分区大小
Partition 2 of type Linux and of size 300 MiB is set
#分区成功提示
[d]删除分区
Command (m for help): d
#d删除分区
Partition number (1,2,5, default 5): 2
#提示选择删除的分区号
Partition 1 is deleted
#完成分区删除
[t]修改分区类型
Command (m for help): t
#t修改分区类型
Partition number (1-6, default 6): 6
#选择修改类型的分区号
Hex code (type L to list all codes): 82
#可用l查看类型对应代号,此处修改为swap分区
Changed type of partition 'Linux' to 'Linux swap / Solaris'
格式化:安装文件系统
mkfs: build a Linux filesystem
mkfs命令用于在设备上(通常为硬盘)创建Linux文件系统。
mkfs本身并不执行建立文件系统的工作,而是去调用相关的程序来执行,如mkfs.cramfs、mkfs.ext3、mkfs.fat、mkfs.msdos、mkfs.xfs、mkfs.btrfs、mkfs.ext2 、mkfs.ext4、mkfs.minix、mkfs.vfat
mkfs命令
mkfs -t 格式 分区 #对应分区建立指定格式的文件系统
mkfs -t xfs /dev/sdb1 #等于下面的mkfs.xfs /dev/sdb1
mkfs.xfs命令
mkfs.xfs 分区 #给分区建立xfs文件系统
mkfs.xfs -f /dev/sdb1 #强制建立xfs文件系统给sdb1
mkswap命令
mkswap 分区 #给分区建立linux swap文件系统格式
设备挂载和卸载
- 临时挂载(重启后失效)
- 挂载与卸载
mount #查看挂载信息
mount [选项] 设备 挂载点 #挂载设备
mount /dev/sdb1 /mnt #挂载sbd1设备到mnt目录
mount -o ro 设备 挂载点 #只读挂载
mount -o remount,rw 设备或挂载点 #重新挂载,赋予读写权限
mount -o usrquota 设备 挂载点 #挂载时开启配额功能
mount -l #显示已加载的文件系统列表
umount 设备或挂载点 #卸载
umount /dev/sdb1|/mnt #卸载sdb1设备或挂载文件/mnt
- 当挂载设备在被进程使用时,无法卸载,提示使用fuser或者losf清除进程
fuser
fuser -kvm 设备或挂载点 #k:kill;v:显示过程;m:挂载
lsof /mnt #查询mount该载被使用信息的PID
kill -9 PID #关闭PID
注意:mount可以多次挂载,每次挂载都会覆盖之前的;但是在umount卸载时,就要卸载多次之前mount的操作
- 永久挂载
修改配置文件/etc/fstab文件,重启后自动运行挂载
vim /etc/fstab #添加自动挂载策略,开机后自动运行
/dev/vdb1 /mnt xfs defaults 0 0
#设备 挂载点 文件点 挂载参数 是否备份 是否检测
特殊分区:swap
- 创建swap分区
- fdisk 设备分区并设定分区标签为82
Command (m for help): t
Partition number (1-6, default 6): 6
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'
- 重新加载分区表
partprobe
- mkswap格式化分区
[root@lbj ~]# mkswap /dev/vdb6
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=0bb2346a-929d-4f9c-8efe-12b675449085
- 修改
/etc/fstab
文件,添加信息
/dev/vdb6 swap swap defaults 0 0
swapon -a 分区
激活分区swapon -s
显示
- 删除swap分区
vim /etc/fstab #删除相关配置
swapoff /dev/vdb6 #关闭相应分区
swapon -s #查看分区信息
配额
配额:控制用户在设备分区中能使用空间的大小
- 开启针对分区开启配额功能
- 修改配置文件,永久生效
vim /etc/fstab
/dev/vdb1 /mnt xfs defaults,usrquota 0 0
# ,添加配额功能
- 临时配置
mount -o usrquota /dev/vdb1 /public #挂载时开启配额功能
chmod 1777 /public #修改挂载文件权限
- 给用户分配
edquota -u tom #开启用户tom的配额
Disk quotas for user tom (uid 1000):
Filesystem blocks soft hard inodes soft hard
/dev/vdb1 0 0 0 0 0 0
#文件系统分区 现存所有文件大小 警告限制 实际限制 现存所有文件个数 警告限制 实际限制
- 关闭
quotaoff /dev/vdb1
磁盘加密
- 建立分区
/dev/vdb3
- 对分区加密
cryptsetup luksFormat /dev/vdb3 #加密vdb3分区
WARNING!
========
This will overwrite data on /dev/vdb1 irrevocably.
Are you sure? (Type uppercase yes): YES #注意此处YES要大写
Enter passphrase: #设置一个8位符合密码规则的密码
Verify passphrase: #密码确认输入
- 创建文件系统
- 打开加密分区,需要给分区命名(命名test1),命名会映射在/dev/mapper/目录中
cryptsetup open /dev/vdb3 test1 #打开加密分区,并且命名
Enter passphrase for /dev/vdb3: #密码确认
- 查看加密分区test1是否出现
ll /dev/mapper/
- 创建文件系统
mkfs.xfs /dev/mapper/test1
- 挂载分区,正常使用
- 卸载分区,关闭时用
- umount卸载分区
- 关闭加密硬盘cryptsetup close test1
设置磁盘加密开机自动加载方式
注意:此处使用的分区为已加载过系统文件的加密分区
- 修改加载文件
vim /etc/fstab
/dev/mapper/test1 /test xfs defaults 0 0
#添加挂载新规则
- 修改加密块设备配置
vim /etc/crypttab
test1 /dev/vdb3 /keys/vdb3key
#映射命名 加密分区 密码文件路径
- 设置密码文件
vim /keys/vdb3key
wantstopcantstop #文件内容仅为密码
- 添加新密码,关联密码文件
cryptsetup luksAddKey /dev/vdb3 /keys/vdb3key
Enter any existing passphrase: #输入之前存在的密码
更多推荐
已为社区贡献1条内容
所有评论(0)