实验环境:CentOS 7.x (并假设是可以正常使用)
了解一下:
SAS硬盘:企业级硬盘,服务器专用。
SATA硬盘:普通笔记本上装的那种。
SCSI硬盘与IDE硬盘:现在不怎么常见,快变成古董了。
两个重要概念
拿到一块硬盘存储设备后要做的:添加设备、分区、格式化(创建文件系统)、创建挂载点、修改配置文件。
Linux系统中一切都是文件,硬件设备也是。MBR分区格式
MBR(Master Boot Record)格式——主引导记录
主引导记录(MBR)位于硬盘的0号柱面(Cylinder)、0号磁头(Side)、1号扇区(Sector)。了解柱面、磁头、扇区。其中,1扇区称为主引导扇区(也叫主引导记录MBR),占 512 字节(bytes)。它由三个部分组成:
主引导程序(boot loader,即主引导记录,占 446 bytes);
硬盘分区表DPT(Disk Partition Table,占 64 bytes);
结束标志(占 2 bytes,固定值为 十六进制 55AA )。
注意:
硬盘的第一个扇区最重要,它里面保存用来记录硬盘里面有多少个分区以及每一分区的大小。
硬盘分区表是用来说明磁盘上的分区情况,一共占 64 字节,即 16*4 ,所以最多只有4 个分区信息可以写到第一个扇区中,所以就称这4个分区为4个主分区 ( primary partion ),每个分区占16 bytes。分区表损坏就无法读取硬盘内的数据。
有时候第1扇区里的分区会不够使用,所以会将第1个扇区的其中1个分区作为扩展分区 ( extension partion )。扩展分区相当于一个指针(即只记录分区大小位置信息),用来指向某个有记录信息的分区,所以是不能直接存储数据的。由于操作系统的限制,扩展分区最多只有一个。
然后,可以在扩展分区里创建多个逻辑分区 ( logical partion ),这时才可以存储数据。所以一般分区都是3 个主分区加 1 个扩展分区,然后在扩展分区中创建出多个逻辑分区。
结束标志,若修改 55AA 则会出现问题,比如系统不能启动等问题。
缺点:
因为基于MBR方式的主引导记录只占 446 bytes且每组分区只占 16 bytes,可以记录的信息是有限的,所以会出现主引导程序放不下更多的程序代码、操作系统2.2T以上的磁盘容量以及分区被破坏后无法恢复等问题。于是,就有了GPT分区格式,这里不详细讲这个格式。
分区步骤
虚拟机添加硬盘注意点:
关机;
不选立即分配所有磁盘空间。
MBR分区表使用 fdisk 命令进行分区。
fdisk -l ,该命令查看硬盘信息和所有分区表( partition table )。可以与命令lsblk -ip 结合查看更多硬盘详细信息。
解释说明:
开头是Disk的说明是正在使用的硬盘。
Linux系统中一切都是文件。 /dev 这个目录是用来以文件形式存放任何设备与接口的文件的目录。
/dev 目录中sda设备之所以是a,由系统内核的识别顺序来决定的。/dev/hd[a-d]//hd表示硬盘是IDE类型,且分区从a开始命名。
/dev/sd[a-p]//同理,SCSI/SATA/U盘类型,分区从a开始,到p。
图中圈起来的 * 号表示 sda2是引导分区,电脑是否正常开机就看它。
硬盘分区编号(图中的sd后面的数字)规则:主分区或扩展分区的编号是1~4,还有,举个例子,存在编号为4的主分区并不代表已经有4分区了;逻辑分区必须从编号5开始(不管有没有2、3、4)。
Start和End的值表示这个分区从第几磁柱 (Cylinder) 开始和第几磁柱结束。
ID和system表示的是一个意思。就拿图里的来说,ID是83的话,system是Linux。ID类似于代号。
判断硬盘是否完全划分——上一个分区的End 和 下一个分区的Start是不是一个连续的数字。fdisk -l 设备名称
//查看某一个硬盘。例,查看名为sda的硬盘:fdisk -l /dev/sda1
Step 2:
fdisk 设备名,回车,就进入可以进行分区的模式。输入m就有命令菜单。里面有详尽的相关参数。
常用的参数有以下几个:
d//delete 删除一个分区
m//menu 打印帮助信息
n//new 创建一个新的分区
p//print 打印分区信息,与fdisk -l命令相似
q//quit 退出不保存
w//write 保存并退出
t//改变逻辑分区类型
Step 3:
输入 n 创建分区。
注意:
上面演示的是创建扩展分区。
因为硬盘里已经有三个主分区了(Step 1 中查看过),所以partition type 那里只有primary 和 extended,让你选是创建主分区还是逻辑分区,不会出现扩展分区。
如果主分区只有1个或两个,扩展分区已经有一个了,他就会出现:
如果你还想再多创建一个扩展分区,当你输入e时,会提示:
这应该就是所谓的操作系统的限制——扩展分区最多只有一个。
如果已经有4个主分区,然后如果想再创建,那就会提示如果想创建更多,需要把一个主分区变为扩展分区:
如果本来已经是三个主分区、一个扩展分区的模式的话,就会自动新建成逻辑分区。
另外,扩展分区删除了,逻辑分区也会被删除!
Step 4:
最后可以输入w保存并退出或输入q不保存然后退出。
关于参数 t
是不是有点眼熟?就是上面所讲的 Id 和 System。
其他:
为什么要分区?一是可以确保数据安全,当一个分区由于某种原因遭到破坏时,不会影响别的分区。二是可以提高数据的读取速度,因为数据集中在某个磁柱范围。
有时候系统并没有自动把分区信息同步给Linux内核,这时可以输入partprobe -s将分区信息同步到内核,最好连续两次执行该命令。参考资料
[1] https://www.linuxprobe.com/chapter-06.html
[2] a1809032425. https://blog.csdn.net/a1809032425/article/details/79692035
[3] 项思凯. https://www.cnblogs.com/xiangsikai/p/10683209.html
[4] 木偶人妮好. www.bilibili.com:av21816136