系统分区,磁盘的加密保护,磁盘阵列,磁盘配额,lvm的管理,磁盘的扩容与缩容,lvm快照的制作

1.系统分区概述:

分区:磁盘上的分区规划

硬盘:可划分的分区(可见的)

硬盘与系统的关系: 系统管理硬盘  硬盘保存系统信息

/dev/sda      #第一块串口硬盘(sata)

a表示第一块 b表示第二块 依次类推

/dev/hd0    #并口磁盘

--IDE          #老式硬盘(并口硬盘)

/dev/cdrom  #光驱(不一定存在)   

/dev/sr0       #光驱(一定存在)

扫描二维码关注公众号,回复: 914010 查看本文章

注意:cdrom为sro的快捷方式,cdrom可以不存在

/dev/mapper

2.系统分区的查看与挂载

fdisk -l   #查看真实存在的硬盘

cat /pro/partitions  #查看系统可识别到的硬盘

blkid  #查看系统可用的硬盘

df     #查看系统正在使用的硬盘

df -h  #2^n  1M=1024k

df -H  #10^n 1M=1000k

fuser -vm /dev/sdb1   #vm表示查看/dev/sdb1设备正在运行的程序

fuser -kvm /dev/sdb1  #k表示结束正在运行着的程序

 实验1)具体操作步骤如下:(在真机里)

su -root  #切换到超级用户

df

插上u盘

df       #/dev/sdb1表示u盘

umount  /dev/sdb1  #卸载

mount   /dev/sdb1  /mnt  #挂载(在home的cumputer的/mnt里可查看到u盘的内容)

cd /mnt

再打开一个shell

su - root

umount /mnt  #(无法卸载)

fuser -vm /dev/sdb1  #查看

fuser -kvm /dev/sdb1 #结束运行的程序

umount /mnt  #(卸载成功)

说明:当硬盘正在使用时(即有程序运行时),则将无法执行umount命令

 


mount  /dev/sdb1  /mnt    #把/dev/sdb1挂载到/mnt上(临时性的)

#挂载     配置名      挂载点

umount  /mnt  #将/dev/sdb1 从挂载点/mnt上卸载(等同于umount /dev/sdb1)

mount  /dev/sdb1  /mnt                #默认为读写挂载

mount -o ro /dev/sdb1  /mnt         #ro表示只读挂载

mount -o remount,rw /dev/sdb1    #remount表示重新挂载 rw表示读写挂载

 实验2)具体操作步骤如下:(在真机里)

mount -o ro /dev/sdb1 /mnt/  #只读挂载

df

touch /mnt/file1  #(建立失败)

umount /dev/sdb1

mount -o rw /dev/sdb1 /mnt/  #读写挂载

touch /mnt/file1   #(建立成功)

说明:只有挂载时给写的权限才能执行touch命令

 

3.如何划分分区

 mbr (dos)#主引导记录,打开分区

 mpt            #记录分区信息

512-446=66=64+2

#   mbr          mpt 55aa

 分区的两种方式:

mbr   #分为主分区p(primary第四个分区)和扩展分区e(expended容器;逻辑分区(容器中的内容),最多只能划分4个主分区。为了容纳更多的东西,所以将第4个分区化为扩展分区(容器),可将容纳不下的东西放到这个扩展分区中在linux中最多放16个,且每个不超过2t

gpt   #不分主分区和扩展分区,可划分128个分区

fdisk    /dev/vdb       #进入/dev/vdb设备中

常用参数的含义:

m  #获得帮助

n  #新建

p  #显示分区信息

t   #修改分区

w  #将当前操作写入硬盘分区表

q  #直接退出不保存

wq #退出保存

partprobe #手动同步划分的分区信息

具体操作步骤如下:(在server中)

fdisk -l  #查看真实存在的硬盘

fdisk /dev/vdb #进入/dev/vdb设备中

m  #获得帮助

n    #新建分区

p    #分区的类型为主分区

1    #分区的编号为1

First sector   #设为默认(直接回车即可)

+100M #分区的大小为100M

重复上述操作建立3个分区

n    #新建分区

e    #分区类型为扩展分区

剩下的设为默认即可

n    #在刚建的扩展分区上新建分区

p    #分区的类型为主分区

1    #分区的编号为1

First sector   #设为默认

+100M #分区的大小为100M

wq    #退出保存

partprobe  #同步分区信息

cat /proc/partitions #查看设备是否被系统识别  

 





4.分区的挂载:

挂载前需要先格式化

