Seven 存储结构与磁盘划分 主分区交换分区的作用!

文件存储结构(FHS标准)

在Linux系统中,目录、字符设备、块设备、套接字、打印机等都被抽象成了文件,即“Linux系统中一切都是文件”。既然平时我们打交道的都是文件,那么又应该如何找到它们呢?在Windows操作系统中,想要找到一个文件,我们要依次进入该文件所在的磁盘分区(假设这里是D盘),然后在进入该分区下的具体目录,最终找到这个文件。但是在Linux系统中并不存在C/D/E/F等盘符,Linux系统中的一切文件都是从“根(/)”目录开始的,并按照文件系统层次化标准(FHS)采用树形结构来存放文件,以及定义了常见目录的用途。另外,Linux系统中的文件和目录名称是严格区分大小写的。例如,root、rOOt、Root、rooT均代表不同的目录,并且文件名称中不得包含斜杠(/)。Linux系统中的文件存储结构如图所示。


在这里插入图片描述

提示:FHS定义了用户应该把什么类型的文件文件存放到什么位置,但用户不一定要遵守,这里只是定义而非gun定。

Linux系统中常见的目录名称以及相应内容

在这里插入图片描述

物理设备命名规则(udev)

在Linux系统中一切都是文件,硬件设备也不例外。既然是文件,就必须有文件名称。系统内核中的udev设备管理器会自动把硬件名称规范起来,目的是让用户通过设备文件的名字可以猜出设备大致的属性以及分区信息等;这对于陌生的设备来说特别方便。另外,udev设备管理器的服务会一直以守护进程的形式运行并侦听内核发出的信号来管理/dev目录下的设备文件。Linux系统中常见的硬件设备的文件名称如表所示。
在这里插入图片描述
由于现在的IDE设备已经很少见了,所以一般的硬盘设备都会是以“/dev/sd”开头的。而一台主机上可以有多块硬盘,因此系统采用a~p来代表16块不同的硬盘(默认从a开始分配,如果超过26个硬盘,那么前26个命名sd[a-z],第27-52个命名为sd[aa-az],第53-78个命名为sd[ba-bz],依此类推)而且硬盘的分区编号也很有讲究:

  1. 主分区或扩展分区的编号从1开始,到4结束;
  2. 逻辑分区从编号5开始。
  3. 存储设备的名称从a开始按序命名,是由系统内核的识别顺序决定的,与设备在第几个插槽无关。
  4. 分区编号并不代表分区个数,分区的数字编码不一定是强制顺延下来的,也有可能是手工指定的。

- [ ] 硬盘命名规则

在这里插入图片描述
正是因为计算机有了硬盘设备,我们才可以在玩游戏的过程中或游戏通关之后随时存档,而不用每次重头开始。硬盘设备是由大量的扇区组成的,每个扇区的容量为512字节。其中第一个扇区最重要,它里面保存着主引导记录与分区表信息。就第一个扇区来讲,主引导记录需要占用446字节,分区表为64字节,结束符占用2字节;其中分区表中每记录一个分区信息就需要16字节,这样一来最多只有4个分区信息可以写到第一个扇区中,这4个分区就是4个主分区。第一个扇区中的数据信息如图所示。
在这里插入图片描述

文件系统与数据资料

常见的文件系统

**Ext3:**是一款日志文件系统,能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误。然而,当硬盘容量较大时,所需的修复时间也会很长,而且也不能百分之百地保证资料不会丢失。它会把整个磁盘的每个写入动作的细节都预先记录下来,以便在发生异常宕机后能回溯追踪到被中断的部分,然后尝试进行修复。

**Ext4:**Ext3的改进版本,作为RHEL 6系统中的默认文件管理系统,它支持的存储容量高达1EB(1EB=1,073,741,824GB),且能够有无限多的子目录。另外,Ext4文件系统能够批量分配block块,从而极大地提高了读写效率。

**XFS:**是一种高性能的日志文件系统,而且是RHEL 7中默认的文件管理系统,它的优势在发生意外宕机后尤其明显,即可以快速地恢复可能被破坏的文件,而且强大的日志功能只用花费极低的计算和存储性能。并且它最大可支持的存储容量为18EB,这几乎满足了所有需求。

1.inode存放文件的权限与属性记录,每个文件占用一个独立的inode表格,该表格的大小默认为128字节,里面记录着如下信息:

该文件的访问权限(read、write、execute);
该文件的所有者与所属组(owner、group);
该文件的大小(size);
该文件的创建或内容修改时间(ctime);
该文件的最后一次访问时间(atime);
该文件的修改时间(mtime);
文件的特殊权限(SUID、SGID、SBIT);
该文件的真实数据地址(point)。

2.block存放文件的实际内容(大小可以为1KB、2KB、4KB)。

文件很小(1KB),但依然会占用一个block,因此会潜在地浪费3KB。
文件很大(5KB),那么会占用两个block(5KB-4KB后剩下的1KB也要占用一个block)。

VFS虚拟文件系统:

各式各样的文件系统在VFS下隐藏各自的特性和细节,用户在操作文件时就是统一对VFS进行操作,用户无需关心底层的硬盘结构。
在这里插入图片描述

挂载硬件设备

1.分区

fdisk命令:用于管理磁盘分区。格式:fdisk [磁盘名称]。它提供了集添加、删除、转换分区等功能于一身的“一站式分区服务”。这是一条交互式命令。

参数	作用
m	查看全部可用的参数
n	添加新的分区
d	删除某个分区信息
l	列出所有可用的分区类型
t	改变某个分区的类型
p	查看分区表信息
w	保存并退出
q	不保存直接退出

添加新的分区:

