Linux中应该怎么分区配置才会比较不错

第一个问题是哪些东西单独分区比较好。我在 ">Ubuntu 的社区上看到的建议有很多种,比如最基本的把 /boot、/home 单独分出来的,也有把 /tmp、/var 或 /usr 也单独分出来的。不过根据我的观察以及设想来说,我觉得,而且我个人采用的是把 /boot、/tmp 及 /home 单独分区,为什么这样选择呢?

首先是 /boot 区,由于装载的是启动器,一般来说比较建议单独分区,这样可以减小损坏导致完全不能启动的风险,而且由于单独分区,在磁盘上的区域较集中,对于启动效率也有一定改善吧~下面是 /tmp 区,这个区我觉得是一定要分出来的,因为这几乎是 Linux 里面操作最频繁的一个区了,各种杂七杂八的临时文件装在里面。最后是 /home 区,把这个区单独分有一个最重要的好处就是,每次重装不需要额外的备份操作,直接沿用原来的分区就可以了~此外,还有比较喜欢更多分区的人也可以考虑把 /var 也单独分出来,这个作为日志及某些服务的资料储存地的操作频繁度也是与根目录相当不同的。至于把 /usr 单独分出来,我觉得是毫无道理的……个人看法~最后,我们还有一个区,就是 swap 区,无论内存多大,都建议建一个 swap 区!

接下来我们的问题是,每个分区该有多大?说实话,这并不是一个十分难办的问题,因为现在的 GParted 等软件能够很轻松安全的改变分区大小,如果设不好大不了花一点时间调整咯。不过还是要稍微讨论一下的。

/boot 区是一个对空间要求非常宽松的分区,一般来说可以根据自己硬盘的宽裕程度给他分 50MB-200MB 都是没什么问题的,就一堆启动文件嘛~至于 /tmp 区,据说如果要刻录 DVD,至少要给这个区留 4.2GB 以上的空间。我个人是没有 DVD 刻录机的,因此对这个不太了解,不过如果这样的话那以后刻蓝光难道要预留 25GB?我是留了 1GB 的空间,据观察利用率并不高,通常维持在 10% 以下,但考虑到某些时候说不定会突然暴增,维持一定量给它总没什么坏处吧……然后是 swap 区,这个前人总结的很多了,这里转引一下,一般来说就是内存 1GB 以下的设为两倍内存,1GB 及以上的给个 1GB 就差不多了,当然,如果想要能够使用休眠这个功能,swap 区至少要和内存一样大,这个问题上就看个人喜好自己权衡咯。根目录依自己的情况给个 10GB、20GB 的应该是足够了,硬盘大得蛋疼的给个 50GB 我看一般来说也差不多了,我给了 20GB,安装各种软件,至今也只用了 55%。剩下的就是给 /home 目录了,各种资料尽存其中~至于部分人可能愿意分出来的 /var 区,刚刚查了一下我自己的情况,我估计要给个 1G-2G,特别是对于那些用 Debian 系却从来不清里安装包缓存的人,更要分大一点。

现在的问题就是,我们需要什么样的文件系统?现在主流的桌面级文件系统大概有这几个:ext3、ext4、reiserfs、jfs。其他的文件系统大体上不是淘汰过时就是支持不完善,或者难以使用。

这几个文件系统可谓各有千秋,首先说说 ext3,这是 Linux 中这几个文件系统经历最长时间考验的,因此应该说稳定性是很优秀的,重要的东西放在这里面自然比较安心一些,但为了能从 ext2 平稳升级,沿用了线性目录储存的方式,效率自然打了些折扣。而 ext4 刚刚进入稳定版不久,说实话,我对开源界的稳定版感觉相当不好,Ubuntu 9.04 正式版出来不到一周后我下载安装,就增加了数十个安全更新……而 ext4 亦在稳定不久后爆出了丢失数据的 bug。因此,对于 ext4 的稳定性我想还有待进一步的检验,我猜也正是这个原因 Ubuntu 9.04 最终没选择这个作为默认文件系统。但其效率确实是有提高的,我想作为一些不需要经常修改的东西存放的地方还是很好的。下面来看看 reiserfs,这是一个很优秀的文件系统,可惜作者被抓起来了……这个文件系统对于小文件的存取具有很大的优势,并且在许多测试中有不俗表现。最后是 jfs,这是一个企业级的文件系统,似乎是有很稳定的性能,不过总体性能似乎不强。

