2018.8.2

2018.8.2  

  

4.1 df命令

4.2 du命令

4.3/4.4 磁盘分区

扩展学习    parted分区gpt格式  http://www.apelearn.com/bbs/thread-7243-1-1.html (复制链接,直接点显示404)

一、df命令

命令df(disk filesystem)用于查看盘的信息 默认以K为单位;

[root@linux-151 ~]# df

文件系统 1K-块 已用 可用 已用% 挂载点

/dev/sda3 16561152 1109608 15451544 7% /

devtmpfs 928056 0 928056 0% /dev

tmpfs 937872 0 937872 0% /dev/shm

tmpfs 937872 8804 929068 1% /run

tmpfs 937872 0 937872 0% /sys/fs/cgroup

/dev/sda1 201380 111468 89912 56% /boot

tmpfs 187576 0 187576 0% /run/user/0

  • tmpfs、devtmpfs 临时的文件系统,/dev、/dev/shm 为内存分区,默认大小为内存的1/2,如果我们把文件放在这个分区下,相当于放在内存中,好处是读写速度很快,坏处是系统重启文件会丢失;

    这里我们只看到了装系统时分的/分区和/boot分区;swap分区没看到,我们可以是free命令查看:

[root@linux-151 ~]# free

total used free shared buff/cache available

Mem: 1875748 133240 1504172 8820 238336 1568400Swap: 4194300 0 4194300

默认单位是KB

  • df -k 以K为单位

  • df -m 以m为单位

  • df -h 以合适单位来显示

  • df -i 以inode来显示

  • df -T 可用显示磁盘文件类型

df -k

[root@linux-151 ~]# df -k

文件系统 1K-块 已用 可用 已用% 挂载点

/dev/sda3 16561152 1109492 15451660 7% /

devtmpfs 928056 0 928056 0% /dev

tmpfs 937872 0 937872 0% /dev/shm

tmpfs 937872 8804 929068 1% /run

tmpfs 937872 0 937872 0% /sys/fs/cgroup

/dev/sda1 201380 111468 89912 56% /boot

tmpfs 187576 0 187576 0% /run/user/0

df -m

[root@linux-151 ~]# df -m

文件系统 1M-块 已用 可用 已用% 挂载点

/dev/sda3 16173 1084 15090 7% /

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 109 88 56% /boot

tmpfs 184 0 184 0% /run/user/0

df -h

[root@linux-151 ~]# df -h

文件系统 容量 已用 可用 已用% 挂载点

/dev/sda3 16G 1.1G 15G 7% /

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 109M 88M 56% /boot

tmpfs 184M 0 184M 0% /run/user/0

df -i

[root@linux-151 ~]# df -i

文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点

/dev/sda3 8285696 28104 8257592 1% /

devtmpfs 232014 392 231622 1% /dev

tmpfs 234468 1 234467 1% /dev/shm

tmpfs 234468 472 233996 1% /run

tmpfs 234468 16 234452 1% /sys/fs/cgroup

/dev/sda1 102400 330 102070 1% /boot

tmpfs 234468 1 234467 1% /run/user/0

注意:inode号是磁盘格式化的时候就自动按一定的比例4k:1分配好了,当创建一个文件是就会拿一个inode给这个文件使用。inode里面存的是文件的相关属性比如大小,权限,属组和存在磁盘的位置,如果创建文件提示空间不够,但是df查看磁盘空间的时候,发现还有空间,但是就是创建不了,这个时候就应该是inode被占满了,可以通过删除文件来回收inode

df -T

可用显示磁盘文件类型

[root@linux-151 ~]# df -T

文件系统 类型 1K-块 已用 可用 已用% 挂载点

/dev/sda3 xfs 16561152 1109492 15451660 7% /

devtmpfs devtmpfs 928056 0 928056 0% /dev

tmpfs tmpfs 937872 0 937872 0% /dev/shm

tmpfs tmpfs 937872 8804 929068 1% /run

tmpfs tmpfs 937872 0 937872 0% /sys/fs/cgroup

/dev/sda1 xfs 201380 111468 89912 56% /boot

tmpfs tmpfs 187576 0 187576 0% /run/user/0

二、 du命令

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

  • du -s 查看目录本身

  • du –c表示最后加总,不常用

  • du -h 表示系统自动调节单位,

  • du -sb 以字节(b)单位,可以查看文件真实大小

  • du -k 以k为单位

  • du -m 以m为单位

[root@linux-151 ~]# du -s /tmp/144 /tmp/

[root@linux-151 ~]# du -sh /root128K /root

[root@linux-151 ~]# du -c /root16 /root/.ssh

0 /root/123128 /root

128 总用量

  • du -sb 查看文件的真实大小,和ls -lb查看大小一样(它们单位为b字节)

[root@linux-151 ~]# du -sb /root/anaconda-ks.cfg1422 /root/anaconda-ks.cfg

[root@linux-151 ~]# ls -lb /root/anaconda-ks.cfg

-rw-------. 1 root root 1422 4月 9 23:35 /root/anaconda-ks.cfg

  • anaconda-ks.cfg实际大小是1.4K,占用了1个block,所以du –k查看时4k

[root@linux-151 ~]# du -k /root/anaconda-ks.cfg4 /root/anaconda-ks.cfg

[root@linux-151 ~]# ls -lh /root/anaconda-ks.cfg

-rw-------. 1 root root 1.4K 4月 9 23:35 /root/anaconda-ks.cfg

  • du -sh 和ls -lh 查看文件大小的区别:

  • 对于同一个文件,一般du -sh 出来的比ls -lh 的要大,这是由于k引起来的。原因是在格式化磁盘分区时,磁盘会被分割成一个个的block块,一个block是4K大小,且一个block只能放一个文件,如果这个文件很大,如大于4K,一个block是放不了的,需要另放在其他的块里;如果一个文件很小,不到4K,这个快也不会再放其他的文件了,这样du -sh其实是读取文件的block的大小,ls -lh读取的是文件本身大小。如果一个文件的大小正好是4K或者4K的倍数,则du -sh 和ls -lh读取的大小是一样的

