Linux学习<二> 四、五单元

第四单元 磁盘分区

一、概念

1.磁盘分区是为了方便管理,分区的信息记录在硬件中。

2.磁盘:由探头、磁道、扇区构成。默认操作系统管理磁盘,若无操作系统或操作系统未开启时,默认将从磁盘的零磁道1扇区mbr开始读取。

3.零磁道1扇区mbr记录启动程序的位置,共446字节大小,记录引导程序位置。其所在大小为512的空间剩余2+64字节,2字节的内容由主机板识别,存放硬盘标示符;64字节空间是分区表mpt,记录分区位置。

4.磁盘分区分三类:主分区--最多可以有4个主分区,但会造成磁盘空间的浪费;

             扩展分区--将除主分区外的剩余空间划分至一个“容器”中,该容器的位置信息记录在分区表中;

               逻辑分区--逻辑分区的位置信息记录在扩展分区中。

 所以,磁盘若无mbr或mpt,将不能启动

二、磁盘分区

(一)

1.fdisk -l #查看系统识别的设备

2.fdisk /dev/vdb  #对/dev/vdb进行分区

Command (m for help): m #查看命令帮助

Command action

  a   toggle a bootable flag

   b   editbsd disklabel

  c   toggle the dos compatibilityflag

  d   delete a partition  #删除分区

  g   create a new empty GPTpartition table

  G   create an IRIX (SGI) partitiontable

  l   list known partitiontypes  #列出分区类型

  m   print this menu

   n   adda new partition  #新建分区

  o   create a new empty DOSpartition table

  p   print the partition table  #查看分区表

  q   quit without savingchanges  #退出不保存

  s   create a new empty Sundisklabel

  t   change a partition's systemid  #更改分区类型/id

   u   change display/entry units

  v   verify the partition table

  w   write table to disk andexit  #退出并保存

  x   extra functionality (expertsonly)

##主分区的建立

Command (m for help): n  #新建分区

Partition type:  #分区类型

  p   primary (0 primary, 0extended, 4 free)  #主分区

  e   extended   #扩展分区

Select (default p): p  #选择建立主分区

Partition number (1-4, default 1): 1  #建立主分1

First sector (2048-20971519, default 2048):[enter]#默认起始地址

Using default value 2048

Last sector, +sectors or +size{K,M,G}(2048-20971519, default 20971519): +100M  #分区大小为100M

Partition 1 of type Linux and of size 1 GiBis set

#扩展分区的建立

Command (m for help): n

Partition type:

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

  e   extended

Select (default e): e  #建立扩展分区

Selected partition 4  #第四块分区

First sector (1230848-20971519, default1230848): [enter]默认起始地址

Using default value 1230848

Last sector, +sectors or +size{K,M,G}(1230848-20971519, default 20971519): [enter] #默认剩余空间均划分至扩展分区

Using default value 20971519

Partition 4 of type Extended and of size9.4 GiB is set

Command (m for help): p  #查看分区表

 

Disk /dev/vdb: 10.7 GB, 10737418240 bytes,20971520 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes /512 bytes

I/O size (minimum/optimal): 512 bytes / 512bytes

Disk label type: dos

Disk identifier: 0x98ecea5f

 

  Device Boot      Start         End      Blocks  Id  System

/dev/vdb1            2048      206847      102400  83  Linux

/dev/vdb2          206848      616447      204800  83  Linux

/dev/vdb3          616448     1230847      307200  83  Linux

/dev/vdb4         1230848    20971519    9870336    5  Extended

Command (m for help):wq  #退出报存

3.分区表改变,又系统只读取一次分区表,需要使用下面命令来进行同步

 partprobe  #实现硬盘与系统的分区同步,使系统识别系统中新增的分区信息

4.cat /proc/partitons  #若出现新分区。则划分成功

二、磁盘格式化

由命令fdisk/dev/vdb 划分得到的分区暂时还不能使用,可以使用blkid来查看,

所以必须对分区进行格式化后才可以使用。windos可识别ntfs,fat格式的分区;linux可识别vfat(链式读取,最大分区大小=32TB),ext,xfs(分布式读取。读取速度最快,磁盘分区空间大小可达18eB)(1eB=1024TB)。下面介绍xfs格式化

 mkfs.格式名 磁盘分区

