九.存储管理

一.简介

        系统内核中的dev设备管理器会自动八硬件名称规范起来,目的让用户通过设备文件名称可以通过设备大致的属性以及分区信息等。另外,udev设备管理器的服务会一直以守护进程的形式运行并侦听内核发出的信号来管理/dev目录下的设备文件。

常见的硬件设备及其文件名称:

硬件设备                     文件名称

IDE设备                      /dev/hd[a-d]

SCSI/SATA/U盘          /dev/sd[a-p]

光驱                            /dev/cdrom /dev/sr0

        IDE设备很少见,一般的硬件设备都是以“/dev/sd”开头的,而一台主机上有很多硬盘,因此系统采用a~p来代表16块不同的硬盘(默认从a开始分配),硬盘编号也有讲究:

1)主分区或扩展分区的编号从1开始,到4结束;

主分区+扩展分区=4

主分区:3

扩展分区:1

2)逻辑分区从编号5开始;

二.文件系统与数据资料

        用户在硬件存储设备中执行的文件建立、写入、读取、修改、转存与控制等操作都是依靠文件系统来完成的。文件系统的作用是合理规划硬盘,以保证用户正常的使用需求。Linux系统支持数十种的文件系统,而最常见的文件系统如下所示。

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

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

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

        就像拿到了一张未裁切的完整纸张,我们首先要进行裁切以方便使用,然后在裁切后的纸张上画格以便能书写工整。在拿到了一块新的硬盘存储设备后,也需要先分区,然后再格式化文件系统,最后才能挂载并正常使用。硬盘的分区操作取决于您的需求和硬盘大小;您也可以选择不进行分区,但是必须对硬盘进行格式化处理。

三.磁盘管理

在硬盘中,硬盘的0柱面0磁头第一个1扇区称为主引导扇区,也叫主引导记录-MBR(master boot record),其中MBR是以下三个部分组成:

1)Bootloader,主引导程序---446个字节

2)Dpt (Disk Partition table),硬盘分区表---64个字节

3)扇区结尾标志(55aa) --2个字节

总共512字节,前446个字节是主引导记录,是bios加电自检后要运行的代码,中间64字节为分区表。

简单的来说MBR=主引导程序+硬盘分区表dpt(64)+结尾标志(55aa)。其中dpt磁盘分区表(64字节,每16个字节为一组,一共4组)

为什么MBR最多只能有4个主分区?

原因:分区表占据64个字节,可以对四个分区的信息进行描述,其中每个分区的信息占据16个字节;

MBR分区类型:

1>主分区(primary partition)

一块硬盘最多4个主分区,主分区不可以再进行二次分区。可以用来引导、启动操作系统 ,同时,主分

区可以直接建立文件系统,如windows的NTFS,存放数据。

2>扩展分区(extended partition)

一块硬盘最多一个,加主分区最多4个,不能创建文件系统,可以划分逻辑分区。

3>逻辑分区(logical partition)

可以创建文件系统,存放数据,同时,逻辑分区的数量没有限制。

此外,从引导操作系统的角度来看,有系统分区,启动分区,活动分区分类:

1. 系统分区:用来启动操作系统,必须是主分区

2. 启动分区:安装操作系统的分区,可以是主分区也可以是逻辑分区

3. 活动分区:只能是作用于系统分区,有且仅有一个活动分区。

补充:

