rhel7磁盘管理

 一、MBR主引导记录
        MBR有512个字节,分为三个部分:第一部分446个字节,存储了引导分区;第二部分64字节为分区表;第三部分2个字节结束符;每个分区需16个字节,所以MBR的模式下只能划分4个主分区或3个主分区和扩展分区;主分区可以直接使用,扩展分区不能直接使用,在扩展分区上划分逻辑分区再使用;
[root@wk ~]# cat /proc/partitions 
major minor  #blocks  name
 
   8       16   20971520 sdb
   8        0   26214400 sda
   8        1    1024000 sda1
   8        2   18432000 sda2
   8        3    1024000 sda3
  11        0    3655680 sr0
二、GPT
GPT可以记录128个主分区;
三、使用命令管理磁盘分区
1、fdisk命令
使用fdisk划分磁盘,默认会划分为MBR格式的磁盘
fdisk -l 查看当前的磁盘和分区情况:
[root@wk ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
 
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
 
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x39c77fae.
 
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
  u  change display/entry units
  v  verify the partition table 
  w  write table to disk and exit    退出并保存,然后使用partprobe或partx /dev/sdX刷新 
  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): p
Partition number (1-4, default 1): 
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +2G
Partition 1 of type Linux and of size 2 GiB is set

Command (m for help):p
 Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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: 0x39c77fae
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
 
Command (m for help): 
 只能划分四个主分区,如果要划分多余四个分区,则需要在第四个分区创建扩展分区,在扩展分区上创建逻辑分区:
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    12584959     2097152   83  Linux
/dev/sdb4        12584960    41943039    14679040    5  Extended
/dev/sdb5        12587008    16781311     2097152   83  Linux
[root@wk ~]# fdisk -l /dev/sda
有*标识代表的是启动分区:
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2050047     1024000   83  Linux
/dev/sda2         2050048    38914047    18432000   83  Linux
/dev/sda3        38914048    40962047     1024000   82  Linux swap / Solaris
分区类型,使用t命令可以修改分区的类型:
Command (m for help): 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    
....省略

2、gdisk命令
使用gdisk划分磁盘,默认划分为GPT格式的磁盘

[root@wk ~]# gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.6
 
Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present
 
Creating new GPT entries.
 
Command (? for help): 
使用方法与fdisk基本相同,这里不在复述。 

3、parted命令:可以自行选择划分格式 
parted命令可以将MBR结构修改为GPT结构,但是要慎重,因为分区表会丢失:

[root@wk ~]# parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help------------查看下帮助吧,不常用记不住。                                                                 

使用mklabel转换分区类型:
aix    amiga  bsd    dvh    gpt    loop  mac    msdos  pc98  sun 
 (parted) mklabel

New disk label type? gpt                                                  
(parted)                                                                  
Command (m for help): w
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
Syncing disks.
[root@wk ~]# partprobe    或     [root@wk ~]# partx -a
4、使用mkfs给分区设置文件系统:
[root@wk ~]# mkfs -t xfs /dev/sdb1
meta-data=/dev/sdb1              isize=256    agcount=4, agsize=131072 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=524288, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
指定block size大小:

[root@wk ~]# mkfs.xfs -b size=1024 /dev/sdb2

挂载分区到文件系统:

