磁盘管理

一、df命令

df=disk filesystem

1、df命令可以查看已挂载磁盘的总容量、使用容量、剩余容量

[root@mxk-01 ~]# df
文件系统    1K-块        已用      可用      已用%     挂载点
/dev/sda3   18658304    999076  17659228    6%      /
devtmpfs    494228      0       494228      0%      /dev
tmpfs       504076      0       504076      0%      /dev/shm
tmpfs       504076      6880    497196      2%      /run
tmpfs       504076      0       504076      0%      /sys/fs/cgroup
/dev/sda    1201380     99164   102216      50%     /boot
tmpfs       100816      0       100816      0%      /run/user/0  

上述结果中:
1)大小默认为KB
2)/、/boot是安装系统是划分的
3)/dev、/devshm为内存分区,默认大小为内存大小的1/2,如果将文件写入此分区,好处是读写速度快,坏处是系统重启文件就会丢失
4)/run、/sys/fs/cgroup等分区都是tmpfs,跟/dev/shm类似,为临时文件

知识点

swap分区可以用:free命令查看

[root@mxk-01 ~]# free
      total      used    free        shared  buff/cache   available
Mem:  1008152    119000  755464      6880    133688       733268
Swap: 2097148    0       2097148

2、选项

1)-i 查看inodes使用情况,如已使用100%,即使磁盘空间富余,也会提示磁盘已满

[root@mxk-01 ~]# df -i |grep -v tmpfs (grep -v的作用是过滤掉包含tmpfs字符串的行)
文件系统    Inode     已用(I)    可用(I)    已用(I)%   挂载点
/dev/sda3   9334272   26559      9307713    1%       /
/dev/sda1   102400    327        102073     1%       /boot

2)-h 表示使用合适的大小单位显示

[root@mxk-01 ~]# df -h |grep -v tmpfs
文件系统     容量    已用   可用  已用%  挂载点
/dev/sda    318G    976M  17G   6%    /
/dev/sda1   197M    97M   100M  50%   /boot  

单位大小有:Kybe(字节)、KB、MB、GB、TB

3)-k、-m 分别表示以KB和MB为单位显示

[root@mxk-01 ~]# df -k |grep -v tmpfs
文件系统    1K-块    已用     可用      已用%    挂载点
/dev/sda3  18658304 998936  17659368  6%       /
/dev/sda   1201380  99164   102216    50%      /boot
[root@mxk-01 ~]# df -m |grep -v tmpfs
文件系统    1M-块    已用    可用    已用%    挂载点
/dev/sda3  18221    976    17246   6%       /
/dev/sda1  197      97     100     50%      /boot  

系统结构

第一列:分区名字
第二列:该分区的总容量
第三列:使用容量
第四列:剩余容量
第五列:使用百分比(如果该数值达到90%以上,就会引起系统故障) 第六列:挂载点(Linux磁盘不能直接访问,必须通过挂载点)

二、du命令

du=disk useage

1、du命令:查看某个目录或者文件所占用的大小,格式:du [选项] [文件或者目录名]

[root@mxk-01 ~]# du /root/1.txt
4   /root/1.txt
[root@mxk-01 ~]# du /root/
8   /root/.ssh
0   /root/123/234
0   /root/123
0   /root/234/345
0   /root/234
76  /root/  

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

2)-b 表示列出的值以B为单位输出

3)-m 表示以MB为单位输出

4)-k 以KB为单位输出,和不加任何选项默认的结果一致

5)-c 表示最后加总

6)-h 表示自动调节单位

7)-s 表示只列出总和 ###

[root@mxk-01 ~]# du -sh /root/
76K /root/
[root@mxk-01 ~]# du -sh /root/1.txt
4.0K    /root/1.txt (当文件大小小于4KB,也会显示4KB)

三、磁盘分区

1、在虚拟机上添加磁盘

1)在当前的虚拟机上,点击右键,选择“设置”,此时会弹出“虚拟机设置”对话框,在左侧选中“磁盘”,然后点击下方“添加”按钮
2)此时会弹出“添加硬件向导”对话框,点击“下一步”
3)“选择磁盘类型”保持默认即可,点击“下一步”
4)“选择磁盘”对话框也保持默认,点击“下一步”
5)“指定磁盘容量”进行修改,指定“最大磁盘大小”为10GB,选择“将虚拟磁盘拆分为多个文件”按钮
6)点击“下一步”按钮,然后点击“完成”按钮,最终完成添加新的虚拟磁盘。

2、fdisk 查看硬盘信息,格式:fdisk [-l] [设备名称],其选项只有:-l

1)-l后不加设备名称,会显示系统中所有磁盘以及分区表,加设备名称,则列出该设备分区表

[root@mxk-01 ~]# fdisk -l

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

   设备 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  41943039  18668544   83   Linux  

2)没有识别刚才新增的磁盘,系统需要重启,才能识别。

[root@mxk-01 ~]# fdisk -l

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

   设备 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  41943039  18668544   83  Linux

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

加设备名称

[root@mxk-01 ~]# fdisk -l /dev/sdb

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

2、对磁盘进行分区,格式:fdisk [设备名称]

1)执行:fdisk /dev/sdb (fdisk划分的是mbr分区,只能划分小于2TB的分区)

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

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

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

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

常用命令
p 表示打印当前磁盘的分区情况
n 表示建立一个新的分区
w 表示保存
q 表示退出
d 表示删除一个分区

