Linux parted 分區(qū)命令使用解讀
一、概述
通常我們用的比較多的分區(qū)工具是fdisk
命令,但由于fdisk
只支持MBR分區(qū),MBR分區(qū)表最大支撐2T的磁盤,所以無法劃分大于2T的分區(qū)。而parted
工具可以劃分單個(gè)分區(qū)大于2T的GPT格式的分區(qū),也可以劃分普通的MBR分區(qū)。
parted命令是由GNU組織開發(fā)的一款功能強(qiáng)大的磁盤分區(qū)和分區(qū)大小調(diào)整工具。GPT格式的磁盤相當(dāng)于原來MBR磁盤中原來保留4個(gè)partition table的4 16個(gè)字節(jié),只留第一個(gè)16個(gè)字節(jié),類似于擴(kuò)展分區(qū),真正的partition table在512字節(jié)之后,GPT分區(qū)方式?jīng)]有四個(gè)主分區(qū)的限制,** 最多可達(dá)到128個(gè)主分區(qū) **。下面我們看下parted命令的用法。
1.1 語法結(jié)構(gòu)
parted [選項(xiàng)]… [設(shè)備 [命令 [參數(shù)]…]…]
二、選項(xiàng)
選項(xiàng) 描述
- -h –help 顯示此求助信息
- -l –list 列出所有設(shè)別的分區(qū)信息
- -i –interactive 在必要時(shí),提示用戶
- -s –script 從不提示用戶
- -v –version 顯示版本
三、操作命令
parted交互命令 說 明 check NUMBER 做一次簡單的文件系統(tǒng)檢測 cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER 復(fù)制文件系統(tǒng)到另一個(gè)分區(qū) help [COMMAND] 顯示所有的命令幫助 mklabel,mktable LABEL-TYPE 創(chuàng)建新的磁盤卷標(biāo)(分區(qū)表) mkfs NUMBER FS-TYPE 在分區(qū)上建立文件系統(tǒng) mkpart PART-TYPE [FS-TYPE] START END 創(chuàng)建一個(gè)分區(qū) mkpartfs PART-TYPE FS-TYPE START END 創(chuàng)建分區(qū),并建立文件系統(tǒng) move NUMBER START END 移動(dòng)分區(qū) name NUMBER NAME 給分區(qū)命名 print [devices|free|list,all|NUMBER] 顯示分區(qū)表、活動(dòng)設(shè)備、空閑空間、所有分區(qū) quit 退出 rescue START END 修復(fù)丟失的分區(qū) resize NUMBER START END 修改分區(qū)大小 rm NUMBER 刪除分區(qū) select DEVICE 選擇需要編輯的設(shè)備 set NUMBER FLAG STATE 改變分區(qū)標(biāo)記 toggle [NUMBER [FLAG]] 切換分區(qū)表的狀態(tài) unit UNIT 設(shè)置默認(rèn)的單位 Version 顯示版本
四、交互操作實(shí)例
4.1 選擇分區(qū)硬盤
首先類似fdisk一樣,先選擇要分區(qū)的硬盤,此處為/dev/hdb: ((parted)表示在parted中輸入的命令,其他為自動(dòng)打印的信息)
[root@my-linux ~]# parted /dev/hdb GNU Parted 1.8.1 Using /dev/hdb Welcome to GNU Parted! Type 'help' to view a list of commands.
4.2 創(chuàng)建分區(qū)
選擇了/dev/hdb作為我們操作的磁盤,接下來需要?jiǎng)?chuàng)建一個(gè)分區(qū)表(在parted中可以使用help命令打印幫助信息):
(parted) mklabel New disk label type? gpt (我們要正確分區(qū)大于2TB的磁盤,應(yīng)該使用gpt方式的分區(qū)表,輸入gpt后回車)
4.3 完成分區(qū)操作
創(chuàng)建好分區(qū)表以后,接下來就可以進(jìn)行分區(qū)操作了,執(zhí)行mkpart命令,分別輸入分區(qū)名稱,文件系統(tǒng)和分區(qū)的起止位置
(parted) mkpart Partition name? []? dp1 File system type? [ext2]? xfs Start? 0 (可以用百分比表示,比如Start? 0% , End? 50%) End? 500GB
4.4 驗(yàn)證分區(qū)信息
分好區(qū)后可以使用print命令打印分區(qū)信息,下面是一個(gè)print的樣例
(parted) print Model: VBOX HARDDISK (ide) Disk /dev/hdb: 3841GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 17.4kB 500GB 500GB dp1
4.5 刪除分區(qū)示例
如果分區(qū)錯(cuò)了,可以使用rm命令刪除分區(qū),比如我們要?jiǎng)h除上面的分區(qū),然后打印刪除后的結(jié)果
(parted)rm 1 #rm后面使用分區(qū)的號(hào)碼,就是用print打印出來的Number (parted) print Model: VBOX HARDDISK (ide) Disk /dev/hdb: 3841GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags
4.6 格式化操作
在交互狀態(tài)下,完成以后我們可以使用quit
命令退出parted并使用系統(tǒng)的mkfs
命令對(duì)分區(qū)進(jìn)行格式化。
[root@my-linux ~]# fdisk -l WARNING: GPT (GUID Partition Table) detected on '/dev/hdb'! The util fdisk doesn't support GPT. Use GNU Parted. Disk /dev/hdb: 3841.0 GB, 3841022206976 bytes 255 heads, 63 sectors/track, 267349 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hdb1 1 267350 2147482623+ ee EFI GPT [root@my-linux ~]# mkfs.xfs /dev/hdb1 [root@my-linux ~]# mkfs.xfs /dev/hdb2 [root@my-linux ~]# mkdir /data1 /data2 [root@my-linux ~]# mount /dev/hdb1 /data1 [root@my-linux ~]# mount /dev/hdb2 /data2
4.7 交互創(chuàng)建分區(qū)的完整示示例
按照上面的方法把整個(gè)硬盤都分好區(qū),下面是一個(gè)分完后的樣例
(parted) mkpart Partition name? []? dp1 File system type? [ext2]? xfs Start? 0 End? 500GB (parted) mkpart Partition name? []? dp2 File system type? [ext2]? xfs Start? 500GB End? 3841GB (parted) print Model: VBOX HARDDISK (ide) Disk /dev/hdb: 3841GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 17.4kB 500GB 500GB dp1 2 500GB 3841GB 1699GB dp2
五、非交互方式
5.1 創(chuàng)建分區(qū)表
parted /dev/sdl mklabel gpt
5.2 將硬盤所有容量分給主分區(qū)
parted /dev/sdl mkpart primary 0% 100%
5.3 查詢磁盤的已有分區(qū)
parted /dev/sdl print
5.4 查詢硬盤分區(qū)
fdisk -l or lsblk
5.5 格式化分區(qū)
mkfs -t xfs /dev/sdl1
文件系統(tǒng)EXT3,EXT4和XFS的區(qū)別:
EXT3
- (1)最多只能支持32TB的文件系統(tǒng)和2TB的文件,實(shí)際只能容納2TB的文件系統(tǒng)和16GB的文件
- (2)Ext3目前只支持32000個(gè)子目錄
- (3)Ext3文件系統(tǒng)使用32位空間記錄塊數(shù)量和i-節(jié)點(diǎn)數(shù)量
- (4)當(dāng)數(shù)據(jù)寫入到Ext3文件系統(tǒng)中時(shí),Ext3的數(shù)據(jù)塊分配器每次只能分配一個(gè)4KB的塊
EXT4
EXT4是Linux系統(tǒng)下的日志文件系統(tǒng),是EXT3文件系統(tǒng)的后繼版本。
- (1)Ext4的文件系統(tǒng)容量達(dá)到1EB,而文件容量則達(dá)到16TB
- (2)理論上支持無限數(shù)量的子目錄
- (3)Ext4文件系統(tǒng)使用64位空間記錄塊數(shù)量和i-節(jié)點(diǎn)數(shù)量
- (4)Ext4的多塊分配器支持一次調(diào)用分配多個(gè)數(shù)據(jù)塊
XFS
- (1)根據(jù)所記錄的日志在很短的時(shí)間內(nèi)迅速恢復(fù)磁盤文件內(nèi)容
- (2)采用優(yōu)化算法,日志記錄對(duì)整體文件操作影響非常小
- (3) 是一個(gè)全64-bit的文件系統(tǒng),它可以支持上百萬T字節(jié)的存儲(chǔ)空間
- (4)能以接近裸設(shè)備I/O的性能存儲(chǔ)數(shù)據(jù)
5.6 查詢/dev/sdl1的blkid
blkid /dev/sdl1
5.7 修改/etc/fstab
vi /etc/fstab
編輯/etc/fstab
使開機(jī)可知道掛載文件系統(tǒng)。
5.8 掛載文件系統(tǒng),查詢
mount -a df -h
六、非交互方式示例
6.1 創(chuàng)建gpt分區(qū)表
[root@my-linux ~]# parted /dev/sdb mklabel gpt Information: You may need to update /etc/fstab.
6.2 劃分3個(gè)分區(qū)
[root@my-linux ~]# parted /dev/sdb mkpart primary 0% 27% Information: You may need to update /etc/fstab. [root@my-linux ~]# parted /dev/sdb mkpart primary 27% 54% Information: You may need to update /etc/fstab. [root@my-linux ~]# parted /dev/sdb mkpart primary 54% 81% Information: You may need to update /etc/fstab.
6.3 打印分區(qū)
[root@my-linux ~]# parted /dev/sdb print Model: HP LOGICAL VOLUME (scsi) Disk /dev/sdb: 3841GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 2097kB 1037GB 1037GB primary 2 1037GB 2074GB 1037GB primary 3 2074GB 3111GB 1037GB primary
6.4 刪除分區(qū)
刪除分區(qū)的命令是parted /dev/sdb rm 1
其中最后的數(shù)字 1 表示分區(qū)編號(hào)。
[root@my-linux ~]# parted /dev/sdb rm 1 Information: You may need to update /etc/fstab. [root@my-linux ~]# parted /dev/sdb rm 2 Information: You may need to update /etc/fstab. [root@my-linux ~]# parted /dev/sdb rm 3 Information: You may need to update /etc/fstab. [root@my-linux ~]# parted /dev/sdb print Model: HP LOGICAL VOLUME (scsi) Disk /dev/sdb: 3841GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags [root@my-linux ~]#
七、MBR & GPT
MBR:MBR分區(qū)表(即主引導(dǎo)記錄)大家都很熟悉。所支持的最大卷:2T,而且對(duì)分區(qū)有限制:最多4個(gè)主分區(qū)或3個(gè)主分區(qū)加一個(gè)擴(kuò)展分區(qū)
GPT: GPT(即GUID分區(qū)表)。是源自EFI標(biāo)準(zhǔn)的一種較新的磁盤分區(qū)表結(jié)構(gòu)的標(biāo)準(zhǔn),是未來磁盤分區(qū)的主要形式。與MBR分區(qū)方式相比,具有如下優(yōu)點(diǎn)。突破 MBR 4個(gè)主分區(qū)限制,每個(gè)磁盤最多支持128個(gè)分區(qū)。支持大于2T的分區(qū),最大卷可達(dá)18EB。
八、parted 分區(qū)對(duì)齊報(bào)錯(cuò)
在使用parted
創(chuàng)建分區(qū)時(shí)產(chǎn)生告警信息
"Warning: The resulting partition is not properly aligned for best performance."
這個(gè)問題Redhat官網(wǎng)有解析:https://access.redhat.com/mt/zh-hans/solutions/184143
8.1 問題
(parted) mkpart primary 128 1048575 Warning: You requested a partition from 128s to 1048575s. The closest location we can manage is 128s to 1048542s. Is this still acceptable to you? Yes/No? Yes Warning: The resulting partition is not properly aligned for best performance. <----- Ignore/Cancel? C
忽略這個(gè)告警分區(qū)可以正常創(chuàng)建,只不過會(huì)影響磁盤性能。那么該如何創(chuàng)建一個(gè)正確對(duì)齊的分區(qū)呢?
8.2 解決方案
8.2.1 百分比
一般來說只要正確的選擇分區(qū)開始的位置就可以解決這個(gè)問題,但需要查詢和計(jì)算一下相應(yīng)的參數(shù)。通常相較于使用明確的開始和結(jié)束位置使用百分比可以更容易使分區(qū)對(duì)齊。
mkpart primary 0% 100%
or mkpart primary 0% 320GB
創(chuàng)建單個(gè)分區(qū), 或
mkpart primary 0% 50%
and mkpart primary 50% 100%
創(chuàng)建兩個(gè)大小相等的分區(qū)。
8.2.2 1MiB偏移量
一般情況下,很大一部分磁盤的默認(rèn)對(duì)齊粒度為1MiB,因此在大多數(shù)情況下,使用MiB作為mkpart
中的單元就可以創(chuàng)建一個(gè)對(duì)齊的分區(qū)。由于磁盤空間上的第一個(gè)MiB包括0扇區(qū)中的遺留主引導(dǎo)記錄(MBR)和緊隨其后的gpt主表(如果是gpt類型),因此需要跳過磁盤上的第一個(gè)MiB,并從1MiB開始分區(qū):
mkpart primary 1MiB 100%
例如,創(chuàng)建單個(gè)分區(qū)。
8.2.3 計(jì)算偏移量#
如果使用百分比或1MiB偏移量不起作用,可以通過查詢?cè)O(shè)備相應(yīng)的sysfs條目來直接計(jì)算所需的對(duì)齊
獲取如下值:
# cat /sys/block/sdb/queue/optimal_io_size # cat /sys/block/sdb/alignment_offset # cat /sys/block/sdb/queue/physical_block_size
獲取正確的偏移扇區(qū)數(shù)是將 optimal_io_size
和 alignment_offset
相加然后除以 physical_block_size
.
For example:
optimal_io_size = 1310720 alignment_offset = 0 physical_block_size = 512 i.e 1310720+0/512 = 2560
現(xiàn)在創(chuàng)建分區(qū)的命令可以是:
(parted) mkpart primary 2560 100% OR (parted) mkpart primary 2560 1000G
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Linux下實(shí)現(xiàn)不活動(dòng)用戶登錄超時(shí)后自動(dòng)登出
這篇文章主要介紹了Linux下實(shí)現(xiàn)不活動(dòng)用戶登錄超時(shí)后自動(dòng)登出 ,本文給大家?guī)砹怂姆N方式,每種方式都通過實(shí)例代碼文字給大家介紹的非常詳細(xì),需要的朋友可以參考下2019-08-08Centos搭建PHP5.3.8+Nginx1.0.9+Mysql5.5.17詳細(xì)配置
算不上經(jīng)驗(yàn),只能說是個(gè)人總結(jié).在搭建過程中遇到的問題.并記錄下來.剛開學(xué)習(xí)始搭建環(huán)境的朋友少走一些彎路.這沒有過多的參數(shù),并不是什么高性能網(wǎng)站的部署.本人經(jīng)驗(yàn)有限,在此分享一些遇到的問題.2012-06-06zabbix進(jìn)行數(shù)據(jù)庫備份以及表分區(qū)的方法
這篇文章主要介紹了zabbix進(jìn)行數(shù)據(jù)庫備份以及表分區(qū)的方法,需要的朋友可以參考下2015-10-10LuManager VPS主機(jī)控制面板安裝和Eduvps免費(fèi)VPS測評(píng)
這篇文章主要介紹了LuManager VPS主機(jī)控制面板安裝和Eduvps免費(fèi)VPS測評(píng),需要的朋友可以參考下2016-04-04Vim自定義高亮分組以及一些實(shí)用技巧小結(jié)
Vim/Vi基本上是*nix世界最受歡迎的編輯器了,不知道為什么,一直以來覺得和Emacs比起來,Vim更加有親和力,用起來很舒服。那么下面這篇文章主要給大家介紹了關(guān)于Vim自定義高亮分組以及一些實(shí)用技巧的相關(guān)資料,需要的朋友可以參考下。2017-07-07ubuntu16.10安裝docker17.03.0-ce并配置國內(nèi)源和加速器
這篇文章主要介紹了ubuntu16.10安裝docker17.03.0-ce并配置國內(nèi)源和加速器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05