A. 安装Linux前,需要对使用了解后进行规划, 你必须要针对districtions的特性,服务器软件能力,未来的升级需求,硬件扩充性

B. 对所安装的主机进行磁盘分区规划  目录规划  权限规划   IP规划

2.1 Linux与硬件的搭配  (目前品牌的服务器都基本支持LINNUX,包括各驱动,但是台式机一般不一定,有时没有提供LINUX的驱动,所以硬件购买前需要确认兼容性)

需要考虑计算能力,数据储存的容量,输入输出的I/O,网络接口

2.2 各硬件在LINUX中的文件名

【linux中,每个装置都被当成一个文件来对待,如IDE接口的硬件的文件名就是  /dev/sd[a-d],其中的字母a-d当中任一个,/dev/sda, /dev/sdb就表示两个文件】

设备名称
在Linux内的文件名
SCSI/SATA/USB  接口硬盘 (包括USB内存)
/dev/sd[a-p]
virtI/O 界面
/dev/vd[a-p] 用于虚拟机内
软盘驱动器
/dev/fd[0-7]  现基本已不用
printer
/dev/lp[0-2](25Pin)  /dev/usb/lp[0-15]USB
mouse/keyboard

/dev/input/mouse[0-15] 通用的

/dev/psaux(ps/2界面)

/dev/mouse(当前鼠标)

cdrom/dvdrom

/dev/scd[0-1] 通用

/dev/sr0[0-1] (通用,centos较常见)

/dev/cdrom(当前CDROM)

磁带机

/dev/ht0(IDE界面)---基本淘汰

/dev/st0(sata/scsi界面)

/dev/tape(当前磁带)

IDE硬盘机
/dev/hd[a-d]  基本已不用
adw

近些年来虚拟化技术的成熟应用, 方便了我们学习,这次的学习我就是安装在虚拟化的系统中的。

例:PC上有两个SATA盘和一个USB盘,主板上有6个SATA槽,两个SATA盘在SATA1和SATA5上,那么这几个设备在LINUX中的文件名是什么?

     SATA1插槽上的档名: /dev/sda   SATA5插槽上的档名:/dev/sdb    USB上的开机后才误别的:/dev/sdc

硬盘简述:

硬盘是由磁盘, 机械手臂,磁盘读取头与主轴马达所组成, 磁盘面上又分为扇区,磁道   硬盘的容量=柱面数*磁头数*扇区数*512B

早期的硬盘第一个扇区有重要的信息,称为MBR(master boot record)格式,近年来由于磁盘容量不断扩大,大于2T的磁盘分区无法进行读取,因此后来又多了一个新的磁盘分区格式--GPT

MSDOS(MRB)与GPT磁盘分区表(partition table)

LINUX为了兼容windows磁盘,使用了支持windows的MBR的方式来处理管理程序与分区表,而开机管理程序纪录区与分区表则通通放在磁盘的第一个扇区,这个扇区是512byte:

主要包括这两个数据:  

* 主要启动记录区(master boot record,MBR):  可以安装开机管理程序的地方,有446bytes

* 分区表(partition table): 记录整颗硬盘分区的状态,有64bytes      

每个分区信息用16个字节表示,四个分区就用掉了16X4=64个字节,这64个字节分布在MBR的第467-510字节,后面紧接着两个字节AA和55被称为幻数(Magic Number),BOIS读取MBR的时候总是检查最后是不是有这两个幻数,如果没有就被认为是一个没有被分区的硬盘.

由于分区表所在的区块仅有64bytes容量,因此最多仅能有四组记录区,每组记录了该区段的起始与结束的磁柱号码,这四个分区的记录被称为主要(Primary)或延伸(extended)分区槽。

  • 其实所谓的【分区】只是针对那个64bytes的分区表进行设定而已!

  • 硬盘默认的分区表仅能写入四组分区信息

  • 这四组分区信息我们称为主要(Primary)或延伸(extended)分区

  • 分区的最小单位【通常】为磁柱。

  • 当系统要写入磁盘时,一定会参考磁盘分区表,才能针对某个分区进行数据的处理。


2.3 磁盘分区的好处

     (数据的安全性    系统效能考虑)

    如我们对一个磁盘进行了分区,P1,P2,P3,P4,P1-P3为主分区,P4为扩展分区,由于扩展分区的目的是使用额外的扇区来记录分区信息,扩展分区本身并不能拿来格式化,然后我们可以通过扩展分区所指向的那个区块继续作分区的记录。

     扩展分区继续分区,分出来的叫做逻辑分区(logical partition), 在LINUX中逻辑分区的设备名称号码是从5号开始的。

     P1(/dev/sda1) P2(/dev/sda2)  P3(/dev/sda3)  P4(/dev/sda4 )     L1(/dev/sda5)