[root@wk ~]# mkdir /aa
[root@wk ~]# mount /dev/sdb1 /aa
[root@wk ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        18G   14G  3.8G  79% /
devtmpfs        482M     0  482M   0% /dev
tmpfs           490M     0  490M   0% /dev/shm
tmpfs           490M  6.9M  484M   2% /run
tmpfs           490M     0  490M   0% /sys/fs/cgroup
/dev/sda1       997M  123M  875M  13% /boot
/dev/sdb1       2.0G   33M  2.0G   2% /aa

可以使用xfs_info查看文件系统信息:

[root@wk ~]# xfs_info /aa
meta-data=/dev/sdb1              isize=256    agcount=4, agsize=131072 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=524288, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
使用xfs_admin查看分区的blkid:
[root@wk ~]# xfs_admin -u /dev/sdb1
UUID = 12d99538-2241-42b0-b873-6406266cc8e2
也可以使用blkid查看:
[root@wk ~]# blkid
/dev/sdb1: UUID="12d99538-2241-42b0-b873-6406266cc8e2" TYPE="xfs" PARTUUID="e71103e9-668d-444b-bc96-70501467cc43" 
/dev/sdb2: UUID="9a951c66-78e1-416e-aa0e-7d41a55efc6d" TYPE="xfs" PARTUUID="38a4a2ea-2571-419d-b80f-8ea801f4291e" 
/dev/sda1: UUID="7dfc741a-395f-46d9-ba69-a037f24ae107" TYPE="xfs" 
/dev/sda2: UUID="82934945-3802-4f45-ada3-1d43f0b2a1c5" TYPE="xfs" 
/dev/sda3: UUID="6dde9ce3-2757-4c88-b082-5665daa2d584" TYPE="swap" 
/dev/sr0: UUID="2014-05-07-03-58-46-00" LABEL="RHEL-7.0 Server.x86_64" TYPE="iso9660" PTTYPE="dos" 
一个分区如果不格式的话,没有文件系统那么就不会有UUID:
可以使用xfs_admin -U修改分区的UUID:
[root@wk ~]# uuidgen  
292e2919-11fa-4f1c-8006-4a506095d377 
[root@wk ~]# xfs_admin -U 292e2919-11fa-4f1c-8006-4a506095d377 /dev/sdb1 
Clearing log and setting UUID 
writing all SBs 
new UUID = 292e2919-11fa-4f1c-8006-4a506095d377
xfs文件系统大小可以增加,但是不能减少

Swap交换分区,类似于Windows的虚拟内存:
就是利用磁盘里面的一部分空间,来模拟内存:
  1、使用分区;
  2、创建文件;
查看Swap分区:

[root@wk ~]# cat /proc/swaps 
Filename Type Size Used Priority
/dev/sda3                               partition 1023996 0 -1
命令t修改分区为swap格式:
Command (m for help): t
Selected partition 1
Partition type (type L to list all types): 14
Changed type of partition 'EFI System' to 'Linux swap'
格式化swap分区:
[root@wk ~]# mkswap /dev/sdb1
mkswap: /dev/sdb1: warning: wiping old xfs signature.
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=b633a131-d314-487b-b1f8-a5516626c081
使用Swapon 和 Swapoff 启用或关闭swap分区:
[root@wk ~]# swapon /dev/sdb1
[root@wk ~]# free
             total       used       free     shared    buffers     cached
Mem:       1003456     420340     583116       7020       1328     138184
-/+ buffers/cache:     280828     722628
Swap:      2072568          0    2072568
[root@wk ~]# swapoff /dev/sdb1
[root@wk ~]# free
             total       used       free     shared    buffers     cached
Mem:       1003456     419936     583520       7020       1324     138220
-/+ buffers/cache:     280392     723064
Swap:      1023996          0    1023996
 
创建文件作为swap分区:
[root@wk ~]# dd if=/dev/zero of=/swapfile bs=1M count=200
[root@wk ~]# mkswap /swapfile 
Setting up swapspace version 1, size = 204796 KiB
no label, UUID=630ac3d6-94fd-4b68-8148-00f0b780bb2d
[root@wk ~]# chmod 0600 /swapfile
[root@wk ~]# swapon /swapfile
[root@wk ~]# free
             total       used       free     shared    buffers     cached
Mem:       1003456     630596     372860       7016       1328     343160
-/+ buffers/cache:     286108     717348
Swap:      1228792          0    1228792
[root@wk ~]# swapoff /swapfile 
[root@wk ~]# free
             total       used       free     shared    buffers     cached
Mem:       1003456     630556     372900       7016       1328     343160
-/+ buffers/cache:     286068     717388
Swap:      1023996          0    1023996

最后,记得在 /etc/fstab中添加相应参数

[root@wk ~]# cat /etc/fstab 
 
#
# /etc/fstab
# Created by anaconda on Fri Jan  1 11:14:17 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=82934945-3802-4f45-ada3-1d43f0b2a1c5 /                       xfs     defaults        1 1
UUID=7dfc741a-395f-46d9-ba69-a037f24ae107 /boot                   xfs     defaults        1 2
UUID=6dde9ce3-2757-4c88-b082-5665daa2d584 swap                    swap    defaults        0 0
这部分就不介绍了,查一下吧。 
 

上一篇:一次关于()=>({})的使用


下一篇:ZJOI 2019 划水记