1. 程式人生 > >CentOS分割槽大於2TB的磁碟以及格式化大於16TB分割槽的解決方案

CentOS分割槽大於2TB的磁碟以及格式化大於16TB分割槽的解決方案

一、內容介紹

1、問題描述

1)、問題一
CentOS 6.x 在格式化大於16TB的ext4分割槽時,會提示如下錯誤:

mke2fs 1.41.12 (17-May-2010)
mkfs.ext4: Size of device /dev/sda1 too big to be expressed 
in 32 bits using a blocksize of 4096.

2)、問題二
CentOS 6.x 無法使用fdisk分割槽大於2TB的磁碟。

2、原因分析

1)、問題一:
原因在於CentOS 自帶的 e2fsprogs 版本為1.41.12較低,無法建立16TB以上的檔案系統。
2)、問題二:


原因在於MBR分割槽表只支援2T磁碟。

3、解決方案

1)、問題一:
解決方案為手工下載最新的e2fsprogs原始碼包,進行編譯安裝,然後使用mkfs.ext4 命令使用64位的方式進行磁碟格式化。
2)、問題二:
使用parted命令將MBR分割槽表,改為GPT分割槽表。

二、解決方案的實現

下面通過在VirtualBox上進行實驗來驗證上面方案的可行性:

1、在VB虛擬機器上新增硬碟

這裡假設你的VB虛擬機器的CentOS已經通過yum update將全部軟體升級到最新版本

在VB虛擬機器中新增10塊2TB的硬碟(此時虛擬機器須處於關機狀態),如下圖:
這裡寫圖片描述

每個虛擬硬碟都是“動態分配儲存”,總計容量為20TB,這樣就做成raid5最量就會超過16TB了。

2、生成軟RAID磁碟陣列

1)、硬碟分割槽

啟動虛擬機器登入系統後輸入lsblk命令檢視虛擬機器可識別的硬碟

[[email protected] ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1 1024M  0 rom
sda      8:0    0   50G  0 disk
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0    2G  0
part [SWAP] └─sda3 8:3 0 47G 0 part / sdb 8:16 0 2T 0 disk sdc 8:32 0 2T 0 disk sdd 8:48 0 2T 0 disk sde 8:64 0 2T 0 disk sdf 8:80 0 2T 0 disk sdg 8:96 0 2T 0 disk sdh 8:112 0 2T 0 disk sdi 8:128 0 2T 0 disk sdj 8:144 0 2T 0 disk sdk 8:160 0 2T 0 disk

可以看到10塊硬碟已經全部識別,但是還沒有進行分割槽, 這裡我們使用fdisk逐一進行分割槽,以便製作軟RAID.
這裡需要注意的是:如果是在真實的伺服器上,是不會看到這麼多硬碟的。因為伺服器通過RAID卡,將多塊硬碟合併為一塊硬碟。在本文後面會提到如何使用parted 分割槽超過2TB的硬碟
sdb這塊硬碟為例,進行分割槽:

[root@localhost ~]# fdisk /dev/sdb
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-267349, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-267349, default 267349):
Using default value 267349

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)

Command (m for help): p
  Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1      267349  2147480811   fd  Linux raid autodetect

Command (m for help): w

上面的步驟基本上就是我們平時進行分割槽時需要進行操作的步驟。只有t命令平時不太用到.t命令的意思就是“修改分割槽型別“,將標準的linux分割槽修改為 fd“Linux raid autodetect”以便供軟RAID使用。

下面逐一再將其他磁碟進行分割槽,全部分割槽完成後,使用lsblk檢視分割槽情況:

[[email protected] ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1 1024M  0 rom
sda      8:0    0   50G  0 disk
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0    2G  0 part [SWAP]
└─sda3   8:3    0   47G  0 part /
sdb      8:16   0    2T  0 disk
└─sdb1   8:17   0    2T  0 part
sdc      8:32   0    2T  0 disk
└─sdc1   8:33   0    2T  0 part
sdd      8:48   0    2T  0 disk
└─sdd1   8:49   0    2T  0 part
sde      8:64   0    2T  0 disk
└─sde1   8:65   0    2T  0 part
sdf      8:80   0    2T  0 disk
└─sdf1   8:81   0    2T  0 part
sdg      8:96   0    2T  0 disk
└─sdg1   8:97   0    2T  0 part
sdh      8:112  0    2T  0 disk
└─sdh1   8:113  0    2T  0 part
sdi      8:128  0    2T  0 disk
└─sdi1   8:129  0    2T  0 part
sdj      8:144  0    2T  0 disk
└─sdj1   8:145  0    2T  0 part
sdk      8:160  0    2T  0 disk
└─sdk1   8:161  0    2T  0 part
2)、建立RAID5

使用mdadm建立RAID5磁碟陣列:

[[email protected] ~]# mdadm -C /dev/md5 \
-a yes -l 5 -n 10 -x 0 \
/dev/sd[b,c,d,e,f,g,h,i,j,k]1

mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.

可以使用如下命令檢視RAID5狀態:

mdadm -D /dev/md5

3、格式化磁碟陣列

如果現在使用mkfs.ext4格式化/dev/md5將會出現如下錯誤:

[[email protected] ~]# mkfs.ext4 /dev/md5
mke2fs 1.41.12 (17-May-2010)
mkfs.ext4: Size of device /dev/md5 too big to be 
expressed in 32 bits using a blocksize of 4096.

當前版本為1.43.3,下載後,進行編碼安裝:

tar -zxvf e2fsprogs-1.43.3.tar.gz

cd e2fsprogs-1.43.3

mkdir build 

cd build/ 

../configure 

make 

make install

編譯完成後使用如下命令格式化:

mke2fs -O 64bit,\
has_journal,extents,\
huge_file,flex_bg,uninit_bg,\
dir_nlink,\
extra_isize \
-i 4194304 \
/dev/md5

或者:

 mkfs.ext4 -O 64bit /dev/md5

掛載磁碟到/mnt

mount /dev/md5 /mnt

檢視磁碟掛載情況:

[root@localhost build]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        47G  1.1G   43G   3% /
tmpfs           939M     0  939M   0% /dev/shm
/dev/sda1       976M   56M  870M   6% /boot
/dev/md5         18T   24K   17T   1% /mnt

OK! 問題1順利解決。證明這個方案還是可行的!

4、使用parted 分割槽2TB以上磁碟

上面第1和第2步驟,是我們為了進行實驗是否能格式化16TB以上分割槽而搭建的實驗環境。在生產環境下,一般不會用到軟RAID, 伺服器是通過RAID卡將多塊磁碟形成一個磁碟陣列。在啟動系統後,有會一個沒有分割槽的大磁碟。這種情況下就不能使用fdisk命令進行分割槽了。在這裡,我們使用parted來進行分割槽。

這裡我用一個2TB的磁碟來估演示,如果使用parted將整個磁碟陣列分為一個分割槽的情況(這也是生產環境中經常遇到的情況):
先使用lsblk檢視系統中可使用的磁碟:

