df,du,fdisk,磁盘分区,mke2fs,磁盘挂载,增加swap空间,lvm讲解,磁盘故障小案例

一、df命令

df命令(disk filesystem)用于查看文件系统的使用情况,包括已挂载磁盘的总容量、使用容量、剩余容量等,可以不加参数,默认以KB为单位显示。
[root@aming01 ~]# df
文件系统          1K-块    已用     可用 已用% 挂载点
/dev/sda3      29140072 1003020 28137052    4% /
devtmpfs         752280       0   752280    0% /dev
tmpfs            762124       0   762124    0% /dev/shm
tmpfs            762124    8772   753352    2% /run
tmpfs            762124       0   762124    0% /sys/fs/cgroup
/dev/sda1        201380   99156   102224   50% /boot

tmpfs            152428       0   152428    0% /run/user/0

第一列是文件系统,也就是分区名字;第二列是磁盘的总大小,单位KB

-h:使用合适单位显示;

[root@aming01 ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        28G  980M   27G    4% /
devtmpfs        735M     0  735M    0% /dev
tmpfs           745M     0  745M    0% /dev/shm
tmpfs           745M  8.6M  736M    2% /run
tmpfs           745M     0  745M    0% /sys/fs/cgroup
/dev/sda1       197M   97M  100M   50% /boot

tmpfs           149M     0  149M    0% /run/user/0

-i:查看inodes使用情况;

[root@aming01 ~]# df -i
文件系统          Inode 已用(I)  可用(I) 已用(I)% 挂载点
/dev/sda3      14577152   26532 14550620       1% /
devtmpfs         188070     379   187691       1% /dev
tmpfs            190531       1   190530       1% /dev/shm
tmpfs            190531     458   190073       1% /run
tmpfs            190531      16   190515       1% /sys/fs/cgroup
/dev/sda1        102400     327   102073       1% /boot

tmpfs            190531       1   190530       1% /run/user/0

-k、-m:分别以KB、MB单位显示。

[root@aming01 ~]# df -k
文件系统          1K-块    已用     可用 已用% 挂载点
/dev/sda3      29140072 1003020 28137052    4% /
devtmpfs         752280       0   752280    0% /dev
tmpfs            762124       0   762124    0% /dev/shm
tmpfs            762124    8772   753352    2% /run
tmpfs            762124       0   762124    0% /sys/fs/cgroup
/dev/sda1        201380   99156   102224   50% /boot
tmpfs            152428       0   152428    0% /run/user/0
[root@aming01 ~]# df -m
文件系统       1M-块  已用  可用 已用% 挂载点
/dev/sda3      28458   980 27478    4% /
devtmpfs         735     0   735    0% /dev
tmpfs            745     0   745    0% /dev/shm
tmpfs            745     9   736    2% /run
tmpfs            745     0   745    0% /sys/fs/cgroup
/dev/sda1        197    97   100   50% /boot
tmpfs            149     0   149    0% /run/user/0


二、du命令

du 命令(disk useage)用来查看某个目录或文件所占文件大小;

格式为du [-abckmsh] [文件或目录名]

[root@aming01 ~]# du
8   ./.ssh
0   ./666
44  .

-a:表示全部文件和目录的大小都列出来;

[root@aming01 ~]# du -a
4   ./.bash_logout
4   ./.bash_profile
4   ./.bashrc
4   ./.cshrc
4   ./.tcshrc
4   ./anaconda-ks.cfg
12  ./.bash_history
4   ./.ssh/authorized_keys
4   ./.ssh/known_hosts
8   ./.ssh
0   ./666
44  .

-b :表示列出的值以B为单位输出;

-k:表示以KB为单位输出;

[root@aming01 ~]# du -k
8   ./.ssh
0   ./666
44  .

-m:表示以MB为单位输出;

-h:表示系统自动调节单位;

[root@aming01 ~]# du -h
8.0K    ./.ssh
0   ./666
44K .

-c:表示最后加总;

[root@aming01 ~]# du -c
8   ./.ssh
0   ./666
44  .
44  总用量

-s:表示只列出总和。

[root@aming01 ~]# du -s
44  .

fdisk命令

fdisk是Linux下硬盘的分区工具,非常实用的一个命令,但是只能划分小于2TB的分区,一块磁盘最多有4个主分区,或者最多3个主分区和一个扩展分区,扩展分区下可以建立多个逻辑分区.。该命令的格式为fdisk [-l] [设备名称]。选项-l后面不加设备名称,就会直接列出系统所有的磁盘设备以及分区列表;加上设备名称,则会列出该设备的分区表。

[root@aming01 ~]# fdisk -l

磁盘 /dev/sda:32.2 GB, 32212254720 字节,62914560 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000c0eb1

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      411647      204800   83  Linux
/dev/sda2          411648     4605951     2097152   82  Linux swap / Solaris
/dev/sda3         4605952    62914559    29154304   83  Linux

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区             #刚刚添加的磁盘,还未分区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

fdisk显示磁盘分区信息的含义

第一列:分区设备文件所在的路径。
第二类:是否为活动分区。如果是则显示为星号‘*’
第三列:分区的起始扇区。
第四列:分区的结束扇区。
第五列:该分区的block数量
第五列:分区ID表示这个分区的类型。
第六列:分区的文件系统,这里显示的为大类,Linux有很多种文件系统。

对新增的一块磁盘/dev/sdb使用fdisk命令,进行操作,再输入m获取帮助信息

[root@aming01 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x554874e2 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):m
命令操作
   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)