好了,分析完这些文件系统的特性,我们大概可以知道应该怎么做了。当然,swap 区一定要用 swap 文件系统是必然的了。我想先看看 /tmp 所在的区,我想这里面大多是小文件,而且存在时间不长,加之重启就可以消掉,对稳定性要求不高,但如果比较高效是不错的,因此我个人选择了 reiserfs。当然,有人内存够大直接把 /tmp 挂到内存里做个 tmpfs 对效率提高很有好处。然后是 /home 区,我想 ext3 作为一个成熟和稳定的文件系统,放在 /home 再合适不过了,而且 /home 区里面通常一个文件夹我们都不会存太多文件导致其效率严重下降。至于根目录,我想 ext4 和 reiserfs 应该都不是太差的选择,而 ext3 显得就不太优越了,因为根目录里面一个目录下有成百上千的文件是很常见的(如 /usr/bin、/usr/lib 之类的……),而且大多数文件是小文件,ext3 的效率实在堪忧。而相比之下,ext4 也对小文件的访问做了一些优化,而且默认开启了对树型数据结构的支持,使得其管理文件的效率也有一定的提高。至于 reiserfs 前面也说过了,显然在这里都是合适的~至于 /boot 区,我想不应该选 reiserfs 和 ext4 这样支持 extents 的文件系统,即使可以支持效率也高不了。其实我一直在想弄一个不需要载入 GRUB stage 1.5 的应该是最快的了~最后 /var 区我没有经验,就不说了……

最后是不是非常重要的一个问题,怎么排顺序?我们都知道在传统机械硬盘上,分区越靠前意味着寻道时间越短,也即速度越快,因此我们显然要将经常要的放前面,以提高整体效率。此外我们都知道另外一个事实,如果你的内存比较大,Linux 几乎是不使用 swap 区的。因此我一向很反对把 swap 区放在前面,取而代之我觉得应该把 /tmp 放在最前面,根目录放其次,我想内存大于 1G 的可以把 swap 扔到第三个,再大的直接扔最后一个都无所谓……这里我还基于另外一个猜想:减慢 swap 访问速度有助于在有程序异常占用内存的时候减缓其扩张进程,给我们留一点时间解决这些程序……当然,这个猜想不一定是对的哈~

好了,上面都是关于传统机械硬盘的,我也想谈谈固态硬盘的问题。我的上网本就是配了个 16GB SSD……

对于 SSD,显然应该把频繁写入的东西移走,我的基本方案就是:把 /tmp、/var/log、/var/tmp 这类文件夹直接移入内存挂载为 tmpfs,然后整个硬盘分成两个区:一个 swap,一个根目录。显然在这么小的盘里你想放什么东西几乎是不可能的,因此我挂了一个外部硬盘作为我主文件夹的一个子目录,就不把 /home 单独分出来了。而且此处使用了 ext4,因为据说 ext4 是为 SSD 优化过的。至于为什么还要给 swap,这个上面也解释过了,虽然看起来很矛盾 _-b 不过这也是没有办法的……

时间: 2024-07-31 01:16:37

Linux中应该怎么分区配置才会比较不错的相关文章

linux中swap交换分区分区设置教程

什么是swap分区 交换区可是看作是内存的一部分,只是它是从硬盘中划分出来的,它像windows下的虚拟内存,它的作用是缓存数据,划分它时,大小设成你的物理内存的大小的两倍. 设置swap交换分区 交换分区的大小分配推荐法则 内存小于4GB时,推荐不少于2GB的swap空间: 内存4GB~16GB,推荐不少于4GB的swap空间: 内存16GB~64GB,推荐不少于8GB的swap空间: 内存64GB~256GB,推荐不少于16GB的swap空间. 1.以root权限登录SSH,键入如下命令创建

