linux系统的分区管理(swap,raid,lvm等)

1.mbr,mpt

512-446      =                                          64+                        2

        mbr(主引导记录(找到启动分区))   mpt(记录分区信息) 55aa(有效性标识)

vda                     表示第一个虚拟磁盘 
vdb                     表示第二个虚拟磁盘 

dev/xdx            硬盘格式

dev/hd0            并口硬盘

dev/sda            串口硬盘

dev/cdrom 或/dev/sr0             光驱

/dev/mapper

fdisk -l                       #查看真实存在的设备

cat /proc/partitions           #查看系统可以识别的设备

blkid                          #查看系统可以使用的设备

df                             #查看系统正在使用的设备

df -h 1G=1024K   df -H 1G=1000K       -h更准确

linux系统的分区管理(swap,raid,lvm等)_第1张图片

df<= blkid<= cat /proc/partitions<= fdisk

2.挂载

怎样取消正在使用中的设备的挂载

 umount: /mnt: target is busy.

        (In some cases useful info about processes that use

         the device is found by lsof(8) or fuser(1))

lsof

fuser -vm

fuser -kvm
只读和读写挂载的选择
mount /dev/sdb /mnt             #读写挂载

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

mount -o remount,rw /dev/sdb    #将只读挂载转换为读写挂载
linux系统的分区管理(swap,raid,lvm等)_第2张图片

 

3.分区方式

fdisk  /dev/vdb

 Command (m for help): m	        #获得帮助

 Command action

   a   toggle a bootable flag

   b   edit bsd disklabel

   c   toggle the dos compatibility flag

   d   delete a partition	        #删除分区

   g   create a new empty GPT partition table

   G   create an IRIX (SGI) partition table

   l   list known partition types

   m   print this menu

   n   add a new partition	        #新建分区

   o   create a new empty DOS partition table

   p   print the partition table	#显示分区标信息

   q   quit without saving changes	#退出

   s   create a new empty Sun disklabel

   t   change a partition's system id	#修改分区id

   u   change display/entry units

   v   verify the partition table

   w   write table to disk and exit	#将当前操作写入硬盘分区表

   x   extra functionality (experts only)

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

 Partition type:	                #创建分区类型

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

    e   extended	                #扩展分区

 Select (default p):

 Using default response p

 Partition number (1-4, default 1):                       #指定使用的分区表号

 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

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 / 512 bytes

Disk label type: dos

Disk identifier: 0xc66e0181

 

   Device Boot      Start         End      Blocks   Id  System

/dev/vdb1            2048      206847      102400   83  Linux        #被划分出来的分区

/dev/vdb2          206848      411647      102400   83  Linux        #被划分出来的分区

 

Command (m for help): wq                                #保存更改方式并退出

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

Syncing disks.

 

 

partprobe              将磁盘分区表变化信息通知内核,请求操作系统重新加载分区

cat /proc/partitions   查看系统能识别的分区

 3.如何使用新建立的分区

mkfs.xfs /dev/vdb1 格式化

blkid           查看系统可以使用的分区

 linux系统的分区管理(swap,raid,lvm等)_第3张图片

4.如何修改分区格式 

parted /dev/vdb

GNU Parted 3.1

Using /dev/vdb

Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) help                                                          #帮助   

  align-check TYPE N                        check partition N for TYPE(min|opt)

        alignment

  help [COMMAND]                           print general help, or help on

        COMMAND

  mklabel,mktable LABEL-TYPE               create a new disklabel (partition

        table)

  mkpart PART-TYPE [FS-TYPE] START END     make a partition

  name NUMBER NAME                         name partition NUMBER as NAME

  print [devices|free|list,all|NUMBER]     display the partition table,

        available devices, free space, all found partitions, or a particular

        partition

  quit                                     exit program

  rescue START END                         rescue a lost partition near START

        and END

  rm NUMBER                                delete partition NUMBER

  select DEVICE                            choose the device to edit

  disk_set FLAG STATE                      change the FLAG on selected device

  disk_toggle [FLAG]                       toggle the state of FLAG on selected

        device

  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER

  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition

        NUMBER

  unit UNIT                                set the default unit to UNIT

  version                                  display the version number and

        copyright information of GNU Parted

(parted) mklabel                                                          

New disk label type?                                                      

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                                                               

(parted) q                      #退出                                          

Information: You may need to update /etc/fstab.

 

 

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

5.设备永久挂载

vim /etc/fstab  设备挂载策略文件

  /dev/vdb1 /mnt/  xfs                defaults                   0        0

  挂载设备  挂载点 挂载设备的分区类型 挂载选项用于设置挂载的参数 是否备份 磁盘检查设置是否检查  

mount -a 挂载fstab下的所有选项

 umount /mnt

 linux系统的分区管理(swap,raid,lvm等)_第4张图片

 

6.swap分区的管理