我们常用的命令有:
n:表示建立一个新的分区;

p:表示打印当前磁盘的分区情况;

w: 保存;

d:删除一个分区。

输入命令p,则会发现没有分区

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x554874e2

   设备 Boot      Start         End      Blocks   Id  System

在输入命令n,出现两种选择,p:主分区(最多4个),e:扩展分区

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended

这时输入p,来创建4个主分区(如果操作中输入有误,按Ctrl+u清除)

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p 
分区号 (1-4,默认 1):1                        #输入分区号
起始 扇区 (2048-41943039,默认为 2048):            #这里按enter继续
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G       #输入大小
分区 1 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x554874e2

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10487807     5242880   83  Linux

创建成功

命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x554874e2

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10487807     5242880   83  Linux
/dev/sdb2        10487808    14682111     2097152   83  Linux
/dev/sdb3        14682112    23070719     4194304   83  Linux
/dev/sdb4        23070720    31459327     4194304   83  Linux

因为创建了4个主分区,如果再创建就会提示错误,需要删除

命令(输入 m 获取帮助):n
If you want to create more than four partitions, you must replace a
primary partition with an extended partition first.

命令(输入 m 获取帮助):d
分区号 (1-4,默认 4):4
分区 4 已删除

创建扩展分区

输入n后选择e,创建扩展分区,起始扇区按enter继续,在分区大小我们保持默认按enter,即是将剩下的空间分给它

命令(输入 m 获取帮助):n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): e
已选择分区 4
起始 扇区 (23070720-41943039,默认为 23070720):
将使用默认值 23070720
Last 扇区, +扇区 or +size{K,M,G} (23070720-41943039,默认为 41943039):
将使用默认值 41943039
分区 4 已设置为 Extended 类型,大小设为 9 GiB

输入p,查看分区情况

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x554874e2

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10487807     5242880   83  Linux
/dev/sdb2        10487808    14682111     2097152   83  Linux
/dev/sdb3        14682112    23070719     4194304   83  Linux
/dev/sdb4        23070720    41943039     9436160    5  Extended

创建逻辑分区

逻辑分区的编号是从5开始,并且是自动排列的。
比如有两个逻辑分区,5和6, 如果把分区编号5的逻辑分区删除了,那么分区编号6的逻辑分区会自动改为编号5
命令(输入 m 获取帮助):n       
All primary partitions are in use
添加逻辑分区 5
起始 扇区 (23072768-41943039,默认为 23072768):
将使用默认值 23072768
Last 扇区, +扇区 or +size{K,M,G} (23072768-41943039,默认为 41943039):+5G
分区 5 已设置为 Linux 类型,大小设为 5 GiB

