2019独角兽企业重金招聘Python工程师标准>>>

Linux磁盘管理

一、 df命令

df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

df 没有加任何选项,那么默认会将系统内所有的 (不含特殊内存内的文件系统与 swap) 都以 1 Kbytes 的容量来列出来!

[root@ying01 ~]# df
文件系统          1K-块    已用     可用 已用% 挂载点
/dev/sda3      27332568 1000560 26332008    4% /
devtmpfs         927860       0   927860    0% /dev
tmpfs            937752       0   937752    0% /dev/shm
tmpfs            937752    8776   928976    1% /run
tmpfs            937752       0   937752    0% /sys/fs/cgroup
/dev/sda1        201380  115476    85904   58% /boot
tmpfs            187552       0   187552    0% /run/user/0

以上代码可以看出:/、/boot是我们在安装系统时划分出来的,/dev、/dev/shm为内存分区,默认大小为内存的1/2,如果把文件存到这个分区下,相当于存到了内存中,好处是读写非常快,坏处是系统重启时文件就丢失。

选项与参数:

  • -a:列出所有的文件系统,包括系统特有的 /proc 等文件系统;
  • -k :以 KBytes 的容量显示各文件系统;
  • -m :以 MBytes 的容量显示各文件系统; -** -h **:以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
  • -H :以 M=1000K 取代 M=1024K 的进位方式;
  • -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
  • -i :不用硬盘的容量,而以 inode 的数量来显示,如已经使用100%,即使磁盘空间富余,也会提示磁盘空间已满

-h用法