mkfs.xfs /dev/vdb1  #格式化设备,在设备上安装文件系统xfs

具体操作步骤如下:

 mount /dev/vdb1 /mnt  #(挂载失败)

 mkfs.xfs /dev/vdb1    # 格式化/dev/vdb1

 blkid                 # 查看系统可用的硬盘

 mount /dev/vdb1 /mnt  #(挂载成功)

 df

注意:不能挂载 /dev/vdb4  因为它是个扩展分区

 


5.更改分区的类型(方式)

parted  /dev/vdb( 设备名称) #更改分区方式

partprobe      #手动同步划分的分区           

 1)mbr(dos)---->gpt

具体操作步骤如下:

umount  /mnt     #解除所有挂载

(如果没有全部挂载到/mnt则需要单独解除挂载形如:umount /dev/vdb1)

fdisk /dev/vdb   #进入/dev/vdb

d                #删除分区

1                #分区序号

重复上述操作删除所有分区

wq

cat /proc/partitions   #查看是否删除了分区

                              (如果系统没有识别到刚才的操作则需执行下一步操作)

partprobe                 #手动同步划分的新分区

cat /proc/partitions   #查看有没有删掉刚新建的分区

parted /dev/vdb        #更改分区的类型(方式)

mklabel     

tab键补齐可查看到分区类型

gpt  #分区方式更改为gpt

quit

fdisk  -l   #可查看到分区的类型是否更改为gpt类型(方式)

 

 

 

2)gpt---->mbr(dos)

具体操作步骤如下:

parted /dev/vdb        #更改分区的类型

(parted)  mklabel   

tab键补齐可查看到分区类型

msdos

(parted) quit

fdisk  -l   #可查看到分区类型是否更改为mbr(dos)类型(方式)

 

 

注意:如果输入msdos回车之后出现

Ignare/Cancel? 则此时需要输入I #ignore忽略


 6.挂载的两种方式

1)临时性挂载:

cat /proc/partitions #查看分区

df

mount  /dev/sdb1  /mnt

df    #查看是否挂载

 

2)永久性挂载:

df                #查看是否挂载

umount /dev/vdb1  #取消挂载点(如果有挂载)

vim /etc/fstab         #编写文件,开机时自动挂载,即永久性挂载

################

/dev/vdb1  /mnt       xfs       defaults   0   0  

#设备名      挂载点   系统类型    参数

mount  -a          #系统重新读取挂载信息

df                      #查看是否挂载

 


7.将分区更改为swap类型的两种方式

1)临时性更改:

具体操作步骤如下

df      #查看是否挂载(如果挂在了需要卸载)

cat /proc/partitions #查看是否有/dev/vdb1(如果没有则需要新建分区)

fdisk /dev/vdb       #进入/dev/vdb里

Command (m for help): t             #修改为swap分区

Partition number (1-3, default 3): 1

Hex code (type L to list all codes): 82

wq

partprobe     #同步

mkswap /dev/vdb1     #格式化

swapon -a /dev/vdb1  #测试(不报错)

swapon -s            #查看

fdisk -l      #查看是否修改为swap分区

 

 

2)永久性更改:

具体操作步骤如下

vim /etc/fstab

##########

/dev/vdb1      swap             swap        defaults    0   0

#设备名  系统不需要挂载    分区类型      参数       不需要测试  

mkswap /dev/vdb1      #格式化

swapon -a /dev/vdb1   #测试(不报错)

swapon -s             #查看

fdisk -l                  #查看是否修改为swap分区

 


8.删除swap分区

vim /etc/fstab

#########

删除/dev/vdb1 swap swap defaults 0 0

swapoff /dev/vdb1

fdisk  /dev/vdb #进入/dev/vdb

Command (m for help): d  # 删除swap分区

Partition number (1-5, default 5): 1

Partition 2 is deleted

Command (m for help): wq

partprobe  #同步  

cat /proc/partitions  #查看是否删除了swap分区(/dev/vdb1)

9.磁盘的加密保护

1)临时性加密

具体操作如下:

fdisk /dev/vdb  #进入dev/vdb 并新建(n)/dev/vdb1

partprobe   #同步

cryptsetup  luksFormat /dev/vdb1  #加密/dev/vdb1

YES  #必须是大写

Enter passphrase: westos666 #输入密码为westos666

Verify passphrase:

mount /dev/vdb1 /mnt  #(挂载失败)

ls /dev/mapper/     