输入p,查看分区情况

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x554874e2

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10487807     5242880   83  Linux
/dev/sdb2        10487808    14682111     2097152   83  Linux
/dev/sdb3        14682112    23070719     4194304   83  Linux
/dev/sdb4        23070720    41943039     9436160    5  Extended
/dev/sdb5        23072768    33558527     5242880   83  Linux

设置好我们的分区后:输入w保存退出


三、磁盘分区

硬盘可以被分成一个或多个逻辑磁盘,称为分区

Linux至少需要一个分区,即用做它的root文件系统。也就是根分区。

首先增加虚拟磁盘,鼠标右击当前虚拟机的选项卡,选择设置
这里写图片描述
点击左下方的添加按钮,此时会弹出“添加硬件向导”对话框,点下一步;
这里写图片描述
选择硬件类型,保持“硬盘”默认,点下一步;
这里写图片描述
选择磁盘类型对话框也保持默认,点下一步;
这里写图片描述
选择磁盘对话框也保持默认,点下一步;
这里写图片描述
在指定磁盘容量对话框里要修改一下,设定最大磁盘大小为20GB,然后选择将虚拟磁盘拆分成多个文件,点下一步;
这里写图片描述
继续点下一步,然后更改你所需的名字(这里保存默认)点击完成按钮,最终添加新的虚拟磁盘。新添加的虚拟磁盘需要系统重启后才能被识别到。
这里写图片描述

四、磁盘格式化

所谓格式化,就是安装文件系统,Windows下的文件系统有FAT32和NTFS,CentOS 7以XFS作为默认的文件系统,(CentOS 6的文件系统为ext4;CentOS 5的文件系统为ext3;更早的为ext2)可以查看系统支持的文件系统格式,/和/boot都是XFS格式



硬盘需要分区,创建文件系统后才能正常存放数据,而创建文件系统的过程就是格式化
1、格式化分区可以使用mke2fs 命令,但是这个命令不能将分区格式化为xfs类型;
2、可以使用mkfs.xfs 命令将分区格式化为xfs类型;
3、mkfs.ext4 可以将分区格式化为ext4类型;
4、mkfs.ext3 可以将分区格式化为ext3 类型

mke2fs命令

用法:mke2fs [选项] [参数]

-b<区块大小>:指定区块大小,单位为字节;
-c;检查是否有损坏的区块;
-f<不连续区段大小>:指定不连续区段的大小,单位为字节;
-F:不管指定的设备为何,强制执行mke2fs;
-i<字节>:指定"字节/inode"的比例;
-N<inode数>:指定要建立的inode数目;
-l<文件>:从指定的文件中,读取文件西中损坏区块的信息;
-L<标签>:设置文件系统的标签名称;
-m<百分比值>:指定给管理员保留区块的比例,预设为5%;
-M:记录最后一次挂入的目录;
-q:执行时不显示任何信息;
-r:指定要建立的ext2文件系统版本;
-R=<区块数>:设置磁盘阵列参数;
-S:仅写入superblock与group descriptors,而不更改inode able inode bitmap以及block bitmap;
-v:执行时显示详细信息;
-V:显示版本信息

-t :表示用来指定文件系统的类型,可以是ext2,ext3,也可以是ext4,xfs不可以。

指定文件系统格式为ext4,mke2fs ext4 /dev/sdb1等同于mkfs.ext4 /dev/deb1

[root@aming01 ~]# mke2fs -t ext4 /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
无论如何也要继续? (y,n) y
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242880 blocks
262144 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2153775104
160 block groups
32768 blocks per group, 32768 fragments per group
8192 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: 完成
[root@aming01 ~]# mke2fs -t xfs /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
无论如何也要继续? (y,n) y

Your mke2fs.conf file does not define the xfs filesystem type.
Aborting...

如果想把分区格式化成XFS类型,需要使用 mkfs.xfs 命令;

[root@aming01 ~]# mkfs.xfs -f /dev/sdb
meta-data=/dev/sdb               isize=512    agcount=4, agsize=1310720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242880, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
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

