磁盘分区管理

1.磁盘的信息介绍

/dev/xdx   /dec/hd0                       #IDE设备  并口 老式硬盘
/dev/cdrom     /dev/sr0                 #光驱
/dev/mapper/  用软件虚拟出来的虚拟

fdisk -l                                            #真实存在的设备

cat /proc/partitions                       #系统能识别的
blkid                                               #系统可以用的

df -h                                               #系统正在用的(1M=1024K)(比较准确 ) 

df -H                                             #系统正在用的(1M=1000K)

可看到的设备数量df <= blkid <= cat /proc/artitions <= fdisk -l

2.挂载与卸载

1)mount          要挂载的设备    挂载点       #挂载

2)umount         要卸载的设备                      #卸载

操作过程:

插入u盘

df -h

磁盘分区管理

umount /dev/sdb1               #卸载u盘

df -h

磁盘分区管理

mount /dev/sdb1 /mnt          #u盘挂载到/mnt
cd /mnt

ls               

磁盘分区管理

再打开一个shell

umount /mnt                         #卸载    ------->结果:正在运行不能卸载

磁盘分区管理

fuser -kvm /dev/sdb1     

磁盘分区管理

磁盘分区管理

3)mount -o ro 要挂载的设备  挂载点         #只读挂载

mount -o ro    /dev/sdb1     /mnt 

磁盘分区管理

4)mount -o remount,rw   要挂载的设备    #改为读写挂载

mount -o remount,rw   /dev/sdb1

磁盘分区管理

3.系统分区

1)执行fdisk /dev/vdb 

Command (m for help): n                                                                                                      #新建分区
Partition type:         
   p   primary (0 primary, 0 extended, 4 free)                                                                       #主分区
   e   extended                                                                                                                         #扩展分区
Select (default p): p                                                                                                                #选择主分区
Partition number (1-4, default 1): 1                                                                                       #输入分区编号(1-4)
First sector (2048-20971519, default 2048):                                                                      #默认
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +100M   #输入分区大小
Partition 1 of type Linux and of size 100 MiB is set                                                           #分区已经建立

磁盘分区管理

磁盘分区管理

按照上面把剩下三个分区都建成主分区,则不能再创建第五个分区

磁盘分区管理

删掉第四个主分区,建为扩展分区

磁盘分区管理

有一个为扩展分区,则可以再建立第五个分区,默认为逻辑分区

磁盘分区管理

按p查看分区

磁盘分区管理

wq退出保存

磁盘分区管理

按m查看所有指令
   a   #切换一个可启动的标志
   b   #编辑bsd磁碟标签
   c   #切换dos兼容性标志。
   d   #删除一个分区
   g   #创建一个新的空GPT分区表。
   G   #创建一个IRIX (SGI)分区表。
   l     #已知的分区类型列表
   m   #打印这个菜单
   n   #添加一个新的分区
   o   #创建一个新的空DOS分区表。
   p   #打印分区表
   q   #退出而不保存更改打印。
   s   #创建一个新的空的Sun disklabel。
   t   #更改分区的系统id。
   u   #改变显示/输入单元
   v   #验证分区表
   w   #将表写到磁盘并退出。
   x   #额外的功能(专家)

2)partprobe  #同步分区

3)cat /proc/partitions    #查看系统可识别的设备,可以看见新建的分区

磁盘分区管理

4.格式化分区

mkfs.xfs   设备名           #格式化

如:

mkfs.xfs /dev/vdb5  

mkfs.xfs /dev/vdb3
mkfs.xfs /dev/vdb2

mkfs.xfs /dev/vdb1

blkid

磁盘分区管理

mount /dev/vdb1 /mnt           #挂载

df                                            #查看/dev/vdb1已经挂载

磁盘分区管理

5.更改分区类型
删除所有分区后执行
1)执行parted /dev/vdb 
(parted)  mklabel                                                                #更改分区类型                                                   

New disk label type?                                                          #按两次tab键查看有哪些类型

