Linux修炼之路(学习笔记)–系统分区
- Linux系统安装之前需要经过4个步骤,分别是分区、格式化、定义设备文件名和挂载。
1.磁盘分区
磁盘分区是使用分区编译器(partition editor)在磁盘上划分几个逻辑部分。
- 合理的分区能够使硬盘的读写效率大大增加。
分区类型
1.主分区
- 最多只能有4个。
2.拓展分区
- 最多只能有1个
- 主分区加拓展分区最多有4个;
- 不能写入数据,也不能格式化,只能包含逻辑分区。
3. 逻辑分区
这种限制不是Linux限制的,而是由硬盘限制的,只要硬盘的结构不发生变化,这种限制依然会存在。
在兄弟连Linux视频教程中用柜子来形象的比喻分区
2.格式化
格式化(高级格式化)又称逻辑格式化,它是指根据用户选定的文件系统(如windows可识别的FAT16、FAT32、NTFS,Linux可识别的EXT2、EXT3、EXT4等),在磁盘的特定区域写入特定数据,在分区中划出一片用于存放文件分配表、目录表等用于文件管理的磁盘空间。
- 接着上面的柜子来说,可以想像,格式化就相当于按照一定的规则在分区里打上隔断。
格式化最主要的工目的是写入文件系统,而写入文件系统主要做了两个工作:
- 一个是把硬盘分成一个一个的数据块(block);
- 一个是建立
inode
(也就是索引节点)列表,inode
中存有文件数据block的位置;
Unix/Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称或者绰号。
表面上,用户通过文件名,打开文件。实际上,系统内部这个过程分成三步:
1.首先,系统找到这个文件名对应的inode号码;
2.其次,通过inode号码,获取文件数据block的位置;
3.最后,找到文件数据所在的block,读出数据。
格式化并不等于清空磁盘数据。格式化最主要的目的是写入文件系统,只是在写入的过程中,附带的要清空磁盘里的数据。
3.硬件设备文件名
这里需要提醒一下,在Linux中,所有硬件都是以文件的形式保存的,根目录(/)下的dev目录(/dev/)下的所有文件都是硬件文件。
硬盘需要有设备文件名,同样的分区同样需要有设备文件名,以SCSI/SATA接口的硬盘为例
硬盘的设备文件名:
- /dev/sda(第一块硬盘)
- /dev/sdb(第二块硬盘)
- …(最后一个字母增加,依此类推)
分区的设备文件名(直接在硬盘的设备文件名后面加上数字):
- /dev/sda1(第一块硬盘的第一个分区)
- /dev/sda2(第一块硬盘的第二个分区)
- …(最后一个数字增加,依此类推)
继续用柜子作比喻
值得一提的是,上图中的第二块硬盘(sdb)只有一个主分区(sdb1)和一个拓展分区(sdb2),但是它的逻辑分区也是从sdb5开始的,1、2、3、4这四个号码只能给主分区或者拓展分区使用,逻辑分区只能从5开始,这是系统自动分配的。
4.挂载
必须分区
- /(根分区)
如果不给根目录分区,那将会造成很多数据没地方可写的情况。
- swap分区
1.又叫交换分区,可以理解为虚拟内存,当我们真正的内存不够用了,可以拿这部分交换分区的硬盘空间来当内存使用。
2.理论上应该为内存的2倍,但是最大不能超过2G,原因很简单,虚拟内存到底不是真正的内存,到达2G之后,给的再大,只会占用更多的硬盘空间,不会对系统产生更大的影响。
推荐分区
- /boot
1.任何系统想要运行起来,都需要有一定的空余空间,如果所有数据都放在根分区下,万一根分区写满了,那么Linux系统可能无法启动;
2.有了启动分区,保存启动时候需要的数据,之后不再保存任何数据,那么启动分区一直会有空余空间,即使根分区写满了,Linux系统依然可以正常启动;
分配挂载点
- Linux可以给根目录下的子目录分配单独的磁盘空间,如上图,根目录(/)分配/dev/sd3分区,而根目录(/)下的/boot目录和/home单独分配了/dev/sda1分区和/dev/sda2分区。
总结
- 分区:把大硬盘分为小的分区
- 格式化:写入文件系统
- 分区设备文件名:给每个分区定义设备文件名
- 挂载:给每个分区分配挂载点