-b:表示分区时指定每个数据区块占用的空间大小,目前,每个数据块支持1024B,2048B以及4096B;(如果专门用来储存视频和高清图片的话数据区块可以改为8192B,这样会加快提取速度)

[root@aming01 ~]# mke2fs -b 2048 /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
无论如何也要继续? (y,n) y
文件系统标签=
OS type: Linux
块大小=2048 (log=1)
分块大小=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 10485760 blocks
524288 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=547356672
640 block groups
16384 blocks per group, 16384 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 
    16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 
    2048000, 3981312, 5619712, 10240000

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Writing superblocks and filesystem accounting information: 完成  

-m:表示指定给管理员保留区块的比例,默认预设为5%

[root@aming01 ~]# mke2fs -m 1 /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
无论如何也要继续? (y,n) y
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242880 blocks
52428 blocks (1.00%) reserved for the super user                   #其中的blocks (1.00%)
第一个数据块=0
Maximum filesystem blocks=4294967296
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Writing superblocks and filesystem accounting information: 完成 

-i 选项:指定inode的大小, 默认为4个block生成1个inode ,根据块大小来设置inode,最低需要一个块一个inode

[root@aming01 ~]# mke2fs -i 2048 /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
无论如何也要继续? (y,n) y
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
10485760 inodes, 5242880 blocks
262090 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2159033344
320 block groups
16424 blocks per group, 16424 fragments per group
32768 inodes per group
Superblock backups stored on blocks: 
    16424, 49272, 82120, 114968, 147816, 410600, 443448, 804776, 1330344, 
    2053000, 3991032

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Writing superblocks and filesystem accounting information: 完成 

五、磁盘挂载

磁盘格式化完成后需要挂载后才能进行使用
在挂载某个分区前需要先建立一个挂载点,这个挂载点是以目录的形式出现的。一旦把某一个分区挂载到了这个挂载点(目录)下,那么再往这个目录写数据时,则都会写到该分区中。
注意:在磁盘挂载分区前,挂载点下必须是空目录,因为磁盘挂载后该目录下之前的东西就看不到了,只有卸载分区后才能看到。


1、mount命令进行挂载:

[root@aming01 ~]# mount /dev/sdb /mnt/