三、 磁盘分区

增加虚拟磁盘

在当前的虚拟机选项卡点击鼠标右键,选择”设置”;

此时会弹出”虚拟机设置”对话框。在左侧选中”硬盘”,然后点击下方的”添加”按钮;

“添加硬件向导”中“硬件类型”选择硬盘,点击下一步;

“选择磁盘类型”这里保持默认不用更改任何指标,直接点击”下一步”按钮;

“选择磁盘”对话框里也保持默认,直接点击”下一步”按钮;

“指定磁盘容量”这里可以自由分配大小,设定”最大磁盘大小”为20GB,点击下一步;

继续点击”完成”按钮,最终完成添加新的虚拟机磁盘。虽然磁盘已经添加了,但系统暂时还不能被识别,需要重启一下系统才可以。

fdisk命令

  • fdisk -l 查看磁盘分区信息

  • fdisk -l /dev/sda 查看指定磁盘分区信息

  • fdisk 只能划分小于2T的分区,超过2T要用part来分区。

  • 主分区+扩展分区大于等于4

  • 扩展分区下面可以建逻辑分区,逻辑分区从sdb5开始

[root@linux-151 ~]# fdisk -l

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x000402aa

设备 Boot Start End Blocks Id System

/dev/sda1 * 2048 411647 204800 83 Linux

/dev/sda2 411648 8800255 4194304 82 Linux swap / Solaris

/dev/sda3 8800256 41943039 16571392 83 Linux

[root@linux-151 ~]# fdisk -l /dev/sdb

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

  • fdisk 命令如果不加-l选项,就会进入磁盘分区模式

[root@linux-151 ~]# fdisk /dev/sdb

欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。

使用写入命令前请三思。

Device does not contain a recognized partition table

使用磁盘标识符 0xa74ee364 创建新的 DOS 磁盘标签。

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

分区最常用的几个命令:

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

  • n:表示建立一个新的分区

  • w:表示保存

  • q:表示退出

  • d:表示删除已分区

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

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0xa74ee364

设备 Boot Start End Blocks Id System

创建分区:

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

Partition type:

p primary (0 primary, 0 extended, 4 free)

e extended

注意:这里的p表示主分区,e表示扩展分区,l表示逻辑分区

创建第一个主分区:

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

Partition type:

p primary (0 primary, 0 extended, 4 free)

e extended

Select (default p): p

分区号 (1-4,默认 1):

起始 扇区 (2048-41943039,默认为 2048):

将使用默认值 2048Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5

分区 1 已设置为 Linux 类型,大小设为 3 KiB

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

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0xa74ee364

设备 Boot Start End Blocks Id System

/dev/sdb1 2048 2053 3 83 Linux

创建第二个主分区:

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

Partition type:

p primary (1 primary, 0 extended, 3 free)

e extended

Select (default p): p

分区号 (2-4,默认 2):

起始 扇区 (2054-41943039,默认为 4096):

将使用默认值 4096Last 扇区, +扇区 or +size{K,M,G} (4096-41943039,默认为 41943039):+2G

分区 2 已设置为 Linux 类型,大小设为 2 GiB

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

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0xa74ee364

设备 Boot Start End Blocks Id System

/dev/sdb1 2048 2053 3 83 Linux

/dev/sdb2 4096 4198399 2097152 83 Linux

第三个主分区:

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

Partition type:

p primary (2 primary, 0 extended, 2 free)

e extended

Select (default p): p

分区号 (3,4,默认 3):

起始 扇区 (2054-41943039,默认为 4198400):

将使用默认值 4198400Last 扇区, +扇区 or +size{K,M,G} (4198400-41943039,默认为 41943039):+1G

分区 3 已设置为 Linux 类型,大小设为 1 GiB

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

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0xa74ee364

设备 Boot Start End Blocks Id System

/dev/sdb1 2048 2053 3 83 Linux

/dev/sdb2 4096 4198399 2097152 83 Linux

/dev/sdb3 4198400 6295551 1048576 83 Linux

第4个主分区:

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

All primary partitions are in use

添加逻辑分区 5No free sectors available

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

分区号 (1-4,默认 4):4

分区 4 已删除

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

Partition type:

p primary (3 primary, 0 extended, 1 free)

e extendedSelect (default e): p

已选择分区 4

起始 扇区 (2054-41943039,默认为 6295552):

将使用默认值 6295552Last 扇区, +扇区 or +size{K,M,G} (6295552-41943039,默认为 41943039):+5G

分区 4 已设置为 Linux 类型,大小设为 5 GiB

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

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0xa74ee364

设备 Boot Start End Blocks Id System

/dev/sdb1 2048 2053 3 83 Linux

/dev/sdb2 4096 4198399 2097152 83 Linux

/dev/sdb3 4198400 6295551 1048576 83 Linux

/dev/sdb4 6295552 16781311 5242880 83 Linux

  • 注意:创建完4个主分区后,我们再想创建新分区的时候,提示:如果你想创建超过四个分区,你必须换一个主分区和一个扩展分区。

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

If you want to create more than four partitions, you must replace a

primary partition with an extended partition first.

我们删除一个主分区,分区号4

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

起始 扇区 (2054-41943039,默认为 6295552):

将使用默认值 6295552Last 扇区, +扇区 or +size{K,M,G} (6295552-41943039,默认为 41943039):+5

分区 4 已设置为 Extended 类型,大小设为 3 KiB

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

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0xa74ee364