[root@localhost ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1 1024M  0 rom
sda      8:0    0   50G  0 disk
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0    2G  0 part [SWAP]
└─sda3   8:3    0   47G  0 part /
sdb      8:16   0    2T  0 disk

這時系統裡有一個sdb的磁碟,容量為2TB。

[[email protected] ~]# parted /dev/sdb
(parted) mklabel gpt      # 將MBR磁碟格式化為GPT
(parted) mkpart primary 0 -1  #將整塊磁碟劃分為一個分割槽
警告: The resulting partition is not properly 
aligned for best performance.
忽略/Ignore/放棄/Cancel? I     #忽略警告
(parted) p                    #列印當前分割槽
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 2199GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     標誌
 1      17.4kB  2199GB  2199GB               primary

(parted) quit   #退出
資訊: You may need to update /etc/fstab.

再使用lsblk檢視磁碟分割槽情況:

    1 1024M  0 rom
sda      8:0    0   50G  0 disk
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0    2G  0 part [SWAP]
└─sda3   8:3    0   47G  0 part /
sdb      8:16   0    2T  0 disk
└─sdb1   8:17   0    2T  0 part

格式化並掛載磁碟:

mkfs.ext4 /dev/sdb1
mount /dev/sdb1 /mnt

檢視磁碟掛載情況:

[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        47G  851M   43G   2% /
tmpfs           939M     0  939M   0% /dev/shm
/dev/sda1       976M   56M  870M   6% /boot
/dev/sdb1       2.0T   71M  1.9T   1% /mnt

OK!問題2完美解決!

相關推薦

CentOS分割槽大於2TB磁碟以及格式化大於16TB分割槽解決方案

一、內容介紹 1、問題描述 1)、問題一 CentOS 6.x 在格式化大於16TB的ext4分割槽時,會提示如下錯誤: mke2fs 1.41.12 (17-May-2010) mkfs.ext4: Size of device /dev/sd

CentOS 6U7分割槽大於2TB磁碟以及掛載大於16TB分割槽磁碟解決方案

一、內容介紹1、問題描述1)、問題一 CentOS 6.x 在格式化大於16TB的ext4分割槽時,會提示如下錯誤: mke2fs 1.41.12 (17-May-2010)mkfs.ext4: Size of device /dev/sda1 too big to be expressed&nb

CentOS安裝Qt編譯錯誤以及無法除錯的問題解決( /usr/bin/ld:cannot find –lGL 和 Debugginghas failed)

CentOS安裝Qt編譯錯誤以及無法除錯的問題解決 1、前提 系統: CentOS-6.5-x86_64-minimal.iso 最小化linux. 手動安裝x-winodws介面。 Qt版本:qt-opensource-linux-x64-5.6.0.run。 安裝qt需

【迅龍資料恢復高手】誤刪除的檔案,誤格式化分割槽,提示未被格式化,丟失分割槽可以使用迅龍硬碟資料恢復軟體(誤刪檔案恢復工具)進行恢復。 迅龍硬碟資料恢復軟體(誤刪檔案恢復工具)支援所有原因丟失的檔案、掃描速度快、恢復效果好

