前言
今天买的4T机械硬盘到了,准备给我的服务器加装上,用来作为Nextcloud的存储硬盘。把硬盘安装好后就迫不及待的进行挂载,挂载的操作倒是挺顺利的,但是无论怎么操作Ubuntu系统识别到的大小居然都是2T,最后没办法,又将硬盘挂载到我的Windows电脑上,结果你猜怎么着… …Windows电脑识别到的居然是4T。那现在已经确定不是硬件问题了,绝对是我在Ubuntu上挂载出现问题了。
问题分析
上面已经介绍了我在Ubuntu上执行挂载操作,一切步骤和我之前挂载的2T硬盘时候一模一样,结果没想到识别到的大小也是一样的!
为了搞清楚到底发生了什么,我又对硬盘重新进行了初始化和分区,结果还是一样的,系统识别到的硬盘大小还是2T。于是我在百度上找到了A5互联发表的一篇文章,说可能是使用了老的主引导记录的不能识别2T及以上的硬盘,要用新的GPT分区方案来实现超2T的硬盘,于是我去搜索了一下MBR分区方案和GPT分区方案的区别。
MBR和GPT是两种不同的分区方案,下面我给大家整理一下两个分区方式的区别,刚好来一块学习学习:
容量限制:
- MBR分区方案:MBR使用32位逻辑块地址来寻址分区,因此对于每个分区的最大容量限制为2TB。如果超过2TB的硬盘使用MBR分区方案,剩余的空间将无法被完全利用。
- GPT分区方案:GPT使用64位逻辑块地址来寻址分区,因此支持更大容量的分区。它可以处理超过2TB的硬盘,并充分利用整个存储空间。
分区数量:
- MBR分区方案:MBR分区方案最多支持4个主分区(Primary Partition)或3个主分区加一个扩展分区(Extended Partition)。扩展分区可进一步划分为逻辑分区(Logical Partition),但数量仍受限制。
- GPT分区方案:GPT分区方案支持更多的分区。它可以创建多达128个分区,没有主分区和扩展分区的概念,所有分区都被视为独立的。
兼容性:
- MBR分区方案:MBR是较旧的分区方案,在绝大多数操作系统和计算机上都得到广泛支持,包括Windows、Linux和macOS等。MBR是BIOS系统的标准。
- GPT分区方案:GPT是一种较新的分区方案,它对UEFI(统一可扩展固件接口)引导有更好的支持。GPT通常用于64位版本的操作系统,如Windows 7及以上、Linux发行版和macOS。
其他区别:
- MBR分区方案:MBR分区表在磁盘的第一个扇区(512字节)中存储,容易受到破坏,例如病毒感染或错误的分区操作可能导致数据丢失。MBR仅提供基本的分区元数据。
- GPT分区方案:GPT分区表相对较复杂,存储分区数据的位置在多个磁盘扇区中,并具备冗余以提高鲁棒性。GPT支持更多的元数据信息,如磁盘GUID、分区类型GUID和分区名称等。
MBR分区方案适用于较小的硬盘和旧版计算机,最大支持容量约为2TB。 GPT分区方案适用于大容量硬盘和现代计算机,允许创建超过2TB的单个分区。选择分区方案应根据硬件需求和操作系统兼容性来决定。
这么一看4T硬盘只能识别到2T就不难理解了,这也就是为什么我之前安装2T的时候没遇到这个问题,结果按照相同的步骤就出现了不能识别的问题。
解决问题
知道了是因为分区方式造成的,那么现在就好解决了,将硬盘的分区方式改成GPT方式应该就行了,说干就干,下面给大家介绍一下如何将硬盘分区方式由原来的MBR方案改成GPT方式。
在开始更改分区之前可以使用下面的命令来查看一下你的系统是不是支持GPT分区
sudo parted -l
我的Ubuntu系统打印如下:
Model: ATA KINGSTON SA400S3 (scsi)
Disk /dev/sda: 240GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 EFI System Partition boot, esp
2 538MB 240GB 240GB ext4
可以看到打印中有 Partition Table: gpt
的字样,这也就说明我们系统的分区表类型确实是GPT的,那就放心了,看来系统是支持的。下面就开始实际操作
1、首先将硬盘插到服务器上,然后运行下面的命令查看硬盘的设备名称
sudo fdisk -l
我这里识别到的新硬盘是/dev/sdb
2、使用 parted
对硬盘进行格式化
sudo parted /dev/sdb
依次执行以下操作:
-
键入
mklabel gpt
回车来创建 GPT 分区表。 -
键入
mkpart primary ext4 0% 100%
回车来创建一个占据整个硬盘的主分区,并使用ext4
文件系统。 -
键入
quit
回车退出 parted 界面。
3、创建文件系统
sudo mkfs.ext4 /dev/sdb
4、创建挂载点并挂载硬盘
sudo mkdir /mnt/[挂载点名称]
sudo mount /dev/[新分区设备名称] /mnt/[挂载点名称]
5、添加自动挂载
上面的挂载方式在关机后就会恢复,下面通过改 /etc/fstab
文件的方式实现自动挂载
sudo nano /etc/fstab
在文件末尾添加以下行
/dev/[新分区设备名称] /mnt/[挂载点名称] ext4 defaults 0 2
保存并退出编辑器
通过执行完上面的挂载操作,我的4T硬盘终于被识别到了!!!
总结
通过今天的折腾也学到了不少知识,至少知道了MBR和GPT分区的区别,之前重来没关注过MBR分区方式居然最大只能支持2T的硬盘。除了这些关于硬盘的挂载其实还有很多的知识点可以讲解,比如你知道如果硬盘之前在Linux的A目录挂载,里面存储的也有东西,那我现在想要把硬盘在不进行初始化的情况下挂载到B目录,你觉得挂载后你进入目录B看到的是空文件呢还是挂载之前目录A下的文件呢?
如果识别到的是B目录以及空文件夹,那A目录里原本储存的文件去哪里了呢?如果我还想要之前的文件该怎么操作呢?如果我想将一个硬盘A换成容量更大的硬盘B,并且保留原来的文件还在原来的位置该如何操作?(其实就是更换新硬盘的基本操作)
上面的问题大家可以百度一下,应该比较好理解,这些都是折腾电脑的基操,毕竟买服务器就是用来折腾的!