LINUX系统如何使用大于2T的磁盘分区

来源:互联网 发布:windows insider blog 编辑:程序博客网 时间:2024/05/04 05:20

本周伊始,检查并更换公司备份服务器周备份硬盘,发现一块2T大小的磁盘空间消耗殆尽。检查上周日的增量备份,发现数据备份完整,并无缺失,且空间属于正常增长。于是火速于一供货商处购得一3T硬盘,做为今后的备份磁盘之用。

     由于事发突然,供货商答应最早于早上七点将新硬盘送到,而公司大部分服务器是晚上9点之后开始自动备份的,也就是说要在两个小时内搞定磁盘问题。

  之前从未处理过2T容量以上的磁盘问题,所以在3T磁盘送到之前,彩的通常的处理手段,做好两手准备,一是取得现有2T磁盘的目录结构,并将其移植到将来的新磁盘上去,二是保证本周换上去的2T磁盘能正常使用,以防新磁盘在安装使用的过程中出现问题,首先保证数据安全

     抓取现有的目录结构可以用如下方法:

   假设备份盘挂载在/bak目录下面

   # find /bak -maxdepth 3  -type d > /tmp/dir.txt 

             如是,便可抓取/bak目录下3层子目录的目录结构。

   当新磁盘挂载上来时,执行如下脚本便可完成目录移植:

            正常情况下,这一切到些为止就搞定了。但当新硬盘19点准时送到后,将期重新分区格式化之后,挂载到对就目录下时,#df -h 查看发现,只有2T空间可用,这时真正的问题点才刚刚出现。这时候上网查资料,发现了下面这篇神文,与君共勉。    由于MBR分区表只支持2T磁盘,所以大于2T的磁盘必须使用GPT分区表,具体方法如下:

  GPT格式的磁盘相当于原来MBR磁盘中原来保留4个partition table的4*16个字节,只留第一个16个字节,类似于扩展分区,真正的partition table在512字节之后,GPT磁盘没有四个主分区的限制。

  但fdisk不支持GPT,我们可以使用parted来对GPT磁盘操作

  parted功能很强大,既可用命令行也可以用于交互式

  a)。在提示符下输入parted就会进入交互式模式,如果有多个磁盘的话,我们需要运行select sdx x为磁盘,来进行磁盘的选择

  代码

  parted>

  parted>select sdb                假设磁盘为sdb (经检测,直接用parted进入交互模式会默认选择sda,再select别的磁盘无效,所以可以直接用:parted sdc进入交互模式

  parted>mklabel gpt               将MBR磁盘格式化为GPT

  #parted>mklabel msdos             将GPT磁盘转化为MBR磁盘

  parted>mkpart primary 0 100      划分一个起始位置为0,大小为100M的主分区

  parted>mkpart primary 100 200    划分一个起始位置为100M,大小为100M的主分区

  #parted>mkpart primary 0 -1       将整块磁盘分成一个分区(本次使用的是这个方式)

  parted>print                     打印当前分区

  parted>quit                      退出

  parted的更多命令:

  代码

  check NUMBER                             do a simple check on the file system

  cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another partition

  help [COMMAND]                           prints general help, or help on

  COMMAND

  mklabel LABEL-TYPE                       create a new disklabel (partition

  table)

  mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on

  partititon NUMBER

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

  mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system

  move NUMBER START END                    move partition NUMBER

  name NUMBER NAME                         name partition NUMBER as NAME

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

  partition, or all devices

  quit                                     exit program

  rescue START END                         rescue a lost partition near START

  and END

  resize NUMBER START END                  resize partition NUMBER and its file

  system

  rm NUMBER                                delete partition NUMBER

  select DEVICE                            choose the device to edit

  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                                  displays the current version of GNU

  在parted里边不支持ext3的文件系统,所以如果要使用的话,要退出parted进行格式话

  代码

  mkfs.ext3 /dev/sdx1

  因为fdisk是不支持GPT磁盘,所以不要使用fdisk -l来查看X磁盘刚才分好的区,看不到的。

  b).命令行的模式:

  将硬盘转化为GPT磁盘后,执行下列命令

  代码

  parted /dev/sdx mkpart primary 0 100   划分一个起始位置为0大小为100M的主分区

原文地址:http://wurhuangfeng.blog.163.com/blog/static/3517824120120610120525/

  我们今天的一系列交互式操作可以转化为如下一条命令:

  parted /dev/sdc mkpart primary 0 -1  将新换的一整块3T大小的硬盘sdc分到一个区里面,系统会提示这样不利于发挥高性能,但是也没有办法(请注意该命令结尾是一个0和一个负1)。

 

  经过上述步骤,会产生一个sdc1分区,将其格式化挂载后,再查看,显示2.7T可用,一切正常了。

 

事件反思:

  其实在本次事件发生前一到两周就应该预判到磁盘空间不足的问题,每次检查备份,只把重点放在了对应服务器的是否产生备份,是否出现在正确的位置,而却忽略了容量问题。

  另外一个问题是在解决问题前,对问题点预判不足。例如没有意识了MBR有一个2T容量的制约。不过此次还好,对突出状况的应对还算及时,没有耽误太长时间。

  每一次问题的出现,都深深的暴露一个不足之处,解决一个问题便是一次学习,一次进步,一次成长。今后必定还会有这样那样的问题,努力做到不二过,一步一脚印,再踏实一点。