存储容量︰是该存储设备上可以存储数据的最大数量,通常使用千字节(kb)、兆字节(MB、吉字节(GB)太字节(TB )和PB( Petabyte)、EB(Exabyte)等来衡量。

1KB=2( 10 )B=1024B;括号中的数字为2的指数(即多少次方)

1MB=2( 10)KB=1024KB=2(20)B;

1GB=2 ( 10)MB=1024MB=2( 30)B

1TB=2( 10),GB=1024GB=2( 40 )B

1PB=2( 10)TB=1024TB=2(50)B

1EB=2 ( 10)PB=1024PB=2 ( 60 )B

1Byte(相当於一个英文字母,您的名字相当6Bytes ( 6B)。

Kilobyte(KB)=1024B相当於—则短篇故事的内容。

Megabyte ( MB)=1024KB相当於一则短篇小说的文字内容。

Gigabyte( GB)=1024MB相当於贝多芬第五乐章交响曲的乐谱内容。

Terabyte( TB)=1024GB相当於一家大型医院中所有的x光图片资讯量。

Petabyte (PB)=1024TB相当於50%的全美学术研究图书馆藏书资讯内容。

Exabyte(EB)=1024PB;SEB相当於至今全世界人类所讲过的话语。

Zettabyte(ZB)=1024EB如同全世界海滩上的沙子数量总和。

Yottabyte ( YB)=1024zB相当於7000位人类体内的微细胞总和。

#用这个查看
[root@localhost ~]# hexdump -C mbr
0o0o0090    b4 41 bb aa 55 cd 13 5a     52 72 3d 81 fb 55 aa 75    |.A..U..ZRr=..U.u|
000000a0    37 83 e1 01 74 32 31 co     89 44 04 40 88 44 ff 89    |7...t21..D.@.D..|
oo0o00bo    44 02 c7 04 10 00 66 8b     1e 5c 7c 66 89 5c 08 66    |D.....f..\|f.\.f|
oooo00co    8b 1e 60 7c 66 89 5c 0c     c7 44 06 00 70 b4 42 cd    |..`|f.\..D..p.B.|
oo0oood0    13 72 05 bb 00 70 eb 76     b4 08 cd 13 73 0d 5a 84    |.r...p.v....s.z.|
oo0o00eo    d2 0f 83 de 0o be 85 7d     e9 82 00 66 0f b6 c6 88    |.......}...f....|
ooo0oo0f    64 ff 40 66 89 44 04 0f     b6 dl cl e2 02 88 e8 88    |d.@f.D..........|
oo00010o    f4 40 89 44 08 of b6 c2     c0 e8 02 66 89 04 66 al    |.@.D.......f..f.|
00000110    60 7c 66 09 co 75 4e 66     al 5c 7c 66 31 d2 66 f7    |`|f..uNf.\|f1.f.|
00000120    34 88 d1 31 d2 66 f7 74     04 3b 44 08 7d 37 fe c1    |4..1.f.t.;D.}7..|
00000130    88 c5 30 co cl e8 02 08     c1 88 do 5a 88 c6 bb 00    |..o........z....|

#说明:

#1、最前面的一列是8进制的位偏移,所以每行有16个字节了。

#2、mbr总共512字节,前446个字节是主引导记录,是bios加电自检后要运行的代码

#3、从第447个字节开始后的64个字节,每16个字节为一组,是硬盘分区表。所以在MBR环境下主分区只能有4个,每个分区最大为2T

#4、55aa是硬盘有效标志,若被篡改则系统认为硬盘损坏.早期一些dos下的病毒喜欢篡改这个标志,造成硬盘损坏,但是分区还在.

四.挂载硬件磁盘

        我们在用惯了Windows系统后总觉得一切都是理所当然的,平时把U盘插入到电脑后也从来没有考虑过Windows系统做了哪些事情,才使得我们可以访问这个U盘的。在拿到一块全新的硬盘存储设备后要先分区,然后格式化,最后才能挂载并正常使用。"分区"和“格式化"大家以前经常听到,但"挂载""又是什么呢?最简单、最贴切的解释―当用户需要使用硬盘设备或分区中的数据时,需要先将其与一个已存在的目录文件进行关联,而这个关联动作就是"“挂载"。

4.1 mount:用于挂载文件系统

语法:mount [选项] 文件系统. 挂载目录

选项:

-a         挂载所有在/etc/fstab中定义的文件系统

-t         指定文件系统的类型

-o         以指定方式挂载

[root@localhost ~]# mount /dev/sdb1 /data

        虽然按照上面的方法执行mount命令后就能立即使用文件系统了,但系统在重启后挂载就会失效,也就是说我们需要每次开机后都手动挂载一下。如果想让硬件设备和目录永久地进行自动关联,就必须把挂载信息按照指定的填写格式"6设备文件挂载目录格式类型.权限选项是否备份是否自检"写入到/etcfstab文件中。这个文件中包含着挂载所需的诸多信息项目,一旦配置好之后就能一劳永逸了。

用于挂载信息的指定填写格式中,各字段所表示的意义

字段                               意义

设备文件/dev/xxxI         一般为设备的路径+设备名称,也可以写唯一识别码(UUID,Universally Unique ldentifier)

挂载目录                       指定要挂载到的目录,需在挂载前创建好

格式类型                       指定文件格式,比如Ext3、Ext4、XFS、SWAP、iso9660 (此为光盘设备)等

权限选项                       若设置为defaults,则默认权限为︰rw, suid, dev, exec, auto, nouser, async

是否备份                        若为1则开机后使用dump进行磁盘备份,为0则不备份

是否自检                        若为1则开机后自动进行磁盘自检,为0则不自检

[root@localhost /]# vi /etc/fstab
'''
#
# /etc/fstab
# Created by anaconda on Fri Apr  1 12:16:41 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=91169fc4-a9ae-4f15-a8ea-948cdd5959f3 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
'''
#在末尾加
'''
/dev/sdb1               /data                   xfs     defaults        0 0
/dev/sdb2               /log                    ext4    defau
lts        0 0
'''        #保存退出
[root@localhost /]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Fri Apr  1 12:16:41 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=91169fc4-a9ae-4f15-a8ea-948cdd5959f3 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sdb1 		/data			xfs	defaults	0 0
/dev/sdb2		/log			ext4	defaults	0 0
[root@localhost /]# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  475M     0  475M   0% /dev
tmpfs                   tmpfs     487M     0  487M   0% /dev/shm
tmpfs                   tmpfs     487M  7.7M  479M   2% /run
tmpfs                   tmpfs     487M     0  487M   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  1.6G   16G  10% /
/dev/sda1               xfs      1014M  138M  877M  14% /boot
tmpfs                   tmpfs      98M     0   98M   0% /run/user/0
[root@localhost /]# reboot
[root@localhost ~]# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  475M     0  475M   0% /dev
tmpfs                   tmpfs     487M     0  487M   0% /dev/shm
tmpfs                   tmpfs     487M  7.7M  479M   2% /run
tmpfs                   tmpfs     487M     0  487M   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  1.6G   16G  10% /
/dev/sdb1               xfs       4.0G   33M  4.0G   1% /data
/dev/sdb2               ext4      2.0G  6.1M  1.8G   1% /log
/dev/sda1               xfs      1014M  138M  877M  14% /boot
tmpfs                   tmpfs      98M     0   98M   0% /run/user/0
#如果出现故障,写错了,怎么办
[root@localhost ~]# vi /etc/fstab
[root@localhost ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Fri Apr  1 12:16:41 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=91169fc4-a9ae-4f15-a8ea-948cdd5959f3 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sdb1 		/data			xfs	defaults	0 0
/dev/sdb2		/log			ext4	defaults	0 0
/dev/sds2		/share			ext4	defaults	0 0        #看这,我下了两个sdb2
#重启之后,不要担心,你写错了,不要怀疑,不要害怕,第三方软件也进不去的,进入重启之后界面后,ctrl+d,之后,在里面输入密码,进去之后赶紧改配置重启
#怎样配置扩展分区
[root@localhost ~]# blkid /dev/sdb5        #查看挂载文件ID
/dev/sdb5: UUID="2b7f8cdc-9c17-4451-ac5f-085e00e66e9c" TYPE="xfs" 
[root@localhost ~]# blkid /dev/sdb6
/dev/sdb6: UUID="a7bea09d-e1dd-4a61-814c-0dd118e75a27" TYPE="ext4" 
[root@localhost ~]# vim /etc/fstab
[root@localhost ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Fri Apr  1 12:16:41 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=91169fc4-a9ae-4f15-a8ea-948cdd5959f3 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sdb1 		/data			xfs	defaults	0 0
/dev/sdb2		/log			ext4	defaults	0 0
/dev/sdb3		/share			ext4	defaults	0 0
UUID="2b7f8cdc-9c17-4451-ac5f-085e00e66e9c"  /data1	xfs defaults	0 0
UUID="a7bea09d-e1dd-4a61-814c-0dd118e75a27"  /data2	    ext4	defaults	0 0
[root@localhost ~]# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  475M     0  475M   0% /dev
tmpfs                   tmpfs     487M     0  487M   0% /dev/shm
tmpfs                   tmpfs     487M  7.7M  479M   2% /run
tmpfs                   tmpfs     487M     0  487M   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  1.6G   16G  10% /
/dev/sdb1               xfs       4.0G   33M  4.0G   1% /data
/dev/sdb2               ext4      2.0G  6.1M  1.8G   1% /log
/dev/sda1               xfs      1014M  138M  877M  14% /boot
/dev/sdb3               ext4      477M  2.3M  445M   1% /share
tmpfs                   tmpfs      98M     0   98M   0% /run/user/0
[root@localhost ~]# reboot

[root@localhost ~]# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  475M     0  475M   0% /dev
tmpfs                   tmpfs     487M     0  487M   0% /dev/shm
tmpfs                   tmpfs     487M  7.7M  479M   2% /run
tmpfs                   tmpfs     487M     0  487M   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  1.6G   16G  10% /
/dev/sdb5               xfs       2.0G   33M  2.0G   2% /data1
/dev/sdb1               xfs       4.0G   33M  4.0G   1% /data
/dev/sdb2               ext4      2.0G  6.1M  1.8G   1% /log
/dev/sdb6               ext4      1.5G  4.6M  1.4G   1% /data2
/dev/sdb3               ext4      477M  2.3M  445M   1% /share
/dev/sda1               xfs      1014M  138M  877M  14% /boot
tmpfs                   tmpfs      98M     0   98M   0% /run/user/0

4.2 umount:用于卸载已经挂载的设备文件

语法:umount [挂载点/设备文件]

[root@localhost ~]# cd /log
[root@localhost log]# mkdir 111
[root@localhost log]# mkdir 222
[root@localhost log]# mkdir 21311
[root@localhost log]# touch file1
[root@localhost log]# ll
total 28
drwxr-xr-x 2 root root  4096 Jul 18 12:37 111
drwxr-xr-x 2 root root  4096 Jul 18 12:37 21311
drwxr-xr-x 2 root root  4096 Jul 18 12:37 222
-rw-r--r-- 1 root root     0 Jul 18 12:37 file1
drwx------ 2 root root 16384 Jul 18 12:21 lost+found
[root@localhost log]# cd /        #要在其他路径,要不然被占用,卸载不了
#方法1:
[root@localhost /]# umount /log
#方法2:
[root@localhost /]# umount /dev/sdb2
#方法1:
[root@localhost /]# umount /log

[root@localhost /]# umount /log
[root@localhost /]# df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  475M     0  475M   0% /dev
tmpfs                   tmpfs     487M     0  487M   0% /dev/shm
tmpfs                   tmpfs     487M  7.7M  479M   2% /run
tmpfs                   tmpfs     487M     0  487M   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  1.6G   16G  10% /
/dev/sda1               xfs      1014M  138M  877M  14% /boot
tmpfs                   tmpfs      98M     0   98M   0% /run/user/0
/dev/sdb1               xfs       4.0G   33M  4.0G   1% /data
/dev/sdb3               ext4      477M  2.3M  445M   1% /share
/dev/sdb5               xfs       2.0G   33M  2.0G   2% /data1
/dev/sdb6               ext4      1.5G  4.6M  1.4G   1% /data2
[root@localhost /]# ll /log
total 0
[root@localhost /]# mount /dev/sdb2 /log
[root@localhost /]# ll /log        #挂载了就回来了
total 28
drwxr-xr-x 2 root root  4096 Jul 18 12:37 111
drwxr-xr-x 2 root root  4096 Jul 18 12:37 21311
drwxr-xr-x 2 root root  4096 Jul 18 12:37 222
-rw-r--r-- 1 root root     0 Jul 18 12:37 file1
drwx------ 2 root root 16384 Jul 18 12:21 lost+found

五.虚拟机添加硬盘设备

需要注意:

1)添加设备虚拟机要处于关机状态

2)添加硬盘设备的类型选择SCSI.SATA

在虚拟机中模拟添加了硬盘设备后就应该能看到抽象成的硬盘设备文件了。按照前文讲解的udev服务命名规则,第二个被识别的SCSI设备应该会被保为/devlsdb,这个就是硬盘设备文件了。但在开始使用该硬盘之前还需要进行分区操作,例如从中取出一个4GB的分区设备以供后面的操作使用。

5.1 fdisk:用于管理磁盘分区

语法:fdisk [选项/磁盘名称]

选项:

-l 可以列出所有的分区,包括没有挂上的分区和usb设备

它提供了集添加、删除、转换分区等功能于一身的"一站式分区服务"。不过与前面讲解的直接写到命令后面的参数不同,这条命令的参数是交互式的,因此在管理硬盘设备时特别方便,可以根据需求动态调整。

参数:

参数         作用

m             查看全部可用的参数

n              添加新的分区

d              删除某个分区信息

l               列出所有可用的分区类型

t               改变某个分区的类型

p              查看分区表信息

w             保存并退出

q              不保存直接退出fdisk命令

a              调整磁盘的启动分区

u              切换所显示分区的大小单位

 [root@localhost ~]# 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 0x2dfcc8c9.

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): n 
Partition type:
   p   primary (0 primary, 0 extended, 4 free)        #主分区,创建默认
   e   extended
