OSX 合并分区

一月 26th, 2008 | Posted by Benny Wen in 长篇小论

上午还在抱怨OS X的磁盘工具似乎有bug,添加和删除分区后分区和未分配空间无法按照顺序排列,没有办法按照帮助说明里面的方法把分出的区合并到一个启动分区里面,下午就找到了方法。事实上在OS X里面分区实在是一件没有必要的事情,除非是升级想通过磁盘安装,似乎只有ppc处理器的机器安装的时候没有办法用usb启动移动硬盘,猜想没有光驱的Macbook Air也可能有这样的问题,其他情况下实在没有必要进行分区处理,分区只是Windows留下来的怪病,事实上家里的pc也只有三个分区,一个系统区,一个资料区和一个共享区。分太多的区实际上只能造成磁盘的浪费。

在网上搜了不少资料,没有多少中文的介绍,或者介绍的很模糊,而且多半是因为在pc上安装OS X,因为硬件的问题,合并分区的时候造成的错误或者数据的丢失,很多论坛里面关于分区的介绍都是慎重,慎重,慎重。那么是不是这么复杂和风险巨大呢?我是做小白鼠做惯了,自己试试好了。由于很多人都习惯在图形界面里面操作,这里把步骤写的详细点,让那些对命令行不熟悉的人更好的了解操作步骤。

首先在用Finder在应用程序=》实用工具=》下面找到终端,这个相当于windows下面的cmd,一个命令行操作的界面,可以试想这里是pc下面的dos,只是命令是不同的,在这个终端里面就可以进行命令操作了。因为第一次使用diskutil mergePartitions命令错误,所以给出下面的提示,正好对这个命令不熟悉,给我们一个学习的机会,对关键部分解释一下,可以更好的理解。

Disk Utility Tool
Usage:  diskutil mergePartitions [force] format name
命令的使用方法就是上面的这个命令格式,把这行命令输入,回车之后就可以执行合并分区命令。但是建议你读下去,毕竟你对自己电脑上的磁盘状况还不是很了解。

DiskIdentifier|DeviceNode DiskIdentifier|DeviceNode
Merge two or more pre-existing partitions into one.  The first disk parameter is the starting partition; the second disk parameter is the ending partition; this given range of two or more partitions will be merged into one.  Both disk parameters must of course be on the same whole-disk. All data on merged partitions other than the first will be lost. The first will be erased if it doesn’t have a resizable type (e.g. JHFS+) or if the “force” argument is given.
这段是解释这个命令的作用和数据丢失的情况,合并分区是件麻烦的事情,最大的问题就是数据安全的问题,谁也不想把自己数据搞丢,不管是系统文件还是mp3,或者……小电影。diskutil mergePartitions命令也同样不能保证所有数据的完整,实际上通常情况下只能保留第一个分区的数据,但是如果选用的磁盘格式是不能调整大小的格式,比如JHFS+会删除所有分区上的数据,默认情况下OS X使用的是HFS+格式,这个格式可以在磁盘工具下进行分区大小的调整,而且也会保留所有合并分区里面第一个分区中的数据。这个命令要求在同一个磁盘下面进行合并,就是说如果机器里面有多个硬盘是没有办法合并的(有人想这么干么?)。
Merged partitions are required to be ordered sequentially on disk(see diskutil list for the actual on-disk ordering).合并的分区必须是顺序相连的,就是说disk0s1和disk0s2是可以合并的,而disk0s1和disk0s3是不能合并的,如果你不知道自己电脑重的硬盘信息和分区顺序,可以在终端里面输入diskutil list命令列出电脑中的硬盘信息。

Ownership of the affected disk is required. The Format parameter is the specific filesystem name you want to erase it as (e.g. HFS+, etc.).  The Name parameter is the name of the final volume created. Format and Name are ignored if the first partition is resizable.
必须拥有硬盘的权限,也就是说只能以计算机管理员身份进行操作。 Format就是要定义的文件系统名字,比如HFS+ ,Name是你合并之后的分区名字。如果第一个分区是可变大小格式的,可以省略这两个字段。

Example: diskutil mergePartitions HFS+ NewName disk3s4 disk3s7
进行操作的时候,参考上面的这个例子,回车后开始运行命令。

Note:  This will merge all partitions *BETWEEN* disk3s4 and disk3s7! This will destroy the data on disk3s5, disk3s6, disk3s7 and any invisible free space partitions between those disks. disk3s4 will be resized to cover the full space if possible.
这个例子中要注意,合并的是从disk3s4到disk3s7四个分区,而不是两个,4和7是不能单独合并的,从5到7分区上的所有数据都会被删除,并且在这些分区间的未使用空间也会被划分到合并的分区里面的。disk3s4会被重新调整扩大分区。

Valid filesystems: “Journaled HFS+” “HFS+” “Case-sensitive HFS+” “Case-sensitive Journaled HFS+” “HFS” “MS-DOS FAT16″ “MS-DOS FAT32″ “MS-DOS FAT12″ “MS-DOS” “UDF” “UFS” “ZFS”

这个命令支持的文件系统格式如上。

通过这个命令,把原有的分区合并到启动分区里了,这个故事告诉我们的是,不要轻易在不熟悉的系统里面进行分区操作,而且现在的文件系统已经不需要进行太多的分区了。

You can follow any responses to this entry through the RSS 2.0 You can leave a response, or trackback.

One Response



Leave a Reply

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>