Linux中的Configure选项配置参数详解

  Linux环境下的软件安装,并不是一件容易的事情;如果通过源代码编译后在安装,当然事情就更为复杂一些;现在安装各种软件的教程都非常普遍;但万变不离其中,对基础知识的扎实掌握,安装各种软件的问题就迎刃而解了.Configure脚本配置工具就是基础之一,它是autoconf的工具的基本应用. 与一些技巧相比,Configure显得基础一些,当然使用和学习起来就显得枯燥乏味一些,当然要成为高手,对基础的熟悉不能超越哦. 为此我转载了一篇关于Configure选项配置的详细介绍.供大家参考 'con

linux中ssh公钥认证配置例子

在两台linux主机上由于环境的需要,经常要配置两台主机之间免密码登录,这就要用到key认证,也就是所谓的公私钥认证.便于理解,我这里指定两台主机为 A 和 B .如果A主机想免密码登录到B主机上,则A主机上存放私钥,B 主机上存放公钥.通过ssh-keygen 命令生成的两个文件为:公钥文件 ~/.ssh/id_rsa.pub: 私钥文件 ~/.ssh/id_rsa .而B主机上存放公钥时,需要将id_rsa.pub的内容存放到~/.ssh/authorized_keys 文件内,并且保证权限

教你使用vsftpd架设Linux中的FTP:配置

这一节,我们来讲一下vsftpd常用配置,下面对各个参数进行一个说明,让大家更容易明白! vsftpd服务器的配置文件 &http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;主配置文件--/etc/vsftpd/vsftpd.conf vsftpd.conf文件中常用的配置:  anonymous_enable :设置为YES时,FTP服务器允许匿名登录. local_enable :设置为YES时,FTP服务器允

linux中把GPT分区转mbr分区的方法总结

同事今天遇到一个问题,他负责的几台主机上新增了三个1T大小的磁盘(sdb.sdc.sdd),不过新增的这三个分区在新增过来时都使用gpt分区直接分了一个区.由于之前的是使用的mbr引导,并且通过lvm分区分别挂载到几个挂载点上.同事现在想将新增的这三个分区转化为MBR ,再转换为pv卷,合并到原lvm分区(sda磁盘中的pv卷)中,并动态的增加/data挂载点的大小. 这里记录下提供给同事转换的方法: 方法一:parted工具转换 parted -s /dev/sda mklabel msdos

Linux中ClusterShell安装与配置教程

ClusterShell的安装与配置 ClusterShell的安装很Easy,如果使用APT或YUM包管理方式的话,基本就是一条命令的事儿,我就不说了,这里说一下如何从源代码安装,需要在源代码目录执行如下命令:  代码如下 复制代码 shell> python setup.py install 为了使用的方便,还需要拷贝配置文件到指定目录:  代码如下 复制代码 shell> mkdir /etc/clustershell shell> cp conf/* /etc/clustersh

Redis数据库在linux中安装及主从配置

Redis是一个开源.支持网络.基于内存.键值对存储数据库.与其他非关系型数据库主要不同在于,Redis中值的类型不仅限于字符串(Strings),还支持如下抽象数据类型:(列表)Lists.(集合)Sets.(有序集合)Sorted sets .(哈希)Hashes.Redis 通过 RDB.AOF 两种方式来实现数据的持久化. 安装Redis Redis 源码包保存路径 /usr/local/src Redis 软件安装路径 /usr/local/redis 编译 Redis 前先安装 tc

linux中Vsftp虚拟用户配置

1.添加虚拟用户列表 创建一个虚拟用户列表文件,保存需要配置的虚拟帐号,格式为:第一行用户名,第二行密码,依次类推. # vi /etc/vsftpd/virtual_user_list ftp_www 123456 ftp_log 123456 2.生成虚拟用户口令认证文件   通过db_load命令生成认证文件.查询db_load命令是否已安装,未安装则先安装. # rpm -qa |grep db4-utils 本地CentOS未安装,直接通过yum安装即可. # yum -y insta

Linux中网络如何设置配置

安装Linux系统后,登陆进去,修改一下文件:  代码如下 复制代码 # cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0″ BOOTPROTO="none" HWADDR="00:50:56:BE:7A:D8″ IPADDR=192.168.2.108                           #IP地址,必须设置 GATEWAY=192.168.2.21