Select (default p):         #直接回车即可
Using default response p
Partition number (1-4, default 1): 
First sector (2048-20971519, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +4G
Partition 1 of type Linux and of size 4 GiB is set

5.2 df:显示当前linux系统上的文件系统磁盘使用情况统计

语法:df [选项] [file]

选项:

-h 人性化显示

-T 显示文件系统的类型

[root@localhost ~]# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  475M     0  475M   0% /dev
tmpfs                   tmpfs     487M     0  487M   0% /dev/shm
tmpfs                   tmpfs     487M  7.7M  479M   2% /run
tmpfs                   tmpfs     487M     0  487M   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  1.6G   16G  10% /
/dev/sda1               xfs      1014M  138M  877M  14% /boot
tmpfs                   tmpfs      98M     0   98M   0% /run/user/0
/dev/sdb1               xfs       4.0G   33M  4.0G   1% /data

六.交换分区

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

        交换分区的创建过程与前文讲到的挂载并使用存储设备 的过程非常相似。在对/dev/sdb存储设备进行分区操作前,有必要先说一下交换分区的划分建议︰在生产环境中,交换分区的大小一般为真实物理内存的1.5~2倍(针对之前来说,现在一般为2G),为了让大家更明显地感受交换分区空间的变化,这里取出一个大小为5GB的主分区作为交换分区资源(注:必须是主分区)。在分区创建完毕后保存并退出即可:

[root@localhost /]# umount /dev/sdb6
[root@localhost /]# umount /dev/sdb5
[root@localhost /]# 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: 10.7 GB, 10737418240 bytes, 20971520 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: 0x2dfcc8c9

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     8390655     4194304   83  Linux
/dev/sdb2         8390656    12584959     2097152   83  Linux
/dev/sdb3        12584960    13608959      512000   83  Linux
/dev/sdb4        13608960    20971519     3681280    5  Extended
/dev/sdb5        13611008    17805311     2097152   83  Linux
/dev/sdb6        17807360    20971519     1582080   83  Linux

Command (m for help): d
Partition number (1-6, default 6): 
Partition 6 is deleted

Command (m for help): d
Partition number (1-5, default 5): 
Partition 5 is deleted

Command (m for help): d
Partition number (1-4, default 4): 
Partition 4 is deleted

Command (m for help): p

Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 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: 0x2dfcc8c9

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     8390655     4194304   83  Linux
/dev/sdb2         8390656    12584959     2097152   83  Linux
/dev/sdb3        12584960    13608959      512000   83  Linux

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@localhost /]# 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): n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): p
Selected partition 4
First sector (13608960-20971519, default 13608960): 
Using default value 13608960
Last sector, +sectors or +size{K,M,G} (13608960-20971519, default 20971519):             #给完
Using default value 20971519
Partition 4 of type Linux and of size 3.5 GiB is set