aix    amiga  bsd    dvh    gpt    loop   mac    msdos  pc98   sun    
New disk label type? gpt                                                  #输入新的类型
Warning: The existing disk label on /dev/vdb will be destroyed and all data on this
disk will be lost. Do you want to continue?
Yes/No? yes                                                                      #输入yes                                                         
(parted) quit                                                                      #退出                                                         
Information: You may need to update /etc/fstab.
磁盘分区管理

fdisk -l   #查看

 磁盘分区管理                                   

Disk label type: gpt                                                                    #类型为gpt

2)执行fdisk /dev/vdb进入磁盘进行新建分区,可新建128个主分区

磁盘分区管理

3)mkfs.xfs /dev/vdb1 -f   #格式化过一次,需要加-f强行格式化

磁盘分区管理

4)mount /dev/vdb1 /mnt        #挂载

磁盘分区管理

6.自动挂载

1)vim /etc/fstab         #编写脚本

磁盘分区管理

/dev/vdb1    /mnt        xf          defaults          0        0
设备         挂载点    类型     挂载参数   不备份  不检测
2)mount  -a                #自动挂载

磁盘分区管理

7.更改分区系统的id
 1)fdisk /dev/vdb
Command (m for help): t                                       #改id
Partition number (1,2, default 2):                      #被改的分区号
Hex code (type L to list all codes): 82                  #要改的id的代码

磁盘分区管理

磁盘分区管理

2)partprobe 

3)mkswap /dev/vdb2
      swapon -a /dev/vdb2
      swapon -s

磁盘分区管理

4)vim /etc/fstab

磁盘分区管理

5)swapon -a

8.删除分区

1)vim /etc/fstab

磁盘分区管理

删掉/dev/vdb2    swap     swap   defaults  0 0
2) swapoff /dev/vdb2
3) fdisk /dev/vdb

       Command (m for help): d
       Partition number (1,2, default 2): 2

4)partprobe
磁盘分区管理

8.luks加密

先新建一个分区,手动同步

1)cryptsetup luksFormat /dev/vdb1                       #加密

磁盘分区管理

   Are you sure? (Type uppercase yes): YES                  #大写
   Enter passphrase:                                                           #输入密码
Verify passphrase:                                                              #再次输入

2)mount /dev/vdb1 /mnt/                                             #挂载

磁盘分区管理

mount: unknown filesystem type 'crypto_LUKS'                #是一个luks文件不能挂载
3)ls /dev/mapper/                      
      cryptsetup open /dev/vdb1 kyj
                                 #解密
      Enter passphrase for /dev/vdb1:                                   #输入密码

     ls /dev/mapper/

磁盘分区管理

4)mkfs.xfs /dev/mapper/kjy                                         #格式化

磁盘分区管理

5) mount /dev/mapper/kyj /mnt                                     #挂载

磁盘分区管理

6)umount /mnt/                                                                   #卸载

      df

磁盘分区管理

7)ls /mnt/

       cryptsetup close kjy                                                         #关闭映射     

       ls /dev/mapper/

磁盘分区管理

8)mount /dev/mapper/kyj /mnt                                               #挂载

磁盘分区管理

mount: special device /dev/mapper/kyj does not exist              #文件不存在

9.开机自动挂载
1)vim /root/diskpass

把密码写入文件中

磁盘分区管理

2)chmod 600 /root/diskpass                                               #改权限
      cryptsetup luksAddKey /dev/vdb1 /root/diskpass    #加钥匙

       Enter any passphrase:                                                         #输入密码

磁盘分区管理

3)vim /etc/crypttab            

磁盘分区管理 

4)vim /etc/fstab

磁盘分区管理
磁盘分区管理

5)reboot                                                                             #重启

重启之前要保证以上脚本内容编辑正确,且映射文件存在,可以先执行mount -a再用df查看一下有没有挂载上,如果没有,说明以上操作有问题,及时检查更改

6)df                                                                                  #查看

磁盘分区管理

最后一行/dev/mapper/kjy   1018540   32928    985612   4% /mnt        #已挂载

10.删除分区

1)vim /etc/fstab

删除里面的内容

磁盘分区管理

2)vim /etc/crypttab 