[root@ying01 ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        27G  978M   26G    4% /
devtmpfs        907M     0  907M    0% /dev
tmpfs           916M     0  916M    0% /dev/shm
tmpfs           916M  8.6M  908M    1% /run
tmpfs           916M     0  916M    0% /sys/fs/cgroup
/dev/sda1       197M  113M   84M   58% /boot
tmpfs           184M     0  184M    0% /run/user/0

-i用法

[root@ying01 ~]# df -i
文件系统          Inode 已用(I)  可用(I) 已用(I)% 挂载点
/dev/sda3      13672960   26703 13646257       1% /
devtmpfs         231965     381   231584       1% /dev
tmpfs            234438       1   234437       1% /dev/shm
tmpfs            234438     458   233980       1% /run
tmpfs            234438      16   234422       1% /sys/fs/cgroup
/dev/sda1        102400     328   102072       1% /boot
tmpfs            234438       1   234437       1% /run/user/0

-m用法

[root@ying01 ~]# df -m
文件系统       1M-块  已用  可用 已用% 挂载点
/dev/sda3      26692   978 25715    4% /
devtmpfs         907     0   907    0% /dev
tmpfs            916     0   916    0% /dev/shm
tmpfs            916     9   908    1% /run
tmpfs            916     0   916    0% /sys/fs/cgroup
/dev/sda1        197   113    84   58% /boot
tmpfs            184     0   184    0% /run/user/0

将 /etc 底下的可用的磁盘容量以易读的容量格式显示

[root@ying01 ~]# df -h /etc/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        27G  978M   26G    4% /

free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。

[root@ying01 ~]# freetotal        used        free      shared  buff/cache   available
Mem:        1875504      130492     1583640        8776      161372     1569712
Swap:       3905532           0     3905532
[root@ying01 ~]# free -h     //可以看到单位//total        used        free      shared  buff/cache   available
Mem:           1.8G        127M        1.5G        8.6M        157M        1.5G
Swap:          3.7G          0B        3.7G
[root@ying01 ~]# 

二、du命令

du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的

du 没有加任何选项时,则 du 会分析当前所在目录的文件与目录所占用的硬盘空间。

[root@ying01 ~]# du
4   ./.ssh
0   ./6
4   ./NBA
0   ./8/80
0   ./8/1
0   ./8/2
0   ./8/5
0   ./8
0   ./9
4   ./10
0   ./11/111
8   ./11
0   ./5/2
0   ./5
0   ./222/10
0   ./222
0   ./3
0   ./100/3
0   ./100
80  .

du -sh 查看某个目录或文件所占空间的大小

[root@ying01 ~]# ls
10  100  11  1ceshi.txt  222  3  5  6  8  9  anaconda-ks.cfg  NBA
[root@ying01 ~]# du -s /root/NBA
4   /root/NBA
[root@ying01 ~]# du -sh NBA
4.0K    NBA
[root@ying01 ~]# du -sh 1ceshi.txt
4.0K    1ceshi.txt

为什么这么多文件都是4KB呢?看下嘛试验?

[root@ying01 ~]# ls -lh /etc/passwd
-rw-r--r--. 1 root root 1.5K 5月  18 21:59 /etc/passwd
[root@ying01 ~]# du -sh /etc/passwd
4.0K    /etc/passwd

从上面我们看到用du命令查看passwd文件,显示是4KB,而其真实大小为1.5K;那是因为磁盘分为很多的小块,每个小块为4k,一个小块只能装一个文件;文件不够4K,但是用du查看就是显示装它的块;

du命令的选项:

  • -sh 查一个文件或者目录时,以单位显示
  • -a 全部文件和目录的大小都列出来,默认单位为KB
  • -b 表示列出的值以B为单位输出
  • -k 表示以KB单位输出
  • -m 表示以MB单位输出
  • -h 表示系统自动调节单位,如文件大小,可能几千字节,就以KB为单位显示。

三、磁盘分区

在Linux系统下(其他操作系统也有类似的规定),磁盘的分区大致可以分为三类,分别为主分区、扩展分区和逻辑分区等等。Linux系统管理员在部署系统时,必须要对这三个分区进行一个合理的规划,否则的话会浪费宝贵的硬盘空间。

通常情况下,一个硬盘中最多能够分割四个主分区。因为硬盘中分区表的大小只有64Bytes,而分割一个分区就需要利用16Bytes空间来存储这个分区的相关信息。由于这个分区表大小的限制,硬盘之能够分给为四个主分区。如果此时一块硬盘有120个G,而管理员划分了4个主分区,每个主分区的空间为20个G。那么总共才用去了80G的空间。这块硬盘剩余的40G空间就将无法使用。这显然浪费了硬盘的空间。

为了突破这最多四个主分区的限制,Linux系统引入了扩展分区的概念。即管理员可以把其中一个主分区设置为扩展分区(注意只能够使用一个扩展分区)来进行扩充。而在扩充分区下,又可以建立多个逻辑分区。也就是说,扩展分区是无法直接使用的,必须在细分成逻辑分区才可以用来存储数据。通常情况下,逻辑分区的起始位置及结束位置记录在每个逻辑分区的第一个扇区,这也叫做扩展分区表。在扩展分区下,系统管理员可以根据实际情况建立多个逻辑分区,将一个扩展分区划割成多个区域来使用。

所以在扩展分区与逻辑分区的帮助下,一块硬盘可以被划分为六个、七个甚至更多的分区。有时候由于磁盘限额的需要,要给不同的用户或者应用对应不同的分区。用户主目录的规划,这也需要用到一个独立的分区。故系统管理员需要在部署系统之前,先考虑一下系统到底有分几个区合适。故硬盘分区空间该如何规划,这是系统管理员在部署Linux系统之前需要回答的问题。

现在开始添加磁盘,点击虚拟机 > 设置

点击添加 > 硬盘 > 下一步

默认,下一步

我这路选择5G,单个文件,下一步

名字可以默认,点击完成

这时候我看到新增加的磁盘为5G,确定;

重启之后,我们用命令:fdisk -l 查看磁盘的详细信息;

[root@ying01 ~]# fdisk -l磁盘 /dev/sda:32.2 GB, 32212254720 字节,62914560 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000be1b7设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      411647      204800   83  Linux
/dev/sda2          411648     8222719     3905536   82  Linux swap / Solaris
/dev/sda3         8222720    62914559    27345920   83  Linux磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区             //新增5G磁盘//
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

我们用命令:fdisk /dev/磁盘代号 来进行分区;根据提示选择m选取帮助;一般常用命令的是n、p、w、d

[root@ying01 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。Device does not contain a recognized partition table
使用磁盘标识符 0x5376b0e0 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):m
命令操作a   toggle a bootable flag                          //可切换启动标志//b   edit bsd disklabel                              //编辑bsd磁盘标记//c   toggle the dos compatibility flag               //切换dos compatibility标志//d   delete a partition                              //删除分区//g   create a new empty GPT partition table          //创建新的空GPT分区表//G   create an IRIX (SGI) partition table            //创建IRIX (SGI)分区表//l   list known partition types                      //列出已知分区类型//m   print this menu                                 //打印此菜单//n   add a new partition                             //增加一个新分区//o   create a new empty DOS partition table          //创建新的enpty DOS分区表//p   print the partition table                       //打印分区表//q   quit without saving changes                     //退出而不保存更改//s   create a new empty Sun disklabel                //创建新的empty Sun empty Sun//t   change a partition's system id                  //更改e分区的系统id//u   change display/entry units                      //更改显示/输出单位//v   verify the partition table                      //验证分区表//w   write table to disk and exit                    //将表写入磁盘并退出//x   extra functionality (experts only)              //额外功能(仅限于专家)//命令(输入 m 获取帮助):

我们先用命令p,打印分区表;

命令(输入 m 获取帮助):p     磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x5376b0e0设备 Boot      Start         End      Blocks   Id  System

现在开始用命令n,增加一个新分区;

命令(输入 m 获取帮助):n
Partition type:p   primary (0 primary, 0 extended, 4 free)                                      //主分区//          e   extended                                                                     //扩展分区//
Select (default p): p                                                               //选择新增主分区//
分区号 (1-4,默认 1):1                                                             //分区代号,有1~4可选//
起始 扇区 (2048-10485759,默认为 2048):                                            //此处默认,回车//
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):+1G              //我们新的主分区为1G//
分区 1 已设置为 Linux 类型,大小设为 1 GiB                                          //1G的主分区完成//

我们再新增1个500M主分区

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

再新增一个800M的主分区;

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

现在只能增加一个分区;

命令(输入 m 获取帮助):n
Partition type:p   primary (3 primary, 0 extended, 1 free)e   extended
Select (default e): p
已选择分区 4                                                             //自动选择//
起始 扇区 (4761600-10485759,默认为 4761600):
将使用默认值 4761600
Last 扇区, +扇区 or +size{K,M,G} (4761600-10485759,默认为 10485759):
将使用默认值 10485759
分区 4 已设置为 Linux 类型,大小设为 2.7 GiB                             //分配空间也是自动//

此时我们用命令p,查看分区情况;Blocks的单位为:KB

命令(输入 m 获取帮助):p磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x5376b0e0设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux              //1G//
/dev/sdb2         2099200     3123199      512000   83  Linux              //500M//
/dev/sdb3         3123200     4761599      819200   83  Linux              //800M//
/dev/sdb4         4761600    10485759     2862080   83  Linux

现在我们试验删除命令:** d** 现在把主分区4删除;

命令(输入 m 获取帮助):d
分区号 (1-4,默认 4):4
分区 4 已删除命令(输入 m 获取帮助):p磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x5376b0e0设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux
/dev/sdb2         2099200     3123199      512000   83  Linux
/dev/sdb3         3123200     4761599      819200   83  Linux

