2018-05-21课后笔记

预习课程 

4.1 df命令
4.2 du命令
4.3/4.4 磁盘分区
4.5/4.6 磁盘格式化
4.7/4.8 磁盘挂载
4.9 手动增加swap空间
4.10/4.11/4.12 lvm讲解
4.13 磁盘故障小案例

 

 

 4.1 df命令

  • 命令df(disk filesystem的简写),用于查看已挂载磁盘的总容量、使用容量、剩余容量等,可以不加任何参数,默认以KB为单位显示,如下:
[root@localhost ~]# df
文件系统                   1K-块   已用     可用 已用% 挂载点
/dev/mapper/centos-root 29137000 937588 28199412    4% /
devtmpfs                  494164      0   494164    0% /dev
tmpfs                     504636      0   504636    0% /dev/shm
tmpfs                     504636   6872   497764    2% /run
tmpfs                     504636      0   504636    0% /sys/fs/cgroup
/dev/sda1                 201388 111872    89516   56% /boot
tmpfs                     100928      0   100928    0% /run/user/0
  • -i 表示查看inodes的使用情况,如以用100%,即使磁盘空间有富余,也会提示磁盘空间已满。例子如下:上面的例子中,其中/ /boot是我们安装系统时划分出来的的。/dev /dev/shm为内存分区,默认大小是内存大小的一半,如果我们把文件存到这个分区下,相当于存到内存中,好处是读写速度快,坏处是系统重启时文件就会丢失,后面的/run /sys/fs/cgroup等分区都是tmpfs,跟 /dev/shm类似,为临时文件系统,我们不要碰它。df的命令的常用选项为 -i -h -k -m。举例说明:
[root@localhost ~]# df -i
文件系统                   Inode 已用(I)  可用(I) 已用(I)% 挂载点
/dev/mapper/centos-root 29151232   24693 29126539       1% /
devtmpfs                  123541     386   123155       1% /dev
tmpfs                     126159       1   126158       1% /dev/shm
tmpfs                     126159     474   125685       1% /run
tmpfs                     126159      13   126146       1% /sys/fs/cgroup
/dev/sda1                 204800     331   204469       1% /boot
tmpfs                     126159       1   126158       1% /run/user/0
  • -h 表示使用合适的单位显示,例如GB。如下:
[root@localhost ~]# df -k
文件系统                   1K-块   已用     可用 已用% 挂载点
/dev/mapper/centos-root 29137000 937148 28199852    4% /
devtmpfs                  494164      0   494164    0% /dev
tmpfs                     504636      0   504636    0% /dev/shm
tmpfs                     504636   6872   497764    2% /run
tmpfs                     504636      0   504636    0% /sys/fs/cgroup
/dev/sda1                 201388 111872    89516   56% /boot
tmpfs                     100928      0   100928    0% /run/user/0
  • -k和-m:分别表示以KB和MB为单位显示:如下:
[root@localhost ~]# df -k
文件系统                   1K-块   已用     可用 已用% 挂载点
/dev/mapper/centos-root 29137000 937148 28199852    4% /
devtmpfs                  494164      0   494164    0% /dev
tmpfs                     504636      0   504636    0% /dev/shm
tmpfs                     504636   6872   497764    2% /run
tmpfs                     504636      0   504636    0% /sys/fs/cgroup
/dev/sda1                 201388 111872    89516   56% /boot
tmpfs                     100928      0   100928    0% /run/user/0

[root@localhost ~]# df -m
文件系统                1M-块  已用  可用 已用% 挂载点
/dev/mapper/centos-root 28455   916 27539    4% /
devtmpfs                  483     0   483    0% /dev
tmpfs                     493     0   493    0% /dev/shm
tmpfs                     493     7   487    2% /run
tmpfs                     493     0   493    0% /sys/fs/cgroup
/dev/sda1                 197   110    88   56% /boot
tmpfs                      99     0    99    0% /run/user/0
  • 如果想看swap的挂载点可以使用命令 free 。如下:
[root@localhost ~]# free
              total        used        free      shared  buff/cache   available
Mem:        1009276      108104      772204        6876      128968      762180
Swap:       2097148           0     2097148

其中total表示一共是多大的空间, free表示剩余多少。 

 4.2 du命令

命令du(disk useage)用来查看某个目录或者文件所占空间的大小,其格式为du 【-abckmsh】【文件或者目录名】。该命令常用的参数如下几个:

  • -a 表示全部文件和目录大小都列出来,如果后面不加任何的选项和参数,则只会列出目录(包含子目录)的大小,如果du命令不指定单位的话,默认显示单位为KB,示例如下:
[root@localhost ~]# du /tmp/
0	/tmp/.X11-unix
0	/tmp/.XIM-unix
0	/tmp/.Test-unix
0	/tmp/.font-unix
0	/tmp/.ICE-unix
0	/tmp/hongweilinux/2
0	/tmp/hongweilinux
0	/tmp/hw/2
0	/tmp/hw/23
0	/tmp/hw
0	/tmp/tset/abc
0	/tmp/tset
0	/tmp/test_mv/dirb/dira
0	/tmp/test_mv/dirb
0	/tmp/test_mv/dirc
0	/tmp/test_mv
0	/tmp/1.txt
4	/tmp/

