Linux分区
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux分区相关的知识,希望对你有一定的参考价值。
原来用的windows系统,格式化以后c盘有3g的空间,然后安装了Red hat Linux9.0,384M分的是swap,2500M分的根,剩下的没管,现在Linux已经安装好了,如何把当初没有分的空间分出来啊?比如说分成/home..
一、Linux 分区概念首先介绍一下linux中的分区概念,这个可是把一开始学习的我害苦了。在 Linux 中规定,每一个硬盘设备最多能有 4 个主分区(其中包含扩展分区)构成,任何一个扩展分区都要占用一个主分区号码,也就是在一个硬盘中,主分区和扩展分区一共最多是 4 个。对于早期的 DOS 和 Windows(Windows 2000 以前的版本),系统只承认一个主分区,可以通过在扩展分区上增加逻辑盘符(逻辑分区)的方法,进一步地细化分区。
主分区的作用就是计算机用来进行启动操作系统的,因此每一个操作系统的启动,或者称作是引导程序,都应该存放在主分区上。这就是主分区和扩展分区及逻辑分区的最大区别。我们在指定安装引导 Linux 的 bootloader 的时候,都要指定在主分区上,就是最好的例证。
Linux 规定了主分区(或者扩展分区)占用 1 至 16 号码中的前 4 个号码。以第一个 IDE 硬盘为例说明,主分区(或者扩展分区)占用了 hda1、hda2、hda3、hda4,而逻辑分区占用了 hda5 到 hda16 等 12 个号码。因此,Linux 下面每一个硬盘总共最多有 16 个分区。
对于逻辑分区,Linux 规定它们必须建立在扩展分区上(在 DOS 和 Windows 系统上也是如此规定),而不是主分区上。因此,我们可以看到扩展分区能够提供更加灵活的分区模式,但不能用来作为操作系统的引导。
以前对这些概念不熟,分区上走了很多弯路。那么,到底什么样是一个好的分区方案,我认为见仁见智,我是这样分的。原则上/ 和/home基本上最好是要单独挂载两个分区,因为home可以看成是windows中的my document,自己个人资料多的话home要大一些。/小一点无所谓,据说至少2G,我也没有试验过。其他的诸如/tmp和/var由于活动文件特别多,为了避免他们的文件碎片对其他区的影响,最好他们挂一个区。最后/opt主要安装大型软件,如果有多余的分区就给他挂一个吧。
二、开始分区
ok,我就这样看,首先分一个100M的主分区出来,挂载boot。grub启动时需要的文件都在/ b o o t 目录。这样就算工作分区出了问题,只要这个分区没有问题,同样可以启动。因此最好的办法就是专门为根文件分一个区,大小一般最多64M,我为了保险给了 100M。
之后的分区全部以扩展分区形式存在,扩展分区下很多逻辑分区。
首先创建一个交换分区,大小是无力内存的一倍到两倍大。如果你的内存和我一样是1G,就划1G好了。事实上基本用不到这么大。分区格式记着改成linux-swap。
然后创建一个尽量大的分区,给/usr,因为这里存放有大部分的系统软件,包括X Server等图形界面程序。我分了20G。
接下来创建/home的挂载分区。考虑到我的工作文档比较多,源代码和程序也经常放到这里,所以给了10G。
其他的诸如tmp,var等来说,单用户工作机是不用考虑的。当然不知道我的机器以后会不会有服务器应用,我还是给var分了2G的空间。
其他空间就全部挂载给/。虽然一般2G就够了,但是多多益善么。
注意:很多时候,如果你使用了ubuntu光盘自带的安装工具分区,会出现很多问题。如果遇到问题过不
去,推荐两个办法:
1 在live CD的环境中,在终端下直接用sudo fdisk /dev/xxx
来分区,然后w保存后reboot,之后再进安装工具,手工编辑注册表时它认得的就是你编辑的分区表,不
用修改直接下一步即可。
2 你也可以同样用livecd的fdisk分好区后,用光盘上的livecd
installer程序,在命令行下安装。不过这个安装程序只需要你挂载/和swap。那么其他分区怎么办呢?
可以先在分好,也可以安装完系统再分。如果将其他分区挂载到希望的目录下?举个例子。如果你想把/
home/user挂载到新的sda8分区下,可以这样做:
首先,将/dev/sda8 mount到 /mnt/sda8中。如果没有这个目录就自己mkdir。
然后,cp -R /home/user/* /mnt/sda8/user ,和cp -R /home/user/.* /mnt/sda8/user
最后修改/etc/fstab,增加一行/dev/sda8 /home ext3 defaults 0 2(参数自己确定)即可。
首先我们要对硬盘分区的基本概念进行一些初步的了解,硬盘的分区主要分为基本分区(primary partion)和扩充分区(extension partion)两种,基本分区和扩充分区的数目之和不能大于四个。且基本分区可以马上被使用但不能再分区。扩充分区必须再进行分区后才能使用,也就是说它必须还要进行二次分区。那么由扩充分区再分下去的是什么呢?它就是逻辑分区(logical partion),况且逻辑分区没有数量上限制。 对习惯于使用dos或windows的用户来说,有几个分区就有几个驱动器,并且每个分区都会获得一个字母标识符,然后就可以选用这个字母来指定在这个分区上的文件和目录,它们的文件结构都是独立的,非常好理解。但对这些用户初上手red hat linux吗,可就有点恼人了。因为对red hat linux用户来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构。red hat linux中每个分区都是用来组成整个文件系统的一部分,因为它采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。下面我们先来看看red hat linux的驱动器是如何标识的。 对于ide硬盘,驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里是指ide硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个ide硬盘上的第三个主分区或扩展分区,hdb2表示为第二个ide硬盘上的第二个主分区或扩展分区。对于scsi硬盘则标识为“sdx~”,scsi硬盘是用“sd”来表示分区所在设备的类型的,其余则和ide硬盘的表示方法一样,不在多说。 我们从上面可以看到,red hat linux的分区是不同于其它操作系统分区的,它的分区格式只有ext2和swap两种,ext2用于存放系统文件,swap则作为red hat linux的交换分区。那么现在我们就可以知道red hat linux至少需要两个专门的分区(linux native和linux swap)况且不能将red hat linux安装在dos/windows分区。一般来说我们将red hat linux安装一个或多个类型为“linux native”的硬盘分区,但是在red hat linux的每一个分区都必须要指定一个“mount point”(载入点),告诉red hat linux在启动时,这个目录要给哪个目录使用。对“swap”分区来说,一般定义一个且它不必要定义载入点。下面我们先对“linux native”和“linux swap”有个初步的了解。 *swap分区是linux暂时存储数据的交换分区,它主要是把主内存上暂时不用得数据存起来,在需要的时候再调进内存内,且作为swap使用的分区不用指定“mout point”(载入点),既然它作为交换分区,我们理所当然应给它指定大小,它至少要等于系统上实际内存的量,一般来说它的大小是内存的两倍,如果你是16mb的内存,那么swap分区的大小是32mb左右,以此类推。但必须还要注意一点,swap分区不要大于128mb,如果你是64mb的内存,那么swap分区最大也只能被定为127mb,再大就是浪费空间了,因为系统不需要太大的交换分区。以此类推,如果你是128mb或更大的内存,swap分区也只能最大被定为127mb。况且你还必须注意的是如果你是128mb(或更大)的内存,你必须提醒系统你有这么大的内存,要不然它可不认你这个128mb内存。具体如下:当顺利启动了安装过程后,会显示一个boot:提示符,这时你只要键入boot:linux mem=128mb就可以了。另外你也可以创建和使用一个以上的交换分区,最多16个。 *linux native是存放系统文件的地方,它只能用ext2的分区类型,上面已说过。对windows用户来说,操作系统必须装在同一分区里,它是商业软件吗!所以你没有选择的余地!对red hat linux来说,你有了较大的选择余地,你可以把系统文件分几个区来装(必须要说明载入点),也可以就装在同一个分区中(载入点是“/”)。下面我们看看可以创建哪些分区(仅列常用几种)。 /boot分区,它包含了操作系统的内核和在启动系统过程中所要用到的文件,建这个分区是有必要的,因为目前大多数的pc机要受到bios的限制,况且如果有了一个单独的/boot启动分区,即使主要的根分区出现了问题,计算机依然能够启动。这个分区的大小约在50mb—100mb之间。但是如果想用lilo启动red hat linux系统的话,含有/boot的分区必须完全在柱面1023以下。又由于8gb后的数据lilo不能读取,所以red hat linux要安装在8gb的区域以内。 /usr分区,是red hat linux系统存放软件的地方,如有可能应将最大空间分给它。 /home分区,是用户的home目录所在地,这个分区的大小取决于有多少用户。如果是多用户共同使用一台电脑的话,这个分区是完全有必要的,况且根用户也可以很好地控制普通用户使用计算机,如对用户或者用户组实行硬盘限量使用,限制普通用户访问哪些文件等。其实单用户也有建立这个分区的必要,因为没这个分区的话,那么你只能以根用户的身份登陆系统,这样做是危险的,因为根用户对系统有绝对的使用权,可一旦你对系统进行了误操作,麻烦也就来了。 /var/log分区,是系统日志记录分区,如果设立了这一单独的分区,这样即使系统的日志文件出现了问题,它们也不会影响到操作系统的主分区。 /tmp分区,用来存放临时文件。这对于多用户系统或者网络服务器来说是有必要的。这样即使程序运行时生成大量的临时文件,或者用户对系统进行了错误的操作,文件系统的其它部分仍然是安全的。因为文件系统的这一部分仍然还承受着读写操作,所以它通常会比其它的部分更快地发生问题。 /bin分区,存放标准系统实用程序。 /dev分区,存放设备文件。 /opt分区,存放可选的安装的软件。 /sbin分区,存放标准系统管理文件。 上面介绍了几个常用的分区,一般来说我们需要一个swap分区,一个/boot分区,一个/usr分区,一个/home 分区,一个/var/log分区。当然这没有什么规定,完全是依照你个人来定的。但记住至少要有两个分区,一个swap分区,一个/分区。下面我们来看看怎样分区。 用户可以使用两种分区工具: 1.disk druid:它是red hat linux提供的硬盘管理工具,它最初是随red hatlinux5一起发售的,它可以根据用户的要求创建和删除硬盘分区,另外还可以为每个分区管理载入点,这是一个不错的分区软件,建议读者使用。本文也将以此软件详细地介绍red hat linux分区。 2.fdisk:它是传统的linux硬盘分区工具,比disk druid更强大,使用更加灵活。但是fdisk要求用户对硬盘分区有一定经验,并能够适应且读懂简单的文本界面。如果你是第一次对一个硬盘驱动器进行分区操作的话,最好还是避免fdisk这样的程序,它虽然强大但用起来的感觉不是太好的。 附注:此外red hat linux还提供了一种叫fips的分区软件,但这种分区软件具有一定的危险性,不宜提倡操作。虽然有许多人已经成功地用fips对他们的硬盘进行了分区,但这不能保证fips将在你的系统中也能正常地运行。况且red hat linux也不提供对fips的支持,劝你对这种分区软件还是慎用为好。 如果你希望将red hat linux安装在已经含有其他操作系统的盘上,也就是多重操作系统,这个情况就比较复杂了,因为一个错误就可以毁掉你辛辛苦苦保存的数据,让你欲哭无泪。如果你想让red hat linux与os/2共存,那你必须使用os/2的分区软件来创建硬盘分区,要不然os/2将不能识别硬盘分区。另外你也可以用其它的一些分区软件来分区,下面列出了一些常见的这种分区工具软件: *partition commander软件,从www.v-com.com处下载。 *partition it软件,从www.quarterdeck..com处下载。 *partition magic软件,从www.powerquest.com处下载。 注意:硬盘分区是一个非常危险的步骤,你要想安全地在不丢失数据的情况下改变磁盘的分区有点不太现实,所以我建议大家对重要得数据进行备份,装多操作系统更要如此,以备不测。当然或许你是刚装系统或就准备重装,那也就是另外一回事了,但是大家对待分区一定要慎重又慎重,切记。 下面我们详细地了解一下red hat linux7.1自带的disk druid分区软件所包含的一些信息。 1.current disk partitions区域(这里每一行代表了一个硬盘分区) mount point 指出red hat linux启动并运行以后该分区的加载点,交换空间(linux swap)是不需要加载点的。 device 硬盘分区的设备名 requeted 给这个分区定义时申请的最小空间 actual 分配给该分区的实际空间 type 说明了该分区的类型 2.drive summaries区域(这里每一行代表一个硬盘) drive 显示硬盘的设备名 geom[c/h/s] 显示硬盘的物理信息,c(柱面),h(磁头),s(扇区) total 显示硬盘的可用空间 used 显示硬盘中已分配的空间 free 显示硬盘中末分配的空间 bar graph 该条图形化地显示当前硬盘使用的百分比,#号越少,空闲空间越多 3.disk druid按钮 add 增加一个分区 edit 修改在current disk partitons中被选中的分区的属性,选中该按钮将出现一个对话框来进行修改,但只能修改该分区的载入点。如果你需要修改其它内容,请先删除该分区,而后再重新建这分区。 delete 删除一个在current disk partitons中被选中的分区 ok 确认 back 不作保存,返回 4.如果你想增加一个分区,请点击“add”按钮,这时会出现一对话框,内容说明如下: mount point 分区载入点,说明分区 size 分区的大小 grow to fill disk 表明这个分区将添满一个硬盘的整个未分配空间。这时,这个分区的容量可以随着其它分区的修改增加或减少 type 选择分区类型 allowable drives 选择这个分区将创建在哪个硬盘上 好了,通过上面的了解想必大家都能容易地创建出适合自己的分区。下一步我们所要做的工作就是要格式化所建的分区,选择你要格式化的分区并按space键,如果想在格式化分区时检查有无坏块,选择“check for bad blocks during format”,点击ok并按space键。如果分区中已无你要所保存的数据,最好都格式化一下。 ------------------------------------- 越是在机器负担着沉重的服务器或者系统管理平台的情况下,把文件系统划分为一系列的分区就显得更加重要。具体需要划分多少个分区才能够取决于计算机的主要任务将会是什么。但是多建立几个特殊的分区是很明智,它们包括:一个单独的/boot启动分区,这样即使主要的root分区出了问题,计算机依然能够启动。一个单独的/var/log系统日志记录分区,这样即使系统的日志记录文件出了问题,它们也不会影响到操作系统的主分区,也就不会使计算机崩溃。一个单独的/tmp临时文件分区,这们即使程序开始生成大量的临时文件,或者用户对目录结构进行了错误的操作,文件系统的其他部分仍然会是安全的。一个单独的/hom用户登录分区,同时可以对用户或者用户分组实行硬盘限额功能,这样当进行升级或者安装新版本的linux操作系统时,就不会覆盖原有的用户登录数据了。 ------------------------------------- 对于需要创建新ext3文件系统的情况下,只需要使用安装的e2fsprogs软件包中的mke2fs命令加-f参数就可以创建新的ext3文件系统: mke2fs -j /dev/xxx 这里/dev/xxx是希望创建ext3文件系统的新分区。-j参数表示创建ext3而不是ext2文件系统。可以使用参数"-Jsize="来指定希望的日志区大小(n单位为M)。 升级一个已有的ext2,使用tune2fs就可以了: tune2fs -j /dev/xxx
参考资料:http://hi.baidu.com/apollo23/blog/item/44e4371fcc9332c8a6866960.html
参考技术A 您好,看这个吧。要学习http://www.linuxsir.org/main/?q=node/87本回答被提问者采纳
Linux系统分区
Linux默认可分为3个分区,分别是boot分区、swap分区和根分区。
boot分区
在linux中,boot是存储内核及在引导过程中使用文件的分区,是启动linux时使用的一些核心文件;在boot中包括了系统Kernel的配置文件、启动管理程序GRUB的目录、启动时的模块供应的主要来源Initrd文件和vmlinuz文件。
/boot分区就是操作系统的内核及在引导过程中使用的文件,一般是几年前的版本要求划分的一个区,大小为100MB左右,但现在的新版本都不需要对这个分区进行单独划分,也就是说你完全可以不分/boot。
安装Linux只要求两个基本分区,即根分区及交换分区,如果你的磁盘空间足够大,可以多划分空间给根分区,你也可以把常用的目录新建到桌面,如下载的软件包,放到桌面不影响你进入Linux系统的速度,当然这要求你有足够大的根分区。
swap分区
SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用
它和Windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且对用户不可见。
需要注意的是,虽然这个SWAP分区能够作为"虚拟"的内存,但它的速度比物理内存可是慢多了,因此如果需要更快的速度的话,并不能寄厚望于SWAP,最好的办法仍然是加大物理内存。SWAP分区只是临时的解决办法.
根分区
linux根分区是系统分区的意思,系统内所有的东西都存放在根分区中,也被称为root分区;Linux是一个树形文件系统,根分区就是它的root节点,任何的目录文件都会挂在根节点以下,并且linux只有一个根,不管对硬盘分多少个区,都要将这些分区挂载到根目录底下才可以使用。
所谓根分区,说白了就是系统分区,是root分区,所有的东西都放在这里面。
Linux是一个树形文件系统,根分区就是它的root节点,任何的目录文件都会挂在根节点以下。Linux只有一个根。你可以给你的硬盘进行分区,但是,分区设备一定挂载到linux根目录下的指定位置,如/usr,/var,/home等。如果要对分区进行操作的话,只能到分区所挂载的目录中进行操作。所以,不管对硬盘分多少个区,都要将这些分区挂载到根目录底下才可以使用。
参考技术A相信很多人已经接触了Windows操作系统的电脑(以下称呼为PC),也对PC电脑中的CDEF...盘符印象也比较深,那个就是在PC下,系统对硬盘的各个分区。但是你有没有想过,我们为什么要分区?
我个人觉得之所以要分区的一个很重要的原因就是方便的管理在磁盘中的文件还有数据
我们先来了解一下分区的类型
首先呢,在Linux系统中,我们分区主要分为三种: 主分区,拓展分区和逻辑分区
在Linux系统中,一个硬盘的主分区只能有四个
我们可以对主分区进行 格式化操作 和 挂载操作
当我们的硬盘越来越大的时候,只有四个主分区有的时候不能满足我们的需求,所以就有了 拓展分区 这个概念
对于拓展分区,我们需要注意几点:
至于逻辑分区, 它跟主分区相同的地方就是逻辑分区也可以进行格式化还有挂载的操作 ,但是,逻辑分区在物理上是放在拓展分区中的,逻辑分区可以是任意个数,任意大小(当然这取决于拓展分区的大小)
打个比方,我们假设我们要建房子, 假设有一个规定,你建房子如果要划分空间只能划分四个空间(四个主分区) ,比方我们一个空间给厨房,一个给客厅,一个洗浴室和厕所(三个主分区), 再来一个空间给房间(拓展分区) ,然后, 我们可以在给房间的空间中,我们创建三个房间或者两个房间(房间就相当于是逻辑分区)
格式化就是根据用户选择的文件系统在磁盘的特定区域写入特定数据,在分区中划分出一片用于存放文件分配表,目录表等用于文件管理的磁盘空间(有很多人将格式化理解成清空一个区所有的数据的意思,其实并不是, 因为如果我们要更换文件系统的时候,我们需要进行格式化在磁盘中存放文件分配表,目录表,这样原有的文件分配表就不适用新的,所以我们才要把数据清空我们更换文件系统 ,这就是为什么我们对一个有数据的分区进行格式化的时候分区会没有任何数据) 总之我们记住一句话,格式化的目的就是为了在磁盘中写入文件系统
Windows适用的文件系统有:
Linux适用的文件系统有:
我们默认使用的文件系统是 EXT4
现在CENTOS可以支持XFS,所以现在使用CENTOS 7 的话默认使用的文件系统时 XFS
还是来拿房子做例子,就比方说我们两个空间(分区),一个分区我们想要用来做厨房,一个我们想要用来做房间。那么你想一下,你觉得厨房的装修风格能适合用来作房间的空间吗?很明显不能,反之用来作厨房的空间也是如此的,这个装修风格你可以理解为格式化。 所以我们进行格式化的时候,我们需要根据自己本身对各个文件系统的需求来进行格式化操作
我们再来聊一下文件系统,文件系统的数据块的存放它有可能不是连续的,可能是“东放一个西放一个”,零散地放在分区的各个地方。 在Windows系统中我们可以对盘符进行碎片整理操作,将一些本应连续的数据块连续的放在一起,提高读取效率
既然在Linux系统中,数据块(block)是零散地放在分区中的,那么我们是怎么样取出我们数据的? 是因为我们的数据块都是由编号的,Linux系统是根据数据块的编号来进行读取操作的
具体来说格式化后的操作便是
可能大家在接触Linux的时候就听说过在Linux系统中一切东西皆文件这种说法了,我们的硬件设备对于Linux系统来说也是一个文件,我们插入设备,我们就可以在/dev 这个文件夹中可以找到我们相应的设备文件,不同设备在Linux系统中的命名也是不同的:
我们常见的是设备可能就有/dev/sd[a-p] , /dev/cdrom(可能光驱都很少能见到了) 这种设备
我们只需要把常见到的设备记下来即可
我们刚才说过在Linux系统中,一切东西皆文件,既然我们有设备文件,那么我们肯定也有分区设备文件。 分区设备文件存放的位置跟设备文件存放的位置是一样的,也是/dev下 。为了区分是分区设备文件名, 分区设备文件名的后面有一个1或者2,代表的是1分区或2分区
例如 /dev/sda 这个硬盘的第一分区的文件名字是 /dev/sda1
对于分区设备文件名,我们要注意以下几点:
假设我们只分了两个主分区一个拓展分区,拓展分区有两个逻辑分区。我们在Linux系统中可以将文件列出来,我们发现我们的分区号不是连贯的。 那是为了更好区分是主分区还是逻辑分区文件,第一个逻辑分区文件的号码总是从5开始的
在Windows系统中,我们经常接触一个东西叫盘符。但是,在Linux系统中是没有盘符这样的概念的,类似盘符的概念的说法在Linux系统中我们叫 挂载点 ,我们了解挂载点之前先了解什么是挂载
假设说我们将一个磁盘分区挂载到一个文件夹中,这就代表当我们往这个文件存放文件的时候,在物理方面来说我们是将数据存放在了这个磁盘分区中 ,但是我们如果是往其他文件夹放置文件的时候,并不会放到这个磁盘分区中, 那是因为其他的文件夹不是这个磁盘分区的挂载点
在Linux系统中我们也有要挂载的必须分区
还有一个分区是推荐使用的,那就是 /boot ,如果我们没有对它进行挂载,万一将来我们把 / 写满了之后,我们可能就开不了机了。启动分区不需要太大,只需要200MB就够了
我们会给根分区分配一个磁盘分区,那么我们访问的根分区旗下的二级目录和文件是不是就是在访问同一个磁盘分区呢?答案是不一定,因为如果我把新建的一个分区挂载到一个二级目录下,那么当我访问这个二级目录的时候,我是访问这个新建的磁盘分区的
例如 / 旗下有 home 文件夹,如果我们实现分配了一个磁盘分区,并且挂载到了 /home ,那么当我们访问 /home 的时候,我们是访问了我们分配的磁盘分区,并非挂载到 / 的磁盘分区
以上是关于Linux分区的主要内容,如果未能解决你的问题,请参考以下文章