[root@aming01 ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        28G  980M   27G    4% /
devtmpfs        735M     0  735M    0% /dev
tmpfs           745M     0  745M    0% /dev/shm
tmpfs           745M  8.6M  736M    2% /run
tmpfs           745M     0  745M    0% /sys/fs/cgroup
/dev/sda1       197M   97M  100M   50% /boot
tmpfs           149M     0  149M    0% /run/user/0
/dev/sdb         18G   49M   17G    1% /mnt

参考他人:
-o 选项:指定挂载参数

挂载参数:表示挂载后该分区的一些属性。
    remount:重新挂载
    rw:可读写
    ro:只读
    suid:可以设置setuid权限
    nosuid:不可设置setuid权限
    exec:可执行
    noexec:不可执行
    auto:自动挂载
    noauto:不会自动挂载
    user:普通用户可挂载
    nouser:普通用户不可挂载
    async   写入磁盘的数据非实时同步    sync:实时同步写入磁盘数据 

例子:

将/etc/sdb重新挂载为一个只读分区。
[root@long01 ~]# mount -o ro,remount /dev/sdb  #重新挂载不需要指定挂载点。可以使用逗号隔开多个挂载参数。
[root@long01 ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        17G  2.8G   15G   17% /
devtmpfs        983M     0  983M    0% /dev
tmpfs           993M     0  993M    0% /dev/shm
tmpfs           993M  8.6M  984M    1% /run
tmpfs           993M     0  993M    0% /sys/fs/cgroup
/dev/sda1      1014M  119M  896M   12% /boot
tmpfs           199M     0  199M    0% /run/user/0
/dev/sdb         20G  176K   20G    1% /mnt

#无法向这个分区写入数据了。
[root@long01 ~]# touch test.txt /mnt
touch: 正在设置"/mnt" 的时间: 只读文件系统
#重新挂载为rw就可以写入数据了
[root@long01 ~]# mount -o remount,rw /dev/sdb
[root@long01 ~]# touch test.txt /mnt

2、umount命令

umount命令用来卸载:umount /dev/sdb 或者 umount /mnt/(通过挂载点卸载)

[root@aming01 ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        28G  980M   27G    4% /
devtmpfs        735M     0  735M    0% /dev
tmpfs           745M     0  745M    0% /dev/shm
tmpfs           745M  8.6M  736M    2% /run
tmpfs           745M     0  745M    0% /sys/fs/cgroup
/dev/sda1       197M   97M  100M   50% /boot
tmpfs           149M     0  149M    0% /run/user/0
/dev/sdb         18G   49M   17G    1% /mnt
[root@aming01 ~]# umount /dev/sdb /mnt
umount: /mnt:未挂载
[root@aming01 ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        28G  980M   27G    4% /
devtmpfs        735M     0  735M    0% /dev
tmpfs           745M     0  745M    0% /dev/shm
tmpfs           745M  8.6M  736M    2% /run
tmpfs           745M     0  745M    0% /sys/fs/cgroup
/dev/sda1       197M   97M  100M   50% /boot
tmpfs           149M     0  149M    0% /run/user/0

加上-l选项,无需退出分区所在的目录就可以直接强制卸载

配置开机自动挂载

先查看/etc/fstab配置文件

# /etc/fstab
# Created by anaconda on Tue Apr 24 23:32:27 2018
#
# 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
#
UUID=aca74be8-4a6f-46cc-a83d-336ed02907b4 /                       xfs     defaults        0 0
UUID=e7dff395-1ea8-4f3e-9f0e-6a8d4d33b149 /boot                   xfs     defaults        0 0
UUID=65ffc63f-56f1-46e2-bcc9-6078f56d6786 swap                    swap    defaults        0 0
第一列是分区标识,可以写分区的label,UUID,也可以写分区名;
第二列是挂载点;
第三列是分区的格式;
第四列是mount的挂载参数;
第五列的数字表示是否被dump备份,1是备份,0没备份;
第六列的数字表示开机是否自检磁盘,12检测,0不检测。

在UUID下添加,就完成了开机自动挂载

/dev/sdb           /sdb/         xfs     defaults        0 0


六、手动增加swap空间

1、建立swapfile,dd命令用于操作磁盘(可读写),if指定源,of指定目标文件,bs定义块的大小,count磁盘大小
[root@aming01 ~]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=100
记录了100+0 的读入
记录了100+0 的写出
104857600字节(105 MB)已复制,0.187229 秒,560 MB/秒
2、格式化为swap 格式
[root@aming01 ~]# mkswap -f /tmp/newdisk
正在设置交换空间版本 1,大小 = 102396 KiB
无标签,UUID=41ba2fd1-c9be-4228-a810-205c00d728c5
3、启用刚创建的swap文件,然后设置swap文件权限,在这过程中,使用free命令查看是否增加swap空间成功
[root@aming01 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1488         116        1164           8         207        1198
Swap:          2047           0        2047
[root@aming01 ~]# swapon /tmp/newdisk
swapon: /tmp/newdisk:不安全的权限 0644,建议使用 0600。
[root@aming01 ~]# chmod 600 /tmp/newdisk
[root@aming01 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1488         116        1163           8         207        1198
Swap:          2147           0        2147

swap空间从2047增加到2147,增加成功

卸载swap文件

[root@aming01 ~]# swapoff /tmp/newdisk
[root@aming01 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1488         116        1164           8         207        1198


七、lvm讲解

LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制

LVM可以方便的让我们对分区扩容或缩容,但是目前运用的并不是很多,因为它的局限性较大,安全性较低,操作起来比较复杂等因素,现在很多公司不再采用这种分区管理工具。其工作原理如下图所示

具体操作步骤是:给磁盘划分分区→将分区做成物理卷 →将物理卷做成卷组→在卷组的基础上划分逻辑卷→

格式化→挂载使用

1、准备磁盘分区

安装lvm命令: yum install lvm2
先创建3个分区

命令(输入 m 获取帮助):n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
分区号 (3,4,默认 3):3
起始 扇区 (4196352-41943039,默认为 4196352):
将使用默认值 4196352
Last 扇区, +扇区 or +size{K,M,G} (4196352-41943039,默认为 41943039):+1G
分区 3 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xaa49a44c

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux
/dev/sdb2         2099200     4196351     1048576   83  Linux
/dev/sdb3         4196352     6293503     1048576   83  Linux

改变分区类型为8e

命令(输入 m 获取帮助):t           
分区号 (1-3,默认 3):2,3
分区号 (1-3,默认 3):2
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):3
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xaa49a44c

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   8e  Linux LVM
/dev/sdb2         2099200     4196351     1048576   8e  Linux LVM
/dev/sdb3         4196352     6293503     1048576   8e  Linux LVM

2、创建物理卷

命令pvcreate,创建过程中,如果没有自动生成 /dev/sdb1文件,这是只要输入partprobe命令即可立即生成

[root@aming01 ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.

PS:在运行命令# pvcreate /dev/sdb1时,出现未找到命令,这时就要安装软件包,这里如果忘记软件包的名字,可以根据命令搜索软件包名称 yum provides “/*pvcreate” ,搜索到正确软件包名称lvm2,然后安装 yum install -y lvm2
这里写图片描述

物理卷创建完成后,可以用命令pvdisplay查看

[root@aming01 ~]# pvdisplay
  "/dev/sdb3" is a new physical volume of "1.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb3
  VG Name               
  PV Size               1.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               UQUhQk-uqwV-La5d-mBBJ-nb1S-EaBA-U15gwc

使用命令pvs,更加简单直观

[root@aming01 ~]# pvs
  PV         VG Fmt  Attr PSize PFree
  /dev/sdb1     lvm2 ---  1.00g 1.00g
  /dev/sdb2     lvm2 ---  1.00g 1.00g
  /dev/sdb3     lvm2 ---  1.00g 1.00g

3、创建卷组

命令vgcreate(volume group create),命令vgremove删除卷组

[root@aming01 ~]# vgcreate vg1 /dev/sdb1 /dev/sdb2
  Volume group "vg1" successfully created

用命令vgdisplay和命令vgs查看信息

[root@aming01 ~]# vgdisplay
  --- Volume group ---
  VG Name               vg1
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               1.99 GiB
  PE Size               4.00 MiB
  Total PE              510
  Alloc PE / Size       0 / 0   
  Free  PE / Size       510 / 1.99 GiB
  VG UUID               nU0zOd-SwFX-arBO-I54F-vFo7-BCoY-1SQ1EC

[root@aming01 ~]# vgs
  VG  #PV #LV #SN Attr   VSize VFree
  vg1   2   0   0 wz--n- 1.99g 1.99g

4、创建逻辑卷

命令lvcreate(logical volume create)

-L:指定逻辑卷的大小;

-n:指定逻辑卷的名称

[root@aming01 ~]# lvcreate -L 100M -n lv1 vg1
  Logical volume "lv1" created.

删除逻辑卷

[root@aming01 ~]# lvremove /dev/vg1/lv1

格式化成ext4

[root@aming01 ~]# mkfs.ext4 /dev/vg1/lv1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25688 inodes, 102400 blocks
5120 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=33685504
13 block groups
8192 blocks per group, 8192 fragments per group
1976 inodes per group
Superblock backups stored on blocks: 
    8193, 24577, 40961, 57345, 73729

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 

挂载

[root@aming01 ~]# mount /dev/vg1/lv1 /mnt/
[root@aming01 ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/sda3             28G  1.1G   27G    4% /
devtmpfs             735M     0  735M    0% /dev
tmpfs                745M     0  745M    0% /dev/shm
tmpfs                745M  8.6M  736M    2% /run
tmpfs                745M     0  745M    0% /sys/fs/cgroup
/dev/sda1            197M   97M  100M   50% /boot
tmpfs                149M     0  149M    0% /run/user/0
/dev/mapper/vg1-lv1   93M  1.6M   85M    2% /mnt

这里我们monut的是/dev/vg1/lv1,显示的却不是这个文件,查看一下,指向都是同一文件


[root@aming01 ~]# ls -l /dev/vg1/lv1
lrwxrwxrwx. 1 root root 7 523 04:21 /dev/vg1/lv1 -> ../dm-0
[root@aming01 ~]# ls -l /dev/mapper/vg1-lv1
lrwxrwxrwx. 1 root root 7 523 04:21 /dev/mapper/vg1-lv1 -> ../dm-0

[root@aming01 ~]# mkdir /mnt/123
[root@aming01 ~]# touch /mnt/456.txt
[root@aming01 ~]# echo "11111111"> /mnt/456.txt

扩容逻辑卷

lvresize -L 300M /dev/vg1/lv1 重新设置卷大小;

e2fsck -f /dev/vg1/lv1 检查磁盘错误 (ext4执行);

resize2fs /dev/vg1/lv1 更新逻辑卷信息(ext4执行);

xfs_growfs /dev/vg1/lv1 xfs文件系统需要执行。

命令lvresize:,因为在挂载状态,所以要先umount比较规范
-L:指定扩容大小

[root@aming01 ~]# umount /mnt/
[root@aming01 ~]# lvresize -L 300M /dev/vg1/lv1
  New size (75 extents) matches existing size (75 extents).

检查磁盘错误 (ext4执行): e2fsck -f

[root@aming01 ~]# e2fsck -f /dev/vg1/lv1
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3: 检查目录连接性
Pass 4: Checking reference counts
第5: 检查簇概要信息
/dev/vg1/lv1: 13/25688 files (7.7% non-contiguous), 8899/102400 blocks

更新逻辑卷信息(ext4执行),扩容之后,文件也不丢失

[root@aming01 ~]# mount /dev/vg1/lv1 /mnt/
[root@aming01 ~]# resize2fs /dev/vg1/lv1
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg1/lv1 is mounted on /mnt; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 3
The filesystem on /dev/vg1/lv1 is now 307200 blocks long.

[root@aming01 ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/sda3             28G  1.1G   27G    4% /
devtmpfs             735M     0  735M    0% /dev
tmpfs                745M     0  745M    0% /dev/shm
tmpfs                745M  8.6M  736M    2% /run
tmpfs                745M     0  745M    0% /sys/fs/cgroup
/dev/sda1            197M   97M  100M   50% /boot
tmpfs                149M     0  149M    0% /run/user/0
/dev/mapper/vg1-lv1  287M  2.1M  270M    1% /mnt

缩容(xfs不支持缩容)

先umount

e2fsck -f /dev/vg1/lv1 检查磁盘错误(ext)

resize2fs /dev/vg1/lv1 100M 更新逻辑卷信息(ext)

lvresize -L 100M /dev/vg1/lv1 重新设置卷大小


先umount,然后检查磁盘错误

[root@aming01 ~]# umount /mnt/
[root@aming01 ~]# e2fsck -f /dev/vg1/lv1
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3: 检查目录连接性
Pass 4: Checking reference counts
第5: 检查簇概要信息
/dev/vg1/lv1: 13/75088 files (7.7% non-contiguous), 15640/307200 blocks

更新逻辑卷信息(ext4执行)

[root@aming01 ~]# resize2fs /dev/vg1/lv1 100M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg1/lv1 to 102400 (1k) blocks.
The filesystem on /dev/vg1/lv1 is now 102400 blocks long.

重新设置逻辑卷大小

[root@aming01 ~]# lvresize -L 100M /dev/vg1/lv1
  WARNING: Reducing active logical volume to 100.00 MiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg1/lv1? [y/n]: y
  Size of logical volume vg1/lv1 changed from 300.00 MiB (75 extents) to 100.00 MiB (25 extents).
  Logical volume vg1/lv1 successfully resized.
[root@aming01 ~]# lvs
  LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1  vg1 -wi-a----- 100.00m 

挂载

[root@aming01 ~]# mount /dev/vg1/lv1 /mnt/
[root@aming01 ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/sda3             28G  1.1G   27G    4% /
devtmpfs             735M     0  735M    0% /dev
tmpfs                745M     0  745M    0% /dev/shm
tmpfs                745M  8.6M  736M    2% /run
tmpfs                745M     0  745M    0% /sys/fs/cgroup
/dev/sda1            197M   97M  100M   50% /boot
tmpfs                149M     0  149M    0% /run/user/0
/dev/mapper/vg1-lv1   93M  1.6M   86M    2% /mnt

扩容逻辑卷(xfs)

xfs扩容不需要卸载分区,xfs不支持缩容操作
先将逻辑卷格式化为xfs格式

[root@aming01 ~]# umount /mnt/
[root@aming01 ~]# mkfs.xfs -f /dev/vg1/lv1
meta-data=/dev/vg1/lv1           isize=512    agcount=4, agsize=6400 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=25600, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=855, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

挂载

[root@aming01 ~]# mount /dev/vg1/lv1 /mnt/
[root@aming01 ~]# mkdir /mnt/666
[root@aming01 ~]# touch /mnt/777.txt
[root@aming01 ~]# echo "1111">/mnt/777.txt
[root@aming01 ~]# ls /mnt/
666  777.txt
[root@aming01 ~]# lvs
  LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1  vg1 -wi-ao---- 100.00m   

重新设置逻辑卷大小

[root@aming01 ~]# lvresize -L 400M /dev/vg1/lv1
  Size of logical volume vg1/lv1 changed from 100.00 MiB (25 extents) to 400.00 MiB (100 extents).
  Logical volume vg1/lv1 successfully resized.

更新xfs逻辑卷信息

[root@aming01 ~]# xfs_growfs /dev/vg1/lv1
meta-data=/dev/mapper/vg1-lv1    isize=512    agcount=4, agsize=6400 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=25600, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=855, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 25600 to 102400
[root@aming01 ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/sda3             28G  1.1G   27G    4% /
devtmpfs             735M     0  735M    0% /dev
tmpfs                745M     0  745M    0% /dev/shm
tmpfs                745M  8.6M  736M    2% /run
tmpfs                745M     0  745M    0% /sys/fs/cgroup
/dev/sda1            197M   97M  100M   50% /boot
tmpfs                149M     0  149M    0% /run/user/0
/dev/mapper/vg1-lv1  397M  5.6M  392M    2% /mnt

扩容卷组

fdisk /dev/sdb 新增/dev/sdb3 2G
pvcreate /dev/sdb3
vgextend vg1 /dev/sdb3
lvresize -L 100M /dev/vg1/lv1 重新设置卷大小

命令vgextend

[root@aming01 ~]# vgextend vg1 /dev/sdb3
  Volume group "vg1" successfully extended
[root@aming01 ~]# vgdisplay
  --- Volume group ---
  VG Name               vg1
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  10
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               <2.99 GiB
  PE Size               4.00 MiB
  Total PE              765
  Alloc PE / Size       100 / 400.00 MiB
  Free  PE / Size       665 / <2.60 GiB
  VG UUID               nU0zOd-SwFX-arBO-I54F-vFo7-BCoY-1SQ1EC

八、磁盘故障小案例

做完LVM实验之后,重启后可能会发现不能进入系统,故障如下:
这里写图片描述

先输入root密码回车,然后编辑# vi /etc/fstab文件;将光标移至红框那一行,按dd删除这一行,:wq保存退出,重启之后就能正常使用
这里写图片描述
这里写图片描述

扩展:
raid讲解 :https://blog.csdn.net/caipeichao2/article/details/52661825

dd测试磁盘性能:https://blog.csdn.net/daiyudong2020/article/details/53157558

dd备份硬盘数据:http://zuyunfei.com/2015/06/04/linux-dd/

阿里云磁盘扩容文档:https://help.aliyun.com/document_detail/25452.html

parted分区gpt格式:http://www.apelearn.com/bbs/thread-7243-1-1.html

存储与服务器的连接方式:https://blog.csdn.net/JesseYoung/article/details/38367217

LVM详解:http://lzw.me/a/linux-lvm.html

猜你喜欢

转载自blog.csdn.net/iamfishhh/article/details/80406459