2)输入 n ,建立一个新的分区

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

提示:e(扩展分区)p(主分区),指定一个主分区,选择分区号,为分区划分内存大小

命令(输入 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):+2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB

命令(输入 m 获取帮助):  
按照之前操作继续划分分区,当主分区达到4个时,系统会出现提示
命令(输入 m 获取帮助):p

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

   设备 Boot  Start End  Blocks   Id  System
/dev/sdb12048 4196351 2097152   83  Linux
/dev/sdb2 4196352 8390655 2097152   83  Linux
/dev/sdb3 839065612584959 2097152   83  Linux
/dev/sdb41258496014682111 1048576   83  Linux

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

3)当主分区已有4个时,可以删除一个主分区

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

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

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

   设备 Boot  Start End  Blocks   Id  System
/dev/sdb1  2048    4196351  2097152   83  Linux
/dev/sdb2  4196352 8390655  2097152   83  Linux
/dev/sdb3  8390656 12584959  2097152   83  Linux  

4)不在建立主分区,建立扩展分区

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

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

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

   设备 Boot  Start End  Blocks   Id  System
/dev/sdb1  2048   4196351 2097152   83  Linux
/dev/sdb2  4196352   8390655 2097152   83  Linux
/dev/sdb3  8390656  12584959 2097152   83  Linux
/dev/sdb4  12584960  18876415 3145728   5  Extended  

5)再继续划分分区

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

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

   设备 Boot  Start End  Blocks   Id  System
/dev/sdb1  2048      4196351   2097152   83  Linux
/dev/sdb2  4196352   8390655   2097152   83  Linux
/dev/sdb3  8390656   12584959  2097152   83  Linux
/dev/sdb4  12584960  18876415  3145728   5  Extended
/dev/sdb5  12587008  14684159  1048576   83  Linux

命令(输入 m 获取帮助):N   
All primary partitions are in use
添加逻辑分区 6
起始 扇区 (14686208-18876415,默认为 14686208):
将使用默认值 14686208
Last 扇区, +扇区 or +size{K,M,G} (14686208-18876415,默认为 18876415):+1G
分区 6 已设置为 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
磁盘标识符:0xfa4f4e2a

   设备 Boot  Start End  Blocks   Id  System
/dev/sdb1   2048      4196351  2097152   83  Linux
/dev/sdb2   4196352   8390655  2097152   83  Linux
/dev/sdb3   8390656   12584959 2097152   83  Linux
/dev/sdb4   12584960  18876415 3145728    5  Extended
/dev/sdb5   12587008  14684159 1048576   83  Linux
/dev/sdb6   14686208  16783359 1048576   83  Linux  

此时,再次划分份/sdb5和/sdb6分区已是逻辑分区

6)删除分区,先实验删主分区,在实验删除逻辑分区

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

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

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

   设备 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 14686207 1048576   83  Linux  
在删除逻辑分区之时,逻辑分区的分区号会自动默认按顺序开始,说明分区不会留空,如删除逻辑分区/dev/sdb5,删除之后的/dev/sdb5与之前的/dev/sdb5是不一样的。
/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 14686207 1048576   83  Linux

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

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

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

   设备 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 12589056 14686207 1048576   83  Linux  
在划分完成分区之后,按:w会保存,q会直接退出
命令(输入 m 获取帮助):q

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

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

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

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

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

   设备 Boot  Start End  Blocks   Id  System  

7)如果重新开始划分分区,且暂不不划分主分区,首先划分扩展分区

命令(输入 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):+1G
分区 1 已设置为 Extended 类型,大小设为 1 GiB

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

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

   设备 Boot  Start End  Blocks   Id  System
/dev/sdb12048 2099199 10485765  Extended  
在划分完扩展分区之后,再来划分主分区,会出现提示,根据提示,并将分区号命名:3
命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 1 extended, 3 free) (划分主分区)
   l   logical (numbered from 5) (划分逻辑分区)
Select (default p): p
分区号 (2-4,默认 2):3
起始 扇区 (2099200-20971519,默认为 2099200):
将使用默认值 2099200
Last 扇区, +扇区 or +size{K,M,G} (2099200-20971519,默认为 20971519):+1G
分区 3 已设置为 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
磁盘标识符:0x834bdf54

   设备 Boot  Start End  Blocks   Id  System
/dev/sdb1 2048    2099199 1048576   5  Extended
/dev/sdb3 2099200 4196351 1048576   83  Linux  
划分主分区之后,进行划分逻辑分区
命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
添加逻辑分区 5
起始 扇区 (4096-6293503,默认为 4096):
将使用默认值 4096
Last 扇区, +扇区 or +size{K,M,G} (4096-6293503,默认为 6293503):+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
磁盘标识符:0xadab6e1b

   设备 Boot  Start End  Blocks   Id  System
/dev/sdb1 2048    6293503 3145728    5  Extended
/dev/sdb3 6293504 8390655 1048576   83  Linux (分区号2和4留空,是因为留给主分区的)
/dev/sdb5 4096    2101247 1048576   83  Linux (逻辑分区号肯定是从5开始,并且连续)  
命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
添加逻辑分区 6
起始 扇区 (2103296-6293503,默认为 2103296):
将使用默认值 2103296
Last 扇区, +扇区 or +size{K,M,G} (2103296-6293503,默认为 6293503):+100M
分区 6 已设置为 Linux 类型,大小设为 100 MiB

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

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

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

   设备 Boot  Start End  Blocks   Id  System
