# 存储设备 好了,到这里相信我们都知道电脑是怎样运作的了:它会吃会拉(输入和输出),它还有脑子(CPU)才能工作,若是没有记忆(Memory)就等于白痴~ 但是,其中的 RAM 要没电就什么都打回原形。虽然我们可以在屏幕或是打印机上看到结果,不过,我们还希望把这些结果给储存起来供以后需要再提取,又或者将程序和其他数据储存起来,就不用每次输入都要忙着敲键盘或动用其他的输入设备了…… OK!这里要说的储存设备就是这么用的了。 ## 定义 凡是能够反映数据特征的无须靠电源维持的方法来储存电脑数据的媒介,我们一律可以称之为储存设备。最常见的储存设备是 U 盘,移动硬盘等等。然而,最经常用到的却是藏在机器里面的硬盘。我们一般看不到它,而且也最好别去碰它,因为硬盘可以说是最容易坏的电脑零件之一了(天啊﹗我们竟将数据放在上面?!)。不过到现在,硬盘的故障率已经大大降低了。但是,数据丢失的风险还是有的。所以 **“数据备份”** 这种意识,是作为一个信息人的最基本的素养。 ## 如何安装? 一旦我们要动手升级自己的电脑的时候,硬盘恐怕是最经常被考虑到的物件。 现在的硬盘通常分为以下两种: 1. 机械硬盘(HDD) 从实物上看,硬盘只是一个丑丑的金属块。在其肚子下面有密密麻麻的一大堆电子元件(这些东西都不要碰哦),现在通常使用 SATA 接口。 2. 固态硬盘(SSD) 固态硬盘通常比机械硬盘要小的多,形式也多样。通常有 条型的电子元件裸露 M.2 硬盘(裸露的电子元器件不要碰哦) 和 方形的一般拥有规整外壳 SATA 硬盘。 硬盘接口分为以下几种: 1. SATA 这是我们最常见的接口,我们见到的绝大部分的机械硬盘和一部分的固态硬盘都是这种接口。这种硬盘体型一般比较大,通常为 3.5 寸或 2.5 寸。您会看到一排金手指,中间有一个**两边向上突起,中间分开的凹槽**,把金手指分为左右两个部分,短的是数据线,长的部分就是电源了。 再看看硬盘的侧面(没有螺丝孔的其中一面),在 SATA 接口上,长的部分就是电源。那些从电源箱引出来的电源线就是接到这里的,不用担心您会接错正负极,因为安反了是插不进去的(记住,防呆设计不犯傻!不要大力出奇迹!)。 然后在另外一端,短的接头就是数据排线接口了。排线的接头有个凹进去的方块,那样的话要是掉反了方向是插不进去的(又是防呆!)。 > 对于部分光驱来说安装方式和 SATA 硬盘相同。 2. M.2 M.2 的接口相比 SATA 很短,因此硬盘的体积也很小。您会在一排金手指上看见一个或两个缺口,有的在左,有的在右。不同协议的硬盘有着不同的缺口,选购时请参考您的电脑主板。 你只需要斜着把硬盘(有贴纸的面朝上)插进主板上的接口,不需要数据线,然后压下去(不用担心压坏了),如果有盖子把盖子装上。拧上螺丝(不用拧到头,有的有快拆设计,不需要拧螺丝,只需要轻轻一压就好了,还有另一种需要旋转一下螺丝位上的小手柄的)。 3. SAS SAS 属于企业级硬盘接口,我们基本见不到。此处不再说明。 4. PCIE 同上。 5. IDE IDE 是老式硬盘接口,此处不再说明。[原链接](http://www.study-area.org/compu/compu_storage.htm) 老式的 IDE 硬盘在电源接口和数据线接口之间还会有一些跳针,但在新电脑上已经消失了。这里不再说明。 ## 如何计算容量? 一般我们买硬盘首先是注重它的容量,其次看它的速度,缓存大小等数据。那么我们怎么才知道容量呢﹖最简单的是看硬盘的标签和厂商的数据,但却是通过非技术途径得到。下面我就教您如何去计算硬盘的容量。不过,在进行计算之前,首先我们还是了解一下硬盘的构造。 - 机械硬盘 如果你将机械硬盘打开(千万别在您自己的硬盘上这样做﹗因为硬盘是密封的,并且盘片需要在无尘环境下运作,一旦打开你的数据就会变成一面读不出来数据的镜子!)您会发现里面有一堆同轴的金属碟,所有的数据都是记录在这些光滑的金属碟表面之上。磁盘通常都有两面,每一面都有其一个各自的磁头。 然后将金属磁盘旋转,磁头不移动的在表面相对所画出来的一圈,可以说是一个磁道(Track)。那么从圆心向外以一定距离进行测量,将所有表面上的相同圆周的磁道从上到下叠起来,抽象地看就是一个磁柱(Cylinder)了。 然后,也是由圆心开始,在同一表面上分别画出无数条半径,然后每两条半径所分割的磁道,我们称为扇区(Sector)。每一扇区通常可携带 512byte(0.5KB)的数据。 现今制造技术的不断提高,机械硬盘的磁盘越来越薄,磁头也越来越小,那么磁盘就可以越装越多(相对的是可擦写表面越来越多),甚至一块硬盘能够达到 10T!而且表面的密度也不断提高和读写精度越来越高(相对的是 Track 和 Sector 也越来越多),所以硬盘容量也越来越大。 - 固态硬盘 如果你看见过 M.2 硬盘或者打开的 SATA 硬盘,你应该会看到上面密密麻麻的电子元器件。固态硬盘就是靠这些元器件进行存储的。 其中,你应该能看见许多较大的黑色芯片。其中有一个正方形的,那个是硬盘的主控,负责管理整个硬盘。数量较多,其他较大的长方形的的就是存储芯片(闪存),你的数据都被存放到了这里。U 盘通常也就是这种构造。 固态硬盘同样有扇区等等,只不过大多都是主控模拟出来的,不再具有实际意义了。 好了,如果以上数据(Cylinder/Heads/Sector)都知道的话,要求出硬盘容量就易如反掌了。公式是: ```text 磁头数量 * 磁柱数量 * 扇区数量 = 硬盘容量 ``` 电脑的 BIOS 会自动获取硬盘的配置和容量,无需像很早以前一样手动填写了。 现今的制造技术的不断提高,机械硬盘的磁盘越来越薄,磁头也越来越小,那么磁盘就可以越装越多,而且表面的密度也不断提高和读写精度越来越高(相对的是 Track 和 Sector 也越来越多),所以硬盘容量也越来越大。 而固态硬盘由最开始的 SLC,发展出了 MLC、TLC、QLC 等技术。这些技术可以让一个存储单元存下更多 Bit 的数据,SLC 是 1 位,MLC 是 2 位,TLC 是 3 位,QLC 是 4 位。这些技术使用存储寿命和读写速度换来了固态硬盘价格的降低和容量的提高。 ## 格式化和分区 任何磁盘都要先经过格式化才可以使用,因为不同的文件系统使用的格式也不同。但一块硬盘在刚生产出来的时候,磁盘的表面可以说是空白一片,要进行低级格式化(简称低格,Low Level Format),机械硬盘需要写上 track 和 sector,固态硬盘需要写上固件之后才可以使用(通常厂家在出厂的时候已经为我们做好了),但是进行低格通常需要专业的工具/软件才可以。 平时我们常说的格式化,多指高级格式化(High Level Format),只是给已经初始化的硬盘上再建构一些供文件系统使用的逻辑块,同时还会建立文件系统,如`FAT`/`NTFS`/`exFAT`/`ext`、引导(开机)扇区、以及每个逻辑磁盘的根目录等等。 不过,在硬盘的低格和高格之间,我们还不能少了一个工序﹕分区(Partition),建立磁盘分区表(Disk Partition Table)。常用的分区表有 MBR 和 GPT。(不用担心,选择好分区表以后是可以转换的) 分区表就是在一个完整的磁盘上,分割开数个逻辑区域。就算您只想将整个磁盘拿来做单一的分区,也必须要有一个单一的分区需要建立。 - MBR 分区表是一种较老的分区表格式,被绝大部分电脑所支持(极少数过于新的电脑不支持 MBR 引导操作系统。MBR 最多允许分 4 个实分区。如果想要分更多的区怎么办?那答案就是使用逻辑分区。逻辑分区不限制数量。但是分区最大只能是 2TB(在当时人们做梦都不会想到现在有 10TB 的硬盘)。MBR 分区可以支持 Legacy 引导和 UEFI 引导。 - GPT(GUID)是一种新兴的分区格式。在大部分较新的电脑上被支持并作为首选项。但是在 Windows XP 及以前 Windows 的系统都无法读取 GPT 分区表。GPT 没有实分区和逻辑分区的区分,因为 GPT 最多支持 256 个分区(但是谁会用那么多呢?)。GPT 分区只支持 UEFI 引导。 不过以小弟愚见,最好还是分割数个磁盘,自有其好处﹕ 1. 方便管理,比如可以将磁盘分割为 boot,system,data 等分区(Windows 基本别想了),这样相同种类的文件都可以集中在一起,整齐易理。(不过现在由于文件夹的优化,已经比分区方便多了) 2. 减少损失,要是因为系统故障(如升级失败)等原因并且必须重新格式化的话,将 system 或 boot 分区格式化就可以了,你的 data 还不至于跟着消失。(PS:linux 确实方便很多,只要保留 home 目录,Windows 的注册表和 system 也一起灰飞烟灭了) 3. 可安装多个操作系统。利用分区,我们可以在同一硬盘上面安装多个操作系统,比如 Windows 7、Windows 10、Ubuntu(Linux 的发行版之一)等等。虽然有些系统可以安装在同一个分区里面,但毕竟是不可取的。而且不同的操作系统使用不同的文件系统(Windows 使用 NTFS,Linux 使用 ext/xfs),也不可能都使用同一分区。 然而大容量的硬盘也给分区带来不便,比如有些朋友在安装多系统的时候,由于将一些操作系统的开机目录安装在 1024 磁柱后面,就会碰到找不到那个系统的情形了。不过,新的 BIOS 已解决这个问题了。 当初 MS-DOS 在使用 FAT(16)文件系统的时候,为了增加读写的速度,引入了一个叫簇(cluster)的概念,一个簇往往是有好几个 sector 来组成的。因为一般的文件大小都超过 0.5K(一个 sector 的容量),如果以簇作为最小分配单位的话,那么在读写的时候就可以顺着一次过读写多个连续的 sector,比起逐个逐个的 sector 读写要快些。 在以前硬盘容量比较少的情况之下,这样的方法的确比较见效,不过,在后来硬盘容量大幅度增加之后,FAT16 由于自身的设计已经不能一次性分配超过 2G 容量了。而且由于簇空间也不是全部都利用尽,其浪费也很惊人,越是大容量越是厉害。在 Windows95 之后所推出的 FAT32 文件系统,可以提供更多的分配单位,也就能管理更大的容量了,不过还是因为自身缺陷,不能分配超过 4G 的容量。 再之后的 NTFS(NT Files System,WindowsNT 文件系统),将簇体积基本上降低到一定的 sector 单位(常见的单位是 4KB,所以通常叫 4K 对齐),所利用的空间也就更有效。NTFS 可以支持更大的文件,理论可达 2TB。 以下是一些常见文件系统的兼容表: | 项目 | NTFS | exFat | ext2/3/4 | xfs | | -------------- | ---- | ----- | -------- | ------- | | Windows 兼容性 | 好 | 好 | 不支持 | 不支持 | | Linux 兼容性 | 中 _i_| 中 _i_ | 好 | 好 | | MacOS 兼容性 | 不支持 | 好 | 不支持 | 不支持 | > _i_: Linux 内核仅支持读取,写入需要使用第三方软件包。但大部分发行版已经自带,不过 Ubuntu 并没有自带 exfat 支持。 --- > 无论如何,使用 UEFI 启动时,其 EFI 分区必须是 FAT(32)格式的。 ## 虚拟内存/内存盘 储存设备,就好比是电脑的仓库。不过除了用来保存数据之外,还可以当 RAM 用哦~ 或许您也听过什么“虚拟内存”(Virtual Memory)”这词了吧?这究竟怎么样的东东呢?理论上电脑工作的地方都在内存上面,但有时候程序太大或同时开的程序太多,就很容易超过了内存的容量了,这样系统就无法工作,就会导致“蓝屏死机”。 为解决这一问题,我们就在硬盘上面划出一个地盘,用来储存超出内存容量的部份,通常是那些暂时还不处于工作状态的数据。如果电脑需要处理那些数据的时候,然后再从硬盘上把数据抄到 RAM 里面,同时也将另外一些暂时不处理的数据搬到硬盘上面,这个动作叫做 SWAP。如果 RAM 的体积小,电脑就整天都忙着这样搬过来搬过去,效率就大打折扣了。这就是为什么增加 RAM 会提高电脑的整体表现的原因了。Windows 会把程序“申请”但还没有使用的内存放到 SWAP 中,等待程序使用时才拿出来。 和虚拟内存相反,RAM Disk(内存盘)则是利用 RAM 模拟出一个虚拟磁盘。不仅读写速度快多了,而且在还没有划分磁盘但又需要一些空间临时储存程序的时候,就特别有用。在 Win98 的时候就有虚拟磁盘功能了。甚至整个操作系统(RAM OS)都可以被放进内存中(比如说 Windows PE 和 Linux LiveCD)! 好了,关于硬盘,暂时说到这里,接下来要讲的是电脑的一个非常重要的部件——主板。 --- > 原文: [netman](http://www.study-area.org/compu/compu_storage.htm)
> study-area-cn