cryptsetup open /dev/vdb1 westos  #解密(open打开)并且解密形态为westos

Enter passphrase for /dev/vdb1: 输入密码

ls /dev/mapper/

mkfs.xfs /dev/mapper/westos    #格式化

mount /dev/mapper/westos /mnt/ #用解密形态挂载(成功)

touch /mnt/file{1..10}  

ls /mnt

umount /mnt/   

df

ls /mnt/

cryptsetup close westos  #关闭(close)解密

ls /dev/mapper/    

mount /dev/mapper/westos /mnt    #(挂载失败)  

mount /dev/vdb1 /mnt/            #(挂载失败)两者作用相同

cryptsetup open /dev/vdb1 westos #打开保存解密形态到westos

mount /dev/vdb1 /mnt/            #(挂载成功)

mount /dev/mapper/westos /mnt/   #(挂载成功)

df

ls /mnt  #可查看到刚新建的文件

 


2)永久性加密:(开机后自动加密)

vim /root/diskpass  #编写解密文件

################

westos666  #自定义设定密码

chmod 600 /root/diskpass  #给一个执行权限

cryptsetup  luksAddKey  /dev/vdb1 /root/diskpass  

Enter any passphrase:  # 输入密码

vim /etc/crypttab

##############

westos     /dev/vdb1    /root/diskpass

#加密形态  设备名称     解密文件

vim /etc/fstab

###############

/dev/mapper/westos  /mnt  xfs defaults 0 0

df               #查看是否挂载

umount  /mnt  #卸载/mnt(如果有,那么执行此步骤)

reboot        #重启

df               #查看是否挂载成功

 cat /var/log/boot.log  #查看开机启动日志

[  OK  ] Found device /dev/mapper/westos.     # 自动读取密码

 

 





3)解开永久性加密:

vim /etc/crypttab

##############

删除westos  /dev/vdb1    /root/diskpass

vim /etc/fstab

###############

删除/dev/mapper/westos  /mnt  xfs defaults 0 0

rm -fr /root/diskpass

df

umount /mnt

cryptsetup close westos #关闭

mkfs.xfs  /dev/vdb1     #格式化

mkfs.xfs /dev/vdb1 -f   #强制格式化

 

10.磁盘阵列

0 #表示写入的速度快

1 #表示读的速度快

5 #最少需要三块硬盘

 mdadm -C  /dev/md0  -a yes  -l 1  -n 2  -x 1  /dev/vdb{1..3}

参数的具体含义:

-C        #创建

-a yes  #若没有该设备则自动创建

-l 1      #级别  

-n 2    #用两块设备做  

-x 1    #一块闲置

-D      #查看状态

-f       #损坏

-r       #卸载

具体操作步骤如下:

fdisk /dev/vdb  #进入/dev/vdb中并新建分区

n   #新建三个分区

t   #改变分区类型(改为fd)

Hex code (type L to list all codes): fd

wq

partprobe   #手动同步

cat /proc/partitions  #查看

fdisk -l    #查看到分区类型是否为dos

mdadm -C  /dev/md0  -a yes  -l 1  -n 2  -x 1  /dev/vdb{1..3}

mkfs.xfs /dev/md0   #格式化

mount /dev/md0 /mnt

df

 





注意:要做完上述操作之后才能做以下实验

1)设备的管理(mdadm)

mdadm  -D /dev/md0  #查看所有设备的状态

mdadm  /dev/md0  -f /dev/vdb2  #强行损坏/dev/vdb2设备

df

mdadm  -D /dev/md0

mdadm  /dev/md0  -r /dev/vdb2    #删除

mdadm  -D /dev/md0

mdadm  /dev/md0  -a /dev/vdb2    #添加

mdadm  -D /dev/md0

 





2)设备的永久性删除

df

umount /mnt         #解除挂载

df

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

fdisk /dev/vdb

#进入 /dev/vdb 删除所有分区(d)

partprobe                #同步

cat /proc/partitions  #查看

 


11.磁盘配额

     dd if=/dev/zero of=/mnt/studentfile bs=1M count=21

具体参数的含义:

dd     #截取

if      #input file

of     #out of file

/dev/zero      #无限零字节(设备)

bs                 #大小(block size)

count           #个数

 实验:(在server里,实验之前最好先重置server)

 cat /proc/partitions

 fdisk /dev/vdb