Command (m for help): p

Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 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: 0x2dfcc8c9

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     8390655     4194304   83  Linux
/dev/sdb2         8390656    12584959     2097152   83  Linux
/dev/sdb3        12584960    13608959      512000   83  Linux
/dev/sdb4        13608960    20971519     3681280   83  Linux

Command (m for help): n
If you want to create more than four partitions, you must replace a
primary partition with an extended partition first.

#如果要创建4个以上的分区,则必须替换首先有一个扩展分区

1.创建一个新的磁盘,用fdisk来设置磁盘,磁盘给4G

这里创建会进不去,为啥呢?

因为之前设置开机自动挂载了,之前把5、6分区删除了,所以。。。

跟之前进不去一样,进去后ctrl+D,之后在输入密码,配置/etc/fstab文件,把是/dev/sdb5和/dev/sdb5删除并保存退出,然后reboot

[root@localhost ~]# fdisk -l

Disk /dev/sda: 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: 0x000b88a3

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    41943039    19921920   8e  Linux LVM

Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 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: 0x2dfcc8c9

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     8390655     4194304   83  Linux
/dev/sdb2         8390656    12584959     2097152   83  Linux
/dev/sdb3        12584960    13608959      512000   83  Linux
/dev/sdb4        13608960    20971519     3681280   83  Linux

