一、Linux磁盘管理之GPT分区
硬盘分区表扫盲:MBR和GPT表
MBR全称为Master Boot Record
主引导记录,是传统的分区机制,应用于绝大多数使用BIOS的PC设备
   MBR+BIOS
MBR支持32位和64位系统。
  MBR支持分区数量有限。
MBR只支持不超过2T的硬盘,超过2T的硬盘将只能用2T空间(有第三方解决方法)。
GPT(GUID Partition Table)
  全局唯一标识分区表,是一个较新的分区机制,解决了MBR很多缺点。
  支持超过2T的磁盘(64位寻址空间)。fdisk最大只能建立2TB大小的分区,创建一个大于2TB的分区使用parted。
  向后兼容MBR。
必须在支持UEFI的硬件上才能使用(Intel提出,用于取代BIOS)。
GPT+UEFI
  必须使用64位系统。
  Mac、Linux系统都能支持GPT分区格式。
  Windows 7/8 64bit、Windows Server 2008 64bit支持GPT。
以上就是Linux系统MBR和GPT分区的区别,总得来说GPT比MBR更先进,但是MBR的兼容性比GPT要好。
在Linux系统中使用GPT分区格式(以CentOS 7为例):
parted用法和常用选项:
用法:parted [选项]... [设备 [命令 [参数]...]...] 
将带有“参数”的命令应用于“设备”。如果没有给出“命令”,则以交互模式运行. 
帮助选项:
-h, --help 显示此求助信息 
-l, --list 列出所有设别的分区信息
-i, --interactive 在必要时,提示用户 
-s, --script从不提示用户 
-v, --version显示版本
操作命令: 
检查 MINOR #对文件系统进行一个简单的检查 
cp [FROM-DEVICE] FROM-MINOR TO-MINOR #将文件系统复制到另一个分区
help [COMMAND]  #打印通用求助信息,或关于COMMAND的信息
mklabel 标签类型 #创建新的磁盘标签 (分区表) 
mkfs MINOR 文件系统类型 #在MINOR创建类型为“文件系统类型”的文件系统
mkpart 分区类型 [文件系统类型] 起始点 终止点  #创建一个分区 
mkpartfs 分区类型 文件系统类型 起始点 终止点 #创建一个带有文件系统的分区
move MINOR 起始点 终止点   #移动编号为 MINOR 的分区 
name MINOR 名称     #将编号为 MINOR 的分区命名为“名称”
print [MINOR]     #打印分区表,或者分区 
quit          #退出程序
rescue 起始点 终止点    #挽救临近“起始点”、“终止点”的遗失的分区
resize MINOR 起始点 终止点 #改变位于编号为 MINOR 的分区中文件系统的大小
rm MINOR         #删除编号为 MINOR 的分区
select 设备       #选择要编辑的设备
set MINOR 标志 状态     #改变编号为 MINOR 的分区的标志
操作实例:
(parted)表示在parted中输入的命令,其他为自动打印的信息
1、首先类似fdisk一样,先选择要分区的硬盘,此处为/dev/sdb:
2、选择了/dev/sdb作为我们操作的磁盘,接下来需要创建一个分区表(在parted中可以使用help命令打印帮助信息):
 
 (parted) mklabel 
New disk label type?  (我们要正确分区大于2TB的磁盘,应该使用gpt方式的分区表,输入gpt后回车)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?
Yes/No?(警告用户磁盘上的数据将会被销毁,询问是否继续,我们这里是新的磁盘,输入yes后回车) y
3、创建好分区表以后,接下来就可以进行分区操作了,执行mkpart命令,分别输入分区名称,文件系统和分区 的起止位置
4、分好区后可以使用print命令打印分区信息,下面是一个print的样例
 
5、如果分区错了,可以使用rm命令删除分区,比如我们要删除上面的分区,然后打印删除后的结果
(parted)rm 1  #rm后面使用分区的号码
(parted) print
 
6、按照上面的方法把整个硬盘都分好区,下面是一个分完后的样例
7、由于parted内建的mkfs还不够完善,所以完成以后我们可以使用quit命令退出parted并使用 系统的mkfs命令对分区进行格式化了,此时如果使用fdisk -l命令打印分区表会出现警告信息,这是正常的 
 
格式化
[root@localhost ~]#&4 /dev/sdb1
[root@localhost ~]#&4 /dev/sdb2
[root@localhost ~]#&4 /dev/sdb3
 
挂载:
[root@localhost ~]# mkdir /mnt/test1
[root@localhost ~]# mkdir /mnt/test2
[root@localhost ~]# mkdir /mnt/test3
[root@localhost ~]# mount /dev/sdb1 /mnt/test1
[root@localhost ~]# mount /dev/sdb2 /mnt/test2
[root@localhost ~]# mount /dev/sdb3 /mnt/test3
 
查看一下,已经挂载上了。
二、Linux系统把/home重新挂载到其他硬盘或分区
一开始没有做好规划,导致/home空间不足,再加上分区表不是GPT,导致无法扩展超过2T,因此需要重新划分一块更大的硬盘给/home。
1.把新挂载的4T硬盘进行分区和格式化
2.创建目录
sudo mkdir /media/home
3.把/dev/sdb1挂载到/media/home
sudo mount /dev/sdb1 /media/home
4.同步/home到/media/home,同步时间根据数据量大小决定,建议在系统空闲时操作
sudo rsync -aXS /home/. /media/home/.  //在这一步我进行实验的时候,对/orcl文件目录进行操作,报错skiping,经判断后采用cpr /orcl /orcl1,因为/orcl目录下还有其他子文件
5.同步完成后重命名/home
sudo mv /home /home_old
6.新建/home
sudo mkdir /home
7.取消/dev/sdb1挂载
sudo umount /dev/sdb1
8.重新挂载/dev/sdb1到home
sudo mount /dev/sdb1 /home
9.查看/dev/sdb1的UUID
blkid
10.把UUID复制下来,修改/etc/fstab文件,实现开机自动挂载
sudo gedit /etc/fstab
在文件最后添加如下内容:
# home 4T
UUID=8da46012-ab9c-434f-a855-2484112fd1a7 /home ext4 nodev,nosuid 0 2 
11.保存之后重启系统,查看分区的挂载情况
df –h
 
12.确认一切正常后删除/home_old
sudo rm -rf /home_old
至此,给/home增加空间的工作就完成了。
三、LVM XFS增加硬盘分区容量(resize2fs: Bad magic number in super-block while)
LVM XFS增加硬盘分区容量(resize2fs: Bad magic number in super-block while)
给某个硬盘增加分区之后
[root@Mysql01-213-66 ~]# df -h
Filesystem                            Size  Used Avail Use% Mounted on
/dev/mapper/vg_mysql0121366-LogVol02  7linux安装数据库.7G  2.6G  4.8G  36% /
tmpfs                                495M    0  495M  0% /dev/shm
/dev/sda1                            194M  29M  155M  16% /boot
/dev/mapper/vg_mysql0121366-LogVol01  8.0G  3.1G  5.0G  38% /data
这里增加/data大小
[root@Mysql01-213-66 ~]# fdisk -l /dev/sda
Disk /dev/sda: 40.8 GB, 40802189312 bytes
255 heads, 63 sectors/track, 4960 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000eb81f
  Device Boot      Start        End      Blocks  Id  System
/dev/sda1  *          12620480083  Linux
Partition 1 does not end on cylinder boundary.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。