[root@localhost ~]# du -a /tmp/
0	/tmp/.X11-unix
0	/tmp/.XIM-unix
0	/tmp/.Test-unix
0	/tmp/.font-unix
0	/tmp/.ICE-unix
0	/tmp/hongweilinux/2
0	/tmp/hongweilinux
0	/tmp/hw/2
0	/tmp/hw/22
0	/tmp/hw/23/1234
0	/tmp/hw/23
0	/tmp/hw
0	/tmp/tset/abc
0	/tmp/tset/test.1
0	/tmp/tset/test.2
0	/tmp/tset
0	/tmp/test_mv/dirb/dira
0	/tmp/test_mv/dirb
0	/tmp/test_mv/dirc
0	/tmp/test_mv
0	/tmp/dirb
0	/tmp/2.test
0	/tmp/3.test
0	/tmp/4.test
0	/tmp/1.txt
0	/tmp/qwer
0	/tmp/hongwei.123
4	/tmp/
  • -b 表示列出的值以B为单位输出。
[root@localhost ~]# du -b /tmp/hw
6	/tmp/hw/2
17	/tmp/hw/23
55	/tmp/hw
[root@localhost
  • -k:表示以KB为单位输出,这和默认的不加任何选项的输出值是一样的。
[root@localhost ~]# du -k /tmp/hw
0	/tmp/hw/2
0	/tmp/hw/23
0	/tmp/hw
  • -m:表示以 MB 为单位输出。
[root@localhost ~]# du -m /tmp/hw
0	/tmp/hw/2
0	/tmp/hw/23
0	/tmp/hw
  • -h:表示系统自动调节单位,例如,如果文件太小,可能就几千字节,就以KB为单位显示。如果文件大到千兆字节,就为GB为单位显示。若一个文件小于4KB,当使用-k选项时,也会显示4kb。
[root@localhost ~]# du -h /tmp/
0	/tmp/.X11-unix
0	/tmp/.XIM-unix
0	/tmp/.Test-unix
0	/tmp/.font-unix
0	/tmp/.ICE-unix
0	/tmp/hongweilinux/2
0	/tmp/hongweilinux
0	/tmp/hw/2
0	/tmp/hw/23
0	/tmp/hw
0	/tmp/tset/abc
0	/tmp/tset
0	/tmp/test_mv/dirb/dira
0	/tmp/test_mv/dirb
0	/tmp/test_mv/dirc
0	/tmp/test_mv
0	/tmp/1.txt
4.0K	/tmp/
  • -c:表示最后加.
[root@localhost ~]# du -c /tmp/
0	/tmp/.X11-unix
0	/tmp/.XIM-unix
0	/tmp/.Test-unix
0	/tmp/.font-unix
0	/tmp/.ICE-unix
0	/tmp/hongweilinux/2
0	/tmp/hongweilinux
0	/tmp/hw/2
0	/tmp/hw/23
0	/tmp/hw
0	/tmp/tset/abc
0	/tmp/tset
0	/tmp/test_mv/dirb/dira
0	/tmp/test_mv/dirb
0	/tmp/test_mv/dirc
0	/tmp/test_mv
0	/tmp/1.txt
4	/tmp/
4	总用量
  • -s:表示只列出总和。
[root@localhost ~]# du -s /tmp/
4	/tmp/

我们常用 df -sh 这样的用法。

4.3/4.4 磁盘分区

  • 4.3.1 新增虚拟磁盘
  1. 在当前虚拟机选项卡点击鼠标右键,选择设置,

2. 此时弹出虚拟机设置对话框,在左侧磁盘中选中 磁盘 ,然后点击下一步,然后点击下方的添加按钮,

3.然后会出现硬件向导,然后下一步

4.然后接着下一步。

5.进入之后我们可以设置磁盘的大小10G,然后下一步。

6.然后点击完成,最后点击确定。

  • 4.3.2 命令fdisk

命令fdisk是linux下硬盘的分区工具,是一个非常实用的命令,但是fdisk只能划分小于2TB的分区。该命令的格式为 fdisk 【-l】【设备名称】,其选项只有-l选项。选项-l后面不加设备名称,会直接列出系统中所有的磁盘设备以及分区出来,加上设备名称,则会列出该设备的分区来。示例如下:

[root@localhost ~]# fdisk -l

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      411647      204800   83  Linux
/dev/sda2          411648    62914559    31251456   8e  Linux LVM

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-root:29.9 GB, 29850861568 字节,58302464 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@localhost ~]# fdisk -l /dev/sdb

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

加上-l选项可以直接看到新增的一块磁盘分区/dev/sdb的信息。

  • fdisk命令后面不加-l选项,则会进去另一个模式,在该模式下,可以对磁盘进行分区操作,示例:
[root@localhost ~]# fdisk  /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

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

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

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

此时如果输入m,会列出常用的命令,如下:

命令(输入 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)

常用的命令为:

p:表示打印当前磁盘的分区情况,示例如下:

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

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

   设备 Boot      Start         End      Blocks   Id  System

因为还没有对/dev/sdb进行任何的分区,所以没有显示任何分区的信息。

-n 表示建议一个新的分区

-w 表示保存

-q 表示退出

-d 表示删除一个分区

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

输入n之后出现二个分区,p是主分区,e是拓展分区。选择p,然后回车,

Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):

输入p后,会提示分区数,这里选择1,也可以写2、3,但最多是4,如果直接回车,会继续提示输入一个数字,紧接着又提示你起始扇区从哪开始,默认是2048,可以写2048或者回车,,然后提示输入最后一个扇区的数值,,即需要给这个分区划分多大的空间,示例如下:

