关于linux安装时的分区
在这之前,你必须清楚你的系统,未来主要的使用目的为何?有什么特殊需求?硬件设置为何?
假如你完全没有概念。那系统只需要一个”/”,就可以了。Linux的根目录,是所有目录的基础,只要有他,系统就可以引导。顶多再加个swap分区,供系统在内存不足的状况下,可以使用硬盘来交换文件,现代的计算机swap大约2G就足够了。
swap可以理解为「在硬盘上的内存」,系统通常会先使用物理内存,当物理内存不足时,就开始使用swap来存放数据。如果你的内存有4G,你几乎可以不分割swap。但如果系统没有内存可以使用时,系统就会死机。所以我们需要分割swap。而因为硬盘的速度远远低于内存,当系统开始使用swap时,系统速度会突然变慢,这也可以警告我们,内存不足了,我们应该存储手上的工作,并关闭一些非必要的程序空出内存。
swap多大才是合理的?
若你有休眠的需求,应该要有两倍内存的容量(Ubuntu的休眠功能当前有问题,再引导时常会丢失数据,系统异常,所以是预设关闭的);
若属于「当掉就当掉,重开就好」的用户,可以完全拿掉swap(据说,Google的服务器完全不设置swap,因为他们认为当掉换别台接手,比使用swap造成速度下降来得有效率);若你认为速度减慢没关系,能继续完成工作就好,那么可以设置2G。
除了swap分区外,Linux还有其它的方式来解决swap的问题,就是设置一个swapfile来取代或增加swap分区的功能。
最大的好处,就是「动态」,需要时挂上,不需要时拿掉,而且还可以改变大小。
以下为设置方法:
0.先检查一下内存,并纪录一下。
free-m
1. 准备一个空白的swap文件。
sudodd if=/dev/zero of=/swapfile bs=1024 count=1000000
bs=1024(一个块1024bytes,刚好是1kbytes)
count=100000(1k*1000000=1G,所以你可以调整这个数值,以做出你所需要的尺寸,如4G就是count=4000000)
2.修改属性,并格式化swapfile
sudochmod 600 /swapfile
sudo mkswap /swapfile
3.启用swapfile
sudoswapon /swapfile
4. 检查swapfile是否启动
free-m
比较一下之前的内存,看swap是否增加。
至此swapfile已完成设置并启动。
5.手动关闭swapfile
sudoswapoff /swapfile
6. 假如你希望以后,开机自动挂载:
gksudogedit /etc/fstab
在最底下加入以下一行:
/swapfilenone swap sw 00
因为Linux的文件系统是一种树状的结构,一个软件会把包含的众多文件,放置在不同的目录当中,所以不同的使用目的,每个目录扩张的速度会不一样。
例如,
当计算机当作服务器使用时,由于变动的文件一般是位于/var当中,所以/var应规划足够的空间;
当计算机当作日常桌用应用时,/home会增加使用量,所以/home要放大空间;
若计算机中会安装大量的软件,那你可能需要增加/usr的空间。
/bin,/sbin, /lib, /etc, /dev 这五个目录。绝对不可与/所在的分区分开,因为这五个目录,有系统必要的工具与资料存放。当根目录在开机过程中被挂载进来时,需要这些工具与资料来维持正常的运作。若是把这五个目录放在其它分区当中,系统就不能正常引导。
以上的目录,绝对不要额外挂载到其它分区上。
再来,不需要与根目录放在不同分区的目录:
如/cdrom,/mnt, /media, /proc, /run, /sys,/srv等。这些目录可以放到其它的分区,但不需要,因为这些目录的存在,只是运作过程中,维持运作所需,大多不会占用空间。放到其它分区,也无益于系统的性能。如/mnt,/media, /cdrom 只是提供一个挂载点,让实体存储媒体可以挂载而已;或如/sys,/proc其实是内存上的数据,上面所有的数据完全不会占用硬盘的空间。所以这些目录不需要额外的分区存放。
在FHS的推荐当中提到,根目录所在的分区越小,越有助于系统的稳定,避免其它的干扰;发生错误时,也会比较容易进行维护修正;而且可以提高系统的性能。
以往Linux系统主要是提供服务器使用,所以/home这个目录使用量并不高。但随著Linux的桌面应用发展,不少人也拿来在日常上使用,这时/home就变成存储媒体中,最占容量的目录。假如你安装Ubuntu主要是桌面应用,那你可能需要把最大的空间留给他。
额外分割出/home有个最大的好处,当你重新安装系统时,你不需要特别去备份你的个人文件,只要在安装时,选择不要格式化这个分区,重新挂载为/home就不会丢失你的数据。
还有一个特别的应用:假如你会在你的计算机上,安装两个或更多的Linux系统,你可以共享/home这个分区。简单地说,你的个人文件可以在切换到其它Linux系统时,仍正常使用
/var:
假如你的计算机主要是提供网页服务,或者是mysql数据库,那/var会大量增加,你最好能够把/var额外分割出来。与/home的概念类似,重新安装时,不要格式化,仍可保留原来的数据。
在服务器的应用时,数据的安全是相当重要的,额外分区对数据的安全也有所帮助。此外,/var/log是系统log档保存的位置,养成有问题就去找log的好习惯,有助于解决问题。所以这也加强了额外分区的重要性。当一个服务器出现系统问题,甚至毁损时,除了你的数据外,之前的系统纪录也相当重要,找出为什么系统会出问题,可以帮助管理器快速排除障碍。
/usr:
除了系统的基本程序外,其它所有的应用程序多放在这个目录当中。除了/home,/var这种变动数据的存放目录外,/usr大概是会是使用容量最大的目录,不过一般Linux下的应用程序通常不大,所以大多数的桌面应用顶多3~4GB的空间就已经相当足够了,若是服务器,多半也是2~3GB就足够了。不过,Ubuntu的发展出现了特例:游戏。Ubuntu与Steam的合作,促成了商业游戏公司开始进入到Linux,而游戏的数据相当可观,以DOTA2来说,他就推荐要8G的可用空间。所以你想要玩这些游戏的话,可能需要很多额外的空间来放置。
以上三者,你必须思考哪些空间必须额外分割出来。当然就系统稳定来说,最好都分割出来。
但就如我之前所言,安装不过也几十分钟的事,若你有备份习惯,是否真的需要额外分割,就需要你的考量了。
我先提供我在桌面应用各目录的使用情形,让各位参考:
/home 29.6 GB
/usr 4.2 GB
/var 736.5 MB
/lib 272.3 MB
/opt 87.6 MB
/boot 40.8 MB
/sbin 11.5 MB
/bin 10.1 MB
/etc 14.4 MB
其它 <1MB从上面的数据来思考:
/boot每个核心需要40MB,更新后,至少有两个核心需要80MB,所以/boot最好划分出至少100MB。不过,每次核心更新完,就要注意删除旧核心也太辛苦了,所以划分个200~300MB吧!
拿掉应该额外分割的三个目录/home,/usr, /var 后,剩下的全和根目录放在同一分区,大约需要450MB,这部份通常属于比较静态,大小不会变动的部份,就算作500MB。现在就要思考那三个目录谁要与根目录在一起,谁要额外分割开来,大约需要多少容量?假如你跟我一样,只是一般的桌面应用,不玩游戏,可能有很多的个人文件,那我的方案是把/var,/usr与根目录在一起,0.5(/ )+4.2(/usr )+0.75(/var ) = 5.45,再多一点缓冲,大约7.5G,那就是
/boot250 MB, / 7.5 GB, /home 剩下的空间(别忘了swap,以下也是)假如你需要的是网页服务器,跑Apache,php, mySQL,需要性能与安全,那/var,/usr 要额外分割,/home与根目录在一起,那0.5(/)+ 0.1(/home )= 0.6,多一点缓冲,大约1.5G,那就是:
/boot250 MB, / 1.5 GB, /usr 3 GB, /var 剩下的空间
假如你准备大玩游戏,但也需要一些个人文件存储空间,那或许增加/usr,与/home的空间是个不错的决定,那让/var与根目录在一起,0.5(/)+ 0.75 (/var) =1.25,多一点缓冲大约2.5GB,那就是:
/boot250 MB, / 2.5 GB, /usr 20 GB, /home 20 GB
假如你准备架设一个ftpserver,大约5人使用,每人有5GB的空间,各存储在自己的家目录,那就是:
/boot250 MB, / 6 GB, /home 25G