当前位置:   article > 正文

linux磁盘和文件系统的关系,Linux磁盘和文件系统管理

linux 系统与磁盘的关系

在Linux中,文件是如何存储的,磁盘分区的逻辑组成是如何实现的,怎么对磁盘进行分区、格式化、挂载?

文件是如何存储的 块组 超级块 块组描述符号

文件系统先是分成了多个块组和超级块。每个块组分别包含了inode和data block,每个块组也包含了inode bitmap和block bitmap;每个块组还包括了块组描述符。

超级块包括的信息: 卷标、挂载时间、UUID、魔数、文件系统特性、挂载的默认选项、文件系统状态、OS类型、Inode和Block的相关数量、大小、可用数量、 保留的空间等信息。使用tune2fs -l /dev/sda3来查看超级块的信息。

GDT:记录了未使用的inodes数量,inode bitmap和datablock bitmap的位置,inode表的位置,空闲的block和inode数量。dumpe2fs /dev/sda3 | less 也可以使用-h参数

链接文件的两种,分别有什么特性

硬链接:指向同一个inode的多个文件路径

特性:目录不支持创建硬链接,不能跨分区创建硬链接,创建硬链接会增加inode引用计数。

ln passwd.back passwd.back2

软链接:指向一个文件路径的另一个文件路径

一个正常的文件,其inode的指针指向的是datablock的位置,而软链接则是指向了另一个文件的路径。软链接在文件大小是它指向的文件路径的字节数。

ln -s passwd.back passwd.sylink

[root@localhost tmp]# ls -il

总用量 12

33554511 -rwx------. 1 root root 836 2月 29 09:50 ks-script-XVVd4f

33554501 -rw-r--r--. 2 root root 1099 3月 1 11:37 passwd.back

33554501 -rw-r--r--. 2 root root 1099 3月 1 11:37 passwd.back2

33578842 lrwxrwxrwx. 1 root root 11 3月 1 11:38 passwd.sylink -> passwd.back

分区格式化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;

默认情况下,每16K字节一个inode

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

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

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

[root@localhost tmp]# mke2fs -t ext3 -b 4096 -L lq_data -i 32768 -m 3 /dev/sda3

mke2fs 1.42.9 (28-Dec-2013)

文件系统标签=lq_data

OS type: Linux

块大小=4096 (log=2)

分块大小=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

655360 inodes, 5242880 blocks

157286 blocks (3.00%) reserved for the super user

第一个数据块=0

Maximum filesystem blocks=4294967296

160 block groups

32768 blocks per group, 32768 fragments per group

4096 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

4096000

Allocating group tables: 完成

正在写入inode表: 完成

Creating journal (32768 blocks): 完成

Writing superblocks and filesystem accounting information: 完成

掌握Fdisk分区

请实验完成

元数据区存放了什么

元数据区存储了:inode inode位图和块位图

数据存储区则是磁盘块。

inode存储了文件的权限和属性相关信息。可以使用 stat /etc/passwd来查看文件的元数据信息。

如何让内核识别新的分区 parx kpartx

cat /proc/partitions

当我们使用fdisk对一个磁盘进行了分区,并且使用mke2fs工具对分区进行了格式化以后,需要让内核识别我们的新分区。

此时,可以使用cat /proc/partitions来看一下,内核有没有识别到这个分区。

如果没有识别,让内核重读一下分区信息。

A. partx - tell the Linux kernel about the presence and numbering of on-disk partitions

-a Add the specified partitions, or read the disk and add all partitions.

用法: partx -a /dev/sda

B. kpartx - Create device maps from partition tables

-a Add partition mappings

用法: kpartx -a /dev/sda

如果一次没有刷出来,请再刷一次。

创建交换分区并生效

mkswap /dev/sda6

swapon

创建一个5G的交换分区

blkid 定位或显示块设备的属性。

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

/dev/sda3: LABEL="lq_data" UUID="f80f0e3d-9ccb-43a2-ac30-98722a8a6ea2" TYPE="ext3"

[root@localhost ~]# blkid -L lq_data

/dev/sda3

[root@localhost ~]# blkid -U f80f0e3d-9ccb-43a2-ac30-98722a8a6ea2

/dev/sda3

[root@localhost ~]# blkid -t TYPE=ext3

/dev/sda3: LABEL="lq_data" UUID="f80f0e3d-9ccb-43a2-ac30-98722a8a6ea2" TYPE="ext3

e2label 查看和设置卷标,如果不跟卷标则是查看卷标,如果跟卷标,则表示设置新卷标。

e2label device [LABEL]

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

lq_data

[root@localhost ~]# e2label /dev/sda3 DATA

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

DATA

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

/dev/sda3: LABEL="DATA" UUID="f80f0e3d-9ccb-43a2-ac30-98722a8a6ea2" TYPE="ext3"

tune2fs:在ext系列文件系统上调整文件系统的参数,其中作用最大的是-O和-o

-l 查看超级块的内容

-j 将ext2升级为ext3,无损升级

-L 设置卷标

-m 不格式化,调整预留的空间的百分比,默认为5%

-O [^]feature 调整指定特性

-o 调整默认挂载选项

tune2fs -o acl /dev/sda5

[root@localhost ~]# mke2fs -t ext2 -L TEST -m 10 /dev/sda3

接下来,我们通过tune2fs来调整文件系统的属性,我先尝试在挂载状态下进行。

[root@localhost ~]# mount /dev/sda3 /mnt

A. 将文件系统类型升级成ext3

[root@localhost ~]# tune2fs -j /dev/sda3

tune2fs 1.42.9 (28-Dec-2013)

Creating journal inode: 完成

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

/dev/sda3: LABEL="TEST" UUID="96361554-d8a3-43cb-860d-45ce26daaeff" SEC_TYPE="ext2" TYPE="ext3"

B. 设置卷标为Corun

[root@localhost ~]# tune2fs -L Corun /dev/sda3

tune2fs 1.42.9 (28-Dec-2013)

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

/dev/sda3: LABEL="Corun" UUID="96361554-d8a3-43cb-860d-45ce26daaeff" SEC_TYPE="ext2" TYPE="ext3"

C. 更改预留的空间百分比为2%

[root@localhost ~]# tune2fs -m 2 /dev/sda3

tune2fs 1.42.9 (28-Dec-2013)

Setting reserved blocks percentage to 2% (104857 blocks)

dumpe2fs: 显示ext系列文件系统的属性信息

dumpe2fs /dev/sda5

dumpe2fs -h /dev/sda5

fsck和e2fsck

ext系列文件系统的专用工具:

e2fsck : check a Linux ext2/ext3/ext4 file system

e2fsck [OPTIONS] device

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

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

fsck:check and repair a Linux file system

-t fstype:指明文件系统类型;

fsck -t ext4 = fsck.ext4

-a:无须交互而自动修复所有错误;

-r:交互式修复;

文件系统的挂载与卸载

mount DEVICE DIR

umount DEVICE|DIR

示例:

mount /dev/sda3 /mnt

umount /dev/sda3

南要注意的是:挂载点应该是一个空目录,推荐将挂载点放置在根所在的文件系统上。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/1004525
推荐阅读
相关标签
  

闽ICP备14008679号