/dev/sdb1 2048    6293503 3145728    5  Extended
/dev/sdb3 6293504 8390655 1048576   83  Linux
/dev/sdb5 4096    2101247 1048576   83  Linux
/dev/sdb6 2103296 2308095  102400   83  Linux
/dev/sdb7 2310144 2514943  102400   83  Linux (逻辑分区号一定是从5开始,并且连续)   

8)按:q退出之后,查看磁盘情况,/dev/sdb还未进行分区,现重新分区,且只分一个分区

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

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

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

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

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

若想重新分区,即只要删除已经分区好的:/dev/sdb1,然后给重新分区即可

知识点

1)w 命令的用法
2)最多只能划分4个主分区,可以3个主分区,1个扩展分区,在扩展分区进行划分:逻辑分区,有一个公式:主分区+扩展分区 小于等于 4
3)在划分分区编辑时,不能使用删除键往前删,即使用:Ctrl+u 清空
4)扩展分区不支持格式化,真正写数据的是里边的逻辑分区

3、fdisk的分区格式为MBR,特点是,最多分4个主分区,磁盘大小不能超过2T

而GPT分区格式,突破了这些限制,它没有主分区、扩展分区、逻辑分区之分,在一块磁盘上最多可以分128个分区出来,支持大于2T的分区,最大卷可达18EB

1)语法以及选项:parted [选项] [参数]

-h:显示帮助信息  
-i:交互式模式  
-s:脚本模式,不提示用户  
-v:显示版本号

2)

[root@mxk-01 ~]# fdisk -l

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

   设备 Boot  Start End  Blocks   Id  System

磁盘 /dev/mapper/vg1-lv1:314 MB, 314572800 字节,614400 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

[root@mxk-01 ~]# parted /dev/sdb (磁盘分区)
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt  
警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
是/Yes/否/No? y   (对于提示,按照指定)
错误: Partition(s) 1 on /dev/sdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use.  As a result, the
old partition(s) will remain in use.  You should reboot now before making further changes.
忽略/Ignore/放弃/Cancel? I
(parted) mkpart mxk_1 0 2G  (指定名称,以及大小从0开始到2G)
警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放弃/Cancel? I
错误: Partition(s) 1 on /dev/sdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use.  As a result, the
old partition(s) will remain in use.  You should reboot now before making further changes.
忽略/Ignore/放弃/Cancel? I
(parted) mkpart mxk_2 2G 3G  (继续分区)
错误: Partition(s) 1 on /dev/sdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use.  As a result, the
old partition(s) will remain in use.  You should reboot now before making further changes.
忽略/Ignore/放弃/Cancel? I
(parted) P
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start    End     Size     File system  Name   标志 (查看已经分区成功,挂载即可)
 1      17.4kB   2000MB  2000MB                mxk_1
 2      2001MB   3000MB  999MB                 mxk_2  

3)或者直接执行:part /dev/sdb primt 表示进入gpt模式下进行分区)

四、磁盘格式化

磁盘分区虽然已经完成,但还不能使用,需要进行格式化,格式化就是安装文件系统

1、查看Linux支持的文件系统格式,执行命令:cat /etc/filesystems

[root@mxk-01 ~]# cat /etc/filesystems
xfs
ext4
ext3
ext2
nodev proc
nodev devpts
iso9660
vfat
hfs
hfsplus

2、格式化命令有:mke2fs、mkfs.ext2、mkfs.ext3、mkfs.ext4和mkfs.xfs,用man命令查看时,前四个命令为同一个帮助文档

mke2fs的选项

1)-b 表示分区时设定每个数据区块占用的空间大小

如果没有写入数据大小就是:0,写入数据之后大小不到4KB,也会显示4KB(只要是写入数据,不管再小也会占用1个块)
[root@mxk-01 ~]# du -sh 3.txt
0   3.txt
[root@mxk-01 ~]# echo 1 > 3.txt 
[root@mxk-01 ~]# ls -lh 3.txt
-rw-r--r--. 1 root root 2 5月  19 12:30 3.txt
[root@mxk-01 ~]# du -sh 3.txt  
4.0K    3.txt  
mke2fs -b 8192 /dev/sdb1是吧每一个块大小指定为:8KB(ext4默认的4KB)
[root@mxk-01 ~]# mke2fs -b 8192 /dev/sdb1
Warning: blocksize 8192 not usable on most systems.
mke2fs 1.42.9 (28-Dec-2013)
mke2fs: 8192-byte blocks too big for system (max 4096)
无论如何也要继续? (y,n) ^C (由于8KB大,会提示是否继续)
[root@mxk-01 ~]# mke2fs -b 2048 /dev/sdb1 (将块大小设置:2048=2KB)
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=2048 (log=1)
分块大小=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=540016640
160 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

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

2)-m 表示指定分区预留的空间大小 ,格式:mke2fs -m [百分比] [分区名称]

[root@mxk-01 ~]# mke2fs -b 8192 /dev/sdb1
Warning: blocksize 8192 not usable on most systems.
mke2fs 1.42.9 (28-Dec-2013)
mke2fs: 8192-byte blocks too big for system (max 4096)
无论如何也要继续? (y,n) ^C
[root@mxk-01 ~]# mke2fs -b 2048 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=2048 (log=1)
分块大小=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user (由此行可以发现分区预留空间为5%,浪费空间)
第一个数据块=0
Maximum filesystem blocks=540016640
160 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

