初始化Linux資料盤(fdisk)
操作場景
本文以雲伺服器的作業系統為“CentOS 7.0 64位”為例,採用fdisk分割槽工具為資料盤設定分割槽。
MBR支援的磁碟最大容量為2 TB,GPT最大支援的磁碟容量為18 EB,因此當您初始化容量大於2 TB的磁碟時,分割槽形式請採用GPT。對於Linux作業系統而言,當磁碟分割槽形式選用GPT時,fdisk分割槽工具將無法使用,需要採用parted工具。關於磁碟分割槽形式的更多介紹,請參見場景及磁碟分割槽形式介紹。
不同雲伺服器的作業系統的格式化操作可能不同,本文僅供參考,具體操作步驟和差異請參考對應的雲伺服器作業系統的產品文件。
注意:
首次使用雲硬碟時,如果您未參考本章節對雲硬碟執行初始化操作,主要包括建立分割槽和檔案系統等操作,那麼當後續擴容雲硬碟時,新增容量部分的磁碟可能無法正常使用。
前提條件
已登入雲伺服器。
彈性雲伺服器請參見《彈性雲伺服器使用者指南》。
裸金屬伺服器請參見《裸金屬伺服器使用者指南》。
已掛載資料盤至雲伺服器,且該資料盤未初始化。
劃分分割槽並掛載磁碟
本操作以該場景為例,當雲伺服器掛載了一塊新的資料盤時,使用fdisk分割槽工具將該資料盤設為主分割槽,分割槽形式預設設定為MBR,檔案系統設為ext4格式,掛載在“/mnt/sdc”下,並設定開機啟動自動掛載。
執行以下命令,檢視新增資料盤。
fdisk -l
回顯類似如下資訊:
[root@ecs-b656 test]# fdisk -l
Disk /dev/xvda: 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: 0x000cc4ad
Device Boot Start End Blocks Id System
/dev/xvda1 * 2048 2050047 1024000 83 Linux
/dev/xvda2 2050048 22530047 10240000 83 Linux
/dev/xvda3 22530048 24578047 1024000 83 Linux
/dev/xvda4 24578048 83886079 29654016 5 Extended
/dev/xvda5 24580096 26628095 1024000 82 Linux swap / Solaris
Disk /dev/xvdb: 10.7 GB, 10737418240 bytes, 20971520 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/xvda”是系統盤,“/dev/xvdb”是新增資料盤。
執行以下命令,進入fdisk分割槽工具,開始對新增資料盤執行分割槽操作。
fdisk 新增資料盤
以新掛載的資料盤“/dev/xvdb”為例:
fdisk /dev/xvdb
回顯類似如下資訊:
[root@ecs-b656 test]# fdisk /dev/xvdb
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 0xb00005bd.
Command (m for help):
輸入“n”,按“Enter”,開始新建分割槽。
回顯類似如下資訊:
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
表示磁碟有兩種分割槽型別:
“p”表示主要分割槽。
“e”表示延伸分割槽。
以建立一個主要分割槽為例,輸入“p”,按“Enter”,開始建立一個主分割槽。
回顯類似如下資訊:
Select (default p): p
Partition number (1-4, default 1):
“Partition number”表示主分割槽編號,可以選擇1-4。
以分割槽編號選擇“1”為例,輸入主分割槽編號“1”,按“Enter”。
回顯類似如下資訊:
Partition number (1-4, default 1): 1
First sector (2048-20971519, default 2048):
“First sector”表示初始磁柱區域,可以選擇2048-20971519,預設為2048。
以選擇預設初始磁柱編號2048為例,按“Enter”。
回顯類似如下資訊:
First sector (2048-20971519, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519):
“Last sector”表示截止磁柱區域,可以選擇2048-20971519,預設為20971519。
以選擇預設截止磁柱編號20971519為例,按“Enter”。
回顯類似如下資訊:
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519):
Using default value 20971519
Partition 1 of type Linux and of size 10 GiB is set
Command (m for help):
表示分割槽完成,即為10GB的資料盤新建了1個分割槽。
輸入“p”,按“Enter”,檢視新建分割槽的詳細資訊。
回顯類似如下資訊:
Command (m for help): p
Disk /dev/xvdb: 10.7 GB, 10737418240 bytes, 20971520 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: 0xb00005bd
Device Boot Start End Blocks Id System
/dev/xvdb1 2048 20971519 10484736 83 Linux
Command (m for help):
表示新建分割槽“/dev/xvdb1”的詳細資訊。
輸入“w”,按“Enter”,將分割槽結果寫入分割槽表中。
回顯類似如下資訊:。
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
表示分割槽建立完成。
說明:
如果之前分割槽操作有誤,請輸入“q”,則會退出fdisk分割槽工具,之前的分割槽結果將不會被保留。
執行以下命令,將新的分割槽表變更同步至作業系統。
partprobe
執行以下命令,將新建分割槽檔案系統設為系統所需格式。
mkfs -t 檔案系統格式 /dev/xvdb1
以設定檔案系統為“ext4”為例:
mkfs -t ext4 /dev/xvdb1
回顯類似如下資訊:
[root@ecs-b656 test]# mkfs -t ext4 /dev/xvdb1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621184 blocks
131059 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2151677952
80 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
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
格式化需要等待一段時間,請觀察系統執行狀態,不要退出。
注意:
不同檔案系統支援的分割槽大小不同,請根據您的業務需求選擇合適的檔案系統。
執行以下命令,新建掛載點。
mkdir 掛載點
以新建掛載點“/mnt/sdc”為例:
mkdir /mnt/sdc
執行以下命令,將新建分割槽掛載到12中新建的掛載點下。
mount /dev/xvdb1 掛載點
以掛載新建分割槽至“/mnt/sdc”為例:
mount /dev/xvdb1 /mnt/sdc
執行以下命令,檢視掛載結果。
df -TH
回顯類似如下資訊:
[root@ecs-b656 test]# df -TH
Filesystem Type Size Used Avail Use% Mounted on
/dev/xvda2 xfs 11G 7.4G 3.2G 71% /
devtmpfs devtmpfs 4.1G 0 4.1G 0% /dev
tmpfs tmpfs 4.1G 82k 4.1G 1% /dev/shm
tmpfs tmpfs 4.1G 9.2M 4.1G 1% /run
tmpfs tmpfs 4.1G 0 4.1G 0% /sys/fs/cgroup
/dev/xvda3 xfs 1.1G 39M 1.1G 4% /home
/dev/xvda1 xfs 1.1G 131M 915M 13% /boot
/dev/xvdb1 ext4 11G 38M 9.9G 1% /mnt/sdc
表示新建分割槽“/dev/xvdb1”已掛載至“/mnt/sdc”。
設定開機自動掛載磁碟
如果您需要在雲伺服器系統啟動時自動掛載磁碟,不能採用在 /etc/fstab直接指定 /dev/xvdb1的方法,因為雲中裝置的順序編碼在關閉或者開啟雲伺服器過程中可能發生改變,例如/dev/xvdb1可能會變成/dev/xvdb2。推薦使用UUID來配置自動掛載資料盤。
說明:
磁碟的UUID(universally unique identifier)是Linux系統為磁碟分割槽提供的唯一的標識字串。
執行如下命令,查詢磁碟分割槽的UUID。
blkid 磁碟分割槽
以查詢磁碟分割槽“/dev/xvdb1”的UUID為例:
blkid /dev/xvdb1
回顯類似如下資訊:
[root@ecs-b656 test]# blkid /dev/xvdb1
/dev/xvdb1: UUID="1851e23f-1c57-40ab-86bb-5fc5fc606ffa" TYPE="ext4"
表示“/dev/xvdb1”的UUID。
執行以下命令,使用VI編輯器開啟“fstab”檔案。
vi /etc/fstab
按“i”,進入編輯模式。
將游標移至檔案末尾,按“Enter”,新增如下內容。
UUID=1851e23f-1c57-40ab-86bb-5fc5fc606ffa /mnt/sdc ext4 defaults 0 2
按“ESC”後,輸入“:wq”,按“Enter”。
儲存設定