一、MBR主引导记录
MBR有512个字节,分为三个部分:第一部分446个字节,存储了引导分区;第二部分64字节为分区表;第三部分2个字节结束符;
每个分区需16个字节,所以MBR的模式下只能划分4个主分区或3个主分区和扩展分区;主分区可以直接使用,扩展分区不能直接使用,在扩展分区上划分逻辑分区再使用;
[root@clz ~]# cat /proc/partitions major minor #blocks name 2 0 4 fd0 8 0 20971520 sda 8 1 512000 sda1 8 2 20458496 sda2 11 0 3655680 sr0 253 0 18358272 dm-0 253 1 2097152 dm-1
二、GPT
GPT可以记录128个主分区;
三、使用命令管理磁盘分区
1、fdisk命令
使用fdisk划分磁盘,默认会划分为MBR格式的磁盘:
fdisk -l 查看当前的磁盘和分区情况:
[root@clz ~]# 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 0xac4a9d92.
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-10485759, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759): +1G Partition 1 of type Linux and of size 1 GiB is set Command (m for help): p Disk /dev/sdb: 5368 MB, 5368709120 bytes, 10485760 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: 0xac4a9d92 Device Boot Start End Blocks Id System /dev/sdb1 2048 2099199 1048576 83 Linux
只能划分四个主分区,如果要划分多余四个分区,则需要在第四个分区创建扩展分区,在扩展分区上创建逻辑分区:
Device Boot Start End Blocks Id System /dev/sdb1 2048 2099199 1048576 83 Linux /dev/sdb2 2099200 4196351 1048576 83 Linux /dev/sdb3 4196352 6293503 1048576 83 Linux /dev/sdb4 6293504 10485759 2096128 5 Extended /dev/sdb5 6295552 6500351 102400 83 Linux
有*标识代表的是启动分区:
Device Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 41943039 20458496 8e Linux LVM
分区类型,使用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 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
2、gdisk命令
使用gdisk划分磁盘,默认划分为GPT格式的磁盘
[root@clz ~]# gdisk /dev/sdb GPT fdisk (gdisk) version 0.8.6 Partition table scan:
Command (? for help): n Partition number (1-128, default 1): First sector (34-10485726, default = 2048) or {+-}size{KMGTP}: Last sector (2048-10485726, default = 10485726) or {+-}size{KMGTP}: +1G Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): 8e00 Changed type of partition to 'Linux LVM'
Command (? for help): p Disk /dev/sdb: 10485760 sectors, 5.0 GiB Logical sector size: 512 bytes Disk identifier (GUID): DFDD30F8-C2A3-45BE-95B0-37A2CABBCF89 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 10485726 Partitions will be aligned on 2048-sector boundaries Total free space is 8388541 sectors (4.0 GiB) Number Start (sector) End (sector) Size Code Name 1 2048 2099199 1024.0 MiB 8E00 Linux LVM
3、parted命令:可以自行选择划分格式
parted命令可以将MBR结构修改为GPT结构,但是要慎重,因为分区表会丢失:
[root@clz ~]# parted /dev/sdb GNU Parted 3.1 Using /dev/sdb 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
使用mklabel转换分区类型:
(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/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
4、使用mkfs给分区设置文件系统:
[root@clz ~]# mkfs -t xfs /dev/sdb1 meta-data=/dev/sdb1 isize=256 agcount=4, agsize=6400 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 data = bsize=4096 blocks=25600, 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
指定block size大小:
[root@clz ~]# mkfs.xfs -b size=1024 /dev/sdb2 meta-data=/dev/sdb2 isize=256 agcount=4, agsize=25600 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 data = bsize=1024 blocks=102400, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal log bsize=1024 blocks=2564, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
挂载分区到文件系统:
[root@clz ~]# mkdir /aa [root@clz ~]# mount /dev/sdb1 /aa [root@clz ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/rhel-root 18G 12G 5.8G 68% / devtmpfs 485M 0 485M 0% /dev tmpfs 494M 84K 494M 1% /dev/shm tmpfs 494M 7.1M 487M 2% /run tmpfs 494M 0 494M 0% /sys/fs/cgroup /dev/sda1 497M 120M 377M 25% /boot /dev/sdb1 97M 5.2M 92M 6% /aa
可以使用xfs_info查看文件系统信息:
[root@clz ~]# xfs_info /aa meta-data=/dev/sdb1 isize=256 agcount=4, agsize=6400 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 data = bsize=4096 blocks=25600, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal bsize=4096 blocks=853, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
使用xfs_admin查看分区的blkid:
[root@clz ~]# xfs_admin -u /dev/sdb1 UUID = 927317a3-92b9-4b6f-8696-30fe0dc26ac0
也可以使用blkid查看:
[root@clz ~]# blkid /dev/sda1: UUID="64d32c15-8708-44a2-893a-a437c0f43156" TYPE="xfs" /dev/sda2: UUID="4Ice1U-52dB-jxhY-80pW-vWus-rv1n-MVBJQ5" TYPE="LVM2_member" /dev/sdb1: UUID="927317a3-92b9-4b6f-8696-30fe0dc26ac0" TYPE="xfs" PARTLABEL="Linux filesystem" PARTUUID="2e1d4a03-14f5-4611-9267-c6b89e502dc9" /dev/sdb2: UUID="102aa312-7b59-49fe-a924-520e20ef7a51" TYPE="xfs" PARTLABEL="Linux filesystem" PARTUUID="0c755c32-4c27-404d-9faa-fd86d4370b0e" /dev/sr0: UUID="2014-05-07-03-58-46-00" LABEL="RHEL-7.0 Server.x86_64" TYPE="iso9660" PTTYPE="dos" /dev/mapper/rhel-root: UUID="6e18526c-e4fa-4854-adcd-d2e463a53bf9" TYPE="xfs" /dev/mapper/rhel-swap: UUID="b4476c9f-7681-48d8-8cba-3904f4ebce61" TYPE="swap"
一个分区如果不格式的话,没有文件系统那么就不会有UUID:
可以使用xfs_admin -U修改分区的UUID:
[root@clz ~]# uuidgen 292e2919-11fa-4f1c-8006-4a506095d377 [root@clz ~]# xfs_admin -U 292e2919-11fa-4f1c-8006-4a506095d377 /dev/sdb2 Clearing log and setting UUID writing all SBs new UUID = 292e2919-11fa-4f1c-8006-4a506095d377
xfs文件系统大小可以增加,但是不能减少
Swap交换分区,类似于Windows的虚拟内存:
就是利用磁盘里面的一部分空间,来模拟内存:
1、使用分区;
2、创建文件;
查看Swap分区:
[root@clz ~]# cat /proc/swaps FilenameTypeSizeUsedPriority /dev/dm-1 partition20971484620-1
使用mkswap命令修改分区为swap文件系统:
使用Swapon 和 Swapoff 启用或关闭swap分区:
创建文件作为swap分区:
[root@clz ~]# #dd if=/dev/zero of=swapfile bs=1M count=200