创建swap分区

fdisk /dev/vdb

     Command (m for help): t

     Partition number (1,2, default 2): 1

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

    

     0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        

     1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-

     2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-

     3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden C:  c6  DRDOS/sec (FAT-

     4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx         

     5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data    

     6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .

     7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility   

     8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt         

     9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access     

     a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        

     b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      

     c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi eb  BeOS fs        

     e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            

     f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/

    10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC b

    11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      

    12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      

    14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f2  DOS secondary  

    16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    

    17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE

    18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto

    1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep        

    1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT            

    1e  Hidden W95 FAT1 80  Old Minix      

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

    Command (m for help): wq

    The partition table has been altered!

 

    Calling ioctl() to re-read partition table.

    Syncing disks.

 

    

cat /proc/partitions

partprobe             #将磁盘分区表变化信息通知内核,请求操作系统重新加载分区

cat /proc/partitions

mkswap /dev/vdb1      #把/dev/vdb1格式化成swap格式

swapon -a /dev/vdb1   #激活

swapon -s             #查看系统中的swap分区

fdisk -l

vim /etc/fstab

    /dev/vdb2 swap  swap defaults 0 0   #将/dev/vdb2挂载到swap交换空间上,类型为swap,使用默认挂载选项,不备份文件系统不执行fsck检查

swapon -a              #开启全部的交换空间

删除swap分区

vim /etc/fstab

   删除/dev/vdb1 swap  swap defaults 0 0

swapoff /dev/vdb1

fdisk /dev/vdb

   删除vdb1分区

partprobe

7.分区加密

cryptsetup luksFormat /dev/vdb1          #给分区加密

WARNING!

========

This will overwrite data on /dev/vdb1 irrevocably.

 

Are you sure? (Type uppercase yes): YES  #必须用大写

Enter passphrase:

Verify passphrase:

 

cryptsetup open /dev/vdb1 xixi

Enter passphrase for /dev/vdb1:

   

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

meta-data=/dev/mapper/xixi       isize=256    agcount=4, agsize=6272 blks

         =                       sectsz=512   attr=2, projid32bit=1

         =                       crc=0

data     =                       bsize=4096   blocks=25088, imaxpct=25

         =                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

log      =internal log           bsize=4096   blocks=853, version=2

         =                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

 

mount /dev/mapper/xixi  /mnt

touch /mnt/file{1..3}

ls /mnt

umount /mnt

df

cryptsetup close xixi


8.自动挂载加密设备

vim /root/diskpass                              #系统自动读取密码记录文件

   密码

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

reboot

df

解密
vim /etc/fstab

rm -fr /root/diskpass

umount /mnt

cryptsetup close westos

mkfs.xfs /dev/vdb1 -f

 9.raid 磁盘阵列

fdisk /dev/vdb

  新建3个1G分区并修改分区id为fd

mdadm -C /dev/md0 -a yes                -l 1  -n 2       -x 1    /dev/vdb{1..3}
       ^           ^                    ^      ^         ^
      建立         md0如果不存在自动建立  级别1 用两块硬盘  闲置一块

cat /proc/mdstat     #设备信息

mkfs.xfs /dev/md0

mount /dev/md0 /mnt

mdadm -D /dev/md0     #设备配置信息

mdadm /dev/md0 -f /dev/vdb2    #损坏设备2
mdadm /dev/md0 -r /dev/vdb2    #移除设备2
mdadm /dev/md0 -a /dev/vdb2    #恢复设备2
mdadm -S /dev/md0              #停止设备

fdisk /dev/vdb

partprobe

 

当一块设备损坏后另一块闲置设备将立刻顶替上去


10.磁盘配额
磁盘配额时限制用户向设备中写入数据的大小,或者个数,此这定针对与设备的

mount -o usrquota /dev/vdb1 /mnt    #激活配额功能参数

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

edquota -u student                  #设定student的配额

 nDisk quotas for user student (uid 1000):

   Filesystem                   blocks       soft       hard     inodes     soft     hard

   /dev/vdb1                         0          0      20480          0        0        0      (单位为k)


注:若为ext文件系统则还需要执行以下操作

    quotacheck -u /dev/vdb1  (ext文件系统)

    quotaon      -u /dev/vdb1  (ext文件系统)


切换到student用户检查/dev/vdb1是否被限额

dd if=/dev/zero of=/mnt/studentfile bs=1M    count=10        #当文件大小为10M时可以被写入

10+0 records in

10+0 records out

10485760 bytes (10 MB) copied, 0.332077 s, 31.6 MB/s


dd if=/dev/zero of=/mnt/studentfile bs=1M    count=30        #当文件大小为30M时超过配额则不能被写入

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

21+0 records in

20+0 records out

linux系统的分区管理(swap,raid,lvm等)_第5张图片

注:dd   if=/dev/zero               of=/mnt/studentfile bs=1M    count=10

  #截取 /dev/zero无限0字节里的数据 到/mnt/studentfile  大小是1M 数量10

              if=inputfile                  of=outputfile


开机自动激活配额

编辑/etc/fstab文件 写入/dev/vdb1 /pub xfs defaults,usrquota 0 0

vim /etc/fstab

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

如图所示

linux系统的分区管理(swap,raid,lvm等)_第6张图片

**************************lvm**************************


1.lvm (逻辑卷,可以让设备自由伸缩的一个设备管理软件)

pv     物理卷

vg     物理卷组

pe     物理拓展,lvm最小的存储单元

lvm    逻辑卷,时最终我们使用的可以伸缩的设备

2.lvm的制作

首先划分lvm所用到的设备,这些设备的功能id必须时linux LVM(8e)

pvcreate /dev/vdb1	        #把物理分区做成物理卷

vgcreate vg0 /dev/vdb1	        #用制作好的/dev/vdb1这个物理卷制作一个物理卷组vvg0

lvcreate -L 200M -n lv0 vg0	#在vg0这个组中建立出lv0设备 -L 指定设备大小 -n 指定设备名字

mkfs.xfs 或 mkfs.ext4           #格式化为xfs文件系统或ext文件系统

mount /dev/vg0/lv0 /mnt

监控命令

watch -n 1 'pvs;vgs;lvs;df -h /mnt'

pvs或pvdisplay	    #查看物理卷

vgs或vgdisplay	    #查看物理卷组

lvs或lvdisplay	    #对逻辑卷设备进行查看

制作好的lvm如图所示

linux系统的分区管理(swap,raid,lvm等)_第7张图片

3.lvm设备的扩大和缩减

***针对xfs文件系统***

xfs文件系统只能扩大不能缩减

1)lvm扩大