1.mkfs.xfs /dev/vdb1  #将/dev/vdb1格式化为xfs格式

 blkid  #查看可以使用的设备

2.挂载

(1)一次性挂载

 mount /dev/vdb1 /mnt  #测试挂载


(2)永久挂载

  vim/etc/fstab

  设备名称 挂载点 设备格式 defaults(默认参数) 是否备份(0表否;1表是) 是否检测(0表否;1表是)

如:/dev/vdb1/mnt xfs defaults 0 0 #将xfs格式的/dev/vdb设备挂载在/mnt下,且不备份不检测

  :wq


 mount -a  #使/etc/fstab中新建的命令立即识别,即实现挂载

注:/etc/rc.d/rc.local也可以实现永久挂载,但是该脚本内容是在系统启动最后才被读取的,因此不宜采用此命令来实现永久挂载。


三、swap分区:在系统的物理内存不够用时,把硬盘空间中的一部分空间释放出来, 放入swap分区中。swap分区默认为4GB。

1.swap分区的建立:新建磁盘分区作为swap分区

Command (m for help): n 

Partition type:

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

  e   extended

Select (default p): p

Partition number (2-4, default 2): 2

First sector (206848-20971519, default206848):

Using default value 206848

Last sector, +sectors or +size{K,M,G}(206848-20971519, default 20971519): +1G

Partition 2 of type Linux and of size 1 GiBis set

 ###更改/dev/vdb2分区为swap交换分区

Command (m for help): l  #列出系统分区编号


Command (m for help): t  #更改分区编号,即更改分区类型

Partition number (1,2, default 2): 2  #更改第二块主分区

Hex code (type L to list all codes):82  #更改为swap分区

Changed type of partition 'Linux' to 'Linuxswap / Solaris'

Command (m for help): p  ##查看划分的分区

  Device Boot      Start         End      Blocks  Id  System

/dev/vdb1            2048      206847      102400  83  Linux

/dev/vdb2          206848     2303999    1048576   82  Linux swap / Solaris  ##/dev/vdb2是系统中的swap分区

Command (m for help):wq

2.同样需要进行格式化,使用命令mkswap,如下:

mkswap /dev/vdb2  ##将设备/dev/vdb2格式化为swap分区

3.swapon -a /dev/vdb2  ##激活swap分区

4.swapon -s ##查看正在使用的swap分区信息,包含优先级信息

5.优先级:只能在swap分区激活时同时设定,之后不能通过命令更改

 swapon -a /dev/vdb2 -p 优先级别  ##以某优先级激活swap分区

6.swapoff /dev/vb2  ##停止swap分区

注:修改优先级时,一定要先关闭swap分区,再使用第5条命令



7.自动挂载

(1)先关闭swap分区:swapoff /dev/vdb2

(2)vim /etc/fstab

  /dev/vdb2 swap swap defaults 0 0 ##不需要设置挂载点,以默认参数进行挂载,此时优先级时默认值-1

  /dev/vdb2 swap swap defaults,pri=1 0 0 ##设定优先级为1


(3)swapon -a   ##自动激活swap分区


(4)删除交换分区:swapoff /dev/vdb2  #先关闭交换分区

             删除/etc/fstab中自动挂载命令行

             fdisk /dev/vdb  ##输入d进行删除swap分区

           partprobe  ##硬件与系统同步

注:若使用过mkswap命令,此后的格式化命令必须加 -f,如下

 mkfs.xfs /dev/vdb1 -f  

四、用户的磁盘额度:分配额度--针对设备

  新建设备,并挂载至/pub,

1.fdisk /dev/vdb

 mkdir /pub

 mkfs.xfs /dev/vdb3

 mount /dev/vdb3 /pub   ##检测挂载

 chmod 777 /pub

 umount /pub

2.mount -o usrquota,grpquota /dev/vdb3/pub  ##将已格式化的设备/dev/vdb3以一定的用户配额、组配额挂载到/pub下

 ls-ld /pub  #查看/pub内容

 df  #查看是否挂载成功

3.quotaon -ugv /dev/vdb3  ##激活

