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.14扩展学习parted分区gpt格式
4.1 df命令
##查看分区情况三种方法
1)df -h
2)lsblk
3)fdisk -l
df #查看磁盘空间使用情况
-h # 将单位化为M
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 1.2G 27G 5% /
devtmpfs 477M 0 477M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.6M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 197M 129M 68M 66% /boot
tmpfs 98M 0 98M 0% /run/user/0
#文件系统名带tmpfs都是临时文件系统,在对应的挂载点写文件后重启系统会消失
-t #查看文件系统类型
-m #以M为单位显示
[root@localhost ~]# df -m
文件系统 1M-块 已用 可用 已用% 挂载点
/dev/sda3 28458 1152 27306 5% /
devtmpfs 477 0 477 0% /dev
tmpfs 488 0 488 0% /dev/shm
tmpfs 488 8 480 2% /run
tmpfs 488 0 488 0% /sys/fs/cgroup
/dev/sda1 197 129 68 66% /boot
tmpfs 98 0 98 0% /run/user/0
-i #查看分区inode及inode使用情况
[root@localhost ~]# df -i
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sda3 14577152 30344 14546808 1% /
devtmpfs 122026 375 121651 1% /dev
tmpfs 124743 1 124742 1% /dev/shm
tmpfs 124743 691 124052 1% /run
tmpfs 124743 16 124727 1% /sys/fs/cgroup
/dev/sda1 102400 332 102068 1% /boot
tmpfs 124743 1 124742 1% /run/user/0
#如果某个分区用了大部分空间,但还有少量剩余空间,发现写文件放不进去,可以去查看该分区的inode是否满了
free #查看/swap/内存空间
[root@localhost ~]# free
total used free shared buff/cache available
Mem: 997948 133640 712672 7756 151636 695644
Swap: 2097148 0 2097148
4.2 du命令
du #查看文件大小
[root@localhost ~]# du 3.txt
4 3.txt
du #查看目录及子目录和文件大小
[root@localhost ~]# du /root/
12 /root/.ssh
0 /root/123/12/1.txt
0 /root/123/12
0 /root/123
0 /root/xin/123
0 /root/xin
56 /root/
du -sh 目录 #加s只查看目录本身大小
[root@localhost ~]# du -sh /root/
56K /root/
du -sb 文件 #s再加上b就可准确查看文件大小
[root@localhost ~]# du -sb 1.txt
2 1.txt
ls与du查看文件大小的区别
[root@localhost ~]# ll 1.txt
-rw-r--r--. 1 root root 2 7月 30 19:37 1.txt
[root@localhost ~]# du 1.txt
4 1.txt
#通过ls知道1.txt大小为2k,但是du出来的却是4k,因为磁盘划分为无数小块,一块最小为4k;一个块只有一个文件,不能有多个块占用一个文件
4.3/4.4/4.5 磁盘分区
先给虚拟机增加一块磁盘
鼠标移动到客户机名称-->右键-->设置-->点击添加-->选择硬盘,下一步-->下一步-->下一步-->输入磁盘大小,下一步-->选择文件存放路径,完成点-->按右下角的确定按钮-->reboot,重启客户机
fdisk -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
磁盘标识符:0x000c7e5e
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 411647 204800 83 Linux
/dev/sda2 411648 4605951 2097152 82 Linux swap / Solaris
/dev/sda3 4605952 62914559 29154304 83 Linux
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
fdisk 磁盘名字(例、/dev/sdb) #划磁盘分区
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xaf27348a 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):
n #增加一个新的分区
p #列出分区
w #保存分区(增加完要记得保存)
d #删除分区
#小技巧:输入错误时删除可按ctrl+退格键删除字符
#分区类型:p 主分区 #一个磁盘最多划分4个主分区
e 扩展分区(包含逻辑分区)
#一个磁盘要想划分更多主分区,可以先划分3个主分区,然后划分一个扩展分区,接下来就可以在扩展分区里面划分主分区。
#逻辑分区区号从5 开始(区号是连续的),1~4是留给主分区和扩展分区的
#安装系统的时候,引导分区必须是要在主分区上
#分区输入大小输错可以使用ctrl+退格键删除字符
#fdisk划分分区最高划分2个T内存
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x5c34aa23
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 8390655 2097152 83 Linux
/dev/sdb3 8390656 12584959 2097152 83 Linux
/dev/sdb4 12584960 18876415 3145728 5 Extended
4.6/4.7 磁盘格式化
#xfs 是CentOS7默认的文件系统格式
/etc/filesystems #该文件存储CentOS7系统支持的文件系统格式
[root@localhost ~]# cat /etc/filesystems
xfs
ext4
ext3
ext2
nodev proc
nodev devpts
iso9660
vfat
hfs
hfsplus
*
[root@localhost ~]#
mount #查看文件分区系统的格式
2、mke2fs #格式化分区
-t #指定文件系统
[root@localhost ~]# mke2fs -t xfs /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
Your mke2fs.conf file does not define the xfs filesystem type.
#mke2fs不支持xfs格式
#默认块大小..预留空间...块对应inode数
[root@localhost ~]# 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, 294912
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
-b #指定块大小
-m #指定分区预留空间大小(默认5%预留空间)
-i #指定多少字节对应一个inode
#默认是1个inode对应4个块,一个块为4k
#当磁盘使用场景为很多小文件(小于4k)时,把块设置1k或者2k是能提升空间利用率的。
[root@localhost ~]# mke2fs -t ext4 -b 8192 -m 0.1 -i 8192 /dev/sdb1
Warning: blocksize 8192 not usable on most systems.
mke2fs 1.42.9 (28-Dec-2013)
mke2fs: 8192-byte blocks too big for system (max 4096)
无论如何也要继续? (y,n) y
Warning: 8192-byte blocks too big for system (max 4096), forced to continue
warning: 32 blocks unused.
文件系统标签=
OS type: Linux
块大小=8192 (log=3)
分块大小=8192 (log=3)
Stride=0 blocks, Stripe width=0 blocks
262016 inodes, 262112 blocks
261 blocks (0.10%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=268402688
4 block groups
65528 blocks per group, 65528 fragments per group
65504 inodes per group
Superblock backups stored on blocks:
65528, 196584
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
blkid 分区 #查看分区的UUID,文件系统类型
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="32be2d7f-2f2a-47a4-ab1b-b72e9545df3d" TYPE="ext4"
3、mkfs
mkfs.ext4(等于mke2fs -t ext4)
mkfs.xfs 分区名 #可以格式化xfs (如果该分区已有格式,加-f可强制改格式)
#xfs格式只支持mkfs命令,其它格式都支持mkfs、mke2fs。
[root@localhost ~]# 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@localhost ~]# 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
让inode数变多办法
1、把块格式化时规定小一点
2、把inode设置的大一点
4.8磁盘挂载
磁盘挂载(另外一种分区方法) #挂载前提,必须经过格式化
[root@localhost ~]# mkfs.xfs -f /dev/sdb
meta-data=/dev/sdb isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621440, 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@localhost ~]# blkid /dev/sdb
/dev/sdb: UUID="159f5b77-5c0d-4a70-9d33-db026dbd0b47" TYPE="xfs"
1、临时挂载
mount 分区号 挂载点(目录) #挂载
[root@localhost ~]# mount /dev/sdb /mnt/
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 1.2G 27G 5% /
devtmpfs 477M 0 477M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 197M 129M 68M 66% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sdb 10G 33M 10G 1% /mnt
mount -o 权限 挂载点 (未挂载) #权限如下(设置挂载目录权限)
mount -o remount,权限 挂载点 (重新挂载)
#defaults(默认rw(可读可写),suid,dev(不用管),exec(执行),auto(自动挂载),nouser(普通用户不可挂载),async (不会实时同步))
----------权限前面加no就是否
[root@localhost ~]# mount -o ro /dev/sdb
mount: /dev/sdb 已经挂载或 /mnt 忙
/dev/sdb 已经挂载到 /mnt 上
[root@localhost ~]# mount -o remount,ro /dev/sdb
umount 分区号 /挂载点 #卸载分区号或者挂载目录都能卸载挂载点
[root@localhost mnt]# umount /dev/sdb
umount: /mnt:目标忙。
(有些情况下通过 lsof(8) 或 fuser(1) 可以
找到有关使用该设备的进程的有用信息)
[root@localhost mnt]# cd
[root@localhost ~]# umount /dev/sdb
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 1.2G 27G 5% /
devtmpfs 477M 0 477M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 197M 129M 68M 66% /boot
tmpfs 98M 0 98M 0% /run/user/0
umount -l 分区号 /挂载点
#加l,即使你当前目录在挂载点,也能卸载挂载点
[root@localhost ~]# mount /dev/sdb /mnt
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 1.2G 27G 5% /
devtmpfs 477M 0 477M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 197M 129M 68M 66% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sdb 10G 33M 10G 1% /mnt
[root@localhost ~]# cd /mnt
[root@localhost mnt]# umount -l /dev/sdb
[root@localhost mnt]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 1.2G 27G 5% /
devtmpfs 477M 0 477M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 197M 129M 68M 66% /boot
tmpfs 98M 0 98M 0% /run/user/0
2、永久挂载
/etc/fstab #挂载配置文件
/dev/sdb1 或者UUID /mnt xfs deaults 0 0
/etc/fstab里面每列大概意思为:
第一列:块设备
第二列:挂载点
第三列:文件类型
第四列:挂载选项(默认defaults,它代表包含了选项rw,suid,dev,exec,auto,nouser和 async)
第五列:是否备份,0不备份,1每天备份,2不定期备份
第六列:检验扇区 ,0不检验,1最先检验,21检验完后在检验
开机自动挂载的两种方式
1./etc/fstab #添加挂载点
2./etc/rc.d/rc.local #使用命令
把mount 的命令放到/etc/rc.d/rc.local 里面去即可;
例:vi /etc/rc.d/rc.local
然后把 mount -t nfs /dev/sdb 这个命令写进去。保存退出就好了。
4.9 手动增加swap空间
1.模拟一个磁盘
dd if=/dev/zero of=/tmp/newdisk bs=1M count=100
[root@localhost ~]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=100
记录了100+0 的读入
记录了100+0 的写出
104857600字节(105 MB)已复制,2.33579 秒,44.9 MB/秒
#/tmp/newdisk是自创分区的文件 (最好放到 / 目录下,这样开机不会消失)
#dd(操作磁盘读写) 、if(指定从哪里去读)、/dev/zero(Linux内核里面的造零器,产生源源不断的0)、of(指定这些0写到哪里去)、bs(指定块大小)
#bs乘以count=newdisk的大小
2.格式化swap文件系统
mkswap -f /tmp/newdisk #格式化swap
[root@localhost ~]# mkswap -f /tmp/newdisk
正在设置交换空间版本 1,大小 = 102396 KiB
无标签,UUID=cbecfab0-a8ed-48ef-af02-8ded19b6d11a
3.swapon /tmp/newdisk # 加载到现在的swap
[root@localhost ~]# swapon /tmp/newdisk
swapon: /tmp/newdisk:不安全的权限 0644,建议使用 0600。
[root@localhost ~]# chmod 600 /tmp/newdisk
free -m #查看swap空间
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 974 125 591 7 257 672
Swap: 2147 0 2147
swapoff /tmp/newdisk #删除挂载的虚拟磁盘
rm -f /tmp/newdisk #删除文件
[root@localhost ~]# swapoff /tmp/newdisk
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 974 124 591 7 257 672
Swap: 2047 0 2047
[root@localhost ~]# rm -f /tmp/newdisk
4.10/4.11/4.12 lvm讲解
关于LVM的创建、扩容、缩减用法
例:
1、创建LVM步骤
一、准备磁盘分区
fdisk /dev/sdb
1、共创建三个分区,分别为+1G
2、按t 更改分区类型,输入“8e”,则变为LVM类型
3、w保存退出
#有时候创建完分区之后系统不会创建分区的目录,这时候需要运行partprobe,就会创建目录了
二、准备物理卷
将三个分区创建物理卷
yum provides “/*/pvcreate” #找出pvcreate命令的安装包名称
pvcreate 分区号
[root@localhost ~]# pvcreate /dev/sdb1
WARNING: xfs signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n]: y
Wiping xfs signature on /dev/sdb1.
Physical volume "/dev/sdb1" successfully created.
[root@localhost ~]# pvcreate /dev/sdb2
WARNING: xfs signature detected on /dev/sdb2 at offset 0. Wipe it? [y/n]: y
Wiping xfs signature on /dev/sdb2.
WARNING: xfs_external_log signature detected on /dev/sdb2 at offset 16384. Wipe it? [y/n]: y
Wiping xfs_external_log signature on /dev/sdb2.
Physical volume "/dev/sdb2" successfully created.
[root@localhost ~]# pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created.
pvdisplay #列出物理卷信息
root@localhost ~]# pvdisplay
"/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 UCuV0Y-QQGz-clpu-PKfO-Ygr1-8xEB-UCiP84
"/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 BkdJ2C-ShQh-A9OB-fwG5-nAqK-ZCdR-hMe8nx
"/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 0gr82T-bSAw-BgyH-6ZPx-Wof4-DyXq-PeqCYY
pvs #更直观,查看当前物理卷
root@localhost ~]# 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 分区号 #删除物理卷
三、创建卷
vgcreate 卷组名 物理卷1 物理卷2
root@localhost ~]# vgcreate vg1 /dev/sdb1 /dev/sdb2
Volume group "vg1" successfully created
vgdisplay #列出卷组信息
root@localhost ~]# vgdisplay vg1
--- 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 dRi8R2-svVP-AsrR-tyq3-5ya8-HNs9-He6C0d
vgs #查看卷组
root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 2 0 0 wz--n- 1.99g 1.99g
vgremove #删除卷组
四、创建逻辑卷
lvcreate -L 100M -n lv1 vg1(卷组)
#划分创建逻辑卷lv1, -L为大小 , -n为名字,
root@localhost ~]# lvcreate -L 300M -n lv1 vg1
Logical volume "lv1" created.
lvdisplay #列出逻辑卷信息
lvs #查看逻辑卷
mkfs.ext4 /dev/vg1/lv1 #格式化lv1为ext4格式
mount /dev/vg1/lv1 /mnt #挂载到/mnt下
root@localhost ~]# mount /dev/vg1/lv1 /mnt
[root@localhost ~]#
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 1.3G 27G 5% /
devtmpfs 477M 0 477M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 197M 129M 68M 66% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/vg1-lv1 283M 2.1M 262M 1% /mnt
2、扩容逻辑卷
##扩容前必须要先umount
xfs只支持扩容操作,不支持缩小
ext2、ext3、ext4支持扩容、缩小
先umont掉挂载点,然后再重新设置卷大小,检查磁盘错误,更新逻辑卷信息
一、ext4格式
lvresize -L 300M /dev/vg1/lv1 #重新设置卷大小
[root@localhost ~]# 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.
e2fsck -f /dev/vg1/lv1 #检查磁盘错误
[root@localhost mnt]# e2fsck -f /dev/vg1/lv1
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/vg1/lv1: 11/76912 files (0.0% non-contiguous), 19977/307200 blocks
resize2fs /dev/vg1/lv1 #更新逻辑卷信息
[root@localhost mnt]# resize2fs /dev/vg1/lv1
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg1/lv1 to 307200 (1k) blocks.
The filesystem on /dev/vg1/lv1 is now 307200 blocks long.
mount /dev/vg1/lv1 /mnt #重新挂载逻辑卷
[root@localhost mnt]# mount /dev/vg1/lv1 /mnt
[root@localhost mnt]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 1.3G 27G 5% /
devtmpfs 477M 0 477M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 197M 129M 68M 66% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/vg1-lv1 283M 2.1M 262M 1% /mnt
二、xfs格式
不用卸载挂载点,重新设置卷大小,但是要执行xfs_growfs命令才生效
lvresize -L 300M /dev/vg1/lv1 #设置卷大小
[root@localhost ~]# umount /mnt
[root@localhost ~]# 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@localhost ~]# 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.
mount /dev/vg1/lv1 /mnt #挂载逻辑卷
[root@localhost ~]# !mount
mount /dev/vg1/lv1 /mnt
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 1.3G 27G 5% /
devtmpfs 477M 0 477M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 197M 129M 68M 66% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/vg1-lv1 97M 5.2M 92M 6% /mnt
xfs_growfs /dev/vg1/lv1 #xfs格式更新逻辑卷信息(必须将逻辑卷挂载才能成功)
[root@localhost ~]# 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@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 1.3G 27G 5% /
devtmpfs 477M 0 477M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 197M 129M 68M 66% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/vg1-lv1 297M 5.5M 292M 2% /mnt
3、缩减逻辑卷(xfs不支持)
先umount掉挂载点,检查磁盘错误,更新逻辑卷信息,重新设置卷大小
e2fsck -f /dev/vg1/lv1 #检查磁盘错误(ext4)
[root@localhost ~]# umount /dev/vg1/lv1
[root@localhost ~]# e2fsck -f /deev/vg1/lv1
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/vg1/lv1: 11/76912 files (0.0% non-contiguous), 19977/307200 blocks
resize2fs /dev/vg1/lv1 100M #更新逻辑卷信息(ext4)
[root@localhost ~]# resize2fs !$ 100M
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.
lvresize -L 100M /dev/vg1/lv1 #重新设置卷大小
[root@localhost ~]# 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 300.00 MiB (75 extents) to 100.00 MiB (25 extents).
Logical volume vg1/lv1 successfully resized.
lvs #查看逻辑卷大小
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-a----- 100.00m
mount /dev/vg1/lv1 /mnt #挂载
[root@localhost ~]# mount /dev/vg1/lv1 /mnt
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 1.3G 27G 5% /
devtmpfs 477M 0 477M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 197M 129M 68M 66% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/vg1-lv1 93M 1.6M 85M 2% /mnt
4、扩展卷组
当逻辑卷满时,先新增分区,然后创建物理卷,再先扩容卷组,最后扩容逻辑卷就可以了
fdisk /dev/sdb
vgextend vg1 /dev/sdb3 #扩展卷组,将sdb3加入到vg1
[root@localhost ~]# vgextend vg1 /dev/sdb3
Volume group "vg1" successfully extended
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 3 1 0 wz--n- <2.99g <2.70g
lvresize -L 100M /dev/vg1/lv1
#重新设置逻辑卷大小(大小<=卷组)
小技巧
yum provides “/*/命令”
#当你不知道该命令的安装包名字,可以通过这条命令查看命令的安装包
4.13 磁盘故障小案例
想用永久挂载,在/etc/fstab/写了一行,然后重启发现进入不了系统,
一般是因为磁盘挂载出现问题,不能正常挂载到挂载点
先输入root密码,进入一个界面,vi /etc/fstab,将之前挂载的那一行删掉,保存退出,然后reboot
4.14扩展:MBR、GPT
1、存储类型:
DAS、NAS、SAN三种普通存储的区别 (面试中常考的) (iscsi协议不用掌握)
DAS(直连式存储):
通过iscsi协议,中间什么都不需要经过,用网线直连到物理服务器(直连)
#比方一个移动硬盘直接插到电脑上,这叫DAS
NAS(网络附加存储):
通过iscsi协议,通过走网络交换机,然后挂载到物理服务器
#类似百度云、各种网盘,称为NAS共享
SAN(存储区域网络):
通过fc协议,通过走光纤交换机,直接挂载到物理服务器
#比方一个移动硬盘通过中间设备连接到电脑上,这叫SAN
NAS、DAS、SAN最根本区别是:
NAS上面有文件系统;DAS、SAN 没有文件系统
2、分区概念
2.1 将一个磁盘逻辑的分为几个区,每个区当做独立磁盘,以方便使用和管理
不同分区的名称一般为:设备名称+分区号
例如:第一块硬盘的第一个分区叫sda1,第一块硬盘的第二个分区sda2
第二块硬盘的第一个分区叫sdb1,第二块硬盘的第二个分区叫sdb2
*分区并不是硬盘的物理功能,而是软件功能
*主流的分区机制分为MBR和GPT两种
MBR是PC架构计算机中使用的最为广泛的分区机制
3、MBR
3.1 MBR(Master Boot Record)是传统的分区机制,应用于绝大多数使用BIOS引导的PC设备(苹果使用EFI的方式);很多Server服务器即支持BIOS也支持EFI的引导方式
#早期的Linux系统采用MBR的方式来处理开机引导程序和分区表,这些通常放在磁盘的第一个扇区(512字节)中,但是MBR分区只能抓取2TB的容量等等的限制
3.2 MBR的特点
3.2.1优点:MBR支持32bit和64bit系统;
3.2.2缺点:
1) MBR支持的分区数量有限制;
2)MBR只支持不超过2TB的硬盘,超过2TB的硬盘只能使用2TB的空间(但是有第三方解决方法),应为MBR的寻址空间只有32bit长;
3.3 MBR结构:占用硬盘最开头的512字节
前446字节为:引导代码(Bootstrap Code Area)(引导不同的操作系统;不同操作系统,引导代码是不一样的)
接下来的为4个16字节:分别对应4个主分区表信息(Primary Partition Table)
最后2个字节:为启动标示(Boot Signature),永远都是55和AA;55和AA是个永久性的标示,代表这个硬盘是可启动的。
4、MBR分区
MBR分区分为:主分区、扩展分区、逻辑分区
4.1 主分区:一块硬盘最多只能创建4个主分区(因为在MBR分区表结构中中最多可以创建4个主分区表信息,也就是4个16字节的空间,如上图)
4.2 扩展分区:一个扩展分区会占用一个主分区的位置
4.3 逻辑分区:
-
是基于扩展分区创建出来的,先有扩展分区,然后在扩展分区的基础上再创建逻辑分区;也就是说我们要使用逻辑分区,必须先要创建扩展分区;
-
扩展分区的空间是不能被直接使用的,我们必须在扩展分区的基础上去建立逻辑分区,才能够被使用;
-
Linux最多支持63个IDE分区和15个SCSI分区
5、GPT
GPT(GUID Partition Table):是一个较新的分区机制,解决了MBR的很多缺点
-
支持超过2TB的磁盘:GPT有64bit寻址空间;而MBR对硬盘空间地址寻址最多只支持32bit,2的32次方,硬盘空间是以地址方式来被识别的,所以MBR只支持容量为2TB以内的磁盘
-
向后兼容MBR
-
但是底层硬件必须支持UEFI(Intel提出的取代BIOS的新一代的引导系统)才能使用,也就是底层硬件必须使用UEFI
-
必须使用64位操作系统
-
Mac、LInux系统都能支持GPT分区格式
-
Windows 7 64bit、Windows Server2008 64bit支持GPT