设备 Boot Start End Blocks Id System

/dev/sdb1 2048 2053 3 83 Linux

/dev/sdb2 4096 4198399 2097152 83 Linux

/dev/sdb3 4198400 6295551 1048576 83 Linux

/dev/sdb4 6295552 6295557 3 5 Extended

创建扩展分区后,我们再创建分区的时候:提示只能创建逻辑分区了

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

All primary partitions are in use

添加逻辑分区 5

起始 扇区 (6297600-12587007,默认为 6297600):

将使用默认值 6297600Last 扇区, +扇区 or +size{K,M,G} (6297600-12587007,默认为 12587007):+2G

分区 5 已设置为 Linux 类型,大小设为 2 GiB

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

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0xa74ee364

设备 Boot Start End Blocks Id System

/dev/sdb1 2048 2053 3 83 Linux

/dev/sdb2 4096 4198399 2097152 83 Linux

/dev/sdb3 4198400 6295551 1048576 83 Linux

/dev/sdb4 6295552 12587007 3145728 5 Extended

/dev/sdb5 6297600 10491903 2097152 83 Linux

注意:如果觉得分区错误,想重新分区,可以按q回车直接退出,然后再重新分区; 如果不想要某个分区,可以按d 回车删除相应的分区号。

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

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0xf9e111da

设备 Boot Start End Blocks Id System

/dev/sdb1 6293504 16779263 5242880 5 Extended

/dev/sdb3 2048 6293503 3145728 83 Linux

/dev/sdb5 6295552 8392703 1048576 83 Linux

/dev/sdb6 8394752 10491903 1048576 83 Linux

/dev/sdb7 10493952 16779263 3142656 83 Linux

上面例子 分了1个主分区/dev/sdb3 ,一个扩展分区/dev/sdb1,其他的全是逻辑分区, 逻辑分区号一定是从5开始,连续的,前4个分区号是留个主分区和扩展分区。

  • 注意:扩展分区不能格式化,不支持写数据;扩展分区相当于一个盒子,里面是逻辑分区。数据都写在逻辑分区中。

 磁盘格式化/ 磁盘挂载 /手动增加swap空间

  

4.5/4.6 磁盘格式化

4.7/4.8 磁盘挂载

4.9 手动增加swap空间

一、磁盘格式化

/etc/filesystems 查看系统支持哪些文件系统格式

[root@linux-151 ~]# cat /etc/filesystems

xfs //centos7默认文件系统

ext4 //centos6

ext3 //centos5

ext2

nodev proc

nodev devpts

iso9660

vfat

hfs

hfsplus

*

怎么查看一个分区的系统文件格式:

[root@linux-151 ~]# mount

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)

proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)

devtmpfs on /dev type devtmpfs (rw,nosuid,size=928056k,nr_inodes=232014,mode=755)

securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)

tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)

devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)

tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)

tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,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/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)

cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)

cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)

cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)

cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_prio,net_cls)

cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)

cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)

cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)

cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)

cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)

configfs on /sys/kernel/config type configfs (rw,relatime)

**/dev/sda3 on / type _xfs_ (rw,relatime,attr2,inode64,noquota)**

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)

hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)

**/dev/sda1 on /boot type_ xfs_ (rw,relatime,attr2,inode64,noquota)**

tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=187576k,mode=700)

mke2fs命令

  • 设置文件系统格式;常见的选项:

  • -t 系统文件类型

  • -b 块大小,每个数据块占用的空间大小,每个数据库支持1024B,2048B以及4096B。

  • -m 预留大小 1就是1%

  • -L 标示分区标签 label

  • -i 设定inode的大小,多少个块对应1个inode,默认4个块,16k

  • -N 设定inode的数量

[root@linux-151 ~]# 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

196608 inodes, 786432 blocks //1:439321 blocks (5.00%) reserved for the super user

第一个数据块=0

Maximum filesystem blocks=80530636824 block groups

32768 blocks per group, 32768 fragments per group8192 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912

Allocating group tables: 完成

正在写入inode表: 完成

Creating journal (16384 blocks): 完成

Writing superblocks and filesystem accounting information: 完成

[root@linux-151 ~]# blkid /dev/sdb1

/dev/sdb1: UUID="497c380a-737f-4a43-8370-c78a15b24f15" TYPE="ext4"

  • mke2fs -t ext4 /dev/sdb1====mkfs.ext4 /dev/sdb1 结果相同

  • mke2fs 不支持把分区格式化成xfs类型,只能使用mkfs.xfs

[root@linux-151 ~]# mkfs.xfs /dev/sdb1mkfs.xfs: /dev/sdb1 appears to contain an existing filesystem (ext4).mkfs.xfs: Use the -f option to force overwrite.

mkfs.xfs /dev/sdb1 设置系统类型为xfs时,会报错,必须加上-f 选项;

[root@linux-151 ~]# mkfs.xfs -f /dev/sdb1

meta-data=/dev/sdb1 isize=512 agcount=4, agsize=196608 blks

= sectsz=512 attr=2, projid32bit=1

= crc=1 finobt=0, sparse=0

data = bsize=4096 blocks=786432, 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@linux-151 ~]# blkid /dev/sdb1/dev/sdb1: UUID="9a805ee5-5f7e-4c1e-a8d3-11806434631a" TYPE="xfs"

  • -i 设置inode,设置成2个块对应1个inode,inode变多

[root@linux-151 ~]# mke2fs -i 8192 -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

393216 inodes, 786432 blocks

39321 blocks (5.00%) reserved for the super user

第一个数据块=0

Maximum filesystem blocks=80530636824 block groups

32768 blocks per group, 32768 fragments per group16384 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912

Allocating group tables: 完成

正在写入inode表: 完成

