Linux 文件系统介绍
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 文件系统介绍相关的知识,希望对你有一定的参考价值。
硬盘接口简介:
1. IDE:并行接口,133MB/s
2. SCSI:并行接口,Ultrascsi320, 320MB/S, UltraSCSI640, 640MB/S
3. SATA:串行接口,6gbps 6g/8 GB/S
4. SAS:串行接口,6gbps 是SCSI升级版
并行接口传输速率慢是因为并行容易造成电磁干扰,所以只能低频
串行接口虽然只有一个设备,可以高频,所以速度比并行块
机械硬盘图解:
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:显示现有分区信息
创建扩展分区
[[email protected] ~]# 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保存分区操作
把分区信息刷到内核
[[email protected] ~]# partx -a /dev/sda
partx: /dev/sda: error adding partitions 1-3
[[email protected] ~]# partx -a /dev/sda
partx: /dev/sda: error adding partitions 1-6
[[email protected] ~]# partx -a /dev/sda
partx: /dev/sda: error adding partitions 1-6
#删除操作 慎用
#[[email protected] ~]# partx -d /dev/sda6
#查看
[[email protected] ~]# 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
以上完成创建分区快,接下去在分区快上创建文件系统
文件系统图解
inode查看
[[email protected] ~]# ls -i
33574978 anaconda-ks.cfg
元数据查看
[[email protected] ~]# 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:以指定的特性创建目标文件系统;
# 格式化会损坏原有数据,慎用
[[email protected] ~]# 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大小
[[email protected] ~]# dumpe2fs -h /dev/sda5 |grep node
数据块大小:524288*4096/1024/1024/1024 = 2G
inode数据大小:131072*256 /1024/1024 = 32M
#所以是先有数据块,从数据块中提取部分作为inode
卷标设定:
[[email protected] ~]# e2label /dev/sda5
mydata
[[email protected] ~]# e2label /dev/sda5 MYDATE
[[email protected] ~]# e2label /dev/sda5
MYDATE
blkid查看文件格式类型
[[email protected] ~]# 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:开启或关闭某种默认挂载选项
#查看块使用情况
[[email protected] ~]# tune2fs -l /dev/sda5
设置acl属性 setfacl getfacl 特性
[[email protected] ~]# tune2fs -o acl /dev/sda5
[[email protected] ~]# tune2fs -l /dev/sda5 |grep ‘Default mount options‘
[[email protected] ~]# tune2fs -o ^acl /dev/sda5
自检工具e2fsck
常用选项
-y:对所有问题自动回答为yes;
-f:即使文件系统处于clean状态,也要强制进行检测;[[email protected] ~]# 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.
挂载
[[email protected] mnt]# mount /dev/sda5 t1/
[[email protected] t1]# mount |grep ‘t1‘
/dev/sda5 on /mnt/t1 type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
卸载
[[email protected] mnt]# umount t1/
[[email protected] mnt]# umount /dev/sda5
强制卸载
[[email protected] mnt]# fuser -km t1
以上是关于Linux 文件系统介绍的主要内容,如果未能解决你的问题,请参考以下文章
LINUX PID 1和SYSTEMD PID 0 是内核的一部分,主要用于内进换页,内核初始化的最后一步就是启动 init 进程。这个进程是系统的第一个进程,PID 为 1,又叫超级进程(代码片段