Allocating group tables: 完成
正在写入inode表: 完成
Writing superblocks and filesystem accounting information: 完成  
根据自身需求或者情况,可以指定预留空间:1%
[root@mxk-01 ~]# mke2fs -t ext4 -m 1 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
13107 blocks (1.00%) reserved for the super user (指定的预留空间为:1%)
第一个数据块=0
Maximum filesystem blocks=1342177280
40 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

Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成  
而且mkfs.xfs是不支持:-m选项,但是mke2fs与mkfs.ext4的选项结果一致
[root@mxk-01 ~]# mkfs.xfs -m 1 /dev/sdb1
unknown option -m 1
Usage: mkfs.xfs

3)-i 表示设定inode的大小

块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks (由此行可以计算出inode号大小与块大小之比大约为:1:4)
13107 blocks (1.00%) reserved for the super user   
如果根据现场情况确定inode号少,可以指定inode号的大小
[root@mxk-01 ~]# mke2fs -t ext4 -i 8192 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 1310720 blocks (指定完成后比例大约为1:2)
65536 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736

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

默认情况下1个块大小:4KB,1KB对应4个字节,每一个字节对应一个inode号

4)-t 用来指定文件系统的类型,可以是ext2、ext3、ext4、xfs

则mke2fs -t ext4 = mkfs.ext4,用这两个命令会出现同样的效果
[root@mxk-01 ~]# mke2fs -t ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1342177280
40 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

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

[root@mxk-01 ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1342177280
40 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

Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成  
但是由于mke2fs暂不支持:-t xfs,既可以使用:mkfs.xfs
[root@mxk-01 ~]# mkfs.xfs /dev/sdb1 (即使磁盘已经格式化,还是可以继续格式化的)
mkfs.xfs: /dev/sdb1 appears to contain an existing filesystem (ext4).
mkfs.xfs: Use the -f option to force overwrite.  (会出现提示,表示已经格式化了,是否还要继续格式化)
[root@mxk-01 ~]# mkfs.xfs -f /dev/sdb1 (添加:-f继续执行,在执行mke2fs时是不提示的)
meta-data=/dev/sdb1  isize=512agcount=4, agsize=327680 blks
 =   sectsz=512   attr=2, projid32bit=1
 =   crc=1finobt=0, sparse=0
data =   bsize=4096   blocks=1310720, 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  

5)-N 表示设定inode的数量

6)-c 表示格式化之前先检测磁盘是否有问题

7)-L 表示预设该分区的标签(label)

8)-j 表示建立ext3格式的分区(如果使用mkfs.ext3命令,就不需要加选项)

知识点

1)执行:mount命令查看分区的文件系统格式,/、/boot都是xfs格式文件,centos7文件是ext4,默认的xfs格式

2)执行:mount查看的文件系统是已经挂载到挂载点上的,可以使用:blkid查看未挂载的磁盘信息

[root@mxk-01 ~]# blkid /dev/sdb1
/dev/sdb1: UUID="a3819fde-ae00-4458-a185-884573846fd7" TYPE="xfs" (显示的是我们格式化的xfs格式文件系统)  

在这里我们会获得:UUID,UUID也可以配置到/etc/fstab中

UUID=51ac85bd-b8cc-492a-b357-6b008ed9cb28   /       xfs  defaults 0 0
UUID=8cfea73c-c731-4a17-8090-1b7fb0549d57   /boot   xfs  defaults 0 0
UUID=284b0602-8f17-4b6b-837f-23d81fe7516f   swap    swap defaults 0 0
UUID="a3819fde-ae00-4458-a185-884573846fd7" /mnt    xfs  defaults 0 0  

案例
想让某个分区在开机后自行挂载,两种办法可以实现

1、在/etc/fstab配置文件中添加一行

2、把挂载命令写到/etc/rc.d/rc.local中系统启动后执行打这个文件

 # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
 # that this script will be executed during boot.

touch /var/lock/subsys/local
/usr/bin/mount UUID="a3819fde-ae00-4458-a185-884573846fd7" /mut  

写入完成之后,执行:chmod a+x /etc/rc.d/rc.local即可

五、磁盘挂载

在挂载某个分区前,需要建立一个挂载点,挂载点是以目录的形式出现,一旦把某个分区挂载到这个挂载点下,再往该目录下写入信息,就会写入该分区。所以挂载分区前,该挂载点(目录)必须是个空目录。其实非空目录不影响挂载分区的使用,因为一旦挂载上,该目录下的内容就看不到了(内容并没有丢失)除非卸载该分区。

1、在磁盘不分区的情况下,也是可以进行格式化的

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

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


命令(输入 m 获取帮助):d  (首先删除之前划分的分区)
已选择分区 1
分区 1 已删除

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

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

   设备 Boot  Start End  Blocks   Id  System

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

Calling ioctl() to re-read partition table.
正在同步磁盘。  
[root@mxk-01 ~]# 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
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2151677952
80 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

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

2、挂载的命令:mount,格式:mount [磁盘分区号] [挂载的挂载点(目录)]

1)挂载挂载点完成之后,执行:df -h和mount查看

