鸟哥Linux私房菜读书笔记1:Linux磁盘分区
设备与对应的文件名:
Linux将所有设备视为文件,这让用惯Windows的用户还真有些不适应,上哪儿找C/D/E盘咧? 只要记住各硬件设备在Linux中对应的文件名就话,找到C盘啊U盘啊就很方便啦。
设备 文件名
=====================================================
IDE硬盘 /dev/hd[a-d]
SCSI/SATA/USB硬盘 /dev/sd[a-p]
U盘 /dev/sd[a-p](与SATA相同)
鼠标 USB: /dev/usb/mouse[0-15] PS2: /dev/psaux
当前鼠标 /dev/mouse
当前CD ROM/DVD ROM /dev/cdrom
更多Linux内核支持的设备与文件名可查询https://www.kernel.org/pub/linux/docs/lanana/device-list/devices.txt-3June2001。
IDE/SATA:
常见的计算机硬盘接口有IDE和SATA两种。
主机会提供两个IDE接口,各接一条IDE扁平电缆(primary/secondary),而每条IDE扁平电缆可以连接两个IDE设备(Master/Slave),主机最多可以连接四个IDE设备(能连接到IDE接口的设备都叫IDE设备,不管是磁盘还是光盘设备),这四个设备的文件名是固定的,和设备所处位置有着密切的关系,比如将同一个磁盘接在IDE1的Master上和IDE2的Slave上对应的文件名就是不一样的:
IDE1 Master: /dev/hda IDE1 Slave: /dev/hdb
IDE2 Master: /dev/hdc IDE2 Slave: /dev/hdd
对于SATA接口,与IDE比较明显的不同的是无序,这时候就得根据Linux内核检测到磁盘的顺序了。比如你的PC上有两个SATA磁盘和一个USB磁盘,而主板上有6个SATA接口,将两个SATA磁盘分别插在主板上的SATA1和SATA6的插槽上,这时这三个设备的文件名分别是:
SATA1: /dev/sda
SATA6: /dev/sdb
USB磁盘: /dev/sdc
USB磁盘之所以排在最后是因为开机完成后才会被检测到。注意,当使用的SATA插槽不相连时,设备文件名仍然是相连的,不会受到影响。
磁盘分区表(partition table):
说到磁盘分区表,首先要了解磁盘的组成,磁盘由盘片、机械手臂、磁头与主轴马达所组成,而数据的写入是在盘片上面。盘片上面又可细分出扇区和柱面两种单位。重点来了,扇区中的第一个扇区特别重要,它记录了整块磁盘的重要的信息:
主引导分区(Master Boot Record, MBR):可以安装引导加载程序的地方, 有446bytes;
分区表(patition table):记录整块硬盘分区的状态,有64bytes;
分区表呢,顾名思义,就是用来放置分区信息的一个表,其实我们所谓的分区,也就是对这个分区表进行设置的过程。大家都知道,我们的硬盘默认可分出最多4个主分区,或者以主分区+扩展分区的形式进行分区设置(分区的最小单位为柱面)。这里引入鸟哥私房菜的插图:
上图就是四个主分区的情况,P1/2/3/4分别指向第1(/dev/hda1)、2(/dev/hda2)、3(/dev/hda3)、4(/dev/hda4)分区。那么对于主分区(primary)+扩展分区(extended)的情况呢,比如我们有一个主分区,另外一个扩展分区,在扩展分区中分出四个逻辑分区,这样的情况下,P1仍会指向第一个分区(/dev/hda1),而P2会指向扩展分区(/dev/hda2),重点来了,扩展分区记录区,其作用类似于分区表,用来记录逻辑分区的分区信息。类似于P1/2/3/4,用L来表示扩展分区中的分区信息,因为有四个逻辑分区,所以我们会有L1~L4,分别指向第1、2、3、4个逻辑分区,注意,前四个分区是保留给primary和extended用的,所以L1所指向的是/dev/hda5,L2对应的是/dev/hda6, L3对应的是/dev/hda7,L4对应的是/dev/hda8。
逻辑分区的数量依操作系统而不同, Linux系统中,IDE硬盘最多有59个逻辑分区(5~63号),SATA则有11个逻辑分区(5~15号)。
开机流程:
计算机从我们按下开机键以后会执行一系列的步骤,大体是这么个顺序,BIOS->MBR->Boot loader->Kernal。
BIOS会找到第一个可以的设备,该设备的第一个扇区内的主引导分区块就是MBR啦, Boot loader是MBR上面的一套软件,有着“提供菜单”、“载入内存文件”和“转交其他loader”的作用。
提供菜单就是提供不同的开机选项,比如双系统开机是会显示相应额系统让用户选择。而“转交其他loader”也是体现在多系统上,如图:
注意:loader只会认识自己的系统分区内的可开机内核文件,以及其他loader而已。
目录树结构:
如图所示,所有的你都是由根目录衍生出来的,而次目录下能够有其他的数据存在。但是如何结合目录树的架构与磁盘内的数据呢,就要说到挂载啦,挂载就是利用一个目录当作进入点,将磁盘分区的数据放置在该目录下。也就是进入该目录就可以读取该分区的意思。
主机硬盘的主要规划:
懒人分区法: 仅分出根目录与内存交换空间(/ & Sway)。
稍微麻烦一点的方式:先分析这台主机的未来用途,然后根据用途去分析需要大容量的目录,以及读写较为频繁的目录,将这些重要的目录分别独立出来。