删除里面的内容

磁盘分区管理

3)rm -fr /root/diskpass        #删除

4)umount /mnt                     #卸载
5)cryptsetup close kjy       #关闭映射

6)mkfs.xfs /dev/vdb1 -f      #格式化

磁盘分区管理

11.raid磁盘阵列
1)新建3个分区,系统id改为fd

      手动同步

磁盘分区管理

2)mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{1..3}         #-C创建 ,-l级别,-a自动创建
     mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata

mdadm: array /dev/md0 started.

磁盘分区管理

3)mkfs.xfs /dev/md0
      mount /dev/md0 /mnt/

      df

磁盘分区管理

磁盘分区管理

4) mdadm -D /dev/md0   #查看状态

磁盘分区管理

 Number   Major   Minor   RaidDevice State
       0     253       17        0      active sync   /dev/vdb1
       1     253       18        1      active sync   /dev/vdb2

       2     253       19        -      spare   /dev/vdb3

可用命令watch -n 1 cat /proc/mdstat来监控

监控的内容

磁盘分区管理

5)如果一个硬盘被破坏,第三个会顶替上来

       mdadm /dev/md0 -f /dev/vdb1                      #强行破坏/dev/vdb1

       mdadm -D /dev/md0

磁盘分区管理

Number   Major   Minor   RaidDevice State
       0     253       19        0      active sync   /dev/vdb3
       2     253       18        1      active sync   /dev/vdb2

       1     253       17        -      faulty   /dev/vdb1              #/dev/vdb1被破坏

监控内容:

磁盘分区管理

5)mdadm /dev/md0 -r /dev/vdb1                           #删除/dev/vdb1

      mdadm -D /dev/md0

磁盘分区管理

监控内容:

磁盘分区管理

6)mdadm /dev/md0 -a /dev/vdb1                 #建立/dev/vdb1

      mdadm -D /dev/md0

磁盘分区管理

Number   Major   Minor   RaidDevice State
       2     253       19        0      active sync   /dev/vdb3
       1     253       18        1      active sync   /dev/vdb2

       3     253       17        -      spare   /dev/vdb1        #重新建立之后/dev/vdb1成为替补的

监控内容:

磁盘分区管理

12.删除raid

1)umount /mnt              #卸载

2)mdadm -S /dev/md0       #停止设备

磁盘分区管理

3)fdisk  /dev/vdb      ----->删除分区

4)partprobe

      cat /proc/partitions

磁盘分区管理

13.磁盘配额

1)建立分区

磁盘分区管理

磁盘分区管理

2)手动同步

磁盘分区管理

3)格式化

磁盘分区管理

4)mount -o usrquota /dev/vdb1 /mnt/   #挂载并**配额参数

磁盘分区管理

   mount                                                              #可看到是否**

磁盘分区管理

磁盘分区管理

  /dev/vdb1 on /mnt type xfs (rw,relatime,seclabel,attr2,inode64,usrquota)       #类型为xfs
5)chmod 777 /mnt                                        #改权限
   要先挂载设备再更改权限,新设备会覆盖原设备权限

6)edquota -u student                                  #-u表示检测用户配额

磁盘分区管理

磁盘分区管理

Filesystem                   blocks       soft         hard     inodes     soft     hard
/dev/vdb1                              0           0      20480               1        0           0             #设置最大容量为20M
blocks目前文件容量
soft表示容量,超过会警告
hard最大容量20M
inodes目前文件个数
7)切换到student

执行dd if=/dev/zero of=/mnt/studentfile bs=1M count=21          #从无限0设备中截取21块1M的到/mnt/student

of表示outputfile
dd截取命令
bs大小
count 个数

磁盘分区管理

dd: error writing ‘/mnt/studentfile’: Disk quota exceeded                #大于20M,不能截取

磁盘分区管理

截取10个1M的可以截取成功

开机自动**

vim /etc/fstab

dev/vdb1    /mnt     xfs     defaults,usrquota     0 0

磁盘分区管理

磁盘分区管理

14.lvm命令

pv 物理卷
vg 物理卷组
pe 物理拓展

