Linux下硬盘分区的最佳方案在对硬盘进行分区前,应该先弄清楚计算机担负的工作及硬盘的容量有多大,还要考虑到以下几个问题。
第一点也是最重要的一点,要知道当前安装LILO的版本,因为LILO2.21及早期版本对硬盘大小有限制,如果安装LILO到1023磁道以外即8G的空间以外,LILO就无法启动。
但一些BIOS较老的机器,LINUX仍然无法突破1024磁道的限制,因此这些BIOS 无法认出大于1024的硬盘空间。
还需要考虑的问题有:·是否限制用户可使用的磁盘空间大小?·在系统中需要安装哪些软件?·交换分区需要多大?·系统是否有多个硬盘?下面,我们按系统工作性质的不同对分区的划分提出了一些建议。
当然,根据实际情况,在满足系统工作需求的前提下,下面的分区大小也可以灵活的变动。
基本工作站的分区方案假设系统的硬盘大小是10G。
/boot 20MSwap 128M/root 9.85G建立一个20M的/boot分区是为了避免将系统内核文件放到1024磁道以外,如果将/boot做为root分区的一个子目录,内核文件就会安装在root分区的任何地方,因为硬盘的大小超过了8G,所以在启动时就有可能出现问题。
建议将交换分区的大小设置为内存的两倍,在这里我们假设系统的内存为64M。
最后我们将硬盘的剩余空间全部分给了root分区。
Red Hat Linux 6.2 及其早期版本上的基本服务器硬盘分区方案这里的服务器我们假设只提供几种通用的服务,如WWW服务及FTP服务等几种服务,通过telnet登录的用户数很少。
假设其硬盘大小为25G。
/boot 20MSwap 128M/ 10G/home 13G/var 2G在硬盘的最前面创建20M大小的/boot分区,原因同上。
交换分区的大小也是128M,因为内存的大小为64M。
/ ,即root分区设为10G这么大是因为其中有一个/usr目录,这个目录可能会占用很多硬盘空间,特别是在安装了X Server,运行图形界面的应用程序的时候。
/home分区是硬盘中最大的分区,这似乎与我们假设系统用户数不多有些矛盾。
实际上在/home目录下确实没有几个用户目录,但在Red Hat6.2及更早的版本中,Apache服务器和wu-ftpd FTP服务器被放在了/home/httpd及/home/ftp目录中。
所以这个分区这么大也是有原因的。
最后,/var目录独自占用了一个分区,因为系统的所有日志都写到了/var/log目录下,这将会占用很大的硬盘空间。
如果系统日志记录得非常详细,整个目录很快会被写满,导致系统工作呆滞。
当然,可以通过系统日志后台守护程序syslogd来修改日志配置,避免发生这种情况。
Red Hat 7及以上版本的基本服务器分区方案这种情况同前一个方案的情况相同,不同的是LINUX版本为Red Hat 7.0及其以上版本。
/boot 20MSwap 128M/ 10G/var 15G与RedHat6不同,在RedHat7中HTTP服务和FTP服务的目录现在位于 /var/www/ 和/var/ftp/,因此/var分区有15G之大也就不难理解了。
多用户服务器分区方案在这种服务器系统中,同时有多个用户通过telnet, ssh, rlogin或其方式在远程访问系统。
系统中有三个35G的硬盘驱动器,总共有105G的磁盘空间。
系统中用到了RAID 5技术做数据冗余。
这种情况下,管理员必须为每个用户分配磁盘空间。
对RedHat 6.2及更早的版本,分区如下:Disk 1:/boot 20M/ 4G/var 3GB/home 27.98GDisk 2:swap 20MB/ 4GB/var 3GB/home 27.98GBDisk 3:swap 20MB/ 4GB/var 3GB/home 27.98GB这样分区的原因:首先,Disk1上的20M /boot分区不属于任何RAID阵列,否则如果你将/boot放至RAID阵列中,以后就不能系统内核升级了。
为了方便管理,在其它两个硬盘中建立了20M的交换分区。
这种服务器一般配有1G 以上的内存,因此交换分区的大小不成问题。
如果增大交换分区,就会减少RAID分区空间,所以20M是足够的。
RAID分区的分组如下:· 1-A, 2-A, and 3-A 一起组成一个8G的 RAID 5 驱动器,做为/根目录打开。
· 1-B, 2-B, and 3-B 组成 6GB的 RAID 5 驱动器,做为 /var目录。
· 1-C, 2-C, and 3-C 组成 55.96GB RAID 5 驱动器, 做为 /home.目录。
这种分配方案总共有55.96G的空间分配给所有用户及Apache和FTP服务,在/var 下用6G空间用做记录日志、邮件,这么大的空间是足够的。
如果安装Red Hat7或以上版本,应给/var分区更大的空间,因为它同时还存放着WE B和FTP服务的两个目录。
各分区的作用在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分好区后,用光盘上的livecdinstaller程序,在命令行下安装。
不过这个安装程序只需要你挂载/和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(参数自己确定)即可。
在Linux下,硬盘是一个设备,实际上Linux下什么都是设备。
对于IDE硬盘而言,Linux认为存在四个设备,对应于IDE的四个位置接的设备。
如果装过机器我们知道主板上有两个槽,IDE0和IDE1,每个槽上能挂两个设备,主盘和从盘,这些盘可以是硬盘可以是光驱。
那么Linux是怎么认为这些设备的呢?在Linux下,这些设备用/dev/hdx来标示。
IDE0上的主盘就是/dev/hda,从盘就是hdb,依此类推,如果可以有多个IDE槽就可以延续到hde hdf等。
总之每条硬盘线上接的设备都被Linux认为是一个/dev/hdx设备。
如果你的机器是IDE0槽上的主盘是硬盘,那它就是hda,如果IDE1的槽上主盘是一个光驱,那它就是hdc。
在windows下fdisk是对”硬盘1“,”硬盘2“进行操作,而linux下的fdisk就是对/dev/hda,/dev/hdb等进行操作。
那么Linux下怎么看分区呢?Linux下的分区概念是,硬盘上的每个分区也是一个设备(又来了)。
他们的标志是/dev/hdxy,其中hdx根前面一样表示哪个硬盘,y表示第几个分区。
以hda为例。
hda1就是第一个分区,hda4就是第四个分区位置。
逻辑分区从hda5开始。
所以刚才那个例子中,Linux看来就是hda有10G。
hda1是主分区,格式是windows。
hda2是扩展分区,在它上划出了hda5和hda6,格式是windows。
hda还有2G剩余空间可以继续建立hda3和hda4。
注意因为hda2空间已经被划分完,所以无法再建立逻辑分区。