4.edquota -u 用户名   ##查看用户配额,可以设定该用户的额度,内容显示如下

 Filesystem                   blocks       soft       hard    inodes     soft     hard

 /dev/vdb3                        0          0          0          0        0       0

blocks:当前用户在该设备上已存在的数据大小,不可更改,当删除文件时才会改变

soft:软件大小

hard:硬件大小,用户可往设备中写入的最大的文件大小,单位为kB

inode:用户在设备中的文件个数



5.检测用户配额

su - 用户名

  ddif=/dev/zero of=/pub/file bs=1MB count=200 ##从/dev/zero截取100块大小1MB的内存即200MB放入/pub/file,若超过200MB将会出错




6.删除

(1)umount /pub

(2)fdisk /dev/vdb #输入d 删除分区

(3)partprobe  #硬件与系统同步

五、硬盘的读写速度:会受硬盘转速的影响

(一)定义

1.磁盘阵列:可以加快读写速度,至少需要三块磁盘。两块盘一起转可以加快读速度;两块盘一起写数据时,每个盘只写一半数据,因此可以加快写速度。

2.软件模拟raid:0--每个盘各写一半,可以加快写速度;

           1--每个盘写入完整数据,可以加快读取速度;

             5--三个零+两个1,但比较浪费磁盘

(二)操作

1.建立三块设备,并将设备更改为raid分区,可用l命令查看raid分区对应的id为fd.

 fdisk /dev/vdb

注:raid设备在使用时是两块盘一起读写,所以真正可以使用的空间大小与空间最小的设备相同,因此在创建设备时尽量将每块设备的大小设定一致。



2.系统同步

3.创建raid设备

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

##在系统中创建出/dev/md0设备,其中共有三块分区

  C:创建

  -ayes:创建出设备

  -l1:level 1

  -n2:用两块设备来建立level1

  -x1:闲置一块

可以用watch 命令进行监控

 watch -n 1 cat /proc/mdstat

 watch -n 1 'cat /proc/mdstat;echo====;df -h'


4.格式化/dev/md0

 mxfs.xfs /dev/md0

5.挂载

 mount /dev/md0 /mnt

  df-h  ##可以查看设备大小,取决于最小的设备


6.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

 mdadm -f /dev/md0 /dev/vdb2   #使某设备停止工作,但/dev/md0不会停止工作,此时闲置的盘/dev/vd3将开始同步,恢复数据


 mdadm -r /dev/md0 /dev/vdb2  #删除坏掉的或未使用的盘


 mdadm -a /dev/md0 /dev/vdb2  #添加/dev/vdb2,并且一定尽可能保证两块盘正常运行


7.删除raid设备

 umount /mnt #先卸载

 mdadm-D /dev/md0  #查看设备状态,是否正在运行

 mdadm -S /dev/md0  #使设备停止工作

 fdisk /dev/vdb #进行删除设备,或者更改设备类型

六、磁盘扩容

(一)定义

磁盘扩容:fdisk划分出物理分区由于Lvm软件的作用形成pv逻辑卷,pv逻辑卷捆绑形成vg,从vg中取出整数倍个PE得到Lvm。得到的Lvm可以无限大。

(二)LVM的形成

1.划分出LVM格式的设备

 fdisk /dev/vdb 

  输入l 查看LVM格式的id=8e

  输入t 更改格式


2.partprobe #系统同步

3.对设备进行初始化但不挂载

4.pvcreate /dev/vdb1  #建立pv

 vgcreate vg0 /dev/vdb1  #建立vg0,包含pv信息

 lvcreate -L 300M -n lv0 vg0 #从vg0中划分300M内容给lv0

使用watch监控,如下

watch -n 1'echo==vmessage==;pvs;echo==vgmessage==;vgs;etho==lvmessage==;lvs'

注:若在linux7.2中使用过raid设备,在创建lvm时应该使用mdadm -S /dev/md0命令使/dev/md0处于停止工作状态。


5.mkfs.xfs /dev/vg0/lv0  #初始化

6.mkdir /data

 mount /dev/vg0/lv0 /data #将/dev/vg0/lv0挂载至/data目录下

使用watch监控,如下