Creating journal (16384 blocks): 完成

Writing superblocks and filesystem accounting information: 完成

  • mke2fs -b 设置块大小,什么情况块设置大呢,一般用在大文件视频之类的,小文件块最好设置小一点。

[root@linux-151 ~]# mke2fs -b 8192 -t ext4 /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) y

Warning: 8192-byte blocks too big for system (max 4096), forced to continue

warning: 48 blocks unused.

文件系统标签=

OS type: Linux

块大小=8192 (log=3)

分块大小=8192 (log=3)

Stride=0 blocks, Stripe width=0 blocks

196608 inodes, 393168 blocks

19657 blocks (5.00%) reserved for the super user

第一个数据块=0

Maximum filesystem blocks=4026040326 block groups

65528 blocks per group, 65528 fragments per group32768 inodes per group

Superblock backups stored on blocks:

65528, 196584, 327640

Allocating group tables: 完成

正在写入inode表: 完成

Creating journal (8192 blocks): 完成

Writing superblocks and filesystem accounting information: 完成

  • mke2fs -m 指定分区预留的空间,mkfs.xfs 不支持 -m选项。

[root@linux-151 ~]# mke2fs -m 0.1 -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

196608 inodes, 786432 blocks

786 blocks (0.10%) reserved for the super user

第一个数据块=0

Maximum filesystem blocks=80530636824 block groups

32768 blocks per group, 32768 fragments per group8192 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912

Allocating group tables: 完成

正在写入inode表: 完成

Creating journal (16384 blocks): 完成

Writing superblocks and filesystem accounting information: 完成

  • 注意:扩展分区是不能够格式化的,他是一个壳,里面的逻辑分区才能格式化

  • 我们可以不分区直接格式化。

  • mkfs.xfs -f /dev/sdb

二、磁盘挂载

  • 磁盘分区和格式化后,我们要做的是挂载,只有挂载后才能将数据写进磁盘中,在挂在分区前,需要建立一个挂在点,这个挂载点是以目录的形式出现,一旦把某个分区挂载到这个目录下,在往这个目录下写数据时,就都会写到该分区中,所以在挂载该分区前,挂载点下必须是空目录。其实目录不为空并不影响所挂载分区的使用,但一旦挂载上,该目录下以前的数据就看不到了(数据并非丢失),卸载该分区后,数据恢复。

  • 一个挂载点只能给一个分区进行服务,假设有两个分区放在一个挂载点下,只能服务第二个分区,第二个会覆盖第一个,但是卸载掉第二个,第一个分区的数据就会出现

mount命令

mount命令可以查看当前系统已经挂载的所以分区,分区文件系统的类型,挂载点及一些选项信息。

挂载

  • mount [分区] [挂载点]

[root@linux-151 ~]# mount /dev/sdb1 /mnt

[root@linux-151 ~]# df -h

文件系统 容量 已用 可用 已用% 挂载点

/dev/sda3 16G 1.1G 15G 7% /

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 109M 88M 56% /boot

tmpfs 184M 0 184M 0% /run/user/0

/dev/sdb1 2.9G 9.0M 2.9G 1% /mnt

  • umount 卸载

[root@linux-151 ~]# mount /dev/sdb1 /mnt

[root@linux-151 ~]# cd /mnt

[root@linux-151 mnt]# umount /dev/sdb1

umount: /mnt:目标忙。

(有些情况下通过 lsof(8) 或 fuser(1) 可以

找到有关使用该设备的进程的有用信息)

这个时候我们要退出这个目录,在卸载

[root@linux-151 mnt]# cd[root@linux-151 ~]# umount /dev/sdb1

或者使用-l 选项

[root@linux-151 ~]# mount /dev/sdb1 /mnt[root@linux-151 ~]# cd /mnt[root@linux-151 mnt]# umount -l /dev/sdb1

开机自动挂载

第一种方法:vim /etc/fstab 直接将相关的挂载信息直接写入文件中

mount -a 会自动加载配置文件所有的配置

mount -o noatime,rw /dev/sdb1 /mnt 利用-o指定一些选项,如果不指定就为defaults

mount 可以查看加载了哪些相关选项

# /etc/fstab# Created by anaconda on Tue Jul 26 20:11:16 2016## 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 挂载点 系统文件类型 挂载选项 是否数据备份 开机是否

检测磁盘

(1的优先级高于2)

#defaults=rw,suid,dev,exec,auto,nouser,asyc

UUID=72cb5a39-c73a-466d-9207-5ef7ece5fd0d / ext4 defaults 1 1

UUID=51abe72d-14e4-4ab6-86df-fe446bb58487 /boot ext4 defaults 1 2

UUID=ed7b2cfc-cfa3-4993-b8a6-b04eb14f74f6 swap swap defaults 0 0

tmpfs /dev/shm tmpfs defaults 0 0

devpts /dev/pts devpts gid=5,mode=620 0 0

sysfs /sys sysfs defaults 0 0

proc /proc proc defaults 0 0

写入配置文件/etc/fstab后要mount -a

-a 会将/etc/fstab里面的所有分区挂载上

第二种方法:vim /etc/rc.local 其他启动会加载哪些设置

可以将mount /dev/sdb5 /mnt/ 命令直接写入/etc/rc.local文件,重启系统时文件会自动执行命令挂载了 

blkid 获取分区的uuid和table

三、手动增加swap空间

如果需要虚拟内存不够的情况,就必须增加一个虚拟磁盘,增加虚拟磁盘的基本思路: 建立swapfile-> 格式化为swap格式->启用该虚拟磁盘

建立swapfile

[root@linux-151 ~]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=100

记录了100+0 的读入

记录了100+0 的写出

104857600字节(105 MB)已复制,0.394181 秒,266 MB/秒