现在我们把分区4,定义为扩展分区;

命令(输入 m 获取帮助):n
Partition type:p   primary (3 primary, 0 extended, 1 free)e   extended
Select (default e): e                                                          //选择e为扩展分区//
已选择分区 4
起始 扇区 (4761600-10485759,默认为 4761600):
将使用默认值 4761600
Last 扇区, +扇区 or +size{K,M,G} (4761600-10485759,默认为 10485759):
将使用默认值 10485759
分区 4 已设置为 Extended 类型,大小设为 2.7 GiB命令(输入 m 获取帮助):p磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x5376b0e0设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux
/dev/sdb2         2099200     3123199      512000   83  Linux
/dev/sdb3         3123200     4761599      819200   83  Linux
/dev/sdb4         4761600    10485759     2862080    5  Extended                //分区4,系统类型为扩展分区//

扩展分区和主分区区别就是主分区可以直接读写,而扩展分区只是一个空壳子,如果需要用,必须在扩展分区上划分为逻辑分区,这个逻辑分区个数无限多个,不像主分区最多为4个;

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

我们用命令p产看分区情况;这里需要说明下,id为系统类型:83 Linux(主分区或者逻辑分区) 5 Extended (扩展分区)

命令(输入 m 获取帮助):P磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x5376b0e0设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux
/dev/sdb2         2099200     3123199      512000   83  Linux
/dev/sdb3         3123200     4761599      819200   83  Linux
/dev/sdb4         4761600    10485759     2862080    5  Extended
/dev/sdb5         4763648     6606847      921600   83  Linux                     

我们现在start和end,这里就是分区的开始容量和结束容量;我们可以看到分区1,从2048开始,为什么不是从0开始,那是因为磁盘本身有文件信息,所以占用了2M,分区2、3、4都是按顺序拼合;而分区5属于逻辑分区,它就是从扩展分区划分出来的,所以他们开始之间的差值为2018,即2M,也扩展分区中配置文件所占用;

现在我们删除分区1,发现分区2、3、4代号不变;

命令(输入 m 获取帮助):d
分区号 (1-5,默认 5):1
分区 1 已删除命令(输入 m 获取帮助):p磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x5376b0e0设备 Boot      Start         End      Blocks   Id  System
/dev/sdb2         2099200     3123199      512000   83  Linux
/dev/sdb3         3123200     4761599      819200   83  Linux
/dev/sdb4         4761600    10485759     2862080    5  Extended
/dev/sdb5         4763648     6606847      921600   83  Linux

既然之前说逻辑分区5,是从扩展分区4的一部分,我们现在删除扩展分区4;结果逻辑分区5也被删除;

命令(输入 m 获取帮助):d
分区号 (2-5,默认 5):4
分区 4 已删除命令(输入 m 获取帮助):p磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x5376b0e0设备 Boot      Start         End      Blocks   Id  System
/dev/sdb2         2099200     3123199      512000   83  Linux
/dev/sdb3         3123200     4761599      819200   83  Linux

上面几项试验成功,按ctrl+c或者q退出,刚才做的分区边全部取消。下面代码显示,新增磁盘未被分区;

[root@ying01 ~]# fdisk -l磁盘 /dev/sda:32.2 GB, 32212254720 字节,62914560 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000be1b7设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      411647      204800   83  Linux
/dev/sda2          411648     8222719     3905536   82  Linux swap / Solaris
/dev/sda3         8222720    62914559    27345920   83  Linux磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

我们现在重新分区,先分扩展分区,再建主分区

[root@ying01 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。Device does not contain a recognized partition table
使用磁盘标识符 0x69fa0494 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p): e
分区号 (1-4,默认 1):1
起始 扇区 (2048-10485759,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):+3G
分区 1 已设置为 Extended 类型,大小设为 3 GiB

现在开始划分主分区;