[root@mxk-01 /]# mount /dev/sdb/ /mnt/
[root@mxk-01 /]# df -h
文件系统      容量  已用   可用   已用% 挂载点
/dev/sda    318G   977M  17G    6%  /
devtmpfs    483M   0     483M   0%  /dev
tmpfs       493M   0     493M   0%  /dev/shm
tmpfs       493M   6.8M  486M   2%  /run
tmpfs       493M   0     493M   0%  /sys/fs/cgroup
/dev/sda1   197M   97M   100M   50% /boot
tmpfs       99M    0     99M    0%  /run/user/0
/dev/sdb    9.8G   37M   9.2G   1%  /mnt (该挂载点已经生成)
[root@mxk-01 /]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
......(中间省略)
/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=100816k,mode=700)
/dev/sdb on /mnt type ext4 (rw,relatime,seclabel,data=ordered) (在此可以看出次分区的文件系统:ext4)  

2)卸载挂载点命令:umount

umount [-fn] 装置文件名或挂载点 选项与参数:
-f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下
-n :不升级 /etc/mtab 情况下卸除

[root@mxk-01 mnt]# cd
[root@mxk-01 ~]# cd /mnt/
[root@mxk-01 mnt]# touch 1.txt 2.txt (在该目录下创建2个文件)
[root@mxk-01 mnt]# mkdir 1234 (在该目录下创建1个目录)
[root@mxk-01 mnt]# ls
1234  1.txt  2.txt  lost+found
[root@mxk-01 mnt]# umount /dev/sdb (在当前目录下卸载分区会提示,可以加:-l选项继续卸载,否则无法卸载)
umount: /mnt:目标忙。
(有些情况下通过 lsof(8) 或 fuser(1) 可以
 找到有关使用该设备的进程的有用信息)
[root@mxk-01 mnt]# cd (退出当前目录)
[root@mxk-01 ~]# umount /dev/sdb
[root@mxk-01 ~]# df -h
文件系统容量  已用  可用 已用% 挂载点
/dev/sda318G  977M   17G6% /
devtmpfs483M 0  483M0% /dev
tmpfs   493M 0  493M0% /dev/shm
tmpfs   493M  6.8M  486M2% /run
tmpfs   493M 0  493M0% /sys/fs/cgroup
/dev/sda1   197M   97M  100M   50% /boot
tmpfs99M 0   99M0% /run/user/0 (可以看出,已卸载成功)  

3、/etc/fstab配置文件和各种选项

1)查看配置文件:cat /etc/fstab

[root@mxk-01 ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Fri May 11 06:28:41 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=51ac85bd-b8cc-492a-b357-6b008ed9cb28 /       xfs   defaults 0 0
UUID=8cfea73c-c731-4a17-8090-1b7fb0549d57 /boot   xfs   defaults 0 0
UUID=284b0602-8f17-4b6b-837f-23d81fe7516f swap    swap  defaults 0 0  

第一列:表示分区的标识,可以写分区的LABEL、分区的UUID、也可以写分区名(/dev/sdb)
第二列:表示挂载点
第三列:分区的格式
第四列:表示mount的一些挂载选项或者参数,一般情况下写defaults
第五列:表示是否被dump备份,1:备份;0:不备份
第六列:表示来及是否自检磁盘,1和2:自检;0:不自检;1比2优先级高,所以先检查1,再检查2

2)常用选项

async/sync   设置是否为同步方式运行,默认为async不同步,sync则会内存和磁盘中的数据  
auto/noauto  表示开机自动挂载/不自动挂载  
rw/ro        是否以以只读或者读写模式挂载  
exec/noexec  表示允许/不允许可执行文件,禁止将/分区挂载为noexec,否则将无法使用系统  
user/nouser  表示允许/不允许root用户以外的其他用户挂载分区  
suid/nosuid  表示允许/不允许有usid属性,一般设置为:nosuid  
usrquota     启动用户的磁盘配额模式 
grpquota     启动文件系统对群组磁盘配额模式的支持  
defaults     表示按照大多数永久文件系统的默认值设置挂在定义,包含了:rw、suid、dev、exec、auto、nouser等默认参数的设置  

-t 用来指定挂载的分区类型、默认不指定,会自动识别
-o 用来指定挂载的分区有哪些特性

[root@mxk-01 ~]# mount -o remount,rw,sync /dev/sdb1 /mnt/ (remount表示重新挂载)
[root@mxk-01 ~]# 

知识点

1)Linux中挂载点是磁盘的入口

2)挂载的限制

(1)根目录是必须挂载的,而且一定要先于其他mount point被挂载。因为mount是所有目录的跟目录,其他目录都是由根目录 /衍生出来的
(2)挂载点必须是已经存在的目录
(3)挂载点的指定可以任意,但必须遵守必要的系统目录架构原则
(4)所有挂载点在同一时间只能被挂载一次
(5)所有分区在同一时间只能挂在一次
(6)若进行卸载,必须将工作目录退出挂载点(及其子目录)之外

六、手动添加swap分区

1、如果遇到虚拟内存不够用,就增加一个虚拟磁盘

1)建立swapfile

[root@mxk-01 ~]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=100 (dd是写入磁盘的命令、if表示从哪读取、/dev/zero是UNIX系统的特有文件、of指定目标大小、bs定义块大小、count定义块数量)
记录了100+0 的读入
记录了100+0 的写出
104857600字节(105 MB)已复制,10.2968 秒,10.2 MB/秒  

2)将其格式化为swap格式

[root@mxk-01 tmp]# mkswap -f /tmp/newdisk
正在设置交换空间版本 1,大小 = 102396 KiB
无标签,UUID=99204c7f-8a9e-44fc-bfb5-13b60f79ec06  

3)挂在使用

