预习课程
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 新增虚拟磁盘
- 在当前虚拟机选项卡点击鼠标右键,选择设置,
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 命令常用的选项如下:
- -b 表示分区时设定每个数据区块占用的空间大小。目前每个数据块支持1024B、2018B以及4096B。
- -i 表示设定的inode的大小
- -N 表示设定的inode的数量。有时默认的inode的数不够用,所以要自定义inode的数量
- -c 表示在格式化之前先检测一下磁盘是否有问题,加上这个选项后,运行速度会非常慢
- -L 表示预设该分区的标签
- -j 表示建立ext3格式的分区。如果使用mkfs.ext3格式,就不用加这个选项了
- -m 表示磁盘预留空间大小,最大化使用
- -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,和asyncro:表示只读权限挂载
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