#进入/dev/vdb中,并新建(n)一个分区/dev/vdb1


 cat /proc/partitions    #查看是否建立好了/dev/vdb1

 mkfs.xfs /dev/vdb1     #格式化

 mount -o usrquota /dev/vdb1 /mnt #挂载

 chmod 777 /mnt         #更改权限

 edquota -u student     #设置配额参数(临时的)

#################

Filesystem  blocks   soft   hard     inodes     soft     hard

/dev/vdb1     0        0    20480      0         0        0

#最多可截取20个             



 mount  #查看是否激活配额参数

*************

/dev/vdb1 on /mnt type xfs (rw,relatime,seclabel,attr2,inode64,usrquota)



测试:

 su - student

 dd if=/dev/zero of=/mnt/studentfile bs=1M count=21

**************

dd: error writing ‘/mnt/studentfile’: Disk quota exceeded

exit


vim /etc/fstab   #开机自动激活配额

####################

/dev/vdb1  /mnt   xfs   defaults,usrquota  0 0

 


12.逻辑卷(lvm)的管理(在server里)

lvm     #它的作用是实现硬盘的无限分区与扩容

pv      #物理卷

vg      #物理卷组

pe      #物理拓展

 注意:作以下实验之前需要 再打开一个shell,连接server并用

watch -n 1 'pvs;vgs;lvs;df -h /mnt' 来监控,便于观察现象


 具体操作步骤如下:

df

umount /mnt

vim /etc/fstab

#############

删除/dev/vdb1  /mnt   xfs   defaults,usrquota 0 0


fdisk /dev/vdb  #进入设备,删除(d)分区            

#新建(n)3个分区并改变(t)分区类型(8e) ##物理分区(3个橘子)

partprobe    #同步


cat /proc/partitions        #查看         

pvcreate /dev/vdb1            ##将物理分区处理为物理卷(榨汁)

vgcreate vg0 /dev/vdb1      ##物理卷组成物理卷组(将果汁融合到一杯)

lvcreate -L 300M -n lv0 vg0 ##将物理卷划分为逻辑卷(分杯)


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

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

df



 13.磁盘的扩容与缩容

 注意:需要先做好逻辑卷(lvm)的管理实验,才能做以下实验

 1)xsf系统的扩容(刚新建的分区大小为1G)

VG容量够时:

 lvextend -L 500M /dev/vg0/lv0  #扩大设备

 xfs_growfs /dev/vg0/lv0            #扩展文件系统


VG容量不够时:

 pvcreate /dev/vdb2            #将物理分区处理为物理卷

 vgextend vg0 /dev/vdb2     #将新添加的物理卷添加到原来的物理卷组中

 lvextend -L 1500M /dev/vg0/lv0 #扩大设备

 xfs_growfs /dev/vg0/lv0        #扩展文件系统


2)在ext4系统下

 1.磁盘容量的扩展

umount /mnt

mkfs.ext4 /dev/vg0/lv0       #格式化为ext4系统

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


mount    #查看



lvextend -L 1800M /dev/vg0/lv0  #扩大设备

resize2fs /dev/vg0/lv0                 #更新逻辑卷的信息(扩展文件系统)


2.磁盘容量的缩减

umount /mnt

e2fsck -f /dev/vg0/lv0              #扫描逻辑设备上的空间

resize2fs /dev/vg0/lv0  1000M  #缩减文件系统(Filesystem)

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

lvreduce -L 1000M /dev/vg0/lv0 #缩减设备


3.缩减VG(将数据迁移到闲置的设备上)

pvmove /dev/vdb1 /dev/vdb2  #将/dev/vdb1上的数据迁移到/dev/vdb

#如果出现报错,则说明vdb1缩的不够小,vdb2容不下。解决方法是将vdb1缩的更小一些即可


vgreduce vg0 /dev/vdb1      #从vg0中取出/dev/vdb1

pvremove /dev/vdb1           #删除dev/vdb1


14.lvm快照的制作

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

具体操作步骤如下:

cd /mnt

ls

touch file{1..5}    #在/mnt建立文件

ls

cd    #返回上层目录

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

#如果失败,则说明容量不够,那么需要扩容,然后再制作快照

  pvcreate /dev/vdb1             ##扩大容量

  vgextend vg0 /dev/vdb1

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

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



cd /mnt

rm -fr *   #删除文件

ls

cd

umount /mnt

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


lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0        

#重新制作快照

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

ls /mnt  #可查看到刚才建立的文件,因为有快照的存在,所以删除文件时,删除的是快照,而不是母本.


猜你喜欢

转载自blog.csdn.net/love_sunshine_999/article/details/80186480