linux文件系统api,Linux 文件系统介绍

硬盘接口简介:

1. IDE:并行接口,133MB/s

2. SCSI:并行接口,Ultrascsi320, 320MB/S, UltraSCSI640, 640MB/S

3. SATA:串行接口,6gbps 6g/8 GB/S

4. SAS:串行接口,6gbps 是SCSI升级版

并行接口传输速率慢是因为并行容易造成电磁干扰,所以只能低频

串行接口虽然只有一个设备,可以高频,所以速度比并行块

机械硬盘图解:

792399eed9e32ede2c26cd50433f932e.png

MBR简介:

主引导记录(MBR,Main Boot Record)是位于磁盘最前边的一段引导代码。它负责磁盘操作系统对磁盘进行读写时分区合法性的判别、分区引导信息的定位。

MBR分为三部分:

446bytes:bootloader, 程序,引导启动操作系统的程序;

64bytes:分区表,每16bytes标识一个分区,一共只能有4个分区;

2bytes:MBR区域的有效性标识;55AA为有效;

块划分工具 fdisk

centos6 start 从柱面开始

centos7 start 从扇区开始

常用选项介绍

n:创建新分区

d:删除已有分区

t:修改分区类型

l:查看所有已经ID

w:保存并退出

q:不保存并退出

m:查看帮助信息

p:显示现有分区信息

创建扩展分区

[root@localhost ~]# fdisk /dev/sdb

Command (m for help): n

Partition type:

p primary (3 primary, 0 extended, 1 free)

e extended

Select (default e): e

Selected partition 4

First sector (46528512-62914559, default 46528512):

Using default value 46528512

Last sector, +sectors or +size{K,M,G} (46528512-62914559, default 62914559): +1G

Partition 4 of type Extended and of size 1 GiB is set

Command (m for help): p

Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0x00099ba6

Device Boot Start End Blocks Id System

/dev/sda1 * 2048 391167 194560 83 Linux

/dev/sda2 391168 4585471 2097152 82 Linux swap / Solaris

/dev/sda3 4585472 46528511 20971520 83 Linux

/dev/sda4 46528512 48625663 1048576 5 Extended

添加逻辑分区

Command (m for help): n

Partition type:

p primary (3 primary, 0 extended, 1 free)

e extended

Select (default e): e

Selected partition 4

First sector (46528512-62914559, default 46528512):

Using default value 46528512

Last sector, +sectors or +size{K,M,G} (46528512-62914559, default 62914559): +5G

Partition 4 of type Extended and of size 5 GiB is set

w保存分区操作

把分区信息刷到内核

[root@localhost ~]# partx -a /dev/sda

partx: /dev/sda: error adding partitions 1-3

[root@localhost ~]# partx -a /dev/sda

partx: /dev/sda: error adding partitions 1-6

[root@localhost ~]# partx -a /dev/sda

partx: /dev/sda: error adding partitions 1-6

#删除操作 慎用

#[root@localhost ~]# partx -d /dev/sda6

#查看

[root@localhost ~]# cat /proc/partitions

major minor #blocks name

8 0 31457280 sda

8 1 194560 sda1

8 2 2097152 sda2

8 3 20971520 sda3

8 4 1 sda4

8 5 2097152 sda5

8 6 1048576 sda6

8 16 10485760 sdb

11 0 1048575 sr0

以上完成创建分区快,接下去在分区快上创建文件系统

文件系统图解

ab35e83d19f620dd35a627974205f746.png

inode查看

[root@localhost ~]# ls -i

33574978 anaconda-ks.cfg

元数据查看

[root@localhost ~]# stat anaconda-ks.cfg

File: ‘anaconda-ks.cfg’

Size: 1587 Blocks: 8 IO Block: 4096 regular file

Device: 803h/2051d Inode: 33574978 Links: 1

Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)

Context: system_u:object_r:admin_home_t:s0

Access: 2018-04-22 06:29:43.493008377 -0400

Modify: 2018-04-22 06:29:43.494008377 -0400

Change: 2018-04-22 06:29:43.494008377 -0400

Birth: -

VFS 分类(Virtual File System)

Linux的文件系统: ext2(无日志功能), ext3, ext4, xfs, reiserfs, btrfs

光盘:iso9660

网络文件系统:nfs, cifs

集群文件系统:gfs2, ocfs2

内核级分布式文件系统:ceph

windows的文件系统:vfat, ntfs

伪文件系统:proc, sysfs, tmpfs, hugepagefs

Unix的文件系统:UFS, FFS, JFS

交换文件系统:swap

用户空间的分布式文件系统:mogilefs, moosefs, glusterfs

具体实现 mke2fs

mke2fs 常用选项

mke2fs [OPTIONS] device

