当前位置: > Linux教程 > 系统运维 >

linux分区知识与大磁盘的分区注意事项

时间:2016-04-06 15:42来源:linux.it.net.cn 作者:IT
      目前我们可以接触到的大部分pc依然采用上世纪遗传下来的 BIOS + MBR 组合。 BIOS,基本输入输出系统 (Basic Input-Output System),是软件与硬件之间的一个接口,可以把它看作一个翻译在中文与英语之间,虽然两者完全不同,不过可以让大家了解 BIOS 所处的位置,BIOS 通常被写入一块 ROM 芯片连接在主板上,当然也有直接写入北桥的,不过相当少见。 BIOS 几乎是完全用汇编语言编写,很大程度上决定了主板的性能及稳定性。
MBR,主引导记录 (Master Boot Record),也就是我们常见的分区方法,不过管理员外的最终用户很少知道它的存在,MBR 分区的标准决定了 MBR 只支持在2TB以下 (超过 2TB 的只能管理 2TB) 的硬盘中创建4个分区表项,要获得更多分区,需要次级结构扩展分区。扩展分区可以再次被分成一个或多个逻辑磁盘,也就是普通情况下的C盘以外的盘,或说第一个分区以外的部分,有些情况下 Windows 里的C盘可能会是一个逻辑分区。
EFI,可扩展固件接口 (Extensible Firmware Interface),由英特尔 (Intel) 公司提出的一种替代 BIOS 的升级方案。 EFI 的位置很特殊,它不像是 BIOS 那样自己即是固件又是接口,EFI 只是一个接口,位于操作系统与平台固件之间,感觉像是公司、CEOCEO秘书之间的关系一样,由CEO (操作系统) 下任务,CEO秘书 (EFI) 负责把任务分配下发到公司各部门经理 (平台固件),经理们又把任务下发到具体的小组 (各类硬件) 去完成。
GPT ,全局唯一标识磁盘分区表 (GUID Partition Table)GUID,全局唯一标识符 (Globally Unique Identifier) GUID 分区表 (GPT) 是作为 Extensible Firmware Interface (EFI) 计划的一部分引入的。当然,你也可以在 BIOS PC中使用 GPT 分区,虽然 GPT 来自以 EFI 计划,但并不依赖于 EFIGPT 相对于以往 PC 普遍使用的主引导记录 (MBR) 分区方案更加灵活。比如可以超过 MBR 分区表项4个的限制,在 GPT 规范里对分区的数量几乎是没有限制的,大家在网上可以查到的128个实际上是 Windows 系统 (支持 GPT Windows) 做出的限制。 GPT 对可管理磁盘大小也超过了 MBR 2TB (1TB = 1024GB) 而达到了 18EB (1EB = 1024TB) 。在 MBR 分区方案中操作系统的引导是通过放在磁盘最开始 (第一扇区) 里的 MBR (这里的 MBR 是指主引导记录,而不是主引导记录分区方案,两者是同名的。我的猜测是为了与 GPT 分区方案区分,使用了主引导记录引导方式的名字 MBR 来命名此种分区方案,我查不到确切的资料正明我的猜测是否正确,只能大家努力区分一下了。) 。把重要的信息 (如分区信息、目录等) 放在某个扇区里是 MBR 分区方案的方法,而 GPT 把这个信息放到了分区里,Intel的解释是这样可以更加明确更加安全。 GPT 分区为了保护自己不受 MBR 方案下磁盘管理软件的危害,在磁盘的最开始位置 (第一个扇区) 建立了一个保护分区 (Protective MBR),这种分区的类型标识为 0xEE。苹果系统 (Mac OS X) 下这个保护分区大小为 200MB,这个分区在 Window NT 磁盘管理器里名字叫做 GPT 保护分区。这个分区可以让不能识别 GPT 的磁盘管理软件把 GPT 磁盘看成一个未知格式的分区,而不是错误地当成一个未分区的磁盘。

