linux分區命令parted的用法


parted的適用場景

  • 創建操作大於2T的分區
    一般情況下,我們都是選擇使用fdisk工具來進行分區,但是目前在實際生產環境中使用的磁盤空間越來越大,呈TiB級別增長;而常用的fdisk這個工具對分區是有大小限制的,它只能划分小於2T的磁盤,所以在划大於2T磁盤分區的時候fdisk就無法滿足要求了;這個時候有2個方法,其一是通過卷管理來實現,其二就是通過parted工具來實現對GPT磁盤進行分區操作;這里我們采用parted的方法來實現管理。

parted的2種使用方式

  • 交互式
    手動按序交互式的創建;
  • 非交互式
    可將命令行寫在腳本中,運行腳本實現一鍵創建;適用於遠程批量管理多台主機的場景。
  • 兩種方式比較
    兩種方法的使用和原理其實是一樣的;要想實現非交互式創建,無非是在每一個具體的交互式命令前加上parted DEVICES_NAME即可。

parted實現分區管理實踐

實驗環境

操作系統

CentOS 7.5

磁盤信息

  • 待管理磁盤
    /dev/sdb
  • 磁盤總大小
    18T
  • 分區需求
    將整個/dev/sdb划分到同一個分區里,並掛載到**/gfsdata01目錄下。

交互式方式實現分區步驟

選擇操作磁盤

parted命令后跟上欲操作磁盤的名字即可選擇此設備進行操作。

[root@kvm ~]# parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.

新建磁盤標簽類型為GPT

因為parted命令只能針對gpt格式的磁盤進行操作,所以這里必須將新建的磁盤標簽格式設為gpt。

(parted) mklabel gpt

分區

命令格式

mkpart PART-TYPE [FS-TYPE] START END
  • PART-TYPE(分區類型)
    • primary
      主分區
    • logical
      邏輯分區
    • extended
      擴展分區
  • FS-TYPE(文件系統類型)
    • ext4
    • ext3
    • ext2
    • xfs
    • 其他......
  • START
    設定磁盤分區起始點;可以為0,numberMiB/GiB/TiB;
    • 0
      設定當前分區的起始點為磁盤的第一個扇區;
    • 1G
      設定當前分區的起始點為磁盤的1G處開始;
  • END
    設定磁盤分區結束點;
    • -1
      設定當前分區的結束點為磁盤的最后一個扇區;
    • 10G
      設定當前分區的結束點為磁盤的10G處;

將/dev/sdb整個空間分給同一個分區

(parted) mkpart primary 0 -1                                              
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? I
(parted) p                                                                
Model: AVAGO AVAGO (scsi)
Disk /dev/sdb: 18.0TB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      17.4kB  18.0TB  18.0TB               primary
(parted) q                                                                
Information: You may need to update /etc/fstab.

格式化分區

因為整個/dev/sdb只分了一個區,則這個分區名默認會分配為/dev/sdb1;使用mkfs命令將/dev/sdb1分區格式化為ext4

[root@kvm ~]# mkfs -t ext4 /dev/sdb1                 
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb1 alignment is offset by 244736 bytes.
This may result in very poor performance, (re)-partitioning suggested.
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=64 blocks, Stripe width=64 blocks
274659328 inodes, 4394530311 blocks
219726515 blocks (5.00%) reserved for the super user
First data block=0
134111 block groups
32768 blocks per group, 32768 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
        102400000, 214990848, 512000000, 550731776, 644972544, 1934917632, 
        2560000000, 3855122432

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

設定分區label(非必要)

[root@kvm ~]# e2label /dev/sdb1 /gfsdata01

創建掛載目錄

[root@kvm ~]# mkdir /gfsdata01

臨時掛載分區

[root@kvm ~]# mount /dev/sdb1 /gfsdata01
[root@kvm ~]# df -h
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/root_vg-lv_root   89G  2.6G   82G   4% /
devtmpfs                     126G     0  126G   0% /dev
tmpfs                        126G     0  126G   0% /dev/shm
tmpfs                        126G  2.0M  126G   1% /run
tmpfs                        126G     0  126G   0% /sys/fs/cgroup
/dev/sda1                    976M  216M  694M  24% /boot
/dev/sda7                     99G   61M   94G   1% /home
/dev/sda8                     62G   53M   59G   1% /tmp
/dev/sda6                     99G   61M   94G   1% /app
tmpfs                         26G     0   26G   0% /run/user/1014
tmpfs                         26G     0   26G   0% /run/user/0
/dev/sdb1                     17T   20K   16T   1% /gfsdata01

開機自動掛載(永久掛載)

即修改/etc/fstab文件。

echo '/dev/sdb1 /gfsdata01    ext4    defaults    0 0' >>/etc/fstab

非交互式方式實現腳本

適用於需要在多台主機上進行同樣的分區操作,可以通過ansible工具調用腳本實現批量分區配置掛載等操作。

[root@kvm ~]# cat ./auto_partition.sh 
#!/bin/bash
# 新建/dev/sdb的磁盤標簽類型為GPT
parted /dev/sdb mklabel gpt 
# 將/dev/sdb整個空間分給同一個分區
parted /dev/sdb mkpart primary 0 100%
# 忽略警告
ignore
# 格式化分區
mkfs -t ext4 /dev/sdb1
# 設定分區label(非必要)
e2label /dev/sdb1 /gfsdata01
# 創建掛載目錄
mkdir /gfsdata01
# 臨時掛載
mount /dev/sdb1 /gfsdata01
# 開機自動掛載(永久掛載)
echo '/dev/sdb1 /gfsdata01       ext4    defaults        0 0'>>/etc/fstab
[root@kvm ~]# 

parted的其他常用子命令

刪除分區(rm子命令)

rm NUMBERNUMBER即為parted子命令p回顯的Number對應的數字;
此命令慎用!!!如果要刪除的分區內已有數據,那么此命令會刪除其中的所有數據,並且是不可逆的。

(parted) p                                                                
Model: AVAGO AVAGO (scsi)
Disk /dev/sdb: 18.0TB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      17.4kB  4096GB  4096GB               primary

(parted) rm 1                                                             
(parted) p                                                                
Model: AVAGO AVAGO (scsi)
Disk /dev/sdb: 18.0TB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start  End  Size  File system  Name  Flags

(parted)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM