第四章.磁盘管理

四章.磁盘管理

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.15课堂笔记

 

4.1 df命令

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都是临时文件系统,在对应的挂载点写文件后重启系统会消失
 
    -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
 

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 
ps:第六列为开机是否自检,0表示不检测,1,2表示检测,1比2优先级高
 

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 ~]# 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、扩容逻辑卷
先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扩展学习 parted分区gpt格式 

扩展学习 parted分区gpt格式 
 
#fdisk分区工具 最多分4个主分区,磁盘大小不能超过2T
#parted分区GPT格式没有主分区、扩展分区、逻辑分区之分,在一块磁盘上最多可以分128个分区出来,支持大于2T的分区,最大卷可达18EB
 
parted 工具常用功能:
当在命令行输入parted后,进入parted命令的交互模式。输入help会显示帮助信息。下面就简单介绍一下常用的功能
  1. check 简单检查文件系统。建议用其他命令检查文件系统,比如fsck
  2. help 显示帮助信息
  3. mklabel 创建分区表, 即是使用msdos(MBR)还是使用gpt,或者是其他方式分区表
  4.  mkfs 创建文件系统。该命令不支持ext3 格式,因此建议不使用,最好是用parted分好区,然后退出parted交互模式,用其他命令进行分区,比如:mkfs.ext3
  5. mkpart 创建新分区。
格式:mkpart PART-TYPE  [FS-TYPE]  START  END
        PART-TYPE 类型主要有primary(主分区), extended(扩展            分区), logical(逻辑区). 扩展分区和逻辑分区只对msdos。
        fs-type   文件系统类型,主要有fs32,NTFS,ext2,ext3等
        start end 分区的起始和结束位置。
    6、mkpartfs 建立分区及其文件系统。目前还不支持ext3文件系统,因此不建议使用该功能。最好是分好区后,退出parted,然后用其他命令建立文件系统。
    7、print 输出分区信息。该功能有3个选项,
        -free 显示该盘的所有信息,并显示磁盘剩余空间
        -number 显示指定的分区的信息
        -all 显示所有磁盘信息
    8、resize 调整指定的分区的大小。目前对ext3格式支持不是很好,所    以不建议使用该功能。
     9、rescue 恢复不小心删除的分区。如果不小心用parted的rm命令删除了一个分区,那么可以通过rescue功能进行恢复。恢复时需要给出分区的起始和结束的位置。然后parted就会在给定的范围内去寻找,并提示恢复分区。
    10、rm 删除分区。命令格式 rm  number 。如:rm 3 就是将编号为3的分区删除
    11、select 选择设备。当输入parted命令后直接回车进入交互模式是,如果有多块硬盘,需要用select 选择要操作的硬盘。如:select /dev/sdb
    12、set 设置标记。更改指定分区编号的标志。标志通常有如下几种:boot  hidden   raid   lvm 等。
boot 为引导分区,hidden 为隐藏分区,raid 软raid,lvm 为逻辑分区。
如:set 3  boot  on   设置分区号3 为启动分区
注:以上内容为parted常用的功能,由于该工具目前对ext3支持得不是很好,因此有些功能无法应用,比如move(移动分区)和resize等。
parted分区功能示例:
    1、用命令模式 为/dev/sdb创建gpt类型文件分区表,并分500G分区。然后为该分区创建ext3文件系统。并将该分区挂载在/test文件夹下。
#  parted  /dev/sdb  mklabel    gpt    //创建分区表
#  parted  /dev/sdb  mkpart  ext3  0  500000   //创建500G分区/dev/sdb1
# mkfs.ext3  /dev/sdb1      //将分区/dev/sdb1格式化成ext3格式文件系统
# mount  /dev/sdb1 /test   //将/dev/sdb1 挂载在/test下
如果让系统自动挂载/dev/sdb1 需手工编辑/etc/fstab文件。并在文件末尾添加如下内容:
/dev/sdb1             /test                ext3    defaults        0 0
    2、创建大小为4G的交互分区。由于已经创建了500G的/dev/sdb1 ,因此再创建的分区为/dev/sdb2
# parted /dev/sdb mkpart swap 500000 504000  //创建4G分区/dev/sdb2
# mkswap  /dev/sdb2    //将/dev/sdb2创建为交换分区
# swapon /dev/sdb2    //激活/dev/sdb2
如果让系统自动挂载/dev/sdb2这个交换分区,需手工编辑/etc/fstab文件。并在文件末尾添加如下内容:
/dev/sdb2             swap                swap    defaults        0 0
    3、恢复被误删除的分区(也可以参考testdisk命令)。由于parted直接写磁盘,因此一旦不小心删除了某一分区,建议立即用rescue恢复。下面通过事例来理解恢复过程。
# parted /dev/sdb mkpart ext3 504000 514000   //创建10G分区/dev/sdb3
# mkfs.ext3 /dev/sdb3    //将/dev/sdb3格式化成ext3文件系统。
# parted /dev/sdb rm 3    //删除/dev/sdb3
# parted /dev/sdb rescue 504000 514000     //依照屏幕提示,输入yes即可恢复被误删除分区
 

 4.15课堂笔记 

一、3.7 su命令

#普通用户显示为$符号,root用户显示为#符号。    

 

echo  $?       #检查上条命令的执行结果是否成功   (常用于脚本)   
# 输出为0表示执行成功
 
 
二、3.8 sudo命令
 
visudo所在位置:/etc/sudoers.tmp
 
sudo免密登录在visudo内加入NOPASSWD:           (冒号后面要加空格)
 
 
 
三、3.9 限制root远程登录
 
一个防止root远程登录软件,别人猜密码时,在猜错3次后,这个连接的IP断30分钟(时间可以自定议)
安装fail2ban前需要安装epel-release扩展源
yum install  -y epel-release
 