命令(输入 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                                                       //我们不选择默认分区号2,选择3//
起始 扇区 (6293504-10485759,默认为 6293504):
将使用默认值 6293504
Last 扇区, +扇区 or +size{K,M,G} (6293504-10485759,默认为 10485759):+500M
分区 3 已设置为 Linux 类型,大小设为 500 MiB命令(输入 m 获取帮助):n
Partition type:p   primary (1 primary, 1 extended, 2 free)l   logical (numbered from 5)
Select (default p): p
分区号 (2,4,默认 2):4                                                      //我们不选择默认分区号2,选择4//
起始 扇区 (7317504-10485759,默认为 7317504):
将使用默认值 7317504
Last 扇区, +扇区 or +size{K,M,G} (7317504-10485759,默认为 10485759):+300M
分区 4 已设置为 Linux 类型,大小设为 300 MiB命令(输入 m 获取帮助):n
Partition type:p   primary (2 primary, 1 extended, 1 free)l   logical (numbered from 5)
Select (default p): p
已选择分区 2                                                                //最好默认为2//
起始 扇区 (7931904-10485759,默认为 7931904):
将使用默认值 7931904
Last 扇区, +扇区 or +size{K,M,G} (7931904-10485759,默认为 10485759):
将使用默认值 10485759
分区 2 已设置为 Linux 类型,大小设为 1.2 GiB

我们用命令p产看分区情况;可以看出虽然分区号按顺序排列,但是(Start、End)是从建立分区的顺序排列的;

命令(输入 m 获取帮助):p磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x69fa0494设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     6293503     3145728    5  Extended            //扩展分区//
/dev/sdb2         7931904    10485759     1276928   83  Linux
/dev/sdb3         6293504     7317503      512000   83  Linux
/dev/sdb4         7317504     7931903      307200   83  Linux

我们再增加逻辑分区;逻辑分区号,是系统指定的;从5开始,一次向后递增;

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

我们用命令p产看分区情况;可以看出逻辑分区从扩展分区划分出来的;

命令(输入 m 获取帮助):p磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x69fa0494设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     6293503     3145728    5  Extended
/dev/sdb2         7931904    10485759     1276928   83  Linux
/dev/sdb3         6293504     7317503      512000   83  Linux
/dev/sdb4         7317504     7931903      307200   83  Linux
/dev/sdb5            4096     2101247     1048576   83  Linux
/dev/sdb6         2103296     3741695      819200   83  Linux
/dev/sdb7         3743744     6293503     1274880   83  Linux

试着删除分区:主分区3删除后,这个空间大小就空出来了;

命令(输入 m 获取帮助):d
分区号 (1-7,默认 7):3
分区 3 已删除命令(输入 m 获取帮助):p磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x69fa0494设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     6293503     3145728    5  Extended
/dev/sdb2         7931904    10485759     1276928   83  Linux
/dev/sdb4         7317504     7931903      307200   83  Linux
/dev/sdb5            4096     2101247     1048576   83  Linux
/dev/sdb6         2103296     3741695      819200   83  Linux
/dev/sdb7         3743744     6293503     1274880   83  Linux

而删除逻辑分区6;系统会将分区7自动补位。但是需要注意:之前的空间还是空着;

命令(输入 m 获取帮助):d
分区号 (1,2,4-7,默认 7):6
分区 6 已删除命令(输入 m 获取帮助):p磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x69fa0494设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     6293503     3145728    5  Extended
/dev/sdb2         7931904    10485759     1276928   83  Linux
/dev/sdb4         7317504     7931903      307200   83  Linux
/dev/sdb5            4096     2101247     1048576   83  Linux
/dev/sdb6         3743744     6293503     1274880   83  Linux

总结:为什么需要这么麻烦分Extended;那是因为想分更多的区,如果只需要4个以下,那就不需要分扩展分区;

以下为扩展试验:parted分区

[root@ying01 ~]# parted /dev/sdb
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
错误: /dev/sdb: unrecognised disk label
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

将磁盘格式变成gpt的格式(因为parted只能针对gpt格式的磁盘进行操作)(或者msdos)

(parted) mklabel  gpt
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: Number  Start  End  Size  File system  Name  标志

我们开始分区

(parted) mkpart ying_01 0 1G                                                    //分给名字为:ying_01 范围为0~1G的分区//
警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放弃/Cancel? I                                                      //因为磁盘开始有配置文件,所以不能从0开始//
(parted) mkpart ying_02 1G 2G                                                   //继续划分分区//
(parted) p                                                                      //用命令p,查看分区//
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: Number  Start   End     Size    File system  Name     标志1      17.4kB  1000MB  1000MB               ying_01                           //可以看到有17.4KB被占用//2      1000MB  2000MB  999MB                ying_02

我们现在删除一个分区

(parted) rm 2                                                           //删除分区2//
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: Number  Start   End     Size    File system  Name     标志1      17.4kB  1000MB  1000MB               ying_01(parted) quit                                                         //quit命令是保存与退出//
信息: You may need to update /etc/fstab.

如果我们再(parted)下操作不顺手,可以用这个命令parted /dev/sdb print 它可以在命令行下使用,只是用print把在parted下的命令打印出来;

[root@ying01 ~]# parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: Number  Start   End     Size    File system  Name     标志1      17.4kB  1000MB  1000MB               ying_01[root@ying01 ~]# 

四、磁盘格式化

我们先查看下CentOS下有哪些文件格式;

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

注意:CentOS 7默认使用的xfs格式 ,而CentOS 6默认使用的格式ext4 ,CentOS 5默认使用的格式ext3,CentOS 4及之前版本默认使用的格式ext2;

mke2fs命令常用的选项如下:

  • -b 表示分区时设定每个数据区块占用的空间大小,目前每个数据块支持1024B,2048B以及4096B
  • -i 表示设定inode的大小
  • -N 表示设定inode的数量,有时默认的inode不够用,所要要自定义
  • -c 表示在格式化前先检查一下磁盘是否有问题,加上这个选项以后,运行速度会非常慢。
  • -L 表示预设该分区的标签(label)
  • -j 表示建立ext3格式的分区,如果使用mkfs.ext3格式 就不需要加这个选项了
  • -t 比用来指定文件系统的类型

先格式化sdb1这个分区;mke2fs -t ext4 /dev/sdb1mkfs.ext4 /dev/sdb1 命令是一样的;都是把分区格式化为etx4格式;

[root@ying01 ~]# 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
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

然而mke2fs命令不支持xfs格式,只能用mkfs.xfs这个命令;

[root@ying01 ~]# 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@ying01 ~]# mkfs.xfs -f /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=131072 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=524288, 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
[root@ying01 ~]# blkid /dev/sdb1                                            //在没有挂载点时候,查看分区格式用blkid//
/dev/sdb1: UUID="0512d919-e03d-4a5e-bf7c-1bb672090322" TYPE="xfs"           //分区格式为xfs//

-b选项: mke2fs -b 8192 ext4 /dev/sdb1 表示分区时设定每个数据区块占用的空间大小;

[root@ying01 ~]# mke2fs -b 8192 /dev/sdb1                    //给定块大小为8KB//
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)       //最大为2KB//
无论如何也要继续? (y,n) n                                    //退出//

那我们指定2048B;

