1. 程式人生 > 實用技巧 >初始化Linux資料盤、磁碟分割槽、掛載磁碟(fdisk)

初始化Linux資料盤、磁碟分割槽、掛載磁碟(fdisk)

1.操作場景

本文以雲伺服器的作業系統為“CentOS 7.4 64位”為例,採用fdisk分割槽工具為資料盤設定分割槽。

MBR支援的磁碟最大容量為2 TB,GPT最大支援的磁碟容量為18 EB,因此當您初始化容量大於2 TB的磁碟時,分割槽形式請採用GPT。對於Linux作業系統而言,當磁碟分割槽形式選用GPT時,fdisk分割槽工具將無法使用,需要採用parted工具。

不同雲伺服器的作業系統的格式化操作可能不同,本文僅供參考,具體操作步驟和差異請參考對應的雲伺服器作業系統的產品文件。注意:

首次使用雲硬碟時,如果您未參考本章節對雲硬碟執行初始化操作,主要包括建立分割槽和檔案系統等操作,那麼當後續擴容雲硬碟時,新增容量部分的磁碟可能無法正常使用。

2.前提條件

  • 已掛載資料盤至雲伺服器,且該資料盤未初始化。

3.劃分分割槽並掛載磁碟

本操作以該場景為例,當雲伺服器掛載了一塊新的資料盤時,使用fdisk分割槽工具將該資料盤設為主分割槽,分割槽形式預設設定為MBR,檔案系統設為ext4格式,掛載在“/mnt/sdc”下,並設定開機啟動自動掛載。

  1. 執行以下命令,檢視新增資料盤。fdisk -l回顯類似如下資訊:
[root@ecs-test-0001 ~]# fdisk -l

Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000bcb4e

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    83886079    41942016   83  Linux

Disk /dev/vdb: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

表示當前的雲伺服器有兩塊磁碟,“/dev/vda”是系統盤,“/dev/vdb”是新增資料盤。

2.執行以下命令,進入fdisk分割槽工具,開始對新增資料盤執行分割槽操作。fdisk新增資料盤以新掛載的資料盤“/dev/vdb”為例:fdisk /dev/vdb回顯類似如下資訊:

[root@ecs-test-0001 ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x38717fc1.

Command (m for help): 

3.輸入“n”,按“Enter”,開始新建分割槽。回顯類似如下資訊:

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended

表示磁碟有兩種分割槽型別:

  • “p”表示主分割槽。
  • “e”表示擴充套件分割槽。

說明:

磁碟使用MBR分割槽形式,最多可以建立4個主分割槽,或者3個主分割槽加1個擴充套件分割槽,擴充套件分割槽不可以直接使用,需要劃分成若干個邏輯分割槽才可以使用。

磁碟使用GPT分割槽形式時,沒有主分割槽、擴充套件分割槽以及邏輯分割槽之分。

4. 以建立一個主要分割槽為例,輸入“p”,按“Enter”,開始建立一個主分割槽。回顯類似如下資訊:

Select (default p): p
Partition number (1-4, default 1): 

“Partition number”表示主分割槽編號,可以選擇1-4。

5.以分割槽編號選擇“1”為例,輸入主分割槽編號“1”,按“Enter”。回顯類似如下資訊:

Partition number (1-4, default 1): 1
First sector (2048-209715199, default 2048):

“First sector”表示起始磁柱值,可以選擇2048-209715199,預設為2048。

6. 以選擇預設起始磁柱值2048為例,按“Enter”。

系統會自動提示分割槽可用空間的起始磁柱值和截止磁柱值,可以在該區間內自定義,或者使用預設值。起始磁柱值必須小於分割槽的截止磁柱值。回顯類似如下資訊:

First sector (2048-209715199, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-209715199, default 209715199):

“Last sector”表示截止磁柱值,可以選擇2048-209715199,預設為209715199。

7.以選擇預設截止磁柱值209715199為例,按“Enter”。

系統會自動提示分割槽可用空間的起始磁柱值和截止磁柱值,可以在該區間內自定義,或者使用預設值。起始磁柱值必須小於分割槽的截止磁柱值。

回顯類似如下資訊:

Last sector, +sectors or +size{K,M,G} (2048-209715199, default 209715199):
Using default value 209715199
Partition 1 of type Linux and of size 100 GiB is set

Command (m for help):

表示分割槽完成,即為資料盤新建了1個分割槽。

8.輸入“p”,按“Enter”,檢視新建分割槽的詳細資訊。回顯類似如下資訊:

Command (m for help): p

Disk /dev/vdb: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x38717fc1

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048   209715199   104856576   83  Linux

Command (m for help):

表示新建分割槽“/dev/vdb1”的詳細資訊。

9. 輸入“w”,按“Enter”,將分割槽結果寫入分割槽表中。回顯類似如下資訊:

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

表示分割槽建立完成。

說明:

如果之前分割槽操作有誤,請輸入“q”,則會退出fdisk分割槽工具,之前的分割槽結果將不會被保留。

10.執行以下命令,將新的分割槽表變更同步至作業系統。

partprobe

11.執行以下命令,將新建分割槽檔案系統設為系統所需格式。

mkfs-t檔案系統格式/dev/vdb1

以設定檔案系統為“ext4”為例:

mkfs -t ext4 /dev/vdb1回顯類似如下資訊:

[root@ecs-test-0001 ~]# mkfs -t ext4 /dev/vdb1
mke2fs 1.42.9 (28-Dec-2013)
Fileexperience label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
6553600 inodes, 26214144 blocks
1310707 blocks (5.00%) reserved for the super user
First data block=0
Maximum fileexperience blocks=2174746624
800 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and fileexperience accounting information: done

格式化需要等待一段時間,請觀察系統執行狀態,不要退出。注意:

不同檔案系統支援的分割槽大小不同,請根據您的業務需求選擇合適的檔案系統。

12.執行以下命令,新建掛載目錄。

mkdir 掛載目錄

以新建掛載目錄“/mnt/sdc”為例:

mkdir /mnt/sdc

13.執行以下命令,將新建分割槽掛載到步驟12中建立的目錄下。

mount 磁碟分割槽 掛載目錄

以掛載新建分割槽“/dev/vdb1”至“/mnt/sdc”為例:

mount /dev/vdb1 /mnt/sdc

14.執行以下命令,檢視掛載結果。

df -TH

回顯類似如下資訊:

[root@ecs-test-0001 ~]# df -TH
Fileexperience     Type      Size  Used Avail Use% Mounted on
/dev/vda1      ext4       43G  1.9G   39G   5% /
devtmpfs       devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs          tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs          tmpfs     2.0G  9.1M  2.0G   1% /run
tmpfs          tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
tmpfs          tmpfs     398M     0  398M   0% /run/user/0
/dev/vdb1      ext4      106G   63M  101G   1% /mnt/sdc

表示新建分割槽“/dev/vdb1”已掛載至“/mnt/sdc”。

說明:

雲伺服器重啟後,掛載會失效。您可以修改“/etc/fstab”檔案,將新建磁碟分割槽設定為開機自動掛載,請參見設定開機自動掛載磁碟分割槽

4.設定開機自動掛載磁碟分割槽

設定雲伺服器系統啟動時自動掛載磁碟分割槽,不能採用在“/etc/fstab”直接指定裝置名(比如/dev/vdb1)的方法,因為雲中裝置的順序編碼在關閉或者開啟雲伺服器過程中可能發生改變,例如/dev/vdb1可能會變成/dev/vdb2。推薦使用UUID來配置自動掛載磁碟分割槽。

說明:

UUID(universally unique identifier)是Linux系統為磁碟分割槽提供的唯一的標識字串。

1.執行如下命令,查詢磁碟分割槽的UUID。

blkid 磁碟分割槽

以查詢磁碟分割槽“/dev/vdb1”的UUID為例:

blkid /dev/vdb1

回顯類似如下資訊:

[root@ecs-test-0001 ~]# blkid /dev/vdb1
/dev/vdb1: UUID="0b3040e2-1367-4abb-841d-ddb0b92693df" TYPE="ext4"

表示“/dev/vdb1”的UUID。

2.執行以下命令,使用VI編輯器開啟“fstab”檔案。

vi /etc/fstab

3.按“i”,進入編輯模式。

4. 將游標移至檔案末尾,按“Enter”,新增如下內容。

UUID=0b3040e2-1367-4abb-841d-ddb0b92693df /mnt/sdc                ext4    defaults        0 2

以內容上僅為示例,具體請以實際情況為準,引數說明如下:

  • 第一列為UUID,此處填寫1中查詢到的磁碟分割槽的UUID。
  • 第二列為磁碟分割槽的掛載目錄,可以通過df -TH命令查詢。
  • 第三列為磁碟分割槽的檔案系統格式, 可以通過df -TH命令查詢。
  • 第四列為磁碟分割槽的掛載選項,此處通常設定為defaults即可。
  • 第五列為Linux dump備份選項。
    • 0表示不使用Linux dump備份。現在通常不使用dump備份,此處設定為0即可。
    • 1表示使用Linux dump備份。
  • 第六列為fsck選項,即開機時是否使用fsck檢查磁碟。
    • 0表示不檢驗。
    • 掛載點為(/)根目錄的分割槽,此處必須填寫1。根分割槽設定為1,其他分割槽只能從2開始,系統會按照數字從小到大依次檢查下去。

5. 按“ESC”後,輸入“:wq”,按“Enter”。儲存設定並退出編輯器。

6.執行以下步驟,驗證自動掛載功能。

a.執行如下命令,解除安裝已掛載的分割槽。

umount 磁碟分割槽

命令示例:

umount /dev/vdb1

b.執行如下命令,將“/etc/fstab”檔案所有內容重新載入。

mount -a

c.執行如下命令,查詢檔案系統掛載資訊。

mount|grep掛載目錄

命令示例:

mount | grep /mnt/sdc

回顯類似如下資訊,說明自動掛載功能生效:

root@ecs-test-0001 ~]# mount | grep /mnt/sdc
/dev/vdb1 on /mnt/sdc type ext4 (rw,relatime,data=ordered)