dd命令:操作磁盘;if指定源(一般是写/dev/zero,它是UNIX系统特有的一个文件,它可以源源不断的提供“0”)of指定目标文件,bs定义块大小,count定义块的数量,bs和count这个两个参数决定了目标文件大小,目标文件大小=bs*count。

格式化

[root@linux-151 mnt]# mkswap -f /tmp/newdisk

正在设置交换空间版本 1,大小 = 102396 KiB

无标签,UUID=3c1465ff-5837-4ecf-948d-7d5719b382c4

文件格式化后,就可以挂载使用

  • free -m 查看内存使用情况

[root@linux-151 mnt]# free -m

total used free shared buff/cache available

Mem: 1831 113 1459 8 259 1545Swap: 4095 0 4095

加载swap

[root@linux-151 mnt]# swapon /tmp/newdisk

swapon: /tmp/newdisk:不安全的权限 0644,建议使用 0600。//虽然提示不安全,但事实已经挂载成功

[root@linux-151 mnt]# blkid /tmp/newdisk

/tmp/newdisk: UUID="3c1465ff-5837-4ecf-948d-7d5719b382c4" TYPE="swap"

卸载swap

[root@linux-151 mnt]# swapoff /tmp/newdisk

 磁盘格式化/ 磁盘挂载 /手动增加swap空间

  

4.5/4.6 磁盘格式化

4.7/4.8 磁盘挂载

4.9 手动增加swap空间

一、磁盘格式化

/etc/filesystems 查看系统支持哪些文件系统格式

[root@linux-151 ~]# cat /etc/filesystems

xfs //centos7默认文件系统

ext4 //centos6

ext3 //centos5

ext2

nodev proc

nodev devpts

iso9660

vfat

hfs

hfsplus

*

怎么查看一个分区的系统文件格式:

[root@linux-151 ~]# mount

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)

proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)

devtmpfs on /dev type devtmpfs (rw,nosuid,size=928056k,nr_inodes=232014,mode=755)

securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)

tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)

devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)

tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)

tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,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/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)

cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)

cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)

cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)

cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_prio,net_cls)

cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)

cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)

cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)

cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)

cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)

configfs on /sys/kernel/config type configfs (rw,relatime)

**/dev/sda3 on / type _xfs_ (rw,relatime,attr2,inode64,noquota)**

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)

hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)

**/dev/sda1 on /boot type_ xfs_ (rw,relatime,attr2,inode64,noquota)**

tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=187576k,mode=700)

mke2fs命令

  • 设置文件系统格式;常见的选项:

  • -t 系统文件类型

  • -b 块大小,每个数据块占用的空间大小,每个数据库支持1024B,2048B以及4096B。

  • -m 预留大小 1就是1%

  • -L 标示分区标签 label

  • -i 设定inode的大小,多少个块对应1个inode,默认4个块,16k

  • -N 设定inode的数量

[root@linux-151 ~]# 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

196608 inodes, 786432 blocks //1:439321 blocks (5.00%) reserved for the super user

第一个数据块=0

Maximum filesystem blocks=80530636824 block groups

32768 blocks per group, 32768 fragments per group8192 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912

Allocating group tables: 完成

正在写入inode表: 完成

Creating journal (16384 blocks): 完成

Writing superblocks and filesystem accounting information: 完成

[root@linux-151 ~]# blkid /dev/sdb1

/dev/sdb1: UUID="497c380a-737f-4a43-8370-c78a15b24f15" TYPE="ext4"

  • mke2fs -t ext4 /dev/sdb1====mkfs.ext4 /dev/sdb1 结果相同

  • mke2fs 不支持把分区格式化成xfs类型,只能使用mkfs.xfs

[root@linux-151 ~]# mkfs.xfs /dev/sdb1mkfs.xfs: /dev/sdb1 appears to contain an existing filesystem (ext4).mkfs.xfs: Use the -f option to force overwrite.

mkfs.xfs /dev/sdb1 设置系统类型为xfs时,会报错,必须加上-f 选项;

[root@linux-151 ~]# mkfs.xfs -f /dev/sdb1

meta-data=/dev/sdb1 isize=512 agcount=4, agsize=196608 blks

= sectsz=512 attr=2, projid32bit=1

= crc=1 finobt=0, sparse=0

data = bsize=4096 blocks=786432, 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@linux-151 ~]# blkid /dev/sdb1/dev/sdb1: UUID="9a805ee5-5f7e-4c1e-a8d3-11806434631a" TYPE="xfs"

  • -i 设置inode,设置成2个块对应1个inode,inode变多

[root@linux-151 ~]# mke2fs -i 8192 -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

393216 inodes, 786432 blocks

39321 blocks (5.00%) reserved for the super user

第一个数据块=0

Maximum filesystem blocks=80530636824 block groups

32768 blocks per group, 32768 fragments per group16384 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912

Allocating group tables: 完成

正在写入inode表: 完成

Creating journal (16384 blocks): 完成

Writing superblocks and filesystem accounting information: 完成

  • mke2fs -b 设置块大小,什么情况块设置大呢,一般用在大文件视频之类的,小文件块最好设置小一点。

[root@linux-151 ~]# mke2fs -b 8192 -t ext4 /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) y

Warning: 8192-byte blocks too big for system (max 4096), forced to continue

warning: 48 blocks unused.

文件系统标签=

OS type: Linux

块大小=8192 (log=3)

分块大小=8192 (log=3)

Stride=0 blocks, Stripe width=0 blocks

196608 inodes, 393168 blocks

19657 blocks (5.00%) reserved for the super user

第一个数据块=0

Maximum filesystem blocks=4026040326 block groups

65528 blocks per group, 65528 fragments per group32768 inodes per group

Superblock backups stored on blocks:

65528, 196584, 327640