lvextend —L 500M /dev/vg0/lv0	#扩大lvm设备到500M

xfs_growfs	/dev/vg0/lv0	#扩大xfs文件系统到设备大小
linux系统的分区管理(swap,raid,lvm等)_第8张图片

2)若vg不够则先要扩大vg

pvcreate /dev/vdb2	        #在pv中增加一块设备/dev/vdb2

vgextend vg0 /dev/vdb2	        #把新建立的/dev/vdb2添加到vg0中

lvextend -L 1G /dev/vg0/lv0     #扩大lvm设备到1G

xfs_growfs /dev/vg0/lv0         #扩大xfs文件系统到设备大小

***针对ext文件系统***

ext文件系统可以扩大也可以缩减

1)lvm扩大

mkfs.ext4	                #格式化为ext文件系统

lvextend —L 2G /dev/vg0/lv0	#扩大lvm设备到2G

resize2fs /dev/vg0/lv0	        #设定文件系统大小和设备同步

2)vg扩大 

 pvcreate /dev/vdb3              #在pv中增加一块设备/dev/vdb3

 vgextend vg0 /dev/vdb3          #把新建立的/dev/vdb3添加到vg0中
linux系统的分区管理(swap,raid,lvm等)_第9张图片

 

3)lvm缩减

umount /dev/vg0/lv0	        #卸载设备,因为文件系统缩减不支持在线操作

e2fsck -f /dev/vg0/lv0	        #检测文件系统,确定文件系统中已有数据大小防止过度缩减

resize2fs  /dev/vg0/lv0  1000M	#把文件系统缩减到1000M

lvreduce  -L 1000M /dev/vg0/lv0 #设备缩减到1000M
linux系统的分区管理(swap,raid,lvm等)_第10张图片

4)vg缩减

vg缩减时只能缩减没有被占用的设备

pvmove	设备1 设备2	                #把设备1上的所有数据移动到设备2上

vgreduce	vg0	/dev/vdb1	#把vg0中的/dev/vdb1删除

pvremove	/dev/vdb1	        #把/dev/vdb1上的lvm管理信息删除
linux系统的分区管理(swap,raid,lvm等)_第11张图片

4.lvm快照

lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0	        #给/dev/vg0/lv0建立快照,-L 指定快照大小,-n指定快照名字 -s指定快照模板设备

mount /dev/vg0/lv0-backup /mnt

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

当快照设备里的数据被更改,如果想还原,删除快照设备,在重新建立快照即可

例如:

/dev/vg0/lv0中创建file{1..10}

创建快照

在快照中删除file{1..10}

删除快照再重新建立快照,则file{1..10}恢复

linux系统的分区管理(swap,raid,lvm等)_第12张图片

5.lvm删除

lvremove /dev/vg0/lv0backup

lvremove /dev/vg0/lv0

vgremove vg0

pvremove /dev/vdb{1..2}
lvm删除的顺序为:

lvremove---->vgremove----->pvremove

 



你可能感兴趣的:(linux系统的分区管理(swap,raid,lvm等))