[root@mxk-01 tmp]# free -m
       total  used free  shared  buff/cache   available
Mem:   984    117  626    6      241          697
Swap:  2047   0    2047
[root@mxk-01 tmp]# swapon /tmp/newdisk 
swapon: /tmp/newdisk:不安全的权限 0644,建议使用 0600。
[root@mxk-01 tmp]# free -m
       total  used free  shared  buff/cache   available
Mem:   984    117  626    6      241          697
Swap:  2147   0    2147  

2、卸载手动添加swap

1)卸载命令:swapoff

[root@mxk-01 tmp]# free -m
       total  used  free  shared  buff/cache   available
Mem:   984    117   626   6       241          697
Swap:  2147   0     2147
[root@mxk-01 tmp]# swapoff /tmp/newdisk 
[root@mxk-01 tmp]# free -m
       total  used  free  shared  buff/cache   available
Mem:   984    117   626   6       241          697
Swap:  2047   0     2047
[root@mxk-01 tmp]# rm -rf /tmp/newdisk

七、lvm讲解

安装Lvm工具

[root@mxk-01 ~]# yum install -y lvm2
已加载插件:fastestmirror
base | 3.6 kB  00:00:00 
extras
......(中间省略)   
  perl-threads-shared.x86_64 0:1.43-6.el7 vim-common.x86_64 2:7.4.160-4.el7vim-filesystem.x86_64 2:7.4.160-4.el7

完毕! (安装完成)  

1、思路:给磁盘创建分区--->将主分区做成物理卷--->生成物理卷组--->生成逻辑分区

1)创建分区

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

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


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

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

   设备 Boot  Start End  Blocks   Id  System

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

命令(输入 m 获取帮助):t (更改ID)
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e (8e为LVM的System)
已将分区“Linux”的类型更改为“Linux LVM”
(按照同样的方法,添加2和3号分区)

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

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

   设备 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)创建完成分区之后做成物理卷

[root@mxk-01 ~]# pvcreate /dev/sdb1
-bash: pvcreate: 未找到命令 (未找到命令是因为未安装软件包)
[root@mxk-01 ~]# yum install -y lvm2  

安装完成之后,创建物理卷

[root@mxk-01 ~]# pvcreate /dev/sdb1
WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y
  Wiping ext4 signature on /dev/sdb1.
  Physical volume "/dev/sdb1" successfully created.
[root@mxk-01 ~]# pvcreate /dev/sdb2
  Physical volume "/dev/sdb2" successfully created.
[root@mxk-01 ~]# pvcreate /dev/sdb3
  Physical volume "/dev/sdb3" successfully created.
[root@mxk-01 ~]# 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   wc23zM-3c91-3Bjb-RePL-wgoY-2vmY-wqpccf

  "/dev/sdb1" is a new physical volume of "1.00 GiB"
  --- NEW Physical volume ---
  PV Name   /dev/sdb1
  VG Name   
  PV Size   1.00 GiB
  Allocatable   NO
  PE Size   0   
  Total PE  0
  Free PE   0
  Allocated PE  0
  PV UUID   YynXlk-KR94-7cCC-Q8Qr-zAMw-RtIx-cTB9SF

  "/dev/sdb2" is a new physical volume of "1.00 GiB"
  --- NEW Physical volume ---
  PV Name   /dev/sdb2
  VG Name   
  PV Size   1.00 GiB
  Allocatable   NO
  PE Size   0   
  Total PE  0
  Free PE   0
  Allocated PE  0
  PV UUID   73v5lV-9djN-ZMSE-6C3y-8WyM-18kh-nlzZ1L  

pvs也可以查看物理卷信息

  [root@mxk-01 ~]# 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)创建物理卷组

[root@mxk-01 ~]# vgcreate vg1 /dev/sdb1 /dev/sdb2 (vg1是创建物理卷组的名称)
  Volume group "vg1" successfully created
[root@mxk-01 ~]# vgdisplay 
  --- Volume group ---
  VG Name   vg1
  System ID 
  Formatlvm2
  Metadata Areas2
  Metadata Sequence No  1
  VG Access read/write
  VG Status resizable
  MAX LV0
  Cur LV0
  Open LV   0
  Max PV0
  Cur PV2
  Act PV2
  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   zftYRC-e1wn-BHcV-mfZ9-oQZI-IuT3-3zL1tj
  (vgs同样也可以查看)
  [root@mxk-01 ~]# vgs
  VG  #PV #LV #SN Attr   VSize VFree
  vg1   2   0   0 wz--n- 1.99g 1.99g  

创建逻辑卷

[root@mxk-01 ~]# lvcreate -L 100M -n lv1 vg1 (-L指定大小、-n指定名称)
  Logical volume "lv1" created.
[root@mxk-01 ~]# 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@mxk-01 ~]# mount /dev/vg1/lv1 /mnt/ (重新挂载)
[root@mxk-01 ~]# df -h
文件系统   容量    已用  可用    已用%  挂载点
/dev/sda3 18G     1.1G   17G   7%    /
devtmpfs  483M    0      483M  0%    /dev
tmpfs     493M    0      493M  0%    /dev/shm
tmpfs     493M    6.8M   486M  2%    /run
tmpfs     493M    0      493M  0%    /sys/fs/cgroup
/dev/sda  1197M   97M    100M   50%  /boot
tmpfs     99M     0      99M   0%    /run/user/0
/dev/mapper/vg1-lv1   93M  1.6M   85M2% /mnt
[root@mxk-01 ~]# ll /dev/vg1/lv1 (查看之后发现挂载的和查询到的名称不一致)
lrwxrwxrwx. 1 root root 7 5月  19 21:48 /dev/vg1/lv1 -> ../dm-0
[root@mxk-01 ~]# ll /dev/mapper/vg1-lv1 (查看之后发现这两个目录都指向同一个目录)
lrwxrwxrwx. 1 root root 7 5月  19 21:48 /dev/mapper/vg1-lv1 -> ../dm-0  