分区号 (1-4,默认 1):1
起始 扇区 (2048-20971519,默认为 2048):2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+2G         
分区 1 已设置为 Linux 类型,大小设为 2 Gi

按照操作,创建4个分区:

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

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

命令(输入 m 获取帮助):n     
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): p
已选择分区 4
起始 扇区 (10487808-20971519,默认为 10487808):
将使用默认值 10487808
Last 扇区, +扇区 or +size{K,M,G} (10487808-20971519,默认为 20971519): 
将使用默认值 20971519
分区 4 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):n
If you want to create more than four partitions, you must replace a
primary partition with an extended partition first.

创建4个分区后,在想创建新的分区则会出现问题,是因为在linux系统中最多只能创建4个主分区,如果想要创建多创建,可以这么做。在创建完第三个分区后,创建第四个分区时选择拓展分区,首先删除第四个分区,使用选项d

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

然后我们在创建新的分区

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

这个时候我们需要选择e去创建拓展分区,然后在创建分区时发现输入错误,想更改时可以输入ctrl+u 清空。

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

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    10487807     1048576   83  Linux
/dev/sdb4        10487808    18876415     4194304    5  Extended

这里用p查看分区,显示的id。主分区的id号都是83,拓展分区都是5.

命令(输入 m 获取帮助):n
All primary partitions are in use
添加逻辑分区 5
起始 扇区 (10489856-18876415,默认为 10489856):
将使用默认值 10489856
Last 扇区, +扇区 or +size{K,M,G} (10489856-18876415,默认为 18876415):+1G  
分区 5 已设置为 Linux 类型,大小设为 1 GiB

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

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    10487807     1048576   83  Linux
/dev/sdb4        10487808    18876415     4194304    5  Extended
/dev/sdb5        10489856    12587007     1048576   83  Linux

这个时候我们再输入n出现提示跟之前不一样,不会提示你选择p还是e而是让你去创建逻辑分区,接着去创建一个逻辑分区。然后按p查看会显示sdb5 它的id号也是83.例子中sdb4为拓展分区,这个分区是不可以格式化的。可以把它看成是一个空壳子,能使用的分区为sdb5,他是sdb4的子分区,这个子分区称为逻辑分区。

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

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    10487807     1048576   83  Linux
/dev/sdb4        10487808    18876415     4194304    5  Extended
/dev/sdb5        10489856    12587007     1048576   83  Linux
/dev/sdb6        12589056    13613055      512000   83  Linux
/dev/sdb7        13615104    14639103      512000   83  Linux

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

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

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    10487807     1048576   83  Linux
/dev/sdb4        10487808    18876415     4194304    5  Extended
/dev/sdb5        10489856    12587007     1048576   83  Linux
/dev/sdb6        12589056    13613055      512000   83  Linux
/dev/sdb7        13615104    14639103      512000   83  Linux

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

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

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    10487807     1048576   83  Linux
/dev/sdb4        10487808    18876415     4194304    5  Extended
/dev/sdb5        10489856    12587007     1048576   83  Linux
/dev/sdb6        13615104    14639103      512000   83  Linux

上面的例子中,我们想要删除一个主分区1,然后p一下看到,顺序号是从2-7的,这是因为主分区删除后,必须留空,然后删除逻辑分区6,按p之后看到是从2-6号的,这是因为逻辑分区号是必须按照顺序来的。

我们可以使用ctrl+c取消全部的操作。

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

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

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

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

命令(输入 m 获取帮助):N
Partition type:
   p   primary (0 primary, 1 extended, 3 free)
   l   logical (numbered from 5)
Select (default p): L
添加逻辑分区 5
起始 扇区 (4096-10487807,默认为 4096):
将使用默认值 4096
Last 扇区, +扇区 or +size{K,M,G} (4096-10487807,默认为 10487807):+500M
分区 5 已设置为 Linux 类型,大小设为 500 MiB

命令(输入 m 获取帮助):N
Partition type:
   p   primary (0 primary, 1 extended, 3 free)
   l   logical (numbered from 5)
Select (default p): L
添加逻辑分区 6
起始 扇区 (1030144-10487807,默认为 1030144):
将使用默认值 1030144
Last 扇区, +扇区 or +size{K,M,G} (1030144-10487807,默认为 10487807):+500M
分区 6 已设置为 Linux 类型,大小设为 500 MiB

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

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10487807     5242880    5  Extended
/dev/sdb5            4096     1028095      512000   83  Linux
/dev/sdb6         1030144     2054143      512000   83  Linux

上面的例子中,我们创建一个新的分区输入n,然后把第一个设置为拓展分区,之后设置逻辑分区。

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# fdisk -l  /dev/sdb

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10487807     5242880    5  Extended
/dev/sdb5            4096     1028095      512000   83  Linux
/dev/sdb6         1030144     2054143      512000   83  Linux

我们使用逻辑分区时id号必须是从5开始的 而且是连续的

分区配置好后,我们按w保存,然后使用命令fdisk -l  /dev/sdb查看分区。

 4.5/4.6 磁盘格式化