yum install -y fail2ban
 
#fail2ban的主配置文件:/etc/fail2ban/jail.conf  
防猜sshd登录密码,只改这里就可以了。注意,前面不能有空格。
 
 
四、磁盘管理
 
4.3/4.4 磁盘分区
 
查看分区情况
1)df -h
2)lsblk           
3)fdisk  -l
 
4.5/4.6 磁盘格式化
 
查看系统支持的文件格式
/etc/filesystems
 
让inode数变多办法
1、把块格式化时规定小一点
2、把inode设置的大一点
 
 
五、扩展1:MBR、GPT 
  
    1、存储类型:
 
 
DAS、NAS、SAN三种普通存储的区别      (面试中常考的)   (iscsi协议不用掌握)
DAS(直连式存储):
通过iscsi协议,中间什么都不需要经过,用网线直连到物理服务器(直连)
#比方一个移动硬盘直接插到电脑上,这叫DAS
 
NAS(网络附加存储):
通过iscsi协议,通过走网络交换机,然后挂载到物理服务器          
#类似百度云、各种网盘,称为NAS共享
 
SAN(存储区域网络):
通过fc协议,通过走光纤交换机,直接挂载到物理服务器
#比方一个移动硬盘通过中间设备连接到电脑上,这叫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 逻辑分区:
  1. 是基于扩展分区创建出来的,先有扩展分区,然后在扩展分区的基础上再创建逻辑分区;也就是说我们要使用逻辑分区,必须先要创建扩展分区;
  2. 扩展分区的空间是不能被直接使用的,我们必须在扩展分区的基础上去建立逻辑分区,才能够被使用;
  3. Linux最多支持63个IDE分区和15个SCSI分区
    5、GPT
GPT(GUID Partition Table):是一个较新的分区机制,解决了MBR的很多缺点
  1. 支持超过2TB的磁盘:GPT有64bit寻址空间;而MBR对硬盘空间地址寻址最多只支持32bit,2的32次方,硬盘空间是以地址方式来被识别的,所以MBR只支持容量为2TB以内的磁盘
  2. 向后兼容MBR
  3. 但是底层硬件必须支持UEFI(Intel提出的取代BIOS的新一代的引导系统)才能使用,也就是底层硬件必须使用UEFI
  4. 必须使用64位操作系统
  5. Mac、LInux系统都能支持GPT分区格式
  6. Windows 7 64bit、Windows Server2008 64bit支持GPT
第六次课堂笔记 2018-8-4
 
一、3.7 su命令
 
#普通用户显示为$符号,root用户显示为#符号。    
 
echo  $?       #检查上条命令的执行结果是否成功   (常用于脚本)   
# 输出为0表示执行成功
 
 
二、3.8 sudo命令
 
visudo所在位置:/etc/sudoers.tmp
 
sudo免密登录在visudo内加入NOPASSWD:           (冒号后面要加空格)
 
 
三、3.9 限制root远程登录
 
一个防止root远程登录软件,别人猜密码时,在猜错3次后,这个连接的IP断30分钟(时间可以自定议)
安装fail2ban前需要安装epel-release扩展源
yum install  -y epel-release
 
yum install -y fail2ban
 
#fail2ban的主配置文件:/etc/fail2ban/jail.conf  
防猜sshd登录密码,只改这里就可以了。注意,前面不能有空格。
 
 
四、磁盘管理
 
4.3/4.4 磁盘分区
 
查看分区情况
1)df -h
2)lsblk           
3)fdisk  -l
 
4.5/4.6 磁盘格式化
 
查看系统支持的文件格式
/etc/filesystems
 
让inode数变多办法
1、把块格式化时规定小一点
2、把inode设置的大一点
 
 
五、扩展1:MBR、GPT 
  
    1、存储类型:
DAS、NAS、SAN三种普通存储的区别      (面试中常考的)   (iscsi协议不用掌握)
DAS(直连式存储):
通过iscsi协议,中间什么都不需要经过,用网线直连到物理服务器(直连)
#比方一个移动硬盘直接插到电脑上,这叫DAS
 
NAS(网络附加存储):
通过iscsi协议,通过走网络交换机,然后挂载到物理服务器          
#类似百度云、各种网盘,称为NAS共享
 
SAN(存储区域网络):
通过fc协议,通过走光纤交换机,直接挂载到物理服务器
#比方一个移动硬盘通过中间设备连接到电脑上,这叫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 逻辑分区:
  1. 是基于扩展分区创建出来的,先有扩展分区,然后在扩展分区的基础上再创建逻辑分区;也就是说我们要使用逻辑分区,必须先要创建扩展分区;
  2. 扩展分区的空间是不能被直接使用的,我们必须在扩展分区的基础上去建立逻辑分区,才能够被使用;
  3. Linux最多支持63个IDE分区和15个SCSI分区
 
    5、GPT
GPT(GUID Partition Table):是一个较新的分区机制,解决了MBR的很多缺点
  1. 支持超过2TB的磁盘:GPT有64bit寻址空间;而MBR对硬盘空间地址寻址最多只支持32bit,2的32次方,硬盘空间是以地址方式来被识别的,所以MBR只支持容量为2TB以内的磁盘
  2. 向后兼容MBR
  3. 但是底层硬件必须支持UEFI(Intel提出的取代BIOS的新一代的引导系统)才能使用,也就是底层硬件必须使用UEFI
  4. 必须使用64位操作系统
  5. Mac、LInux系统都能支持GPT分区格式
  6. Windows 7 64bit、Windows Server2008 64bit支持GPT
  7.  

posted @ 2018-08-05 16:02  最爱吃菜  阅读(652)  评论(0编辑  收藏  举报