[root@ying01 ~]# mke2fs -b 2048 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=2048 (log=1)                                                 //块大小为2048B//
分块大小=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 1048576 blocks
52428 blocks (5.00%) reserved for the super user                    //磁盘5%的区间留给root,意思5%空间不能用//
第一个数据块=0
Maximum filesystem blocks=537919488
64 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, 802816Allocating group tables: 完成
正在写入inode表: 完成
Writing superblocks and filesystem accounting information: 完成 

-m选项: mke2fs -m 0.1 ext4 /dev/sdb1 表示分区时设定留给root用户的空间大小占磁盘的百分比;这个好处就是充分利用磁盘,因为假如是1TB的硬盘,那么5%就51.2G,这部分将会不能利用;那我们设定0.1%,那就是1G多,这个可以接受;

[root@ying01 ~]# mke2fs -t ext4 -m 0.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
131072 inodes, 524288 blocks                                 //inode数量为:131072;4个块对应1个inode//
524 blocks (0.10%) reserved for the super user               //设定的0.1%留给root用户//
第一个数据块=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

-i选项: mke2fs -i 8192 ext4 /dev/sdb1 表示分区时设定多少个字节对应一个inode;

[root@ying01 ~]# mke2fs -i 8192 -t ext4 /dev/sdb1                    //设定indoe大小为:8192B//
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
262144 inodes, 524288 blocks                                        //此时的inode数量为:262144;2个块对应1个inode//
26214 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 

五、磁盘挂载

磁盘分区和格式化以后,如何使用磁盘,必须挂载以后才能使用,挂载分区前先建立一个挂载点,这个点以目录形式出现,再往目录里面写数据。

未分区的磁盘也可以直接挂载,先将原有分区删除,然后把增加的磁盘格式化,并用blkid查看;

[root@ying01 ~]# mkfs.xfs /dev/sdb
mkfs.xfs: /dev/sdb appears to contain a partition table (dos).
mkfs.xfs: Use the -f option to force overwrite.
[root@ying01 ~]# mkfs.xfs -f /dev/sdb
meta-data=/dev/sdb               isize=512    agcount=4, agsize=327680 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=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
[root@ying01 ~]# blkid /dev/sdb
/dev/sdb: UUID="112b0169-e74f-4a5f-abfe-df2f95b48b81" TYPE="xfs"

mount [磁盘] [挂载点]

