魅力博客

魅力Linux|魅力空间|魅力博客|学习Linux|ubuntu日记|电脑教程|手机软件

Linux与硬盘分区·[经典常温旧贴]



摘要
  如何为Linux进行硬盘分区,要搞定这个问题,首先要知道Linux是如何处理硬盘分区问题,这个基本的知识能够帮助你更好地掌握Linux。(2002-07-22 13:44:38)
By 风过留枫



  通常,我们的硬盘上已被Windows所占据,而现在要让Linux入住,就得为它腾出一定的硬盘空间。所以我们不得不面对“分区”这一复杂的概念。

  为了实现这一目标,通常可以通过以下三种方法:

  1)将原来最后一个逻辑分区上的数据全部移到其它分区中,将该逻辑分区用分区工具删除,将这部分空间给LINUX使用。

  这种方法很简单,只需使用FDISK将最后一个逻辑分区删掉就可以了。无需多说。

  2)重新将硬盘分区,这是最直接和最麻烦的一种方法。具体操作如下:


. 备份用户的文件
. 用MS-DOS系统盘启动系统
. 用FDISK删除原有分区,重建新的分区,将分配给LINUX的空间留下来不
分配给任何一个分区
. 重新安装原来的用户系统

  这种方法通常会因您所要安装的系统情况而变,因此请参考本网站相关的“多系统共存”的文章。

  3)利用一些分区工具在不删除硬盘原有数据的情况下重新为硬盘分区。如分区 魔术师等。(关于这些分区工具的使用方法,我们将专文说明)。

  看到这里,可以有些读者会问,那本文都想说些什么呢?其实本文是想详细地与大家说一说硬盘分区这一个概念。所谓“勿在浮砂筑高台”嘛,就是希望大家能够“知其然,且知其所以然”。

一、硬盘分区基础:

  通常,在PC机上使用的硬盘有两种:
  1) IDE接口:最常见的;
  2) SCSI接口:比IDE性能好,但更贵!

  硬盘分区是针对一个硬盘进行操作的,它可以分为:主分区、扩展分区、逻辑分区。其中主分区可以是1-3个,扩展分区可以有0-1个,逻辑分区则没有什么限制。

我们简单地解释一下,主分区与扩展分区是平级的,扩展分区本身无法用来存放数据,要使用它必须将其分成若干个(1-n个)逻辑分区。

  一个硬盘能够分成4个主分区、3个主分区1个扩展分区、2个主分区1个扩展分区、1个主分区1个扩展分区(只安装Windows系统的用户大多是使用这种方法)。

  当然,如果你愿望只分一个主分区、或两个主分区,没有扩展分区也是可以的。

  也就是说,不管什么操作系统,能够直接使用的只有主分区、逻辑分区。不过不同的操作系统使用的文件系统格式不同,因此在用于不同操作系统后,分区又有了一些新名字:早版本MSDOS使用的FAT16分区、Windows使用的FAT32分区、Windows NT使用的NTFS分区、Linux使用的Ext2分区及Swap分区……等等。

  好了,现在我们来看看Windows中是如何使用这些分区的:

二、Windows下的分区:

  在Windows下,使用“盘符”,如A、B、C、D、E……等还表示一个分区。这种方法使得硬盘分区这一东西变得十分简单。其中A和B是软驱,硬盘分区是从C开始编号的。

  下面我们看一看下面的例子:

对于Windows而言,它只能够使用一个主分区(在FDISK,称为主DOS分区),可以使用多个逻辑分区。硬盘盘符的编号如上图所示。

三、Linux下的分区:

  而在Linux下,则复杂一些了。首先,它对每一个设备进行了命名:

  IDE设备:一台PC上可以有两个IDE接口(我将其称为第一IDE、第二IDE),而每个IDE接口上可以接两个IDE设备(我将其称为主盘、从盘)。其中硬盘与光驱都是IDE设备。Linux这样为其命名:


第一IDE的主盘:/dev/hda
第一IDE的从盘:/dev/hdb
第二IDE的主盘:/dev/hdc
第二IDE的从盘:/dev/hdd

  看到这里,就别问我我的光驱在哪了?!

  SCSI设备:这个相对大家会陌生一些,它通常需要加上一块SCSI卡来驱动。第一块SCSI设备称为:/dev/sda、第二块就是/dev/sdb……以此类推。

  为什么都有一个“/dev”呢,这是因为,在UNIX/LINUX系统中,将所有的设备都当做一个文件,放在/dev目录下。

  好了,说完硬盘该说分区了!

也就是主分区(或扩展分区)被命名为hda1-hda4,如果没有,就跳过。而扩展分区中的逻辑分区则从hda5开始编号,以此类推。

  注意了,这里是以第一IDE的主盘为例,如果是第二硬盘,就是hdb1、hdb2、hdb5、hdb6、hdb7。

  到此,我们可以发现,Windows下不管有多少个IDE设备都是顺序地分配盘符,而在Linux下是认真区分对待每一个硬盘的。

四、为Linux划分分区:

  大家都知道,Windows下每一个分区都可利用于存放文件,而在Linux则除了存放文件的分区外,还需要一个“Swap(交换)分区”用来补充内存,因此通常需要两个分区:

  1. 主分区:学习使用的话,建议2G;
  2. 交换分区:只需1-2倍内存的大小,若64-128M内存,交换分区可为128M,128-256M内存,交换分区可为256M。

  由于早期的Linux启动器LILO无法识别8G以外的硬盘分区,因此建议将Linux两个分区分在8G以内。