Allocating group tables: 完成

正在写入inode表: 完成

Creating journal (8192 blocks): 完成

Writing superblocks and filesystem accounting information: 完成

  • mke2fs -m 指定分区预留的空间,mkfs.xfs 不支持 -m选项。

[root@linux-151 ~]# mke2fs -m 0.1 -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

196608 inodes, 786432 blocks

786 blocks (0.10%) reserved for the super user

第一个数据块=0

Maximum filesystem blocks=80530636824 block groups

32768 blocks per group, 32768 fragments per group8192 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912

Allocating group tables: 完成

正在写入inode表: 完成

Creating journal (16384 blocks): 完成

Writing superblocks and filesystem accounting information: 完成

  • 注意:扩展分区是不能够格式化的,他是一个壳,里面的逻辑分区才能格式化

  • 我们可以不分区直接格式化。

  • mkfs.xfs -f /dev/sdb

二、磁盘挂载

  • 磁盘分区和格式化后,我们要做的是挂载,只有挂载后才能将数据写进磁盘中,在挂在分区前,需要建立一个挂在点,这个挂载点是以目录的形式出现,一旦把某个分区挂载到这个目录下,在往这个目录下写数据时,就都会写到该分区中,所以在挂载该分区前,挂载点下必须是空目录。其实目录不为空并不影响所挂载分区的使用,但一旦挂载上,该目录下以前的数据就看不到了(数据并非丢失),卸载该分区后,数据恢复。

  • 一个挂载点只能给一个分区进行服务,假设有两个分区放在一个挂载点下,只能服务第二个分区,第二个会覆盖第一个,但是卸载掉第二个,第一个分区的数据就会出现

mount命令

mount命令可以查看当前系统已经挂载的所以分区,分区文件系统的类型,挂载点及一些选项信息。

挂载

  • mount [分区] [挂载点]

[root@linux-151 ~]# mount /dev/sdb1 /mnt

[root@linux-151 ~]# df -h

文件系统 容量 已用 可用 已用% 挂载点

/dev/sda3 16G 1.1G 15G 7% /

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 109M 88M 56% /boot

tmpfs 184M 0 184M 0% /run/user/0

/dev/sdb1 2.9G 9.0M 2.9G 1% /mnt

  • umount 卸载

[root@linux-151 ~]# mount /dev/sdb1 /mnt

[root@linux-151 ~]# cd /mnt

[root@linux-151 mnt]# umount /dev/sdb1

umount: /mnt:目标忙。

(有些情况下通过 lsof(8) 或 fuser(1) 可以

找到有关使用该设备的进程的有用信息)

这个时候我们要退出这个目录,在卸载

[root@linux-151 mnt]# cd[root@linux-151 ~]# umount /dev/sdb1

或者使用-l 选项

[root@linux-151 ~]# mount /dev/sdb1 /mnt[root@linux-151 ~]# cd /mnt[root@linux-151 mnt]# umount -l /dev/sdb1

开机自动挂载

第一种方法:vim /etc/fstab 直接将相关的挂载信息直接写入文件中

mount -a 会自动加载配置文件所有的配置

mount -o noatime,rw /dev/sdb1 /mnt 利用-o指定一些选项,如果不指定就为defaults

mount 可以查看加载了哪些相关选项

# /etc/fstab# Created by anaconda on Tue Jul 26 20:11:16 2016## 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 挂载点 系统文件类型 挂载选项 是否数据备份 开机是否

检测磁盘

(1的优先级高于2)

#defaults=rw,suid,dev,exec,auto,nouser,asyc

UUID=72cb5a39-c73a-466d-9207-5ef7ece5fd0d / ext4 defaults 1 1

UUID=51abe72d-14e4-4ab6-86df-fe446bb58487 /boot ext4 defaults 1 2

UUID=ed7b2cfc-cfa3-4993-b8a6-b04eb14f74f6 swap swap defaults 0 0

tmpfs /dev/shm tmpfs defaults 0 0

devpts /dev/pts devpts gid=5,mode=620 0 0

sysfs /sys sysfs defaults 0 0

proc /proc proc defaults 0 0

写入配置文件/etc/fstab后要mount -a

-a 会将/etc/fstab里面的所有分区挂载上

第二种方法:vim /etc/rc.local 其他启动会加载哪些设置

可以将mount /dev/sdb5 /mnt/ 命令直接写入/etc/rc.local文件,重启系统时文件会自动执行命令挂载了 

blkid 获取分区的uuid和table

三、手动增加swap空间

如果需要虚拟内存不够的情况,就必须增加一个虚拟磁盘,增加虚拟磁盘的基本思路: 建立swapfile-> 格式化为swap格式->启用该虚拟磁盘

建立swapfile

[root@linux-151 ~]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=100

记录了100+0 的读入

记录了100+0 的写出

104857600字节(105 MB)已复制,0.394181 秒,266 MB/秒

dd命令:操作磁盘;if指定源(一般是写/dev/zero,它是UNIX系统特有的一个文件,它可以源源不断的提供“0”)of指定目标文件,bs定义块大小,count定义块的数量,bs和count这个两个参数决定了目标文件大小,目标文件大小=bs*count。

格式化

[root@linux-151 mnt]# mkswap -f /tmp/newdisk

正在设置交换空间版本 1,大小 = 102396 KiB

无标签,UUID=3c1465ff-5837-4ecf-948d-7d5719b382c4

文件格式化后,就可以挂载使用

  • free -m 查看内存使用情况

[root@linux-151 mnt]# free -m

total used free shared buff/cache available

Mem: 1831 113 1459 8 259 1545Swap: 4095 0 4095

加载swap

[root@linux-151 mnt]# swapon /tmp/newdisk