[root@lizhiqiang Desktop]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xc60ca334.

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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: 0xc60ca334

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{
    
    K,M,G} (2048-41943039, default 41943039): +2G
Partition 1 of type Linux and of size 2 GiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

查看新的分区:

[root@lizhiqiang Desktop]# df -h
Filesystem                        Size  Used Avail Use% Mounted on
/dev/mapper/rhel_lizhiqiang-root   18G  3.0G   15G  17% /
devtmpfs                          985M     0  985M   0% /dev
tmpfs                             994M   84K  994M   1% /dev/shm
tmpfs                             994M  8.9M  986M   1% /run
tmpfs                             994M     0  994M   0% /sys/fs/cgroup
/dev/sda1                         497M  119M  379M  24% /boot

格式化新的分区:

[root@lizhiqiang Desktop]# mkfs.xfs /dev/sdb
mkfs.xfs: /dev/sdb appears to contain a partition table (dos).
mkfs.xfs: Use the -f option to force overwrite.
[root@lizhiqiang Desktop]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=256    agcount=4, agsize=131072 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=524288, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

挂载新的分区:

[root@lizhiqiang /]# mkdir opo
[root@lizhiqiang /]# mount /dev/sdb1 /opo

添加到系统启动项:

vim /etc/fstab 

在这里插入图片描述
重启保存! 新的分区创建成功!

2.格式化

mkfs命令:用于格式化操作。格式:mkfs.文件类型 磁盘设备文件。

3.挂载与卸载

①挂载操作就是把硬件设备与目录进行关联的动作
②卸载操作就是取消硬件设备与目录关联的动作,卸载文件系统就意味不再使用硬件的设备资源

挂载 mount 设备 目录

-a:挂载所有在/etc/fstab中定义的文件系统
-t:指定文件系统的类型

卸载 umount 设备或者目录

用mount命令挂载,系统重启后就会失效。要在/etc/fstab文件追加挂载信息才能永久挂载。在/etc/fstab文件中,挂载信息格式:“设备文件 挂载目录 格式类型 权限选项 是否备份 是否自检”。

挂载信息格式各字段含义:

字段	   意义
设备文件	   一般为设备的路径+设备名称,也可以写唯一识别码(UUID,Universally Unique Identifier)
挂载目录	   指定要挂载到的目录,需在挂载前创建好
格式类型	   指定文件系统的格式,比如Ext3、Ext4、XFS、SWAP、iso9660(此为光盘设备)等
权限选项	   若设置为defaults,则默认权限为:rw, suid, dev, exec, auto, nouser, async
是否备份	   若为1则开机后使用dump进行磁盘备份,为0则不备份
是否自检	   若为1则开机后自动进行磁盘自检,为0则不自检

df命令:用于查看挂载状态和硬盘使用量信息。常用参数为-h。格式:df -h。
du命令:用于查看文件数据占用量。格式 :du [选项] [文件]。

du -sh /*        #查看在Linux系统根目录下所有一级目录分别占用的空间大小
du -sh /newFS    #查看/newFS下的内容占了多少容量

在这里插入图片描述

添加交换分区

SWAP(交换)分区是一种通过在硬盘中预先划分一定的空间,然后将把内存中暂时不常用的数据临时存放到硬盘中,以便腾出物理内存空间让更活跃的程序服务来使用的技术,其设计目的是为了解决真实物理内存不足的问题。但由于交换分区毕竟是通过硬盘设备读写数据的,速度肯定要比物理内存慢,所以只有当真实的物理内存耗尽后才会调用交换分区的资源。

交换分区的创建过程与前文讲到的挂载并使用存储设备的过程非常相似。在对/dev/sdb存储设备进行分区操作前,有必要先说一下交换分区的划分建议:在生产环境中,交换分区的大小一般为真实物理内存的1.5~2倍。

添加交换分区的过程

1.先虚拟机创建新的硬盘
在这里插入图片描述
添加完重启虚拟机,添加交换分区!

[root@lizhiqiang /]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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: 0xc60ca334

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux

Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Partition number (2-4, default 2): 2
First sector (4196352-41943039, default 4196352): 
Using default value 4196352
Last sector, +sectors or +size{
    
    K,M,G} (4196352-41943039, default 41943039): +6G
Partition 2 of type Linux and of size 6 GiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

成功之后查看 内存

[root@lizhiqiang /]# free -h
             total       used       free     shared    buffers     cached
Mem:          1.9G       1.1G       828M       9.8M       1.6M       257M
-/+ buffers/cache:       900M       1.1G
Swap:         2.0G         0B       2.0G

格式化新的交换分区,发现不可以格式化 此时运行两次partprobe 以进行格式化:

[root@lizhiqiang /]# mkswap /dev/sdb2
/dev/sdb2: No such file or directory
[root@lizhiqiang /]# partprobe
[root@lizhiqiang /]# partprobe
[root@lizhiqiang /]# mkswap /dev/sdb2
Setting up swapspace version 1, size = 6291452 KiB
no label, UUID=474d933b-b93d-41b9-82dd-7261dc676ccf

挂载新的交换分区:

[root@lizhiqiang /]# swapon /dev/sdb2
[root@lizhiqiang /]# free -h
             total       used       free     shared    buffers     cached
Mem:          1.9G       1.1G       821M       9.8M       1.6M       257M
-/+ buffers/cache:       906M       1.1G
Swap:         8.0G         0B       8.0G

添加交换分区到系统启动项:

vim /etc/fstab 进入设置开机启动项

在这里插入图片描述
设置完成 重启虚拟机 free -h 分区完成!

shutdown -h now 关闭虚拟机!

shutdown -t -s 0 关闭本机!

猜你喜欢

转载自blog.csdn.net/SYH885/article/details/109130671