Linux系统分区

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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系统下/根分区空间不足,怎么解决?

在已有Windows系统的机子上,直接用光盘安装了SUSE11.3.执行的默认安装.
系统分给/home2.8G.根分区/为5.0G.因为我需要在系统下要编译软件,需要相关的开发软件包.更改了软件的安装,装机时系统显示更改后所需空间占根分区的81%,还余800M左右,但我装好系统后,只剩100多M.显示根分区空间不足.根分区/下的/usr占了4.8G.

我还需要用YAST装一些小的软件包.照这样空间肯定是不够用的.我Windows下面空间还80G左右.对linux的分区不懂。
各位大虾指点下,怎么解决这个空间不足的问题?或是怎么更改这个/的空间?万分感激!
有解决方法的大侠们帮下忙,多谢了 !!
小弟邮箱:lmj105502@163.com QQ:419155617.

你可以试试我的大致思路。
首先在windows下,划出一部分空间,比如partition magic,这部分划出的空间不要给它任何文件格式,我想这个应该不难吧。

到了linux下,用fdisk命令进行分区。

在命令行下输入fidsk /dev/hda - 按m 可以看命令帮助 - 其中按p可以看当前分区情况
- 按n建立分区(如果你会windows的fdisk,那么这个linux下的fdisk,也不会很难的)
按n后,让你选建扩展还是主分区,你自己看一下。

接下来就是输入分区大小,就是前面划出的那部分,比如输入 +10240M 假设10G

然后再用p看一下,分区情况,假设你的分区是/dev/hda5。
进行格式化,mke2fs -j /dev/hda5 这样刚建的分区就变成了ext3文件系统。

剩下的只要挂载到/根目录下就可以了,命令为 mount -t ext3 /dev/hda5 /

不管怎样,做磁盘操作,还是建议备份为先,祝你好运了!追问

如果重装的话,怎么在装系统时候配分区?让根分区大一点,能到10G最好,自动配置时候它分配为5G.我直接更改大小说上限是7.8G.但是直接不能改动大小.我直接改动时候后面安装系统会提示创建这个分区出错.windows下面所有盘剩余空间大约为68G左右.刚开接触这个,蛮多都不大懂的,大哥指点下.

参考技术A 用无损分区软件重新分吧。但有点点风险,关键是分的时候不要掉电,不要做其他操作,否则当机很可能数据丢失
建议用这个软件
Acronis Disk Director Suite V10.2160 汉化安装版,可以在xp和win7下操作,比在dos操作的容易上手。安装好后一定要注册成正式版,否则可能会出问题。
下载地址和教材百度下吧,很多的
参考技术B 把部分内容转移到其它分区,如将/usr,/home转移到其它分区,然后系统启动的时候挂载上就可以了!

以上是关于Linux系统分区的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统分区

linux系统磁盘分区及把磁盘挂载到系统中的方法

各位,linux 32位系统,分区能大于16TB吗

linux系统下/根分区空间不足,怎么解决?

linux分区怎么指定系统id为8e

linux系统的磁盘分区有哪几种?