文件系统限制:
以下信息出自:维基百科
ext3
块尺寸最大文件尺寸最大文件系统尺寸
1KiB 16GiB 2TiB
2KiB 256GiB 8TiB
4KiB 2TiB 16TiB
8KiB 16TiB 32TiB
ext4
Extents
    ext4
引进了Extent档案储存方式,以取代ext2/3使用的block mapping方式。Extent指的是一连串的连续实体block,这种方式可以增加大型档案的效率并减少分裂档案。ext4支援的单一Extent,在单一block4KB的系统中最高可达128MB[1]。单一inode中可储存4Extent;超过四笔的Extent会以Htree方式被索引。
最大文件尺寸 16 TiB (for 4k block filesystem)
最大卷容量 1 EiB
xfs

最大可支持的文件大小为263 = 9 x 1018 = 9 exabytes,最大文件系统尺寸为18 exabytes
ReiserFS
最大文件尺寸 8 TiB
最大卷容量 16 TiB

大于2T的磁盘分区方法
由于MBR分区表只支持2T磁盘,所以大于2T的磁盘必须使用GPT分区表,具体方法如下:
GPT格式的磁盘相当于原来MBR磁盘中原来保留4partition table4*16个字节,只留第一个16个字节,类似于扩展分区,真正的partition table512字节之后,GPT磁盘没有四个主分区的限制。
fdisk不支持GPT,我们可以使用parted来对GPT磁盘操作。
parted功能很强大,既可用命令行也可以用于交互式
在提示符下输入parted就会进入交互式模式,如果有多个磁盘的话,我们需要运行select sdx x为磁盘,来进行磁盘的选择

Java代码

  1. parted>   
  2. parted>select sdb                假设磁盘为sdb   
  3. parted>mklabel gpt               MBR磁盘格式化为GPT   
  4. #parted>mklabel msdos             GPT磁盘转化为MBR磁盘   
  5. parted>mkpart primary 0 100      划分一个起始位置为0,大小为100M的主分区   
  6. parted>mkpart primary 100 200    划分一个起始位置为100M,大小为100M的主分区   
  7. #parted>mkpart primary 0 -1       将整块磁盘分成一个分区   
  8. parted>print                     打印当前分区   
  9. parted>quit                      退出  
parted>
parted>select sdb                假设磁盘为sdb
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的更多命令:

Java代码

  1. check NUMBER                             do a simple check on the file system   
  2.   cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another partition   
  3.   help [COMMAND]                           prints general help, or help on   
  4.         COMMAND   
  5.   mklabel LABEL-TYPE                       create a new disklabel (partition   
  6.         table)   
  7.   mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on   
  8.         partititon NUMBER   
  9.   mkpart PART-TYPE [FS-TYPE] START END     make a partition   
  10.   mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system   
  11.   move NUMBER START END                    move partition NUMBER   
  12.   name NUMBER NAME                         name partition NUMBER as NAME   
  13.   print [free|NUMBER|all]                  display the partition table, a   
  14.         partition, or all devices   
  15.   quit                                     exit program   
  16.   rescue START END                         rescue a lost partition near START   
  17.         and END   
  18.   resize NUMBER START END                  resize partition NUMBER and its file   
  19.         system   
  20.   rm NUMBER                                delete partition NUMBER   
  21.   select DEVICE                            choose the device to edit   
  22.   set NUMBER FLAG STATE                    change the FLAG on partition NUMBER   
  23.   toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition   
  24.         NUMBER   
  25.   unit UNIT                                set the default unit to UNIT   
  26.   version                                  displays the current version of GNU  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进行格式话

Java代码

  1. mkfs.ext3 /dev/sdx1  mkfs.ext3 /dev/sdx1
    因为fdisk是不支持GPT磁盘,所以不要使用fdisk -l来查看X磁盘刚才分好的区,看不到的。
    命令行的模式:将硬盘转化为GPT磁盘后,执行下列命令

Java代码

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



(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容