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

xiaoxiao2021-02-28  28

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更准确

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    #将只读挂载转换为读写挂载

 

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           查看系统可以使用的分区

 

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

 

 

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

注: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

如图所示

**************************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如图所示

3.lvm设备的扩大和缩减

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

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

1)lvm扩大

lvextend —L 500M /dev/vg0/lv0 #扩大lvm设备到500M xfs_growfs /dev/vg0/lv0 #扩大xfs文件系统到设备大小

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中

 

3)lvm缩减

umount /dev/vg0/lv0         #卸载设备,因为文件系统缩减不支持在线操作 e2fsck -f /dev/vg0/lv0         #检测文件系统,确定文件系统中已有数据大小防止过度缩减 resize2fs /dev/vg0/lv0 1000M #把文件系统缩减到1000M lvreduce -L 1000M /dev/vg0/lv0 #设备缩减到1000M

4)vg缩减

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

pvmove 设备1 设备2                 #把设备1上的所有数据移动到设备2上 vgreduce vg0 /dev/vdb1 #把vg0中的/dev/vdb1删除 pvremove /dev/vdb1         #把/dev/vdb1上的lvm管理信息删除

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}恢复

5.lvm删除

lvremove /dev/vg0/lv0backup lvremove /dev/vg0/lv0 vgremove vg0 pvremove /dev/vdb{1..2}lvm删除的顺序为:

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

 

转载请注明原文地址: https://www.6miu.com/read-2625021.html

最新回复(0)