如果你很有錢,有一顆超過 2T 的硬碟,就會遇到不少麻煩。其中之一是 partition。Dos 的 partition table 格式不支援超過 2T 的 partition。
我不知道其它的 OS 怎麼解決的,不過在 Linux 下可以改用 GPT,而你要用 parted 這支程式幫你切 partition:
parted /dev/sdX mklabel gpt
parted /dev/sdX mkpart primary 0% 100%
在你跑 mkfs 之前請先注意 kernel 是否有支援 GPT (CONFIG_EFI_PARTITION),否則 mkfs 會很快樂地跑完並且把 partition table 搞爛,然後你只要重開機,partition 就無法 mount 了…
B.5.1. 为 IA-64 准备分区
partman 是安装程序的缺省分区工具。它管理一系列分区以及挂载点,来保证磁盘和文件系统对于成功的安装来说具有有合适的配置。实际上它使用的是 parted 来进行磁盘分区的。
EFI 能够识别的格式
IA64 EFI 固件支持 GPT 和 MS-DOS 两种分区表(或者磁盘标记)格式。MS-DOS 格式通常用在 i386 PC 上,并且对于 IA64 系统来说并不合适推荐使用。尽管安装程序同时提供了 cfdisk,您应该只采用 parted,因为只有它能够同时正确地管理 GPT 和 MS-DOS 分区表。
partman 自动分区方案会分配一个 EFI 分区作为磁盘上的第一个分区。您也可以在主菜单下选择 Guided partitioning 配置分区。其方法类似设置一个 交换 分区。
partman 分区工具将掌握大部分的磁盘布局。对于那些需要手工设置磁盘的罕见例子,您可以按照上面方法采用 shell 并且直接运行 parted 工具下的明令行界面。比如您想擦除您的整个硬盘并且创立一个 GPT 分区表以及一些分区,则可以才采用类似下面命令的方法:
mklabel gpt
mkpartfs primary fat 0 50
mkpartfs primary linux-swap 51 1000
mkpartfs primary ext2 1001 3000
set 1 boot on
print
quit
这里创建了一个新的分区表,以及三个分区分别用做 EFI 引导分区,交换空间以及一个根文件系统。最后它设置了 EFI 分区的引导标记。分区将用兆字节,以及起始和结束位置到磁盘开始的偏移量来表示。因此,比如在上面我们在到磁盘开始处偏移量为 1001MB 的地方开始创建了一个 1999MB ext2 文件系统。注意采用 parted 格式化交换分区,可能要花一些时间来完成,因为它可能要扫描坏区。
B.5.2. 启动引导器分区要求
ELILO 作为一种 ia64 启动引导器需要一个含有 FAT 文件系统的分区。且此分区标记为 boot。分区必须足够大以便能够放入启动引导器,您想引导的内核以及 RAMdisks 内存磁盘镜像。最小的尺寸大概有 20MB,但是如果您想使用多个内核的话,128MB 也许更好。
因为 EFI Boot Manager 以及 EFI Shell 完全支持 GPT 表格所以引导分区不需要一定是第一个分区,甚至可以不在本地磁盘上。这样方便您在格式化磁盘上的其它分区后再决定。partman 分区程序将在设置 root 分区时会同时检查一个 EFI 分区。这样您就有机会在开始安装软件包之前检查磁盘的布局。纠正这个问题的最简单的方法,是在最后一个分区末尾留下足够的磁盘空间,来加入一个 EFI 分区。
强烈建议您把 EFI 引导分区和 root 文件系统分配在同一个磁盘上。
B.5.3. EFI 诊断分区
对于在大多数 x86 PCs 上常见的 BIOS 来说,EFI 固件明显要复杂的多。一些系统制造商利用 EFI 的优点从硬盘文件系统来访问文件以及运行程序以保存一些诊断信息和 EFI 的系统管理工具。这将在系统磁盘上存在一个分开的 FAT 文件系统。请查阅随机相关的系统文档和附件以获得细节。最轻松设置一个诊断分区的时候是在设置 EFI 引导分区的时候
目前在业界,也只有使用GPT了。
我们freebsdchina 的大牛 dephij 给出的建议:
QUOTE:
原文由 dephij 撰写
gpt在x86上相当稳定。
不过我们的实际经验,这样大的FS (超过1TB)在盘阵出现磁盘物理损坏时的抗毁能力不很强。如果你的系统运行下列应用之一:
- 海量下载服务
- 繁忙的邮件服务
(特征是:读写操作量基本一样多,并且主要是随机访问)
则应使用gpt,或在gpt基础上用bsdlabel来划分label,分成500G以下的分区,这意味着在出现问题的时候能够迅速恢复。
关于"在gpt基础上用bsdlabel来划分label,分成500G以下的分区" ,你在linux,可以用 "在gpt基础上划成一个扩展分区,在扩展分区上分若干个逻辑分区"来代替,假如 扩展分区 能用 GPT的话(具体请自行查询/试验)。
给你篇使用FreeBSD 的上海朋友使用GPT的例子(文尾给出的3个帖子链接,一定要看):
刚在 本站的 linux集群 区 看到一篇类似的帖子,最后也是归结到用GPT。
<<求助..谁知道在linux下>>
阅读(4194) | 评论(0) | 转发(0) |