lvm 逻辑卷管理

1)建立三个分区,标签改为8e

磁盘分区管理

2)pvcreate /dev/vdb1                    #初始化一个物理卷

磁盘分区管理

3)vgcreate vg0 /dev/vdb1            #创建卷组

磁盘分区管理

4)lvcreate -L 300M -n lv0 vg0      #建立lvm

磁盘分区管理

-L大小
-n 名字

5)mkfs.xfs /dev/vg0/lv0                   #格式化

       mount /dev/vg0/lv0 /mnt     #挂载

磁盘分区管理

监控命令watch -n 1 'pvs;vgs;lvs;df -h /mnt/'

磁盘分区管理

磁盘分区管理

15.lvm扩展

 1)当vg容量够
lvextend -L 500M /dev/vg0/lv0       #扩展lvm,-L拉展到xx

磁盘分区管理

xfs_growfs /dev/vg0/lv0                 #热拉伸

磁盘分区管理

监控内容:

磁盘分区管理

2)当vg容量不够

pvcreate /dev/vdb2                                 #初始化一个物理卷

磁盘分区管理

vgextend vg0 /dev/vdb2                     #将物理卷添加到卷组中

磁盘分区管理

lvextend -L 1500M /dev/vg0/lv0          #扩展lvm

磁盘分区管理

xfs_growfs /dev/vg0/lv0                           #热拉伸

磁盘分区管理

监控内容:

磁盘分区管理

3)ext4格式的扩展

umount /mnt/                                    #卸载

mkfs.ext4 /dev/vg0/lv0                   #格式化为ext4格式,可扩大可缩减

磁盘分区管理

mount /dev/vg0/lv0 /mnt/                        #挂载

mount                                                          #查看

磁盘分区管理

磁盘分区管理#格式为ext4

lvextend -L 1800M /dev/vg0/lv0                #扩展为1800M

磁盘分区管理

resize2fs /dev/vg0/lv0                                 #

磁盘分区管理

监控内容:

磁盘分区管理

16.lvm缩减
ext4格式才行
1)umount /mnt/                                                  #
卸载

2)e2fsck -f /dev/vg0/lv0                                   #检测

磁盘分区管理

3)resize2fs /dev/vg0/lv0 1000M                   

磁盘分区管理

4)mount /dev/vg0/lv0 /mnt/                              #挂载

5)lvreduce -L 1000M /dev/vg0/lv0                   #缩减lvm

磁盘分区管理

监控内容:

磁盘分区管理

17.删除物理卷

1)pvmove /dev/vdb1 /dev/vdb2                      #把/dev/vdb1内容移到/dev/vdb2

磁盘分区管理

2)vgreduce vg0 /dev/vdb1                          #减少一个卷组

磁盘分区管理

3)pvremove /dev/vdb1                                #移除物理卷/dev/vdb1

磁盘分区管理

磁盘分区管理

18.lvm快照
1)pvcreate /dev/vdb1    
      vgextend vg0 /dev/vdb1

      touch /mnt/file666                                                   #在/mnt建立文件

磁盘分区管理

2)lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0    #制作快照

磁盘分区管理

3)mount /dev/vg0/lv0backup /mnt/                       #挂载

磁盘分区管理

这时候如果不小心删除了里面的文件,则卸载并删除快照,重新制作快照即可

磁盘分区管理

1)umount /mnt                                                               #卸载

      lvremove /dev/vg0/lv0backup                                #移除快照

磁盘分区管理

2)lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0    #重新拍照

      mount /dev/vg0/lv0backup /mnt/                          #挂载
磁盘分区管理

19.删除lvm
1)umount /mnt                                                    
#卸载

       lvremove /dev/vg0/lv0backup                     #移除快照

磁盘分区管理

2)lvremove /dev/vg0/lv0                                    #删除lvm

磁盘分区管理

3)vgremove vg0                                                  #删除卷组

磁盘分区管理

4)pvremove /dev/vdb{1..2}                               #移除物理卷vdb1和vdb2

磁盘分区管理

监控内容:

磁盘分区管理