[root@ying01 ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        27G  978M   26G    4% /
devtmpfs        907M     0  907M    0% /dev
tmpfs           916M     0  916M    0% /dev/shm
tmpfs           916M  8.6M  908M    1% /run
tmpfs           916M     0  916M    0% /sys/fs/cgroup
/dev/sda1       197M  113M   84M   58% /boot
tmpfs           184M     0  184M    0% /run/user/0
[root@ying01 ~]# mount /dev/sdb /mnt/
[root@ying01 ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        27G  978M   26G    4% /
devtmpfs        907M     0  907M    0% /dev
tmpfs           916M     0  916M    0% /dev/shm
tmpfs           916M  8.6M  908M    1% /run
tmpfs           916M     0  916M    0% /sys/fs/cgroup
/dev/sda1       197M  113M   84M   58% /boot
tmpfs           184M     0  184M    0% /run/user/0
/dev/sdb        5.0G   33M  5.0G    1% /mnt                    //已经挂载在/mnt下//

umount 卸载磁盘挂载点

[root@ying01 ~]# cd /mnt/
[root@ying01 mnt]# ls
[root@ying01 mnt]# touch 1.txt 2.txt
[root@ying01 mnt]# mkdir 234
[root@ying01 mnt]# ls
1.txt  234  2.txt
[root@ying01 mnt]# cd                        //也可以不用到root下,直接在mnt下用 umount -l //
[root@ying01 ~]# umount /dev/sdb
[root@ying01 ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        27G  978M   26G    4% /
devtmpfs        907M     0  907M    0% /dev
tmpfs           916M     0  916M    0% /dev/shm
tmpfs           916M  8.6M  908M    1% /run
tmpfs           916M     0  916M    0% /sys/fs/cgroup
/dev/sda1       197M  113M   84M   58% /boot
tmpfs           184M     0  184M    0% /run/user/0

cat 查看下/etc/fstab文件内容,显示的是系统启动时需要挂载的各个分区

# /etc/fstab
# Created by anaconda on Wed May  9 02:21:04 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=b43ac3f1-3afe-4a10-b3b8-a9f0f498cdc0 /                       xfs     defaults        0 0
UUID=3fd26e68-574b-4d1c-b3e2-bcc2a64acf86 /boot                   xfs     defaults        0 0
UUID=e5c61f28-8cda-4bda-b524-3ce569c743d4 swap                    swap    defaults
  • 第一列就是分区标识,分区的LABEL或UUID,
  • 第二列是挂载点
  • 第三列是分区的格式
  • 第四列是mount挂载的一些参数,默认defaults
  • 第五列是否被dump备份,1表示备份,0不备份
  • 第六列拜师开机时是否自检磁盘,1和2都表示检测,0表示不检测,1比2优先级高

七、手动增加swap空间

swap命令类似于windows的虚拟内存,如果遇到虚拟内存不够的情况,就要增加一个虚拟磁盘。 基本思路是: 建立seapfile,然后格式化为swap格式,最后启用这个虚拟磁盘

** 首先建立一个swap file**

用命令: dd if=/dev/zero of=/tmp/newdisk bs=1M count=1024

  • dd是用来操作磁盘 可读可写 ;
  • if 从哪里读取 /dev/zero是内核一个源源不断创建0的文件;
  • of 指定写到哪里去 ;
  • /tmp/newdisk 这个文件是把读取出来的信息 放到net disk目录下;
  • bs指定每个块的大小;
  • count定义块的数量;
[root@ying01 ~]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=1024
记录了567+0 的读入
记录了567+0 的写出
594542592字节(595 MB)已复制,18.4079 秒,32.3 MB/秒[root@ying01 ~]#  du -sh /tmp/newdisk                  //查看磁盘//
567M    /tmp/newdisk

格式化为swap格式,并用free -m命令,查看目前Swap的大小;

[root@ying01 ~]# mkswap -f /tmp/newdisk                            //强制格式化磁盘为swap格式//
正在设置交换空间版本 1,大小 = 580604 KiB
无标签,UUID=9ef14d00-9a1b-4f06-9285-7b502c4d6ce2
[root@ying01 ~]#  free -m                                          //查看磁盘大小//     total        used        free      shared  buff/cache   available
Mem:           1831         126         951           8         753        1521
Swap:          3813           0        3813

把刚新增加的虚拟内存添加进到Swa,用命令:swapon -f

[root@ying01 ~]# swapon /tmp/newdisk                                              //添加新磁盘//
swapon: /tmp/newdisk:不安全的权限 0644,建议使用 0600。                          //提示权限不够//
[root@ying01 ~]#  free -m                                    total        used        free      shared  buff/cache   available
Mem:           1831         126         951           8         753        1520
Swap:          4380           0        4380                                          //但是明显Swap已经增大了//
[root@ying01 ~]# chmod 0600 /tmp/newdisk                                             //按提示修改权限//
[root@ying01 ~]#  free -mtotal        used        free      shared  buff/cache   available
Mem:           1831         126         951           8         753        1520
Swap:          4380           0        4380

卸载新添加的虚拟内存,命令:swapoff

[root@ying01 ~]# swapoff /tmp/newdisk                                //卸载磁盘//
[root@ying01 ~]#  free -m                                            //查看Swap大小为3813M,可见已经卸载//total        used        free      shared  buff/cache   available
Mem:           1831         126         951           8         753        1521
Swap:          3813           0        3813

八、 lvm讲解

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

1. 创建物理卷:

在建立主分区基础上,用t命令,将83 linux改为 8e linux LVM

命令(输入 m 获取帮助):n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-10485759,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):+1G
分区 1 已设置为 Linux 类型,大小设为 1 GiB命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

依次创建3个分区,用命令p查看;下面代码可以看到3个(Linux LVM)

命令(输入 m 获取帮助):p磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x486cc3c0设备 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

pvcreat命令是创建物理卷;但是未找到这个命令,那是因为我们安装LVM的包;

[root@ying01 ~]# pvcreat /dev/sdb1
-bash: pvcreat: 未找到命令

虽然我们知道用这个命令,但是怎么安装正确的安装包?yum provides "/*/pvcreate" 星号为通配符,在根下找包含所需命令的文件; 我们可以知道这个安装包是lvm2;

[root@ying01 ~]# yum provides "/*/pvcreate"
已加载插件:fastestmirror
base
extras
updates
(1/2): extras/7/x86_64/primary_db
(2/2): updates/7/x86_64/primary_db
Loading mirror speeds from cached hostfile* base: mirrors.cn99.com* extras: mirrors.cn99.com* updates: mirrors.cn99.com
extras/7/x86_64/filelists_db
updates/7/x86_64/filelists_db
1:bash-completion-2.1-6.el7.noarch : Programmable completion for Bash
源    :base
匹配来源:
文件名    :/usr/share/bash-completion/completions/pvcreate7:lvm2-2.02.177-4.el7.x86_64 : Userland logical volume management tools
源    :base
匹配来源:
文件名    :/usr/sbin/pvcreate

yum install -y lvm2 命令安装LVM2后,我们一次创建3个物理卷;

[root@ying01 ~]# pvcreate /dev/sdb1
WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: yWiping ext4 signature on /dev/sdb1.Physical volume "/dev/sdb1" successfully created.
[root@ying01 ~]# pvcreate /dev/sdb2Physical volume "/dev/sdb2" successfully created.
[root@ying01 ~]# pvcreate /dev/sdb3Physical volume "/dev/sdb3" successfully created.

用命令pvdisplay和pvs查看,两个命令都能查看,但是pvs更简洁直观;

[root@ying01 ~]# pvs                            //查看3个创建成功的物理卷//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

2. 创建卷组

vgcreat这个命令是创建卷组;

[root@ying01 ~]# vgcreate vg1 /dev/sdb1 /dev/sdb2Volume group "vg1" successfully created
[root@ying01 ~]# vgsVG  #PV #LV #SN Attr   VSize VFreevg1   2   0   0 wz--n- 1.99g 1.99g

用命令vgdisplay和vgs查看卷组,但是vgs更简洁直观;(vgremove 删除卷组的命令)

[root@ying01 ~]# vgsVG  #PV #LV #SN Attr   VSize VFreevg1   2   0   0 wz--n- 1.99g 1.99g

创建逻辑卷:(lvcreate创建逻辑卷,-L 100M指定大小,-n lv1 逻辑卷的名字,vg1从卷组里面调用出来)

[root@ying01 ~]# lvcreate -L 100M -n lv1 vg1        //从卷组vg1拿出100M给逻辑卷lv1//Logical volume "lv1" created.                     //逻辑卷lv1创建成功//

把逻辑卷扩容,那么我们先把其格式化;

[root@ying01 ~]# mkfs.ext4 /dev/vg1/lv1           //格式化逻辑卷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, 73729Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 

我们先挂载逻辑卷,发现/mnt下逻辑卷与我们创建的不一样,用ls -l查看各自的信息,发现它们都指向dm-0

[root@ying01 ~]# mount /dev/vg1/lv1  /mnt/
[root@ying01 ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/sda3             27G  1.6G   25G    7% /
devtmpfs             907M     0  907M    0% /dev
tmpfs                916M     0  916M    0% /dev/shm
tmpfs                916M  8.7M  908M    1% /run
tmpfs                916M     0  916M    0% /sys/fs/cgroup
/dev/sda1            197M  113M   84M   58% /boot
tmpfs                184M     0  184M    0% /run/user/0
/dev/mapper/vg1-lv1   93M  1.6M   85M    2% /mnt                           //与创建逻辑卷的信息不一样//
[root@ying01 ~]# ls -l /dev/vg1/lv1
lrwxrwxrwx. 1 root root 7 5月  23 08:42 /dev/vg1/lv1 -> ../dm-0
[root@ying01 ~]# ls -l /dev/mapper/vg1-lv1
lrwxrwxrwx. 1 root root 7 5月  23 08:42 /dev/mapper/vg1-lv1 -> ../dm-0

3.扩容逻辑卷

扩容前我们需要首先取消其挂载点;用命令umount

[root@ying01 ~]# mkdir  /mnt/1212
[root@ying01 ~]# touch /mnt/23.txt
[root@ying01 ~]# echo "1111111111" > /mnt/23.txt
[root@ying01 ~]# umount /mnt/                                   //取消挂载点//
[root@ying01 ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        27G  1.6G   25G    7% /
devtmpfs        907M     0  907M    0% /dev
tmpfs           916M     0  916M    0% /dev/shm
tmpfs           916M  8.7M  908M    1% /run
tmpfs           916M     0  916M    0% /sys/fs/cgroup
/dev/sda1       197M  113M   84M   58% /boot
tmpfs           184M     0  184M    0% /run/user/0

先重置逻辑卷大小

[root@ying01 ~]# lvresize -L 200M /dev/vg1/lv1 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.

检查磁盘错误 (ext4执行)

[root@ying01 ~]# 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@ying01 ~]# 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@ying01 ~]# mount /dev/vg1/lv1 /mnt/
[root@ying01 ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/sda3             27G  1.6G   25G    7% /
devtmpfs             907M     0  907M    0% /dev
tmpfs                916M     0  916M    0% /dev/shm
tmpfs                916M  8.7M  908M    1% /run
tmpfs                916M     0  916M    0% /sys/fs/cgroup
/dev/sda1            197M  113M   84M   58% /boot
tmpfs                184M     0  184M    0% /run/user/0
/dev/mapper/vg1-lv1  190M  1.6M  175M    1% /mnt                    //已经变为200M//
[root@ying01 ~]# ls /mnt/
1212  23.txt  lost+found                                           //磁盘文件还在//
[root@ying01 ~]# cat /mnt/23.txt                                   //相应的信息还在//
1111111111

4.缩减逻辑卷

先检查磁盘

[root@ying01 ~]# umount /mnt/
[root@ying01 ~]# 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

更新逻辑卷信息(ext)

[root@ying01 ~]# 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@ying01 ~]# 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]: ySize of logical volume vg1/lv1 changed from 200.00 MiB (50 extents) to 100.00 MiB (25 extents).Logical volume vg1/lv1 successfully resized.

lvs 或lvdisplay 查看缩减结果

[root@ying01 ~]# lvsLV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv1  vg1 -wi-a----- 100.00m

重新挂载,然后查看缩容后是否会丢失文件信息,结果是没有丢失

[root@ying01 ~]# mount /dev/vg1/lv1 /mnt/
[root@ying01 ~]# ls /mnt/
1212  23.txt  lost+found

5.xfs文件格式下的扩容

挂载,然后格式化

[root@ying01 ~]# umount /mnt/
[root@ying01 ~]# 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@ying01 ~]# mount /dev/vg1/lv1 /mnt/
[root@ying01 ~]# ls /mnt/                                                //查看信息,没有,因为格式化//
[root@ying01 ~]# touch /mnt/233.txt                                      //创建文件//
[root@ying01 ~]# echo "bbbbbbbb" > /mnt/233.txt                          //给新建文件写入内容//
[root@ying01 ~]# cat /mnt/233.txt
bbbbbbbb

重新创建逻辑卷大小为300M,并在创建在前和之后查看,进行对比;

[root@ying01 ~]# lvs                                                     //查看逻辑卷大小为100M//LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv1  vg1 -wi-ao---- 100.00m     [root@ying01 ~]# lvresize -L 300M /dev/vg1/lv1                         //重新创建逻辑卷大小为300M//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@ying01 ~]# lvs                                                     //逻辑卷大小为300M//LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv1  vg1 -wi-ao---- 300.00m

创建完逻辑卷后,xfs格式需要用xfs_growfs /dev/vg1/lv1 更新

[root@ying01 ~]# 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 76800[root@ying01 ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/sda3             27G  1.6G   25G    7% /
devtmpfs             907M     0  907M    0% /dev
tmpfs                916M     0  916M    0% /dev/shm
tmpfs                916M  8.7M  908M    1% /run
tmpfs                916M     0  916M    0% /sys/fs/cgroup
/dev/sda1            197M  113M   84M   58% /boot
tmpfs                184M     0  184M    0% /run/user/0
/dev/mapper/vg1-lv1  297M  5.5M  292M    2% /mnt                   //成功看到新的逻辑卷300M //

6.扩容卷组

查看现在的卷组大小 vgs

[root@ying01 ~]# vgsVG  #PV #LV #SN Attr   VSize VFree vg1   2   1   0 wz--n- 1.99g <1.70g

之前分区分了3个,还有一个没有用,先扩容卷组

[root@ying01 ~]# vgextend vg1 /dev/sdb3         //把sdb3物理卷添加到卷组vg1//Volume group "vg1" successfully extended

再次查看现在的卷组大小 vgs

[root@ying01 ~]# vgsVG  #PV #LV #SN Attr   VSize  VFree vg1   3   1   0 wz--n- <2.99g <2.70g        //目前为3个G//

九、磁盘故障小案例

在做完实验后,我们开启虚拟机出现问题;因为之前我们编辑了这个文件etc/fstab 因此我们需要把其中的添加的内容删除;

转载于:https://my.oschina.net/u/3851633/blog/1815092

Linux磁盘管理——df、du、磁盘分区、格式化、挂载、LVM相关推荐

  1. linux 磁盘分区,格式化,挂载

    在操作系统中,磁盘管理属于设备管理的范畴,一块硬盘安装到主机之后称为裸设备,若要能够linux系统中使用必须对其进行如下步骤: 分区 --> 格式化 --> 挂载 1. linux 系统中 ...

  2. CentOS7 运维 - 磁盘管理与文件系统 | 超详细 | 附挂载教程及错误排查 | parted超大磁盘分区教程

    磁盘管理与文件系统 硬盘结构 磁盘的接口种类 磁盘分区表示 主引导记录(MBR)磁盘分区 文件系统类型 XFS 文件系统 SWAP 交换文件系统 Linux 支持的其他文件系统类型 fdisk 检测并 ...

  3. RedHat 7.8磁盘分区/格式化/挂载

    RedHat 7.8磁盘分区/格式化/挂载 查看磁盘分区表 以树状列出所有块设备 进入 /dev目录查看当前块设备 查看指定磁盘分区表 创建主分区 创建扩展分区 创建逻辑分区(在扩展分区的基础上) 使 ...

  4. 闫刚 linux下对u盘进行分区格式化

    文章目录 资源 基础知识 格式化u盘分区 1. 查看当前u盘被挂载到那个设备节点上 2. 进入u盘 3. 查看u盘分区表 4. 修改u盘分区格式 5. 把u盘制作成FAT文件系统 6. 把u盘制作ex ...

  5. HP-UX磁盘管理:新磁盘发现、LVM创建与扩展

    [转载]HP-UX磁盘管理:新磁盘发现.LVM创建与扩展 原文地址:http://www.toxingwang.com/linux-unix/unix/1488.html 一.HP-UX的文件系统: ...

  6. 盘符没有显示,磁盘管理器提示磁盘没有初始化(已解决)

    一.问题 插入移动硬盘,文件资源管理器未显示对应的磁盘,拔出硬盘重新插入也没有用.打开磁盘管理,提示磁盘没有初始化: 二.解决方法 右击window图标,打开磁盘管理或者计算机管理: 右击磁盘名称,选 ...

  7. CentOS硬盘挂载之fdisk命令进行查看/分区/格式化/挂载

    CentOS硬盘挂载之fdisk命令进行查看/分区/格式化/挂载 此教程是博主亲自帮朋友管理服务器所操作的完整步骤,当然此步骤适合所有的linux-centos系统,不管centos怎么变,linux ...

  8. Linux磁盘管理----分区格式化挂载fdisk、mkfs、mount

    1,磁盘分区命令fdisk [root@localhost ~]# fdisk -l #查看磁盘分区情况 Disk /dev/sda: 10.8 GB, 10837518250 bytes 255 h ...

  9. mount查看linux分区大小,Linux磁盘管理----分区格式化挂载fdisk、mkfs、mount

    1,磁盘分区命令fdisk [root@localhost ~]# fdisk -l #查看磁盘分区情况 Disk /dev/sda: 10.8 GB, 10837518250 bytes 255 h ...

最新文章

  1. python使用matplotlib可视化不同年份、不同项目的均值(mean)对比条形图(bar plot comparision of mean with different years)
  2. android 9.0室内定位方案,Android GPS室内定位问题的解决方法(location为null)
  3. 好技术领导和差技术领导区别在哪里--转
  4. 六十三、Vue中非父子(兄弟)组件间传值,插槽的使用和作用域插槽(非常重要)
  5. MySQL分区表概念以及优缺点
  6. 电脑提示0xc0000719设备未迁移如何解决
  7. 海信新机F30S即将发布:搭载紫光展锐虎贲T310处理器
  8. 功能测试工程师想快速学习新技术?7个捷径教给你!
  9. python整型图_基于PIL的图像整形与裁剪矢量化
  10. JSP学习——EL表达式和JSTL学习小结
  11. JS获取浏览器版本号
  12. oracle表空间加密
  13. 基于STM32的无线通信模块使用——HC_05蓝牙串口
  14. 安装sql错误:系统找不到指定路径
  15. HTML罕见的冷门标签
  16. 龙格库塔法求解微分方程
  17. lotus系统可以再linux下运行吗,IBM Lotus Notes 8.5 在 MAC 和 Linux 系统安装的新特性
  18. 301 302状态码【重定向】
  19. 直播预告: EMNLP 2020 专场四| AI TIME PhD
  20. A-1.18 硬件设计--USB2.0一致性测试方法和报告解读

热门文章

  1. pthread 立即停止线程_pthread线程的终止退出 | 线程的大量创建
  2. PCL:PCL1.9.0更新
  3. 0xc000007b:vs2012+Opencv2.4.4出现0xc000007b问题
  4. 使用Jmeter 创建Post请求
  5. Unity 3D网络游戏实战 pdf
  6. 呆萌直播源码:如何开发视频直播平台?
  7. Citrix XenServer Workload Balancing 报告词汇表
  8. spring @bean注解
  9. IOS-网络(GCD)
  10. 时尚的基因是创新 -- 旺旺平台产品线员工大会即兴发言提要