swapon: /tmp/newdisk:不安全的权限 0644,建议使用 0600。//虽然提示不安全,但事实已经挂载成功

[root@linux-151 mnt]# blkid /tmp/newdisk

/tmp/newdisk: UUID="3c1465ff-5837-4ecf-948d-7d5719b382c4" TYPE="swap"

卸载swap

[root@linux-151 mnt]# swapoff /tmp/newdisk

四周第一次课 lvm讲解 磁盘故障小案例

 

四周第一次课

4.10/4.11/4.12 lvm讲解

4.13 磁盘故障小案例

一、 lvm讲解

前期准备

准备磁盘分区

fdisk /dev/sdb

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

t 改变分区类型为8e

准备物理卷

pvcreate /dev/sdb1

pvcreate /dev/sdb2

pvcreate /dev/sdb3

pvdisplay/pvs 列出当前的物理卷

pvremove /dev/sdb3 删除物理卷

准备卷组

vgcreate vg1 /dev/sdb1 /dev/sdb2 /dev/sdb3

vgdisplay /vgs列出卷组

vgremove vg1 删除物理卷

创建逻辑卷

lvcreate -L 200M -n lv1 vg1

lvdisplay 列出逻辑卷

格式化mkfs.xfs /dev/vg1/lv1,再挂载

lvremove /dev/vg1/lv1 删除逻辑卷

扩容逻辑卷

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

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

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

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

缩减逻辑卷(xfs不支持 )

先umount

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

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

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

扩展卷组

fdisk /dev/sdb 新增/dev/sdb5(逻辑分区8e) 2G

pvcreate /dev/sdb5

vgextend vg1 /dev/sdb5

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

Lvm

1.创建物理分区;

2.物理分区设置成物理卷;

3.物理卷设置成卷组;

4.卷组划分成逻辑卷,

5.然后再格式化,挂载

先创建3个分区,在分区的时候按创建分区,按t设置分区类型8e 为lvm;

[root@linux-151 ~]# fdisk /dev/sdb

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

Partition type:

p primary (0 primary, 0 extended, 4 free)

e extended

Select (default p): p

分区号 (1-4,默认 1):

起始 扇区 (2048-41943039,默认为 2048):

将使用默认值 2048

Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+1G

分区 1 已设置为 Linux 类型,大小设为 1 GiB

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

已选择分区 1

Hex 代码(输入 L 列出所有代码):8e

已将分区“Linux”的类型更改为“Linux LVM”

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

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0xbc339889

设备 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

1.创建物理卷

需要安装命令:pvcreate

Tips:如果只知道命令,不知道这个命令是那个包安装的,可以使用命令:yum provides /*/[命令] 来查找命令是那个包安装的。

[root@linux-151 ~]# yum provides /*/pvcreate

已加载插件:fastestmirror

base | 3.6 kB 00:00:00

extras | 3.4 kB 00:00:00

updates | 3.4 kB 00:00:00

(1/2): extras/7/x86_64/primary_db | 129 kB 00:00:00

(2/2): updates/7/x86_64/primary_db | 3.6 MB 00:00:02

Loading mirror speeds from cached hostfile

* base: mirrors.aliyun.com

* extras: mirrors.aliyun.com

* updates: mirrors.cn99.com

extras/7/x86_64/filelists_db | 486 kB 00:00:00

updates/7/x86_64/filelists_db | 2.1 MB 00:00:011:bash-completion-2.1-6.el7.noarch : Programmable completion for Bash

源 :base

匹配来源:

文件名 :/usr/share/bash-completion/completions/pvcreate

7:lvm2-2.02.171-8.el7.x86_64 : Userland logical volume management tools

源 :base

匹配来源:

文件名 :/usr/sbin/pvcreate

lvm2-2.02.171-8.el7.x86_64 这个就是包名。

[root@linux-151 ~]# yum install -y lvm2

  1. 安装完使用命令:pvcreate 创建物理卷

[root@linux-151 ~]# 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@linux-151 ~]# pvcreate /dev/sdb2

Physical volume "/dev/sdb2" successfully created.

[root@linux-151 ~]# pvcreate /dev/sdb3

Physical volume "/dev/sdb3" successfully created.

  1. 物理卷创建完后,使用命令:pvdisplay或者pvs来查看信息:

[root@linux-151 ~]# pvdisplay

"/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 GqWi3Q-4XT9-1RyO-JE3C-Zber-oPw5-4zGyyp

"/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 zxaUnf-kxNt-Udki-sYSk-B3so-8hi1-qTM9gB

"/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 6TgcyT-DY1j-9PHt-upJH-nZql-V20D-Ttbm1w

[root@linux-151 ~]# 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

  • pvremove /dev/sdb3 删除物理卷

2.创建卷组

  • 命令:vgcreate来创建卷组,可以1或者多个物理卷来创建1个卷组;

  • 格式:vgcreate [卷组名] dev/sdb1 多个物理卷用空格隔开;

root@linux-151 ~]# vgcreate vg1 /dev/sdb1 dev/sdb2

Device dev/sdb2 not found (or ignored by filtering).

  • 用命令:vgdisplay 或者vgs来查看信息:

[root@linux-151 ~]# vgdisplay

--- Volume group ---

VG Name vg1

System ID

Format lvm2

Metadata Areas 2

Metadata Sequence No 1

VG Access read/write

VG Status resizable

MAX LV 0

Cur LV 0

Open LV 0

Max PV 0

Cur PV 2

Act PV 2

VG Size 1.99 GiB

PE Size 4.00 MiB

Total PE 510

Alloc PE / Size 0 / 0

Free PE / Size 510 / 1.99 GiB

VG UUID FbIw1F-dYh6-LL3L-Ah8O-NSTQ-v5gN-G2Lpsy

[root@linux-151 ~]# vgs