Disk /dev/sdc: 4294 MB, 4294967296 bytes, 8388608 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 /dev/mapper/centos-root: 18.2 GB, 18249416704 bytes, 35643392 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 /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 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
[root@localhost ~]# fdisk /dev/sdc
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 0xb8293f05.

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

Command (m for help): p

Disk /dev/sdc: 4294 MB, 4294967296 bytes, 8388608 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: 0xb8293f05

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048     8388607     4193280   83  Linux

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

Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# fdisk -l

Disk /dev/sda: 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: 0x000b88a3

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    41943039    19921920   8e  Linux LVM

Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 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: 0x2dfcc8c9

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     8390655     4194304   83  Linux
/dev/sdb2         8390656    12584959     2097152   83  Linux
/dev/sdb3        12584960    13608959      512000   83  Linux
/dev/sdb4        13608960    20971519     3681280   83  Linux

Disk /dev/sdc: 4294 MB, 4294967296 bytes, 8388608 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: 0xb8293f05

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048     8388607     4193280   83  Linux

Disk /dev/mapper/centos-root: 18.2 GB, 18249416704 bytes, 35643392 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 /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 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

2.使用SWAP分区专用的格式化命令mkswap,对新建的主分区进行格式化操作:

[root@localhost ~]# mkswap /dev/sdc1
Setting up swapspace version 1, size = 4193276 KiB
no label, UUID=3b16d39c-cd1a-4787-93da-d5ce26b2a6b3