磁盘分区虽然分好区了,但是暂时还不能用,我们还需要对每一个分区进行格式化,所谓格式化,其实就是安装文件系统,windows下的文件系统有FAT32和NTFS。

  • 命令mke2fs mkfs.ext2 mkfs.ext3 mkfs.ext4和mkfs.xfs
  • mke2fs 命令常用的选项如下:
  1. -b 表示分区时设定每个数据区块占用的空间大小。目前每个数据块支持1024B、2018B以及4096B。
  2. -i 表示设定的inode的大小
  3. -N 表示设定的inode的数量。有时默认的inode的数不够用,所以要自定义inode的数量
  4. -c 表示在格式化之前先检测一下磁盘是否有问题,加上这个选项后,运行速度会非常慢
  5. -L 表示预设该分区的标签
  6. -j 表示建立ext3格式的分区。如果使用mkfs.ext3格式,就不用加这个选项了
  7. -m 表示磁盘预留空间大小,最大化使用
  8. -t 用来指定文件系统的类型,可以是ext2、ext3.也可以是ext4.示例如下:
[root@localhost ~]# mke2fs -t ext4 /dev/sdb5
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
128016 inodes, 512000 blocks
25600 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=34078720
63 block groups
8192 blocks per group, 8192 fragments per group
2032 inodes per group
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

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

指定文件系统格式为ext4时,命令mke2fs -t ext4 /dev/sdb5等同于mkfs.ext4  /dev/sdb5.。然而,mke2fs并不支持把分区格式化成XFS类型,而只能使用mkfs.xfs.示例如下:

[root@localhost ~]# mke2fs -t xfs /dev/sdb6
mke2fs 1.42.9 (28-Dec-2013)

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

[root@localhost ~]# mkfs.xfs -f /dev/sdb5
meta-data=/dev/sdb5              isize=256    agcount=4, agsize=32000 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=128000, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

使用mkfs.xfs需要使用选项-f 表示强制格式化的意思。磁盘在格式化的时候,会预先设定好每一块的大小,然后再把所有的空间分割成一个一个的小块。存数据的时候,也是一个快一个块的写入,如果磁盘里储存的文件都是特别小的文件,比如说1KB或者2KB,在以后格式化磁盘的时候块数值小一点,ext4文件系统默认的块大小为4096B(即4KB),在格式化的时候,可以指定块大小为1024B,2048B,或者4096B(它们都是成倍的增加)虽然格式化的时候可以指定块大小超过4096B,但一旦超过4096B,就不能正常挂载。示例如下:

[root@localhost ~]# mke2fs -t ext4 -b 4096 /dev/sdb5
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
128000 inodes, 128000 blocks
6400 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=132120576
4 block groups
32768 blocks per group, 32768 fragments per group
32000 inodes per group
Superblock backups stored on blocks: 
	32768, 98304

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@localhost ~]# mkfs.xfs -b size=4096 /dev/sdb6
meta-data=/dev/sdb6              isize=256    agcount=4, agsize=32000 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=128000, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# mkfs.xfs -b size=8192 /dev/sdb6
mkfs.xfs: /dev/sdb6 appears to contain an existing filesystem (xfs).
mkfs.xfs: Use the -f option to force overwrite.
[root@localhost ~]# mkfs.xfs -f -b size=8192 /dev/sdb6
meta-data=/dev/sdb6              isize=256    agcount=4, agsize=16000 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=8192   blocks=64000, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=8192   ascii-ci=0 ftype=0
log      =internal log           bsize=8192   blocks=558, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=8192   blocks=0, rtextents=0

上面的实验可以发现,如果指定块大小为4096B,会提示设置的值太大了,我们可以直接输入-f强制格式化。

[root@localhost ~]# mke2fs -L TEST -t ext4 /dev/sdb6
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=TEST
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
128016 inodes, 512000 blocks
25600 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=34078720
63 block groups
8192 blocks per group, 8192 fragments per group
2032 inodes per group
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

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

上面例子中,我们可以使用-L 选项来指定标签。标签会在挂载磁盘时使用,也可以写入配置文件。

4.7/4.8 磁盘挂载

前面讲到磁盘的分区和格式化,那么格式化完成后,如何使用这些磁盘呢,这就涉及到挂载磁盘了,格式化后的磁盘其实是一个块设备文件,类型weiB。在挂载某个分区前,需要先建立一个挂载点,这个挂载点是以目录形式出现的,一旦把某个分区挂载到这个挂载点下,要再往这个目录写数据时,就会写到该分区下,所以挂载该分区前,挂载点下目录必须是空目录,其实目录不为空并不影响所挂载分区的使用,但一旦挂载上,该目录下以前的东西就看不到了,除非卸载该分区。

  • 命令mount 

如果不加任何选项,直接运行mount命令,会显示如下信息:

[root@localhost ~]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=494164k,nr_inodes=123541,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=25,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=100928k,mode=700)

首先我们建立一个空目录,然后在空目录里面建立一个空白文档。

[root@localhost ~]# mkdir /newdir
[root@localhost ~]# touch /newdir/newfile.txt
[root@localhost ~]# ls /newdir/
newfile.txt

然后我们把刚才格式化的/dev/sdb5/挂载到/newdir/上,用df -h查看。