VG #PV #LV #SN Attr VSize VFree

vg1 2 0 0 wz--n- 1.99g 1.99g

  • vgremove vg1 删除物理卷

3.创建逻辑卷

  • 命令:lvcreate

[root@linux-151 ~]# lvcreate -L 100M -n lv1 vg1

Logical volume "lv1" created.

  • 命令:lvdisplay或者lvs来查看信息

[root@linux-151 ~]# lvdisplay

--- Logical volume ---

LV Path /dev/vg1/lv1

LV Name lv1

VG Name vg1

LV UUID TOmOhK-Hf1Y-aKkQ-nfP4-9tu3-cmUD-lbGjMz

LV Write Access read/write

LV Creation host, time linux-128, 2017-11-06 22:54:39 +0800

LV Status available

# open 0

LV Size 100.00 MiB

Current LE 25

Segments 1

Allocation inherit

Read ahead sectors auto

- currently set to 8192

Block device 253:0

[root@linux-151 ~]# lvs

LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert

lv1 vg1 -wi-a----- 100.00m

4.格式化成ext4

[root@linux-151 ~]# 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=3368550413 block groups

8192 blocks per group, 8192 fragments per group1976 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: 完成

5.挂载:mount

root@linux-151 ~]# mount /dev/vg1/lv1 /mnt

[root@linux-151 ~]# df -h

文件系统 容量 已用 可用 已用% 挂载点

/dev/sda3 16G 1.3G 15G 8% /

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 109M 88M 56% /boot

tmpfs 184M 0 184M 0% /run/user/0

/dev/mapper/vg1-lv1 93M 1.6M 85M 2% /mnt

[root@linux-151 ~]# mkdir /mnt/1122

[root@linux-151 ~]# touch /mnt/23.txt

[root@linux-151 ~]# echo "112233" > 23.txt

[root@linux-151 ~]# cat 23.txt112233

扩容逻辑卷

  • Etx4系统类型扩容前要先卸载挂载点

[root@linux-151 ~]# umount /mnt

  • 命令:lvresize -L 来扩容,重新设置卷大小

[root@linux-151 ~]# 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.

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

[root@linux-151 ~]# 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), 8897/102400 blocks

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

[root@linux-151 ~]# 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@linux-151 ~]# mount /dev/vg1/lv1 /mnt

[root@linux-151 ~]# ls /mnt1122 23.txt lost+found

[root@linux-151 ~]# cat 23.txt112233

扩容之前创建的文件还存在,说明扩容不影响之前的文件。

缩减逻辑卷

  1. 先卸载挂载点

[root@linux-151 ~]# umount /mnt

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

[root@linux-151 ~]# 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), 11885/204800 blocks

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

[root@linux-151 ~]# 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.

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

[root@linux-151 ~]# 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@linux-151 ~]# lvs

LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert

lv1 vg1 -wi-a----- 100.00m

  1. 挂载

[root@linux-151 ~]# mount /dev/vg1/lv1 /mnt

[root@linux-151 ~]# cat /mnt/23.txt

[root@linux-151 ~]# cat 23.txt112233

并不会因缩容导致文件丢失

Xfs类型来扩容

  1. 先卸载挂载点

[root@linux-151 ~]# umount /mnt

  1. 设置文件类型

[root@linux-151 ~]# 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@linux-151 ~]# lvs

LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert

lv1 vg1 -wi-ao---- 100.00m

[root@linux-151 ~]# mount /dev/vg1/lv1 /mnt

[root@linux-151 ~]# ls /mnt

[root@linux-151 ~]# mkdir /mnt/123

[root@linux-151 ~]# touch /mnt/12.txt

[root@linux-151 ~]# echo '123123' > /mnt/12.txt

[root@linux-151 ~]# cat /mnt/12.txt123123

  1. lvresize -L 300M /dev/vg1/lv1;扩容300M

[root@linux-151 ~]# lvresize -L 300M /dev/vg1/lv1

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@linux-151 ~]# lvs

LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert

lv1 vg1 -wi-ao---- 300.00m

4.xfs_growfs /dev/vg1/lv1; xfs文件系统需要执行

[root@linux-151 ~]# 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@linux-151 ~]# df -h

文件系统 容量 已用 可用 已用% 挂载点

/dev/sda3 16G 1.3G 15G 8% /

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 109M 88M 56% /boot

tmpfs 184M 0 184M 0% /run/user/0

/dev/mapper/vg1-lv1 297M 5.5M 292M 2% /mnt

[root@linux-151 ~]# cat /mnt/12.txt123123

卷组扩容

  1. 逻辑卷最大扩容到卷组的大小,当逻辑卷扩容到卷组大小的时候,就要想办法给卷组扩容,之前用/dev/sdb1和/dev/sdb2组成的卷组vg1,我们现在见/dev/sdb3加进来

[root@linux-151 ~]# vgextend vg1 /dev/sdb3

Volume group "vg1" successfully extended

[root@linux-151 ~]# vgs

VG #PV #LV #SN Attr VSize VFree

vg1 3 1 0 wz--n- <2.99g <2.70g

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

[root@linux-151 ~]# lvresize -L 500M /dev/vg1/lv1

Size of logical volume vg1/lv1 changed from 300.00 MiB (75 extents) to 500.00 MiB (125 extents).

Logical volume vg1/lv1 successfully resized.

[root@linux-151 ~]# lvs

LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert

lv1 vg1 -wi-ao---- 500.00m

二、磁盘故障小案例

磁盘故障 多半是因为磁盘挂载出现问题

  1. 输入root账号

  2. vi /etc/fstab 删除最下面一行,保存退出

  3. 重启服务器

猜你喜欢

转载自blog.csdn.net/weixin_42213920/article/details/81353908