在/mnt/下创建目录和文件,并给文件写入数据

[root@mxk-01 ~]# mkdir /mnt/123
[root@mxk-01 ~]# touch /mnt/123.txt
[root@mxk-01 ~]# echo "maxiaokang">/mnt/123.txt
[root@mxk-01 ~]# ll /mnt/
总用量 16
drwxr-xr-x. 2 root root  1024 5月  19 21:57 123
-rw-r--r--. 1 root root11 5月  19 21:57 123.txt
drwx------. 2 root root 12288 5月  19 21:48 lost+found
[root@mxk-01 ~]# cat /mnt/123.txt
maxiaokang  

2、逻辑卷的价值就在于能够扩容和缩容

1)对逻辑卷进行扩容

[root@mxk-01 ~]# lvresize -L 200M /dev/vg1/lv1 (-L指定扩容的大小)
  Size of logical volume vg1/lv1 changed from 100.00 MiB (25 extents) to 200.00 MiB (50 extents).
  Logical volume vg1/lv1 successfully resized.
[root@mxk-01 ~]# umount /dev/vg1/lv1/ (其实应该先卸载挂载点,之后在执行扩容命令)
[root@mxk-01 ~]# lvresize -L 200M /dev/vg1/lv1
  New size (50 extents) matches existing size (50 extents).
[root@mxk-01 ~]# 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@mxk-01 ~]# mount /dev/vg1/lv1 /mnt/
[root@mxk-01 ~]# ll /mnt/ (查看之前在/mnt/下的目录和文件内容是否存在,如果不存在,在扩容就没有任何意义)
总用量 16
drwxr-xr-x. 2 root root  1024 5月  19 21:57 123
-rw-r--r--. 1 root root11 5月  19 21:57 123.txt
drwx------. 2 root root 12288 5月  19 21:48 lost+found
[root@mxk-01 ~]# cat /mnt/123.txt
maxiaokang
[root@mxk-01 ~]# 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 = 2
The filesystem on /dev/vg1/lv1 is now 204800 blocks long.

[root@mxk-01 ~]# df -h
文件系统 容量  已用  可用 已用% 挂载点
/dev/sda3 18G  1.1G   17G7% /
devtmpfs 483M 0  483M0% /dev
tmpfs493M 0  493M0% /dev/shm
tmpfs493M  6.8M  486M2% /run
tmpfs493M 0  493M0% /sys/fs/cgroup
/dev/sda1197M   97M  100M   50% /boot
tmpfs 99M 0   99M0% /run/user/0
/dev/mapper/vg1-lv1  190M  1.6M  178M1% /mnt (查看之后发现扩容100M)  

2)逻辑卷缩容(不支持xfs)

[root@mxk-01 ~]# umount /mnt/ (首先卸载之前的挂载点)
[root@mxk-01 ~]# e2fsck -f /dev/vg1/lv1 (检查磁盘信息)
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/vg1/lv1: 13/49400 files (7.7% non-contiguous), 11887/204800 blocks
[root@mxk-01 ~]# 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@mxk-01 ~]# 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 200.00 MiB (50 extents) to 100.00 MiB (25 extents).
  Logical volume vg1/lv1 successfully resized.
[root@mxk-01 ~]# lvdisplay  (查看逻辑卷信息,发现已经进行了缩容)
  --- Logical volume ---
  LV Path/dev/vg1/lv1
  LV Namelv1
  VG Namevg1
  LV UUIDW0Y1Df-03Js-IXkn-nDyG-nkhF-9E7N-DFwt3q
  LV Write Accessread/write
  LV Creation host, time mxk-01, 2018-05-19 21:47:03 +0800
  LV Status  available
  # open 0
  LV Size100.00 MiB
  Current LE 25
  Segments   1
  Allocation inherit
  Read ahead sectors auto
  - currently set to 8192
  Block device   253:0

[root@mxk-01 ~]# mount /dev/vg1/lv1 /mnt/ (最后重新进行挂载)  

3、xfs文件系统格式下的扩容

首先要创建xfs格式的逻辑卷

[root@mxk-01 ~]# umount /mnt/ (首先卸载刚才的ext.4的挂载点)
[root@mxk-01 ~]# mkfs.xfs -f /dev/vg1/lv1 (重新格式化成xfs格式的文件系统)
meta-data=/dev/vg1/lv1   isize=512agcount=4, agsize=6400 blks
 =   sectsz=512   attr=2, projid32bit=1
 =   crc=1finobt=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@mxk-01 ~]# mount /dev/vg1/lv1 /mnt/ (重新挂载)