综上所述,总结一下MBR分区的特性:

  • 主要分区和扩展分区最多可以有四个(

  • 扩展分区最多只能有一个

  • 逻辑分区是由扩展分区划分出来的

  • 能够被格式化后,作为数据存取的分区为主要分区和逻辑分区,扩展分区不能被格式化。

  • 逻辑分区的数量依操作系统而不同,在LINUX系统中SATA硬盘已经可以突破63个以上的分区限制。

MBR带来的缺点:

  1. 操作系统无法抓取到2.2T以上的磁盘容量       2. MBR仅有一个区块,被破坏后,经常无法或很难救援    3. MBR内的存放开机管理程序的区块仅446bytes,无法容纳较多的程序代码


GPT磁盘分区表  GUID partition table

   当前由于技术的进步,过去一个扇区就是512bytes,现在已经有4K的扇区设计出现,为了兼容于所有的磁盘,因此在扇区的定义上面,大多会使用逻辑块(logical block address,LBA)来处理,GPT将磁盘所有区块以此LBA(预设为512bytes)来规划,第一个LBA称为LBA0

   MBR仅使用第一个512bytes区块来纪录,GPT使用了34个LBA区块来纪录分区,GPT还把磁盘最后的33个LBA拿来做备份。

  •    LBA0(MBR相容区块)

      与MBR模式相似,这个兼容区块也分为两个部分,第一个部分与MBR的446bytes一样,储存了第一阶段的开机管理程序,原本的分区纪录区内,兼容模式放入了一个特殊标志,用来表示此磁盘为GPT格式,而不懂GPT分区表的管理程序,就不认识这个磁盘,起到进一步保护作用。

  • LBA1(GPT表头纪录)

    这个部分纪录了分区表本身的位置与大小,同时纪录了备份用的GPT分区,同时放置了分区表的检验机制码(CRC32),操作系统会根据这个检验码来判断GPT是否正确,有错误还可以透过这个纪录来取得备份

  • LBA2-33(实际纪录分区信息处)

    从LBA2区块开始,每个LBA都可以纪录4笔分区记录,所以在默认的情况下,总共可以有4*32=128个分区记录,每个LBA有512bytes,GPT的每笔纪录中分别提供了64bits来记载开始/结束的扇区号码,他的最大容量限制在 2的64次方*512bytes=8ZB


GPT分区已经没有所谓的主分区,扩展分区,逻辑分区的概念,每个分区记录都独立存在,当然每个都可以视为主分区,每一个都可以拿来格式化。

并不是所有的操作系统都可以读取到GPT的磁盘格式,也不是所有的硬件都可以支持GPT格式,是否能够读写GPT格式又与开机的检测程序有关,那开机的检测程序就是BIOS与UEFI.


2.4 开机过程中的BIOS与UEFI开机检测程序

    CMOS是记录各项硬件参数且嵌入在主板上的一个储存器,很多时候还要电池供电。

    BIOS是一个写入到主板上的一个软件程序,这个BIOS就是在开机的时候,计算机系统会主动执行的第一个程序。

    BIOS会去加载基本硬件的驱动方面的程序,识别并分析计算在那些设备(如储存设备),我们以硬盘为便,BIOS会依据使用者的设定去取得能开机的硬盘,并去此硬盘里面去读取第一个扇区的MBR位置,MBR里面有一个446bytes的部分里面放置最基本的开机管理程序,此时BIOS功成圆满,接下来就是MBR内的开机管理程序工作了。

     开机管理程序---目的就是加载核心文件,开机管理程序是操作系统在安装的时候所提供的,所以他会认识硬盘内的文件系统格式,因此就能够读取核心文件,然后接下来就是核心文件的工作,开机管理程序与BIOS也完成工作,将之后的工作就交给操作系统了。

    简单来说,整个开机流程到操作系统之前的动作是这样的:

  1. BIOS : 开机自动执行的软件,是认识硬件及加载驱动,并寻找到可开机的硬盘

  2. MBR:硬盘装置中第一个扇区内的446bytes的开机管理程序

  3. 开机管理程序 :一支可读取核心文件来执行的软件

  4. 核心文件:开始操作系统功能


2.5 磁盘分区

     LInux下文件系统与目录树的关系(挂载)

     所谓【挂载]就是利用目录当成进入点,把磁盘分区放在这个目录下,通过这个目录来读取这个分区数据。

   

[root@nrb-sdnwan-t01 ~]# fdisk -l
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt
Disk identifier: 0F1C34E5-5C72-417F-9B2D-11C94D621598


#         Start          End    Size  Type            Name
 1         2048         6143      2M  BIOS boot parti
 2         6144      2103295      1G  Microsoft basic
 3      2103296     85997567     40G  Linux LVM      
 4     85997568     88094719      1G  Linux filesyste Linux filesystem
 5     88094720     92289023      2G  Microsoft basic Microsoft basic data
 6     92289024     93313023    500M  Linux swap      Linux swap

Disk /dev/mapper/centos-root: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/centos-home: 5368 MB, 5368709120 bytes, 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

[root@nrb-sdnwan-t01 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0               2:0    1    4K  0 disk
sda               8:0    0   50G  0 disk
├─sda1            8:1    0    2M  0 part
├─sda2            8:2    0    1G  0 part /boot
├─sda3            8:3    0   40G  0 part
│ ├─centos-root 253:0    0   10G  0 lvm  /
│ ├─centos-swap 253:1    0    2G  0 lvm  [SWAP]
│ └─centos-home 253:2    0    5G  0 lvm  /home
├─sda4            8:4    0    1G  0 part
├─sda5            8:5    0    2G  0 part
└─sda6            8:6    0  500M  0 part
sr0              11:0    1 1024M  0 rom 
[root@nrb-sdnwan-t01 ~]#

挂载点与磁盘分区的规划:

初学者,建议选择自定义,不要使用默认的自动分区的模式,那样对于学习LINUX分区没有好处,因为你压根就不知道这个分区是什么鬼。

 初次接触LINUX,只要分区【/】和【SWAP】

预留一部份空间,作为学习过程中做分区练习。

麻烦一点的根据需要和用途进行磁盘规划和分区,去分析需要较大容量的目录,以及读写频繁的目录,需要将这些目录独立出来而不与根目录放在一起。在默认的centos中,底下的目录是比较符合容量大读写频繁的目录。

/boot    /     /home    /var      swap