五、启动系统:

  每个硬盘的逻辑第1扇区中存放着MBR(主引导记录),这里就包括了主分区和扩展分区信息,当机器启动后,将引导交给硬盘时,就首先执行MBR上的程序,然后找到活动分区,启动操作系统。象LILO、OS Loader等多引导工具都是通过改写MBR来实现的。因此,当大家在安装完Linux后,将LILO写在MBR上,再安装Windows 9x,那么MBR就改写成为了Windows 9x的!

  好了,先说到这,有什么疑问,请到http://forum.ubuntu.org.cn安装与入门版提问。

这个帖子有点老但是已经够学了
我来加些东东
1. 主分区:叫native 或者你可以选择 ext2, ext3 卦载点是/ <--- 这个是跟的意思
在linux里面只有一个大树一样的目录,c: , d:, e: 这样的盘符的概念是不存在的
2. 交换分区:叫做swap 这个目录是可以创建而看不到的,swap一般的设置都是 本身内存容量*2
就是上面说的假如你的内存是64MB你设置为128MB的swap最好,swap其实就相当于windows的那个虚拟文件,只不过linux是占用系统的一部分空间干这事儿的, 如果系统没什么任务其实1:1的设置也可以(就是内存=swap),因为我看我的内存每次都有剩余而且很多讷~ 但没实践就没有发言权,所以我说得这个对不对我也不知道,表相信我

做点增补修订工作吧。

>> 1. 主分区:叫native 或者你可以选择 ext2, ext3 卦载点是/ <--- 这个是跟
>> 的意思在linux里面只有一个大树一样的目录,c: , d:, e: 这样的盘符的概念是
>> 不存在的
因为 x86 架构上硬盘分区表设计的限制,一个硬盘只能有 4 个分区。因此,后来为了突破这个限制,才设计了将一个分区划分成多个更小的逻辑区划的方法。则原先的 4 个分区就被称为主分区,被划分的一个主分区称为扩展分区,扩展分区中的小的分区就叫逻辑分区(其实一定程度上类似 FreeBSD 里面的 partition / slice 概念)
分区只是磁盘的一个区划,至于怎么用,则是另外一回事情。要被 Linux 系统使用,就需要给一个分区建立一个文件系统,这就是诸如 ext2, ext3, reiserfs 这些文件系统了。各种文件和目录都是记录在文件系统中的。Linux 内核通过读取分区上的信息,构建出一个虚拟的树形结构(每个分区一个)。其实 Windows 在这一点上也是一样的:一个分区(C:)下包含了其它的文件和文件夹,文件夹中再包含文件和文件夹……递归形成一颗单根的树。不过,Linux 出于效率考虑,在这些普通的文件系统之外还有一个单独的文件系统叫做 swapfs,以这个文件系统填充的分区则是专门供 Linux 核心作为交换使用的。
传统的 Windows 系统中,每个分区都是独立的,因此磁盘就以 C: D: E: 这样的一组卷呈现在用户面前。Unix 的设计思路则有所不同。它把整个文件系统虚拟成一个单根的树(就像一个分区中的结构),同时允许其它文件系统“挂载”(mount) 在这个树的不同位置。因此,所有的 Unix 文件系统中的路径都是以 / 开始的,而不包含所谓的驱动器“盘符”。文件系统的“挂载点”虽然在内核中有特殊的表示,但是在用户和客户程序面前,则呈现完全统一的一个界面,因此简化了系统的维护和程序的编写。

>> 2. 交换分区:叫做swap 这个目录是可以创建而看不到的,swap一般的设置都是 本身内存容量*2
如上所述,swapfs 建立在一个分区之后,这个分区可以被核心用于内存交换。不同于 ext2 等其它文件系统,swapfs 中不包含文件和目录等节点,也不能挂载 mount 到文件系统树中。一个系统中不存在一个 swap 目录(就算有,也跟交换分区无关)

>> swap其实就相当于windows的那个虚拟文件,
>> 只不过linux是占用系统的一部分空间干这事儿的,
占用了一个分区而已,因为这样访问分区内容不用经过文件系统这一层,直接读写设备,效率更高罢了。说回来,Linux 同样也可以用文件做交换用。用 dd 创建一个大文件,然后 mkswap 在上面创建 swapfs,然后 swapon 启用,没有什么问题。

ps,其实我目前发现的 Linux 的 VFS 中最有趣的是 loop device,谁来说说就好了,呵呵。还有 md,soft raid, lvm,都想了解一下。

在Linux下挂载NTFS分区需要内核得支持。
你先用Uname -a 命令来查看自己系统得内核版本
然后
http://prdownloads.sourceforge.net/linux-ntfs/?download&failed_mirror=peterhost.dl.sourceforge.net
这个网站有支持NTFS得软件包下载。
根据你自己得内核版本选择下载。
安装了软件包后可以用

mount -t ntfs /dev/hda1 /mnt/winC (假设你的hda1时windows的C盘
/mnt/winC 是挂载路径)

 


现今的ubuntu8.04开始都已支持Linux下挂载NTFS分区。本帖仅供老生恒温,新手了解之用。



返回顶部

发表评论:

Powered By Z-BlogPHP 1.7.3


知识共享许可协议
本作品采用知识共享署名 3.0 中国大陆许可协议进行许可。
网站备案号粤ICP备15104741号-1