文章目录
设备和磁盘
Linux的设备分类
块设备
block,存储单位为“块”,磁盘
字符设备
char,存储单位为“字符”,键盘
磁盘分类
机械硬盘(HDD)
固态硬盘(SDD)
设备文件
1、磁盘设备的设备命名为:/dev/DEV_FILE
2、不同磁盘标识:a-z,aa,ab…
/dev/sda、/dev/sdb、…/dev/sdaa、/dev/sdab
同一设备上的不同分区:1、2、3…
/dev/sda1、/dev/sda5
Linux磁盘分区
为什么分区
1、优化I/O性能
2、实现磁盘空间配额限制
3、提高修复速度
4、隔离系统和程序
5、安装多个OS
6、采用不同的文件系统
磁盘寻址方式
CHS:
采用24bit位寻址
其中前10位标识cylinder,中间8位表示head,后面6位表示sector
LBA(logical block addressing):
LBA是一个整数,通过转换位CHS格式完成磁盘具体寻址
LBA采用48bit位寻址
最大寻址空间128
由于CHS 寻址方式的寻址空间在大概8GB 以内,所以在磁盘容量小于大概8GB 时,可以使用CHS 寻址方式或是LBA 寻址方式;在磁盘容量大于大概8GB 时,则只能使用LBA 寻址方式
分区方式
两种分区方式:MBR、GPT
1、MBR:Master Boot Record,1982年,使用32位表示扇区数
如何分区:按柱面
0磁道0扇区:512bytes
446bytes:boot loader
64bytes:分区表
16bytes:表示一个分区
2、GPT:
系统引导方式
https://www.zhihu.com/question/21672895
Linux上如何使用磁盘
Linux分区命令
列出块设备
lsblk
fdisk -l /dev/sda
cat /proc/partitions
创建分区
1、fdisk
2、gdisk创建GPT分区
3、parted高级分区操作(创建、复制、调节大小等等)实时性,小心使用。aix, amiga, bsd, dvh, gpt, mac, msdos, pc98, sun, loop 都能创建。
文件系统
查看支持的文件系统
在/lib/modules/xxx/kernel/fs
Linux的文件系统类型
ext2(Extended file system), ext3,ext4, xfs (SGI ), btrfs (Oracle ), reiserfs, jfs(AIX), swap
根据其是否支持"journal" 功能:
日志型文件系统: ext3, ext4, xfs, …
非日志型文件系统: ext2, vfat
光盘:iso9660
Windows :FAT32, exFAT,NTFS
Unix: FFS (fast ), UFS (unix ), JFS2
网络文件系统:NFS, CIFS
集群文件系统:GFS2, OCFS2 (oracle) 例:11.11 淘宝
分布式文件系统: fastdfs,ceph, moosefs, mogilefs,glusterfs, Lustre
RAW:未经处理或者未经格式化产生的文件系统
创建文件系统
(1)mkfs命令:
mkfs. 能创建很多类文件系统 例:mkfs.xfs /dev/sda1 给/dev/sda1创建xfs类型的文件系统
ext# xfs btrfs vfa
mkfs -t 是个c写的脚本,就是调用mkfs. 命令 例:mkfs -t ext4 /dev/sda1 给/dev/sda1创建ext4类型的文件系统
-f 强制重建,如果这个设备已经分过其他格式的文件系统了
(2)mke2fs :创建文件系统,ext系列文件系统专用管理工具,例:mke2fs -t ext4 -L test /dev/sdc1 给/dev/sdc1创建ext4卷标为test的文件系统
-t {ext2|ext3|ext4} 格式
-b {1024|4096} block快大小
-L ‘LABEL’ 卷标
-j: 于 相当于 -t ext3
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i #: 为数据空间中每多少个字节创建一个inode ;此大小不应该小于block 的大小
-N # :指定分区中创建多少个inode
-I 一个inode 记录占用的磁盘空间大小,128—4096
-m #: 默认5%, 为管理人员预留空间占总空间的百分比
-O FEATURE[,…] :启用指定特性(只能开启以下特性) -O ^FEATURE 禁用指定特性
(3)tune2fs:修改文件系统信息,重新设定ext 系列文件系统可调整参数的值 例:tune2fs -o acl /dev/sdb2 开启/dev/sdb2的acl功能
-l :查看指定文件系统超级块信息;super block
-L ‘LABEL’ :修改卷标(ext)
mkfs -L ‘LABEL’ 或 mke2fs -L ‘LABEL’ 创建时设置卷标
e2label /dev/sd# 查看卷标
e2label /dev/sd# ‘LABEL’ 重命名卷标
-m # :修预留给管理员的空间百分比
-j: 将ext2 升级为ext3
-O: 文件系统属性启用或禁用, –O ^has_journal
-o: 调整文件系统的默认挂载选项,–o ^acl (centos7里默认开启acl 6 默认不开启)
-U UUID: 修改UUID号
(4)修复文件系统
一定不要在挂载状态下进行修复(centos6、7都 禁止在挂载下修复)fsck、xfs_repair
分区挂载
当我们分完区,并做好文件系统格式化,就到了最后的挂载mount了,挂载完毕就可以使用磁盘设备了。
1、什么是挂载和卸载
挂载: 将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为(挂载的设备必须有文件系统)
卸载:为解除此关联关系的过程
2、mount
3、umount卸载
卸载时,若有正在运行的进程,不能卸载,会报错。
查看正在访问指定文件系统的进程:
lsof 设备或挂载点都可以
fuser -v 挂载点
终止所有正在访问指定文件系统的进程:
fuser -km 设备或挂载点都可以
continue…
du
df
dmesg
xfs_repaire
fsck
badblocks