誤刪除的檔案,誤格式化的分割槽,提示未被格式化,丟失分割槽可以使用迅龍硬碟資料恢復軟體(誤刪檔案恢復工具)進行恢復。 迅龍硬碟資料恢復軟體(誤刪檔案恢復工具)支援所有原因丟失的檔案、掃描速度快、恢復效果好... (adsbygoogle = window.

在STS(Spring Tool Suite)中配置Maven,以及配置不成功的解決方案

Spring Tool Suite  Spring 專案快速開發的工具集合,簡稱sts。 主要用於快速的開發Spring專案,我們不用再去編輯繁瑣的xml配置檔案,而是由工具自動生成。   STS下載 1.可自行到官網下載,選擇需要版本下載 2.ST

win10與centos 7雙系統安裝,win10引導消失,解決方案

win10與centos 7雙系統安裝完成後,發現只能進centos 7系統,無win10啟動項。解決方案如下: 1、進入centos  7,聯網. 2、下載ntfs-3g安裝包。         sudo

MySql免安裝版安裝配置以及MySQL服務無法啟動解決方案

MySql免安裝版安裝配置以及MySQL服務無法啟動解決方案       文首提要:             下載的MySQL版本是:mysql-5.7.17-winx64.zip &n

顯示data 資料夾但是打不開 以及Failed to pull selection 解決方案;

顯示data 資料夾但是打不開, 1 我下 adb shell-su -chmod 777/data -chmod 777/data/data;   總是報錯permission denied; 後來 我插拔了一下; 重新root 一下; 安裝了re管理器; 找到data /

關於阿里雲伺服器擴容資料盤 --格式化資料盤的解決方案

配置的雲盤空間不夠需要擴容,需要在ECS例項上面擴容,僅僅掛載是不夠的需要在命令列再做一些操作 最需要注意的一點是:重啟!重啟!! 重啟!!!如果不重啟,在使用fdisk命令根本沒有擴容後的資料盤 其他的操作直接就可以根據阿里雲的文件直接操作了 1.xshell

資料結構:雜湊表以及雜湊衝突的解決方案

前言 基於先前的學習計劃,最近打算深入學習Java的集合類,首先要研究的就是HashMap,在學習HashMap前,我花了幾天時間溫習了一下類中用到的資料結構 (雜湊表,二叉樹),並決定把所學的知識記錄寫成文章,本文講述的就是關於雜湊表的知識。 什麼是雜湊表 在之前的部落格文章裡,我們簡單介紹了資料結構的幾種

JDK8 and Jmeter4.0 下載安裝具體流程以及執行出現問題的解決方案

哈嘍 能看到你真的是太好啦 這是小鳳梨的第一篇 謝謝瀏覽 小夥伴們要注意,在安裝jmeter之前,首先需要安裝JDK, 由於jmeter執行是基於java的,所以需要下載1.7以上的jdk。我下載的是JDK8. 配置系統環境變數 【變數名】:JAVA_

Ubuntu下安裝MySQL 5.7.24以及修改datadir目錄出錯解決方案

文章目錄     安裝MySQL     1. 下載Ubuntu Deb軟體包 &nbs

spring boot 攔截器的實現以及遇到的問題的解決方案

spring boot攔截器的實現 1、建立攔截器   建立攔截器,實現HandlerInterceptor介面即可 import javax.servlet.http.HttpServle

CentOS重啟後resolv.conf被重置的解決方案

近期在修改一臺CentOS伺服器的dns時發現只要重啟伺服器DNS就會被強制還原,解決方案如下: 1、首先在網絡卡設定中修改NM_CONTROLLED的值: 修改檔案/etc/sysconfig/network-scripts/ifcfg-eth0的內容

同一系統下,keil 4和keil 5以及keil c51共存的解決方案

寫在前面>>> 這個方案是根據我自己的實踐結果所得到的,並沒有經過任何其他的驗證。方法很簡單,僅給大家一個參考。 環境>>>> 系統:win

安裝Oracle11g_win32,以及遇到的問題和解決方案

1. 從官網下載相應的Oracle版本 官網地址 下載時注意版本,以及file1 和file2 都要下載。下載後為兩個壓縮包,一定要解壓在同一個資料夾下。。 然後安裝,雙擊setup.

關於mac上沒有include檔案以及沒有mysql.h的解決方案

前言 必須要寫一個部落格(外加吐槽),哇,不會用Mac真的感覺這個系統簡直就是反人類的系統,因為要用到C語言連線操作mysql,然後就要有一個頭檔案mysql.h,然而這個檔案的庫肯定是要自己裝的,但是mac又不能向Linux系統的那個操作,一個apt-get

URLEncoder和URLDecoder;cookie中儲存特殊字元以及URL中亂碼問題解決方案

cookie的特殊字元的編碼和解碼來解決亂碼問題;   編碼: protected void doGet(HttpServletRequest request, HttpServletRespo

js數值四捨五入的方法以及其中潛在bug的解決方案

1.toFixed() 方法可把 Number 四捨五入為指定小數位數的數字。 NumberObject.toFixed(num) num必需寫,規定小數的位數,是 0 ~ 20 之間的值,包括 0

SVN上傳檔案提示磁碟空間不足的問題 Could not write svndiff to temp file: 磁碟空間不足”報錯的解決方案

今天同事的svn無法提交檔案,總是提示“Commit failed (details follow): While preparing ‘XXX’ for commit Could not write svndiff to temp file: 磁碟空間不足”,遂幫其解決