watch -n 1'echo==vmessage==;pvs;echo==vgmessage==;vgs;etho==lvmessage==;lvs;echo===;df -h/data',内容显示如下:

图片

##Vsize:表示vg0大小

##VFree:表示vg0剩余空间,LFree同理

(三)设备拉伸

(A)拉伸设备,也可以缩减

1.扩容

 lvextend -L 500M /dev/vg0/lv0  #将/dev/vg0/lv0扩大到500M;-L 500M表示扩容后的设备大小(500<720M)

 此时扩容后文件系统的大小不变


 xfs_growfs /dev/vg0/lv0  ##文件系统大小改变,会变大


2.增加设备

 当lv0的扩容量超过/dev/vg0剩余空间时,可以通过添加pv设备来扩容

 pvcreate /dev/vdb2  #添加pv设备

 vgextend vg0 /dev/vdb2  #将新添加的pv加入到vg0中,扩大vg0

 lvextend -L 1500M /dev/vg0/lv0  #再次扩容



(B)缩减设备

1.xfs不支持文件系统缩减,所以先转换成可以缩减文件的格式

 umount /data  #先卸载

 mkfs.ext4 /dev/vg0/lv0  ##将lv0设备格式化为ext4格式

 mount /dev/vg0/lv0 /data  #再挂载

2.先缩减文件

 umount /data

 e2fsck -f /dev/vg0/lv0  ##检测文件大小,防止文件被缩减过小

 resize2fs /dev/vg0/lv0 500M  ##缩减文件至500M大小

 mount /dev/vg0/lv0 /data 

  df-h /data  #挂载后再查看文件大小


3.缩减设备

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

 pvmove /dev/vdb1 /dev/vdb2  ##将/dev/vdb1中数据移至/dev/vdb2中,中途不能停止或取消命令,否则会造成数据的丢失

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

 pvremove /dev/vdb1  ##从pv中移出/dev/vdb1使之成为物理分区

 fdisk /dev/vdb  #可以删除/dev/vdb1分区


(四)、设备快照

1.umount /data

2.lvcreate -L 50M -n 新设备名称 -s /dev/vg0/lv0  #对/dev/vg0/lv0快照生成新设备,并改变数据大小为50M,如:

lvcreate -L 50M -n newfs -s /dev/vg0/lv0 #新设备/dev/vg0/newfs

3.mount /dev/vg0/新设备 /data  #挂载

4.umount /data

 lvremove /dev/vg0/新设备  #删除快照


图片

(五)删除LVM

1.umount /dev/vg0/lv0

2.lvremove /dev/vg0/lv0

3.vgremov vg0

4.pvremove /dev/vdb2


七、文件系统加密

文件系统底层加密:对整个分区加密,若前行破解,会造成文件内容的丢失。

1.划分设备并且不格始化不挂载,原始设备不能挂载

 fdisk /dev/vdb

2.建立文件系统

 cryptsetup luksFormat /dev/vdb1  #对未格始化的设备加密

 YES  [enter](输入大写YES,表示确定加密)

  输入密码[enter]

3.打开加密设备

 cryptsetup open /dev/vdb1 新名称  #加密设备打开后的新名称

  输入密码 [enter]

加密设备打开后的状态是:/dev/mapper/新名称

如:cryptsetupopen /dev/vdb1 westos

  打开后的状态是:/dev/mapper/westos

4.格式化并挂载打开后的设备

 mkfs.xfs /dev/mapper/westos

 mount /dev/mapper/westos /mnt

  可以进行查看,卸载后将不能查看。可以重复操作4步骤

5.关闭设备

  先卸载

 cryptsetup close westos

可以查看是westos设备是否还存在

  ll/dev/mapper/

(B)自动挂载

1.vim /etc/crypttab

  新名称 设备 文件   ##建立文件存放密码,使系统开机后给设备自动加密

2.chmod 600 /文件名  ##设定密码文件的权限为r--

3.cryptsetup luksAddKey /dev/vdb1 /文件名  ##将密码记入文件中

4.vim /etc/fstab

 /dev/mapper/新名称 /mnt xfs defaults 0 0 #自动挂载命令,挂载打开后的设备

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值