Linux 系统中所有的硬件设备都是用文件的形式来表示和使用的,也就是说,如果你想使用某个硬件设备首先你就需要将其挂载到某个目录下面,通过对这个目录的操作来操作设备;如果不挂载,通过Linux系统中的图形界面系统可以查看找到硬件设备,但命令行方式无法找到。
并不是根目录下任何一个目录都可以作为挂载点,由于挂载操作会使得原有目录中文件被隐藏,因此根目录以及系统原有目录都不要作为挂载点,会造成系统异常甚至崩溃,挂载点最好是新建的空目录
磁盘也是一样的,磁盘的文件是存放在/dev
目录下,磁盘设备文件的命名规则为:
主设备号+次设备号+磁盘分区号
常见的主设备号有:sd,hd;它们是代表的不同的磁盘类型:sd
代表的IDE
硬盘,hd
代表的是SCSI
硬盘
次设备号就是同一类型设备的次序,用[a-z]
来表示,/dev/sda
表示第一块IDE
类型的磁盘,/dev/sdb
表示第二块IDE
类型的磁盘
磁盘分区编号,每一块磁盘都会被划分为多个磁盘分区(这个下面会介绍),每一个分区都会有一个编号,比如:/dev/sda1
表示这是该磁盘的第一个分区,以此类推
磁盘分区
在 Linux 中,每一个硬盘设备都只能划分四个主分区;若是划分了一个扩展分区那最多可以划分三个主分区;可以表示为:
P+P+P+P 或者 P+P+P+E
主分区加扩展分区最多只有四个;可以全部划分为主分区,也可以之划分一个主分区;但是扩展分区最多只有一个;扩展分区是不能直接使用的,还有进一步划分为逻辑分区才能使用;一个扩展分区可以划分为多个逻辑分区;
主分区的分区编号是:1,2,3,4;从扩展分区划分出来的逻辑分区的编号是从 5
开始,以次累加
为什么最多只能划分四个主分区呢
这跟系统启动有关系;当你启动电脑时,首先就会加载 BIOS
信息,这里面包含了 Cpu
和其他硬件设备的信息;找到它计算机就知道怎么启动了
接下来,它会去找 MBR(Master Boot Record)
,也就是主引导记录;为了方便BIOS
的查找,所以就会把它放在磁盘上第0磁道上的第一个扇区中,磁盘中每个扇区有 512
字节;虽然只有这么大一点,但是要存三部分信息:
- MBR 占 446 字节
- 磁盘分区表占 64字节
- 结束标识符占两个字节
磁盘分区表总共只有 64 字节,而每个分区信息占 16 个字节,所以就只能有四个主分区了
主分区和扩展分区有什么区别吗
这应该是历史遗留的问题了,一开始只有四个分区,后来发现四个分区不够用,就引入了扩展分区,而扩展分区是不能直接使用的,它必须再划分为逻辑分区,逻辑分区的数量可以是任意多个。
对用户而言,主分区和逻辑分区使用起来没有任何的区别,同时还能够达到无限分区的目的
为什么要对磁盘进行分区呢
我想很多人都思考过这个问题,我再了解了之后才发现磁盘分区还是有很多的好处的。具体例子:
现在给你一个仓库,你打算存放快递,一开始你一股脑的把所有的快递直接放进去,等到别人来取快递的时候你就发愁了,几十甚至上百个快递得找到啥时候啊
所以你打算开始分区管理,因为你代理了中通,圆通,百世等好几个快递,所以你打算按照不同的快递分为三个货架;
过一段时间发现同一种快递如果量大的时候还是会混乱;因此你又想了个办法就是按照日期给快递编号,然后按照不同的日期将货架分为多层,每一层存放某一天的快递,同时你又找了个表记录了每个分区快递存放的位置,这大大增加了存取的效率
磁盘分区的目的,
- 将常用的数据挂载在同一分区,可以加快读取的速率
- 分区之间相互独立,当某一个分区的数据受损时不会影响其他分区
- 多个分区可以支持安装多个操作系统
- 每个分区可以是不同的文件系统
那如何进行分区呢
Linux 常见目录:
- / :作为系统文件系统的根目录 ,所有的挂载点都要直接或间接的挂载在根分区上。
- /swap :交换分区,作为虚拟内存使用,通常分成内存的两倍。
- /boot :引导分区,存放引导文件,如Linux内核等。
- /home:用户主目录,类似于 Windows 下的
Users
目录,保存个人设置和信息 - /tmp :用来存放不同程序执行时产生的临时文件,系统重启时不会保存
- /usr :储存所安装的程序和系统的配置等文件,用户的很多应用程序和文件都存放在这个目录下。
- /root :如果你是以超级用户的身份登录的,这个就是超级用户的主目录。
- /sbin :这个目录用来存放系统管理员的系统管理程序。
- /etc :存放了系统管理时要用到的各个配置文件和子目录。
- /dev :包含了所有 Linux系统中使用的外部设备。但是这里并不是放外部设备的驱动程序。
一般要是新手,可以只建立两个分区:
- /swap交换分区:一般设置为内存的两倍,设置大了也没用
- / 根分区:剩下容量的分给根分区就可以了
这种分区方式比较简单,如果只是测试可以用这种;要是想当成一个常用的系统,就需要更细一点划分了,常用的分区方案如下(假如有磁盘有100G):
- / 根分区: 20G
- /boot 启动分区: 200M
- /swap 交换分区:一般设置内存的两倍
- /home分区:剩下的全部放在该分区