[root@mxk-01 ~]# ll /mnt/
总用量 0
[root@mxk-01 ~]# mkdir /mnt/123 (在挂载目录下创建目录和文件,并给文件写入内容)
[root@mxk-01 ~]# touch /mnt/123.txt
[root@mxk-01 ~]# echo "maxioakang">/mnt/123.txt
[root@mxk-01 ~]# ll /mnt/
总用量 4
drwxr-xr-x. 2 root root  6 5月  19 22:31 123
-rw-r--r--. 1 root root 11 5月  19 22:31 123.txt
[root@mxk-01 ~]# cat /mnt/123.txt
maxioakang
[root@mxk-01 ~]# lvs (查看逻辑卷大小)
  LV   VG  Attr   LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1  vg1 -wi-ao---- 100.00m  

对xfs逻辑卷进行扩容

[root@mxk-01 ~]# lvresize -L 300M /dev/vg1/lv1 (扩容命令,与ext.4命令不同,-L是指定大小)
  Size of logical volume vg1/lv1 changed from 100.00 MiB (25 extents) to 300.00 MiB (75 extents).
  Logical volume vg1/lv1 successfully resized.
[root@mxk-01 ~]# lvs (查看逻辑卷内容)
  LV   VG  Attr   LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1  vg1 -wi-ao---- 300.00m
[root@mxk-01 ~]# xfs_growfs /dev/vg1/lv1 (如若逻辑卷大小没有变化,则执行该命令)
meta-data=/dev/mapper/vg1-lv1isize=512agcount=4, agsize=6400 blks
 =   sectsz=512   attr=2, projid32bit=1
 =   crc=1finobt=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 76800
[root@mxk-01 ~]# lvs
  LV   VG  Attr   LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1  vg1 -wi-ao---- 300.00m  

7、扩展卷组

当建立的逻辑分区使用率达到物理卷组的最大使用值,则就要对物理卷组进行扩容,可以新加一个主分区或者扩展分区,新增一个逻辑分区/sdb5(ID格式为:8e)

之前创建的/dev/sdb3还未使用,就用其来扩容逻辑卷组

[root@mxk-01 ~]# pvcreate /dev/sdb3 (创建物理卷)
  Physical volume "/dev/sdb3" successfully created.
[root@mxk-01 ~]# vgextend vg1 /dev/sdb3 (将创建的物理卷加入到之前的物理卷组vg1中)
  Volume group "vg1" successfully extended
[root@mxk-01 ~]# vgs (物理卷组已经变化)
  VG  #PV #LV #SN Attr   VSize  VFree 
  vg1   3   1   0 wz--n- <2.99g <2.70g
[root@mxk-01 ~]# vgdisplay
  --- Volume group ---
  VG Name   vg1
  System ID 
  Formatlvm2
  Metadata Areas3
  Metadata Sequence No  6
  VG Access read/write
  VG Status resizable
  MAX LV0
  Cur LV1
  Open LV   1
  Max PV0
  Cur PV3
  Act PV3
  VG Size   <2.99 GiB
  PE Size   4.00 MiB
  Total PE  765
  Alloc PE / Size   75 / 300.00 MiB
  Free  PE / Size   690 / <2.70 GiB
  VG UUID   zftYRC-e1wn-BHcV-mfZ9-oQZI-IuT3-3zL1tj   

此时物理卷组已经扩容,根据之前的方法对逻辑卷进行扩容即可

知识点

1)忘记需要安装的软件包名称时,可根据所需执行的命令查找:yum provides "/*/命令"

[root@mxk-01 ~]# yum provides "/*/pvcreate"
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
......(中间省略)
7:lvm2-2.02.177-4.el7.x86_64 : Userland logical volume management tools
源:@base (查找到安装包名称)
匹配来源:
文件名:/usr/sbin/pvcreate

八、磁盘故障案例

1、由于在/etc/fstab之中配置一行内容,所以在连接终端时会出现错误(这种情况一般情况下是文件系统内容没有挂载在挂载点上)
2、输入root密码,重新编辑/etc/fstab(再删除配置的一行时,可以按:i编辑,也可以双按:dd,达到效果)保存退出
3、重启,可以远程登录

九、补充知识点

1、dd工具使用场景

1)测试磁盘性能

/dev/null 伪设备,回收站.写该文件不会产生IO
/dev/zero 伪设备,会产生空字符流,对它不会产生IO

[root@mxk-01 ~]# time dd if=/dev/zero of=test.dbf bs=8k count=300000 (测试磁盘的IO写速度)
记录了300000+0 的读入
记录了300000+0 的写出
2457600000字节(2.5 GB)已复制,86.6252 秒,28.4 MB/秒

real    1m27.565s
user    0m0.169s
sys 0m13.769s
[root@mxk-01 ~]# dd if=test.dbf bs=8k count=300000 of=/dev/null (测试磁盘的IO读速度)
记录了300000+0 的读入
记录了300000+0 的写出
2457600000字节(2.5 GB)已复制,32.0863 秒,76.6 MB/秒  

2)备份硬盘数据

http://zuyunfei.com/2015/06/04/linux-dd/

2、raid讲解

https://blog.csdn.net/caipeichao2/article/details/52661825
磁盘有坏道的修复 fscke2fsck -a 分区名

1)避免数据丢失的几个策略

做raid1、raid10、raid5、raid6
做好数据的备份策略

3、lvm的使用场景介绍

阿里云磁盘扩容文档

 https://help.aliyun.com/document_detail/25452.html  

4、关于存储的有3个重要概念:DAS、NAS、SAN

http://forum.huawei.com/enterprise/zh/thread-274145-1-1.html
https://blog.csdn.net/JesseYoung/article/details/38367217

转载于:https://my.oschina.net/u/3850989/blog/1816862

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值