Linux-两种磁盘分区方式
Linux文件设备
要理解Linux,首先要理解Linux文件结构
在Linux操作系统中,几乎所有的设备都位于/dev目录中
| 名称 | 作用 | 位置 |
|---|---|---|
| SATA接口 | 电脑硬盘接口 | /dev/sd[a-p] |
| U盘 | 可移动设备 | /dev/sd[a-p] |
| Virtio接口 | 提供虚拟化 | /dev/vd[a-p] |
| 软盘驱动器 | 软驱,逐渐淘汰 | /dev/fd[0-7] |
| 打印机 | 提供打印能力 | /dev/lp[0-2] (25针打印机) /dev/usb/lp[0-15] (USB接口) |
| 鼠标 | 连接鼠标 | /dev/input/mouse[0-15] /dev/psaux /dev/mouse |
| CD-ROM DVD-ROM | /dev/scd[0-1] /dev/sr[0-1] /dev/cdrom | |
| 磁带机 | /dev/ht0 /dev/st0 /dev/tape |
由于SATA,USB,SAS都是以SCSI模块进行驱动的,所以这些接口的磁盘设备文件名都是/dev/sd[a-p]的格式
MBR和GPT
MBR(Master Boot Record):
MBR因为只有512字节大小,所以不能载入操作系统的核心,而载入能够载入计算机核心的程序,即引导程序。
使用MBR的方式来处理引导程序和分区表,而处理引导程序的记录区(目的是加载内核文件)和分区表则在磁盘的第一个扇区,这个扇区具有512字节的大小,其中分区表有64字节,所以最多仅能有四组记录区(每组分组表仅有16字节),记录区记录了该区段的启动和结束的柱面号码。而这四组记录区被称为主要区或者拓展区。
我们也可以利用额外的扇区记录更多的分区,类似Windows系列的划分硬盘分区至5个及以上。
由扩展分区扩展出来的分区叫做逻辑分区,位于操作系统中的位置是:/dev/sda[5+]
如果扩展分区被破坏,那么整个逻辑分区将被删除,因为逻辑分区的信息都记录在扩展分区里面。
并且考虑到磁盘的连续性,一般将扩展分区的柱面号码分配到最后的柱面内。
从《鸟叔的Linux私房菜》中我们可以得到如下的信息:
主要分区与扩展分区最多可以有4个
扩展分区最多只能有1个
逻辑分区由扩展分区持续划分出来的分区
能够被格式化后作为数据存取的分区是主要分区和逻辑分区,扩展分区无法格式化。
逻辑分区的数量依据操作系统而不同,在Linux中的SATA硬盘已经可以突破了63个以上的分区限制。
同样由于MBR使用的扇区磁盘小,导致它的容量,能够存储信息就小,随着硬件设备的逐渐发展,暴露出的弊病也就越来越明显:
操作系统无法使用2.2TB以上的磁盘容量(每一个)
MBR仅有一个区块,如果被破坏后很难恢复(牵一发而动全身)
解决方法:
为了支持能够大于2T的硬盘空间,微软和英特尔公司在可扩展接口(Extensible Fireware Interface)中开发了全局唯一标识符(Globally unique identifier GUID),进而全面支持大于2T的硬盘空间在企业中的应用。
GPT(GUID Partion table)
GPT使用逻辑区块地址(Logical basic address)来处理4K的扇区,这是MBR解决不了的。同时GPT的第一个逻辑分区LBA0为MBR兼容模块。在这个模块中存放了启动引导程序与一个特殊标识符,这个标识符用来保护磁盘。
而LBA1则是GPT表头记录,记录了分区表本身的位置和大小,同时记录了备份用的GPT分区放置的位置。
而LBA2-LBA33区块是用来记录分区信息的,每个LBA能够由4组分区记录,因为每个LBA有512个字节,所以每组记录用到了128字节。
由于GPT在每组记录中使用了64位来记录开始/结束的扇区号码,所以单一分区的最大容量为2^64*512字节==8ZB
GRUB
多操作系统引导程序,允许用户在计算机内有多个操作系统,并且在计算机启动时选择希望它运行的操作系统
硬盘的规划,是熟练掌握Linux的第一步,因为Linux以文件目录作为首要管理方式的。
所以一般刚开始学习Linux的时候,我们需要了解Linux的分区方式
最简单的分区方式:
仅仅划分出根目录/和交换分区Swap,具有MBR一样的缺点,牵一发而动全身,只要有一个小心接坏掉,那么整个根目录就会损毁
麻烦一点的分区方式:
通过分析主机的用途来进行划分:
一些比较大的且读写频繁的目录:
/boot
/
/home
/var
swap
Linux-两种磁盘分区方式的更多相关文章
- Linux下的两种磁盘分区工具的使用
如何使用fdisk和parted分区工具来进行硬盘分区,下面我来说一下在Linux系统中这两种硬盘分区工具的使用方法: ----------fdisk分区工具---------- ...
- linux初学者-磁盘分区方式篇
linux初学者-磁盘分区方式篇 一般的计算机都会采用mbr分区方式,这种分区方式只能够建立四个主分区,如果还需要或更多的分区,就需要将其中一个主分区建立成一个扩展分区,在里面建立逻辑分区,这些分区信 ...
- Linux共享库两种加载方式简述
Linux共享库两种加载方式简述 动态库技术通常能减少程序的大小,节省空间,提高效率,具有很高的灵活性,对于升级软件版本也更加容易.与静态库不同,动态库里面的函数不是执行程序本身 的一部分,而是 ...
- Linux学习(CentOS-7)---磁盘分区(概念、分区方法、分区方案)
1磁盘分区相关的概念 1.1什么是磁盘 磁盘就是计算机的外部存储器设备,即将圆形的磁性盘片装在一个方的密封盒子里,这样做的目的是为了防止磁盘表面划伤,导致数据丢失.简单地讲,就是一种计算机信息载体,也 ...
- Linux下的磁盘分区和逻辑卷
一.硬盘接口类型 硬盘的接口主要有IDE.SATA.SCSI .SAS和光纤通道等五种类型.其中IDE和SATA接口硬盘多用于家用产品中,也有部分应用于服务器,SATA是一种新生的硬盘接口类型,已经取 ...
- 牛客网Java刷题知识点之Map的两种取值方式keySet和entrySet、HashMap 、Hashtable、TreeMap、LinkedHashMap、ConcurrentHashMap 、WeakHashMap
不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set). ...
- Oracle数据库的两种授权收费方式介绍!
首发微信公众号:SQL数据库运维 原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485212&idx=1 ...
- Linux Shell查看磁盘分区,内存使用,CPU使用率
Linux Shell查看磁盘分区,内存使用,CPU使用率 #!/bin/bash #disk_used_rate Location=/dev/xvdb Disk_Used_Rate=$(df -h ...
- linux系统查看磁盘分区使用空间
Df命令是linux系统以磁盘分区使用空间:df -hl
随机推荐
- 一篇文章图文并茂地带你轻松学完 JavaScript 事件循环机制(event loop)
JavaScript 事件循环机制 (event loop) 本篇文章已经默认你有了基础的 ES6 和 javascript语法 知识. 本篇文章比较细致,如果已经对同步异步,单线程等概念比较熟悉的读 ...
- 年度账单h5 移动端兼容问题以及优化建议(vue)
定时器 vue实例中定义timer多余,创建的定时器代码和销毁定时器的代码没有放在一起,通常很容易忘记去清理这个定时器,不容易维护:建议使用this.$once('hook:beforeDestory ...
- BZOJ3238 [Ahoi2013]差异 【SAM or SA】
BZOJ3238 [Ahoi2013]差异 给定一个串,问其任意两个后缀的最长公共前缀长度的和 1.又是后缀,又是\(lcp\),很显然直接拿\(SA\)的\(height\)数组搞就好了,配合一下单 ...
- Luogu 2017 Autumn Camping 游记
颓得不行的我到D2才想起来自己可以写一篇low得不能再low的游记,然后就动笔了...... Day0 愉快地看着三联,想着别人放一天我放四天的悠闲生活,内心甚是平静.然而晚上回到家就开始浪了,看完了 ...
- .net core面试题
第1题,什么是ASP net core? 首先ASP net core不是 asp net的升级版本.它遵循了dot net的标准架构, 可以运行于多个操作系统上.它更快,更容易配置,更加模块化,可扩 ...
- CF1462-F. The Treasure of The Segments
题意: 给出n个线段组成的集合,第i个线段用 \(\{l_i, r_i\}\) 表示线段从坐标轴的点\(l_i\)横跨到点\(r_i\).现在你可以删除其中的一些线段,使得剩下的线段组成的集合中至少存 ...
- TextCNN代码实践
在上文<TextCNN论文解读>中已经介绍了TextCNN的原理,本文通过tf2.0来做代码实践. 数据集:来自中文任务基准测评的数据集IFLYTEK 导库 import os impor ...
- How to enable HTTPS for local development in macOS using Chrome
How to enable HTTPS for local development in macOS using Chrome HTTPS, macOS, Chrome local HTTPS htt ...
- GraphQL API In Action
GraphQL API In Action GraphQL API express $ yarn add express express-graphql graphql # OR $ npm i -S ...
- ThoughtWorks Homework
ThoughtWorks Homework Homework 考察知识点 项目搭建 技术选型 测试 编码风格 代码质量 设计模式 数据结构 算法 架构 开源协作 CI/CD DevOps Linux ...