不知不觉已经记录了8篇Linux学习随笔了,虽然还是漂浮在Linux系统的表面,还有很多很多没有学,但是坚持学下去、坚持写下去就是成功的!!!!
在讲Linux系统分区之前,首先得介绍一下硬盘分区的知识,以及咱们用的最多的windows系统上的分区
一、系统分区
首先先普及一下有关系统分区的一些知识:
硬盘分区有三种,主磁盘分区、扩展磁盘分区、逻辑分区。
在linux下主分区和逻辑分区都可以用来放系统,引导os开机,grub会兼容windows系统开机启动。分出主分区后,其余的部分可以分成扩展分区,一般是剩下的部分全部分成扩展分区,也可以不全分,那剩的部分就浪费了。
|
MBR、扩展分区、逻辑分区的概念
一个是放置该硬盘的信息区,称之为主引导分区(master boot recorder,MBR),一个是实际文件数据放置的地方.其中,MBR是整个硬盘最重要的区域.一旦MBR物理实体损坏时,则该硬盘就差不多报废了.一般来说,MBR有512个字节,且可以分为两个部分.
|
硬盘的分区主要分为基本分区(Primary Partion)和扩展分区(Extension Partion)两种,基本分区和扩展分区的数目之和不能大于四个,(根据上面的一些分区概念,是基本分区的数目不能超过4个,而扩展分区的数目最多只有1个,所以两者数目之和不能超过4个)。且基本分区可以马上被使用但不能再分区。扩展分区必须再进行分区后才能使用,也就是说 它必须还要进行二次分区。那么由扩展分区再分下去的是什么呢?它就是逻辑分区(Logical Partion),况且逻辑分区没有数量上限制。
如图,咱们最常用的windows系统的分区就是这样分区的,首先分出一个主分区(操作系统一般就是装在主分区里面),然后分了一个扩展分区,因为扩展分区不能直接使用,所以需要在扩展分区下面将其分为若干个逻辑分区(如图所示的D、E、F、G盘就是分出来的逻辑分区)。
二、Windows分区和Linux分区的区别
在Windows操作系统中,是先将物理地址分开(分出主分区和逻辑分区),再在分区上建立目录。在Windows操作系统中,所有路径都是从盘符开始,如C://Program Files.
Linux正好相反,是先有目录,再将物理地址(分区)映射到目录中.在Linux操作系统中,所有路径都是从根目录开始【/】。Linux默认可分为3个分区,分别是boot分区、swap分区和根分区.
无论是Windows操作系统,还是Linux操作系统,每个分区均可以有不同的文件系统,如FAT32、NTFS等。
对习惯于使用Dos或Windows的用户来说,有几个分区就有几个驱动器,并且每个分区都会获得一个字母标识符,然后就可以选用这个字母来指定在这个分区上的文件和目录,它们的文件结构都是独立的,非常好理解。但对于Linux系统来说,可不再是这样了,因为对Linux系统用户来说,无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构。Linux中每个分区都是用来组成整个文件系统的一部分,因为它采用了一种叫"挂载"的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。下面我们先来看看Linux的驱动器是如何标识的。
对于IDE硬盘,驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里 是指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。对于SCSI硬盘则标识为“sdx~”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。如,sda1表示第一个SCSI硬盘上的第一个主分区或者扩展分区。
三、Linux的分区
在Linux系统中,我们可以通过 fdisk -l (需要root权限)命令来查看安装的Linux系统的分区具体情况
[root@xiaoluo /]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00066e2b Device Boot Start End Blocks Id System/dev/sda1 * 1 64 512000 83 Linux Partition 1 does not end on cylinder boundary./dev/sda2 64 2611 20458496 8e Linux LVM Disk /dev/mapper/vg_xiaoluo-lv_root: 18.8 GB, 18832424960 bytes255 heads, 63 sectors/track, 2289 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000Disk /dev/mapper/vg_xiaoluo-lv_swap: 2113 MB, 2113929216 bytes255 heads, 63 sectors/track, 257 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000
通过上面的 fdisk -l 命令可以看到,在我安装的CentOS系统上,一共分了两个区sda1、sda2.以及swap区。
Linux的分区是不同于其它操作系统分区的,它的分区格式只有Ext2和Swap两 种,Ext2用于存放系统文件,Swap则作为Linux的交换分区。那么现在我们就可以知道Linux至少需要两个专门的分区(Linux Native和Linux Swap)况且不能将Linux安装在Dos/Windows分区。一般来说我们将Linux安装一个或多个类型为“Linux Native”的硬盘分区,但是在Linux的每一个分区都必须要指定一个“Mount Point”(挂载点),告诉Linux在启动时,这个目录要给哪个目录使用。对“Swap”分区来说,一般定义一个且它不必要定义载入点。下面我们先普及下“Linux Native”和“Linux Swap”。
*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
Linux Native是存放系统文件的地方,它只能用EXT2的分区类型,上面已说过。对Windows用户来说,操作系统必须装在同一分区里,它是商业软件吗! 所以你没有选择的余地!对Linux来说,你有了较大的选择余地,你可以把系统文件分几个区来装(必须要说明载入点),也可以就装在同一个分区中(载入点是“/”)。下面我们看看 可以创建哪些分区(仅列常用几种)。
/boot分区 它包含了操作系统的内核和在启动系统过程中所要用到的文件,建这个分区是有必要的,因为目前大多数的PC机要受到BIOS的限制, 况且如果有了一个单独的/boot启动分区,即使主要的根分区出现了问题,计算机依然能够启动。这个分区的大小约在50MB—100MB之间(根据Linux版本不同,数值可以不一样)。 但是如果想用LILO启动Linux系统的话,含有/boot的分区必须完全在柱面1023以下。又由于8GB后的数据LILO不能读取,所以Linux要安装在8GB的区域以内。
根据安装的Linux版本,可以选择为/boot分区划分不同的空间(我设置的是500M),查看具体某一个目录的所在的分区使用 df [目录全路径] 这个命令查看,如:
[root@xiaoluo /]# df /boot/文件系统 1K-块 已用 可用 已用% 挂载点/dev/sda1 495844 50655 419589 11% /boot
我们可以看到,我们的/boot目录是挂载在了 sda1 这个分区上,当然我们可以将/boot目录从该分区上卸载掉,通过如下命令就可以:
[root@xiaoluo /]# umount /boot
此时我们可以看到,/boot下面已经没有任何东西了,我们设置可以在 / 根目录下建立一个自己的目录,然后将自己的这个目录挂载到 sda1 这个分区上(不推荐)。
/usr分区,是Linux系统存放软件的地方,如有可能应将最大空间分给它。/home分区,是用户的home目录所在地,这个分区的大小取决于有多少用户。如果是多用户共同使用一台电脑的话,这个分区是完全有必要的,况且根用户也可以很好地控制普通用户使用计算机,如对用户或者用户组实行硬盘限量使用,限制普通用户访问哪些文件等。其实单用户也有建立这个分区的必要,因为没这个分区的话,那么你只能以根用户的身份登陆系统,这样做是危险的,因为根用户对系统有绝对的使用权,可一旦你对系统进行了误操作,麻烦也就来了。/var/log分区,是系统日志记录分区,如果设立了这一单独的分区,这样即使系统的日志文件出现了问题,它们也不会影响到操作系统的主分区。/tmp分区,用来存放临时文件。这对于多用户系统或者网络服务器来说是有必要的。这样即使程序运行时生成大量的临时文件,或者用户对系统进行了错误的操作,文件系统的其它部分仍然是安全的。因为文件系统的这一部分仍然还承受着读写操作,所以它通常会比其它的部分更快地发生问题。/bin分区,存放标准系统实用程序。/dev分区,存放设备文件。/opt分区,存放可选的安装的软件。/sbin分区,存放标准系统管理文件。 |
我们可以如果要查看Linux磁盘的使用情况,使用如下命令即可:
[root@xiaoluo /]# df -h文件系统 容量 已用 可用 已用%% 挂载点/dev/mapper/vg_xiaoluo-lv_root 18G 8.2G 8.3G 50% /tmpfs 245M 228K 245M 1% /dev/shm/dev/sda1 485M 50M 410M 11% /boot/dev/sr0 391M 391M 0 100% /media/20130331_132633
所以,通过以上的概述,总结一下Linux分区需要注意的地方,在安装Linux系统时,我们一般为其分配三个区:
①/boot区,通常情况下根据Linux的版本不同,个人分区习惯会不同,我这里分配了500M给这个分区。
②swap区,交换区,通常分配给其的大小为物理内存的2倍,但是最好不要超过256M,所以我这里分配了256M给这个分区。
③ / 区,也就是根目录,这个分区尽量给其分配大的空间,可以将安装Linux系统的这个硬盘上除去分给/boot、swap区以外的空间都分配给这个分区。
对于Linux系统分区的概念基本上就是这些,在后续的学习中将继续记录自己学习Linux系统的点点滴滴!!!
本文转自sandshell博客51CTO博客,原文链接http://blog.51cto.com/sandshell/1947751如需转载请自行联系原作者
sandshell