-t {ext2|ext3|ext4}:指明要创建的文件系统类型

mkfs.ext4 = mkfs -t ext4 = mke2fs -t ext4

-b {1024|2048|4096}:指明文件系统的块大小;

-L LABEL:指明卷标;

-j:创建有日志功能的文件系统ext3;

mke2fs -j = mke2fs -t ext3 = mkfs -t ext3 = mkfs.ext3

-i #:bytes-per-inode,指明inode与字节的比率;即每多少字节创建一个Indode;

-N #:直接指明要给此文件系统创建的inode的数量;

-m #:指定预留的空间,百分比;默认5%

-O [^]FEATURE:以指定的特性创建目标文件系统;

# 格式化会损坏原有数据,慎用

[root@localhost ~]# mkfs.ext4 /dev/sda5

mke2fs 1.42.9 (28-Dec-2013)

Filesystem label=

OS type: Linux

Block size=4096 (log=2) #每块大小

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

131072 inodes, 524288 blocks #inode数量 block数量

26214 blocks (5.00%) reserved for the super user #超级块

First data block=0 #编号始

Maximum filesystem blocks=536870912 #编号末

16 block groups #块组

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks: #超级块备份地址

32768, 98304, 163840, 229376, 294912

Allocating group tables: done

Writing inode tables: done

Creating journal (16384 blocks): done

Writing superblocks and filesystem accounting information: done

查看inode大小

[root@localhost ~]# dumpe2fs -h /dev/sda5 |grep node

数据块大小:524288*4096/1024/1024/1024 = 2G

inode数据大小:131072*256 /1024/1024 = 32M

#所以是先有数据块,从数据块中提取部分作为inode

卷标设定:

[root@localhost ~]# e2label /dev/sda5

mydata

[root@localhost ~]# e2label /dev/sda5 MYDATE

[root@localhost ~]# e2label /dev/sda5

MYDATE

blkid查看文件格式类型

[root@localhost ~]# blkid /dev/sda5

/dev/sda5: UUID="18003fb5-93d9-4822-b998-0f2f99323798" TYPE="ext4"

tune2fs 查看或修改ext系列文件系统的某些属性

常用选项

-j:ext2 --> ext3;

-L LABEL:修改卷标;

-m #:调整预留空间百分比;

-O [^]FEATHER:开启或关闭某种特性;

-o [^]mount_options:开启或关闭某种默认挂载选项

#查看块使用情况

[root@localhost ~]# tune2fs -l /dev/sda5

设置acl属性 setfacl getfacl 特性

[root@localhost ~]# tune2fs -o acl /dev/sda5

[root@localhost ~]# tune2fs -l /dev/sda5 |grep 'Default mount options'

[root@localhost ~]# tune2fs -o ^acl /dev/sda5

自检工具e2fsck

常用选项

-y:对所有问题自动回答为yes;

-f:即使文件系统处于clean状态,也要强制进行检测;

[root@localhost ~]# e2fsck /dev/sda5

e2fsck 1.42.9 (28-Dec-2013)

MYDATE: clean, 11/131072 files, 69339/2097152 blocks

挂载工具mount

常用选项

-r:readonly,只读挂载;

-w:read and write, 读写挂载;

-n:默认情况下,设备挂载或卸载的操作会同步更新至/etc/mtab文件中;-n用于禁止此特性;

-t vfstype:指明要挂载的设备上的文件系统的类型;多数情况下可省略,此时mount会通过blkid来判断要挂载的设备的文件系统类型;

-L LABEL:挂载时以卷标的方式指明设备;

mount -L LABEL dir

-U UUID:挂载时以UUID的方式指明设备;

mount -U UUID dir

-o options:挂载选项

sync/async:同步/异步操作;

atime/noatime:文件或目录在被访问时是否更新其访问时间戳;

diratime/nodiratime:目录在被访问时是否更新其访问时间戳;

remount:重新挂载;

acl:支持使用facl功能;

ro:只读

rw:读写

dev/nodev:此设备上是否允许创建设备文件; mknod

exec/noexec:是否允许运行此设备上的程序文件;

auto/noauto:是否自动挂载

user/nouser:是否允许普通用户挂载此文件系统;

suid/nosuid:是否允许程序文件上的suid和sgid特殊权限生效;

relatime : mtime 比 atime 时间新的时候更新atime 优化作用

defaults:Use default options: rw, suid, dev, exec, auto, nouser, async, and relatime.

挂载

[root@localhost mnt]# mount /dev/sda5 t1/

[root@localhost t1]# mount |grep 't1'

/dev/sda5 on /mnt/t1 type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

卸载

[root@localhost mnt]# umount t1/

[root@localhost mnt]# umount /dev/sda5

强制卸载

[root@localhost mnt]# fuser -km t1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值