3.使用swapon命令把准备好的SWAP分区设备正式挂载到系统中。我们可以使用free -m命令查看交换分区的大小变化(由2047MB增加到6142MB) :

[root@localhost ~]# free 
              total        used        free      shared  buff/cache   available
Mem:         995676      138848      762272        7828       94556      734252
Swap:       2097148           0     2097148

[root@localhost ~]# free -m            #free查看内存信息,-m按照兆单位显示
              total        used        free      shared  buff/cache   available
Mem:            972         135         744           7          92         716
Swap:          2047           0        2047

[root@localhost ~]# swapon /dev/sdc1
[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            972         138         741           7          92         714
Swap:          6142           0        6142
[root@localhost ~]# reboot
[root@localhost ~]# free -m            #他就变回老样子了
              total        used        free      shared  buff/cache   available
Mem:            972         128         751           7          91         724
Swap:          2047           0        2047

4.为了能够让新的交换分区设备在重启后依然生效,需要按照下面的格式将相关信息写入到配置文件中,并记得保存:

[root@localhost ~]# vim /etc/fstab
[root@localhost ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Fri Apr  1 12:16:41 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=91169fc4-a9ae-4f15-a8ea-948cdd5959f3 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sdb1 		/data			xfs	defaults	0 0
/dev/sdb2		/log			ext4	defaults	0 0
/dev/sdb3		/share			ext4	defaults	0 0
/dev/sdc1		swap			swap	defaults	0 0
[root@localhost ~]# reboot

七.补充

硬链接不能跨分区,但是在同一磁盘下,文件大小相同

[root@localhost /]# touch file1
[root@localhost /]# ll
total 25
lrwxrwxrwx.   1 root root    7 Apr  1 12:16 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 Apr  1 12:22 boot
drwxr-xr-x    2 root root    6 Jul 18 12:21 data
drwxr-xr-x    2 root root    6 Jul 18 12:24 data1
drwxr-xr-x    3 root root 4096 Jul 18 12:24 data2
drwxr-xr-x   20 root root 3360 Jul 18 14:18 dev
drwxr-xr-x.  75 root root 8192 Jul 18 14:18 etc
-rw-r--r--    1 root root    0 Jul 18 14:24 file1
drwxr-xr-x.   5 root root   43 Jun 17 10:10 home
lrwxrwxrwx.   1 root root    7 Apr  1 12:16 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 Apr  1 12:16 lib64 -> usr/lib64
drwxr-xr-x    6 root root 4096 Jul 18 12:37 log
drwxr-xr-x.   2 root root    6 Apr 11  2018 media
drwxr-xr-x.   2 root root    6 Apr 11  2018 mnt
drwxr-xr-x.   2 root root    6 Apr 11  2018 opt
dr-xr-xr-x  128 root root    0 Jul 18 14:18 proc
dr-xr-x---.   3 root root  165 Jul 18 14:16 root
drwxr-xr-x   23 root root  660 Jul 18 14:18 run
lrwxrwxrwx.   1 root root    8 Apr  1 12:16 sbin -> usr/sbin
drwxr-xr-x    3 root root 1024 Jul 18 12:22 share
drwxr-xr-x.   2 root root    6 Apr 11  2018 srv
dr-xr-xr-x   13 root root    0 Jul 18 14:23 sys
drwxrwxrwt.   7 root root   93 Jul 18 14:18 tmp
drwxr-xr-x.  13 root root  155 Apr  1 12:16 usr
drwxr-xr-x.  20 root root  278 Jun 17 21:42 var
[root@localhost /]# ln file1 file.bak
[root@localhost /]# ln file1 /data/file.bak
ln: failed to create hard link ‘/data/file.bak’ => ‘file1’: Invalid cross-device link
[root@localhost /]# ll
total 25
lrwxrwxrwx.   1 root root    7 Apr  1 12:16 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 Apr  1 12:22 boot
drwxr-xr-x    2 root root    6 Jul 18 12:21 data
drwxr-xr-x    2 root root    6 Jul 18 12:24 data1
drwxr-xr-x    3 root root 4096 Jul 18 12:24 data2
drwxr-xr-x   20 root root 3360 Jul 18 14:18 dev
drwxr-xr-x.  75 root root 8192 Jul 18 14:18 etc
-rw-r--r--    2 root root    0 Jul 18 14:24 file1
-rw-r--r--    2 root root    0 Jul 18 14:24 file.bak
drwxr-xr-x.   5 root root   43 Jun 17 10:10 home
lrwxrwxrwx.   1 root root    7 Apr  1 12:16 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 Apr  1 12:16 lib64 -> usr/lib64
drwxr-xr-x    6 root root 4096 Jul 18 12:37 log
drwxr-xr-x.   2 root root    6 Apr 11  2018 media
drwxr-xr-x.   2 root root    6 Apr 11  2018 mnt
drwxr-xr-x.   2 root root    6 Apr 11  2018 opt
dr-xr-xr-x  128 root root    0 Jul 18 14:18 proc
dr-xr-x---.   3 root root  165 Jul 18 14:16 root
drwxr-xr-x   23 root root  660 Jul 18 14:18 run
lrwxrwxrwx.   1 root root    8 Apr  1 12:16 sbin -> usr/sbin
drwxr-xr-x    3 root root 1024 Jul 18 12:22 share
drwxr-xr-x.   2 root root    6 Apr 11  2018 srv
dr-xr-xr-x   13 root root    0 Jul 18 14:23 sys
drwxrwxrwt.   7 root root   93 Jul 18 14:18 tmp
drwxr-xr-x.  13 root root  155 Apr  1 12:16 usr
drwxr-xr-x.  20 root root  278 Jun 17 21:42 var
[root@localhost /]# stat file1
  File: ‘file1’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 30303       Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-07-18 14:24:04.135009143 +0800
Modify: 2022-07-18 14:24:04.135009143 +0800
Change: 2022-07-18 14:24:27.701009742 +0800
 Birth: -
[root@localhost /]# stat file.bak 
  File: ‘file.bak’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 30303       Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-07-18 14:24:04.135009143 +0800
Modify: 2022-07-18 14:24:04.135009143 +0800
Change: 2022-07-18 14:24:27.701009742 +0800
 Birth: -

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值