[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   28G  917M   27G    4% /
devtmpfs                 483M     0  483M    0% /dev
tmpfs                    493M     0  493M    0% /dev/shm
tmpfs                    493M  6.8M  487M    2% /run
tmpfs                    493M     0  493M    0% /sys/fs/cgroup
/dev/sda1                197M  110M   88M   56% /boot
tmpfs                     99M     0   99M    0% /run/user/0
/dev/sdb6                477M  2.3M  445M    1% /newdi
  • /etc/fstab配置文件

我们先看一下/etc/fstab文件的内容。

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

#
# /etc/fstab
# Created by anaconda on Tue May  8 03:13:23 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
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=d206fcfb-5dcf-4666-8418-0326e7454649 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0

这个文件中显示了系统启动时需要挂载的各个分区,各例的含义:

第一列就是分区的标识,可以写分区的LABEL、分区的UUID,也可以写分区名(/dev/sdb6)

第二列是挂载点

第三列是分区的格式

第四列是mount的一些挂载参数,一般情况下,直接写defaults即可。

第五列的数字表示是否自检磁盘。1和2都表示检测,0表示不检测。自检时,1比2优先级高,所以先检测1,在检测2,如果有多个分区需要开机检测,都设置成2,1检测完后会同时检测2,在centos系统了里面,所有分区中该列的值都是0.
重点介绍第四列的常用选项

async/sync: async表示与磁盘和内存不同步,系统每隔一段时间就会把内存数据写入磁盘中,而sync则会时时同步内存和磁盘中的数据

auto/noauto : 表示开机自动挂载/不自动挂载
default 表示按照大多数永久文件系统的默认值设置挂载定义,它包含了rw,suid,dev,exec,auto,nouser,和async

ro:表示只读权限挂载

exec/noexec :表示允许|不允许可执行文件执行,但千万不要把跟目录挂载为noexec,否则无法使用系统。

user/nouser :表示允许 不允许root外的其他用户挂载分区。为了安全,使用nouser

suid/nosuid:表示允许不允许 分区有suid属性,一般设置nosuid

usrquota:表示启动用户的磁盘配额模式,磁盘配额会针对用户限定他们使用的磁盘额度

grquota:表示启动群组的磁盘配额模式。

  • mount还有二个常用选项
  • -t 用来指定挂载的分区类型类型,默认不指定,会自动识别。
  • -o 用来指定挂载的分区有那些特性,即上面的/etc/fstab配置文件中的第四列。如下:
[root@localhost ~]# mount -o remount,ro,sync /dev/sdb6 /newdir
[root@localhost ~]# mkdir /newdir/dir2
mkdir: 无法创建目录"/newdir/dir2": 只读文件系统
[root@localhost ~]# 

由于-o 选项指定了参数ro,所以该分区只读了,通过mount命令可以看到,/dev/sdb6也有ro参数,示例如下:

[root@localhost ~]# mount |grep sdb6
/dev/sdb6 on /newdir type ext4 (ro,relatime,sync,seclabel,data=ordered)
[root@localhost ~]# mount -o remount /dev/sdb6  /newdir
[root@localhost ~]# mkdir /newdir/dir2
[root@localhost ~]# ls /newdir/
dir2  lost+found
[root@localhost ~]# 

重新挂载。恢复读写。

  • 命令blkid

我们知道挂载磁盘时通过/dev/sdb6这样的分区名字来挂载的,如果该分区先前加入到/etc/fstad中,系统启动后则会挂载分区。那么避免这样的情况发生,我们就使用UUID,可以通过blkid获取各分区的UUID:

[root@localhost ~]# blkid
/dev/sda1: UUID="d206fcfb-5dcf-4666-8418-0326e7454649" TYPE="xfs" 
/dev/sda2: UUID="dhPnxg-dp4l-koSY-aAVV-PzcS-WC7I-M8PC1z" TYPE="LVM2_member" 
/dev/sdb5: UUID="9540533a-db61-4698-ac47-3a9837340418" TYPE="ext4" 
/dev/sdb6: LABEL="TEST" UUID="cc04e887-e34b-46e2-8446-c6d9f51de329" TYPE="ext4" 
/dev/sr0: UUID="2015-12-09-23-14-10-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/mapper/centos-root: UUID="caa0b333-b147-4d31-bcb6-f81a67ce8a45" TYPE="xfs" 
/dev/mapper/centos-swap: UUID="58aa1fd9-1c46-49eb-9787-761f521c9e62" TYPE="swap"

这个命令也可以指定查询那个分区,如下:

[root@localhost ~]# blkid /dev/sdb6
/dev/sdb6: LABEL="TEST" UUID="cc04e887-e34b-46e2-8446-c6d9f51de329" TYPE="ext4

获得UUID我们如何使用呢?

[root@localhost ~]# umount /newdir
[root@localhost ~]# mount UUID="cc04e887-e34b-46e2-8446-c6d9f51de329" /newdir
  • umount 

umount命令后面可以跟挂载点,也可以跟分区名,,但是不能跟LABEL和UUID 

umount命令的-l选项是非常有用的,有时候会遇到不能卸载的情况,不能卸载是因为当前目录还在卸载的分区上,解决这个问题的办法有二种,一是进入到其他目录:二是使用umount -l 命令。

4.9 手动增加swap空间

安装系统时我们就接触了swap命令,它类似于windows的虚拟内存,分区时一般指定虚拟内存的大小为实际内存的2倍,如果你的实际内存超过了4GB,那么划分8GB给虚拟内存就足够日常交换了,如果真遇到虚拟内存不够的情况,就必须增加一个虚拟磁盘,如果我们不可能重新给磁盘分区,增加虚拟磁盘的基本思路是:建立swapfile--格式化为swap格式--启用该虚拟磁盘

首先,建立swapfile,如下:

[root@localhost ~]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=1024
记录了1024+0 的读入
记录了1024+0 的写出
1073741824字节(1.1 GB)已复制,14.517 秒,74.0 MB/秒

dd命令:用if指定源(一般写/dev/zero,他是unix系统特有的一个文件,它可以源源不断的提供0),of指定目标文件,bs定义块大小,count定义块的数量。bs和count这二个参数决定了目标文件的大小,例子中我们使用dd命令建立一个大小为1.1GB的文件,下面将他格式化为swap,命令如下:

[root@localhost ~]# mkswap -f /tmp/newdisk
正在设置交换空间版本 1,大小 = 1048572 KiB
无标签,UUID=561bb752-cafd-4540-b10f-7d63f20ed3d0

文件格式化后,就可以挂载了,如下:

[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            985         105          69           6         810         715
Swap:          2047           0        2047
[root@localhost ~]# swapon /tmp/newdisk
swapon: /tmp/newdisk:不安全的权限 0644,建议使用 0600。
[root@localhost ~]# chmod 0600 /tmp/newdisk
[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            985         106          68           6         810         715
Swap:          3071           0        3071

前后对比一下swap空间,我们发现多了1024MB的空间,其中,free命令用来查看内存的使用情况,-m选项是表示以MB为单位显示。

 4.10/4.11/4.12 lvm讲解

概念:LVM是logical volume manager的缩写(逻辑分区),方便对于对圈组、逻辑卷的大小进行调整,更进一步调整文件系统的大小。优点:在使用很多硬盘的大系统中,使用LVM主要是方便管理、增加了系统的扩展性

 准备磁盘分区,先把硬盘umount

[root@localhost ~]# umount /dev/sdb6
[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   28G  1.9G   26G    7% /
devtmpfs                 483M     0  483M    0% /dev
tmpfs                    493M     0  493M    0% /dev/shm
tmpfs                    493M  6.8M  487M    2% /run
tmpfs                    493M     0  493M    0% /sys/fs/cgroup
/dev/sda1                197M  110M   88M   56% /boot
tmpfs                     99M     0   99M    0% /run/user/0
[root@localhost ~]# df -h |grep -v tmpfss
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   28G  1.9G   26G    7% /
devtmpfs                 483M     0  483M    0% /dev
tmpfs                    493M     0  493M    0% /dev/shm
tmpfs                    493M  6.8M  487M    2% /run
tmpfs                    493M     0  493M    0% /sys/fs/cgroup
/dev/sda1                197M  110M   88M   56% /boot
tmpfs                     99M     0   99M    0% /run/user/0

创建三个新分区,分别是1G

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

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

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

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

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

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

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

t 改变分区类型为8e(LVM),只有这样才可以做物理卷

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

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

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

准备物理卷

安装个命令 pvcreate(创建物理卷、列出当卡物理卷、删除物理卷)

yum install -y lvm2

正在同步磁盘。
[root@localhost ~]# yum install -y lvm2
已加载插件:fastestmirror
base                                                                                  | 3.6 kB  00:00:00     
extras                                                                                | 3.4 kB  00:00:00     
updates                                                                               | 3.4 kB  00:00:00     
updates/7/x86_64/primary_db                                                           | 1.2 MB  00:00:06     
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: centos.ustc.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 lvm2.x86_64.7.2.02.130-5.el7 将被 升级
---> 软件包 lvm2.x86_64.7.2.02.177-4.el7 将被 更新
--> 正在处理依赖关系 lvm2-libs = 7:2.02.177-4.el7,它被软件包 7:lvm2-2.02.177-4.el7.x86_64 需要
--> 正在处理依赖关系 device-mapper-persistent-data >= 0.7.0-0.1.rc6,它被软件包 7:lvm2-2.02.177-4.el7.x86_64 需要
--> 正在处理依赖关系 libdevmapper.so.1.02(DM_1_02_141)(64bit),它被软件包 7:lvm2-2.02.177-4.el7.x86_64 需要
--> 正在处理依赖关系 libdevmapper.so.1.02(DM_1_02_138)(64bit),它被软件包 7:lvm2-2.02.177-4.el7.x86_64 需要
--> 正在处理依赖关系 libdevmapper.so.1.02(DM_1_02_135)(64bit),它被软件包 7:lvm2-2.02.177-4.el7.x86_64 需要
--> 正在处理依赖关系 libdevmapper.so.1.02(DM_1_02_133)(64bit),它被软件包 7:lvm2-2.02.177-4.el7.x86_64 需要
--> 正在处理依赖关系 libdevmapper.so.1.02(DM_1_02_128)(64bit),它被软件包 7:lvm2-2.02.177-4.el7.x86_64 需要
--> 正在处理依赖关系 libdevmapper.so.1.02(DM_1_02_113)(64bit),它被软件包 7:lvm2-2.02.177-4.el7.x86_64 需要
--> 正在处理依赖关系 libdevmapper.so.1.02(DM_1_02_110)(64bit),它被软件包 7:lvm2-2.02.177-4.el7.x86_64 需要
--> 正在检查事务
---> 软件包 device-mapper-libs.x86_64.7.1.02.107-5.el7 将被 升级
--> 正在处理依赖关系 device-mapper-libs = 7:1.02.107-5.el7,它被软件包 7:device-mapper-1.02.107-5.el7.x86_64 需要
---> 软件包 device-mapper-libs.x86_64.7.1.02.146-4.el7 将被 更新
---> 软件包 device-mapper-persistent-data.x86_64.0.0.5.5-1.el7 将被 升级
---> 软件包 device-mapper-persistent-data.x86_64.0.0.7.3-3.el7 将被 更新
---> 软件包 lvm2-libs.x86_64.7.2.02.130-5.el7 将被 升级
---> 软件包 lvm2-libs.x86_64.7.2.02.177-4.el7 将被 更新
--> 正在处理依赖关系 device-mapper-event = 7:1.02.146-4.el7,它被软件包 7:lvm2-libs-2.02.177-4.el7.x86_64 需要
--> 正在检查事务
---> 软件包 device-mapper.x86_64.7.1.02.107-5.el7 将被 升级
---> 软件包 device-mapper.x86_64.7.1.02.146-4.el7 将被 更新
---> 软件包 device-mapper-event.x86_64.7.1.02.107-5.el7 将被 升级
---> 软件包 device-mapper-event.x86_64.7.1.02.146-4.el7 将被 更新
--> 正在处理依赖关系 device-mapper-event-libs = 7:1.02.146-4.el7,它被软件包 7:device-mapper-event-1.02.146-4.el7.x86_64 需要
--> 正在检查事务
---> 软件包 device-mapper-event-libs.x86_64.7.1.02.107-5.el7 将被 升级
---> 软件包 device-mapper-event-libs.x86_64.7.1.02.146-4.el7 将被 更新
--> 解决依赖关系完成

依赖关系解决

=============================================================================================================
 Package                                 架构             版本                          源              大小
=============================================================================================================
正在更新:
 lvm2                                    x86_64           7:2.02.177-4.el7              base           1.3 M
为依赖而更新:
 device-mapper                           x86_64           7:1.02.146-4.el7              base           289 k
 device-mapper-event                     x86_64           7:1.02.146-4.el7              base           185 k
 device-mapper-event-libs                x86_64           7:1.02.146-4.el7              base           184 k
 device-mapper-libs                      x86_64           7:1.02.146-4.el7              base           316 k
 device-mapper-persistent-data           x86_64           0.7.3-3.el7                   base           405 k
 lvm2-libs                               x86_64           7:2.02.177-4.el7              base           1.0 M

事务概要
=============================================================================================================
升级  1 软件包 (+6 依赖软件包)

总下载量:3.7 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/7): device-mapper-1.02.146-4.el7.x86_64.rpm                                        | 289 kB  00:00:06     
(2/7): device-mapper-event-1.02.146-4.el7.x86_64.rpm                                  | 185 kB  00:00:06     
(3/7): device-mapper-event-libs-1.02.146-4.el7.x86_64.rpm                             | 184 kB  00:00:06     
(4/7): device-mapper-libs-1.02.146-4.el7.x86_64.rpm                                   | 316 kB  00:00:06     
(5/7): lvm2-libs-2.02.177-4.el7.x86_64.rpm                                            | 1.0 MB  00:00:00     
(6/7): lvm2-2.02.177-4.el7.x86_64.rpm                                                 | 1.3 MB  00:00:00     
(7/7): device-mapper-persistent-data-0.7.3-3.el7.x86_64.rpm                           | 405 kB  00:00:06     
-------------------------------------------------------------------------------------------------------------
总计                                                                         509 kB/s | 3.7 MB  00:00:07     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在更新    : 7:device-mapper-libs-1.02.146-4.el7.x86_64                                              1/14 
  正在更新    : 7:device-mapper-1.02.146-4.el7.x86_64                                                   2/14 
  正在更新    : 7:device-mapper-event-libs-1.02.146-4.el7.x86_64                                        3/14 
  正在更新    : 7:device-mapper-event-1.02.146-4.el7.x86_64                                             4/14 
  正在更新    : 7:lvm2-libs-2.02.177-4.el7.x86_64                                                       5/14 
  正在更新    : device-mapper-persistent-data-0.7.3-3.el7.x86_64                                        6/14 
  正在更新    : 7:lvm2-2.02.177-4.el7.x86_64                                                            7/14 
  清理        : 7:lvm2-2.02.130-5.el7.x86_64                                                            8/14 
  清理        : 7:lvm2-libs-2.02.130-5.el7.x86_64                                                       9/14 
  清理        : 7:device-mapper-event-1.02.107-5.el7.x86_64                                            10/14 
  清理        : 7:device-mapper-event-libs-1.02.107-5.el7.x86_64                                       11/14 
  清理        : 7:device-mapper-libs-1.02.107-5.el7.x86_64                                             12/14 
  清理        : 7:device-mapper-1.02.107-5.el7.x86_64                                                  13/14 
  清理        : device-mapper-persistent-data-0.5.5-1.el7.x86_64                                       14/14 
  验证中      : device-mapper-persistent-data-0.7.3-3.el7.x86_64                                        1/14 
  验证中      : 7:device-mapper-1.02.146-4.el7.x86_64                                                   2/14 
  验证中      : 7:device-mapper-event-1.02.146-4.el7.x86_64                                             3/14 
  验证中      : 7:device-mapper-event-libs-1.02.146-4.el7.x86_64                                        4/14 
  验证中      : 7:lvm2-libs-2.02.177-4.el7.x86_64                                                       5/14 
  验证中      : 7:lvm2-2.02.177-4.el7.x86_64                                                            6/14 
  验证中      : 7:device-mapper-libs-1.02.146-4.el7.x86_64                                              7/14 
  验证中      : 7:lvm2-2.02.130-5.el7.x86_64                                                            8/14 
  验证中      : 7:lvm2-libs-2.02.130-5.el7.x86_64                                                       9/14 
  验证中      : 7:device-mapper-event-1.02.107-5.el7.x86_64                                            10/14 
  验证中      : device-mapper-persistent-data-0.5.5-1.el7.x86_64                                       11/14 
  验证中      : 7:device-mapper-1.02.107-5.el7.x86_64                                                  12/14 
  验证中      : 7:device-mapper-libs-1.02.107-5.el7.x86_64                                             13/14 
  验证中      : 7:device-mapper-event-libs-1.02.107-5.el7.x86_64                                       14/14 

更新完毕:
  lvm2.x86_64 7:2.02.177-4.el7                                                                               

作为依赖被升级:
  device-mapper.x86_64 7:1.02.146-4.el7                    device-mapper-event.x86_64 7:1.02.146-4.el7      
  device-mapper-event-libs.x86_64 7:1.02.146-4.el7         device-mapper-libs.x86_64 7:1.02.146-4.el7       
  device-mapper-persistent-data.x86_64 0:0.7.3-3.el7       lvm2-libs.x86_64 7:2.02.177-4.el7                

完毕!

创建完分区后,目录下并没有这个路径,使用 partprobe添加进去

接下来把三个分区,全部改成物理卷

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

创建完成后,用pvdisplay查看一下物理卷,或者直接命令pvs,也是一样的。

[root@localhost ~]# pvs
  PV         VG     Fmt  Attr PSize  PFree
  /dev/sda2  centos lvm2 a--  29.80g    0 
  /dev/sdb1         lvm2 ---   1.00g 1.00g
  /dev/sdb2         lvm2 ---   1.00g 1.00g
  /dev/sdb3         lvm2 ---   1.00g 1.00g

创建卷组vgcreate vg1 /dev/sdb1 /dev/sdb2,vg1是卷组的名字

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

查看卷组的信息 vgdisplay或者vgs

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

vgremove 删除卷组的命令

创建逻辑卷

[root@localhost ~]# lvcreate -L 100M -n lv1 vg1
  Logical volume "lv1" created.
lvcreate创建逻辑卷,-L选项是100M指定大小,-n lv1 是逻辑卷的名字,vg1是从卷组里面调用出来的。

格式化成mkfs.ext4,适合做扩容

[root@localhost ~]# 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@localhost ~]# mount /dev/vg1/lv1 /mnt/
[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   28G  1.9G   26G    7% /
devtmpfs                 483M     0  483M    0% /dev
tmpfs                    493M     0  493M    0% /dev/shm
tmpfs                    493M  6.8M  487M    2% /run
tmpfs                    493M     0  493M    0% /sys/fs/cgroup
/dev/sda1                197M  110M   88M   56% /boot
tmpfs                     99M     0   99M    0% /run/user/0
/dev/mapper/vg1-lv1       93M  1.6M   85M    2% /mn
[root@localhost ~]# ls -l /dev/mapper/vg1-lv1
lrwxrwxrwx. 1 root root 7 5月  22 21:35 /dev/mapper/vg1-lv1 -> ../dm-2
[root@localhost ~]# ls -l /dev/vg1/lv1
lrwxrwxrwx. 1 root root 7 5月  22 21:35 /dev/vg1/lv1 -> ../dm-2

我们ls -l 查看这二个路径的依赖关系 ,其实是指向一个文件的。


接下来做一下扩容的操作,先创建目录和文件夹

[root@localhost ~]# mkdir /mnt/111
[root@localhost ~]# touch /mnt/222.txt
[root@localhost ~]# echo "123456" > /mnt/222.txt
[root@localhost ~]# ls -l /mnt/
总用量 16
drwxr-xr-x. 2 root root  1024 5月  22 21:39 111
-rw-r--r--. 1 root root     7 5月  22 21:40 222.txt
drwx------. 2 root root 12288 5月  22 21:35 lost+found

重新设置卷大小,先umount

[root@localhost ~]# umount /dev/vg1/lv1
[root@localhost ~]# lvresize -L 200M /dev/vg1/lv1
  New size (50 extents) matches existing size (50 extents).
[root@localhost ~]# 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

检查磁盘错误。

更新逻辑卷信息

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

挂载,在查看文件大小

[root@localhost ~]#  !mount
 mount /dev/vg1/lv1 /mnt/
[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   28G  1.9G   26G    7% /
devtmpfs                 483M     0  483M    0% /dev
tmpfs                    493M     0  493M    0% /dev/shm
tmpfs                    493M  6.8M  487M    2% /run
tmpfs                    493M     0  493M    0% /sys/fs/cgroup
/dev/sda1                197M  110M   88M   56% /boot
tmpfs                     99M     0   99M    0% /run/user/0
/dev/mapper/vg1-lv1      190M  1.6M  175M    1% /mnt
[root@localhost ~]# 

 

 拓展知识

raid讲解

 https://blog.csdn.net/caipeichao2/article/details/52661825

 

dd工具使用场景

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

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

 

parted分区gpt格式

http://www.apelearn.com/bbs/thread-7243-1-1.html

 

关于存储的常识

http://forum.huawei.com/enterprise/zh/thread-274145-1-1.html

https://blog.csdn.net/JesseYoung/article/details/38367217

 

转载于:https://my.oschina.net/u/3851487/blog/1816312

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值