parted新建分区_扩展分区及文件系统(Linux)
生活随笔
收集整理的這篇文章主要介紹了
parted新建分区_扩展分区及文件系统(Linux)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
操作場景
云硬盤是云上可擴展的存儲設備,您可以在創建云硬盤后隨時擴展其大小,以增加存儲空間,同時不失去云硬盤上原有的數據。
云硬盤擴容 完成后,需要將擴容部分的容量劃分至已有分區內,或者將擴容部分的容量格式化成一個獨立的新分區。
注意事項
擴容文件系統操作不慎可能影響已有數據,因此強烈建議您在操作前手動 創建快照 備份數據。前提條件
- 已擴容云硬盤空間。
- 該云硬盤已掛載 到 Linux 云服務器并已創建文件系統。
- 已登錄待擴展分區及文件系統的 Linux 云服務器。
操作步驟
確認擴展方式
以 root 用戶執行以下命令,查詢云硬盤使用的分區形式。
- fdisk -l
- 若結果如下兩圖所示(根據操作系統不同略有不同),則說明使用 GPT 分區形式。
- 若結果如下圖所示(根據操作系統不同略有不同),則說明使用 MBR 分區形式。注意:
MBR 分區形式支持的磁盤最大容量為2TB。如果您的硬盤分區為 MBR 格式,且需要擴容到超過 2TB 時,建議您重新創建并掛載一塊數據盤,使用 GPT 分區方式后將數據拷貝至新盤上。對于 Linux 操作系統而言,當磁盤分區形式選用 GPT 時,fdisk 分區工具將無法使用,需要采用 parted 工具。
- 若結果如下圖所示(根據操作系統不同略有不同),則說明使用 MBR 分區形式。注意:
分區形式操作指引說明GPT將擴容部分的容量劃分至原有分區(GPT)同樣適用于未分區直接格式化的場景。將擴容部分的容量格式化成獨立的新分區(GPT)可保持原有分區不變。MBR將擴容部分的容量劃分至原有分區(MBR)同樣適用于未分區直接格式化的場景。將擴容部分的容量格式化成獨立的新分區(MBR)可保持原有分區不變。
將擴容部分的容量劃分至原有分區(GPT)
以 root 用戶執行以下命令,確認云硬盤的容量變化。
- parted <磁盤路徑> print
本文以磁盤路徑是/dev/vdb為例,則執行: - parted /dev/vdb print
若在過程中提示如下圖所示信息,請輸入Fix。
如下圖所示,擴容后的云硬盤大小為107GB,已有分區的大小為10.7GB。
執行以下命令,確認該云硬盤是否還有分區已掛載。
- mount | grep '<磁盤路徑>'
本文以磁盤路徑是/dev/vdb為例,則執行: - mount | grep '/dev/vdb'
如下圖所示,云硬盤上有一個分區(vdb1)掛載在/data上。
執行以下命令,解掛數據盤。
- umount <掛載點>
本文以掛載點是/data為例,則執行: - umount /data
說明:
請將云硬盤上所有分區的文件系統都解掛,。可重復執行以下命令,確認該硬盤上所有分區的文件系統都已解掛。 - mount | grep '/dev/vdb'
執行以下命令,進入 parted 分區工具。
- parted '<磁盤路徑>'
本文以磁盤路徑是/dev/vdb為例,則執行: - parted '/dev/vdb'
- 執行以下命令,將顯示和操縱單位變成 sector(默認為GB)。
- unit s
- 輸入 print,查看分區信息,并記錄已有分區的 Start 值。
注意:
刪除分區并新建后,Start 值必須保持不變,否則將會引起數據丟失。
執行以下命令,刪除原有分區。
- rm <分區 Number>
例如,由上圖可知云硬盤上有一個分區,Number 為“1”,則執行: - rm 1
回顯信息如下圖所示。
執行以下命令,新建一個主分區。
- mkpart primary <原分區起始扇區> 100%
其中,100%表示此分區到磁盤的最末尾。
例如,主分區從第2048個扇區開始(必須與刪除之前的分區一致,即 Start 值為2048s),則執行: - mkpart primary 2048s 100%
如果出現如下圖所示的狀態,請輸入Ignore。
執行以下命令,查看新分區是否已創建成功。
- print
返回結果如下圖所示,即表示新分區已創建成功。
執行以下命令,退出 parted 工具。
- quit
- 執行以下命令,檢查擴容后的分區。
- e2fsck -f <分區路徑>
本文以新建分區是1(即分區路徑是/dev/vdb1)為例,則執行: - e2fsck -f /dev/vdb1
返回如下圖所示結果。
執行以下命令,對新分區上 EXT 文件系統進行擴容操作。
- resize2fs <分區路徑>
本文以分區路徑是/dev/vdb1為例,則執行: - resize2fs /dev/vdb1
執行以下命令,對新分區上 XFS 文件系統進行擴容操作。
- xfs_growfs <分區路徑>
本文以分區路徑是/dev/vdb1為例,則執行: - xfs_growfs /dev/vdb1
- 執行以下命令,手動掛載新分區。
- mount <分區路徑> <掛載點>
本文以分區路徑是/dev/vdb1,掛載點是/data為例,則執行: - mount /dev/vdb1 /data
- 執行以下命令,查看新分區。
- df -h
返回如下圖信息說明掛載成功,即可以查看到數據盤。
將擴容部分的容量格式化成獨立的新分區(GPT)
- parted <磁盤路徑> print
本文以磁盤路徑是/dev/vdb為例,則執行: - parted /dev/vdb print
若在過程中提示如下圖所示信息,請輸入 Fix。
如下圖所示,擴容后的云硬盤大小為107GB,已有分區的大小為10.7GB。
執行以下命令,確認該云硬盤是否還有分區已掛載。
- mount | grep '<磁盤路徑>'
本文以磁盤路徑是/dev/vdb為例,則執行: - mount | grep '/dev/vdb'
如下圖所示,云硬盤上有一個分區(vdb1)掛載在/data上。
執行以下命令,解掛數據盤。
- umount <掛載點>
本文以掛載點是/data為例,則執行: - umount /data
說明:
請將云硬盤上所有分區的文件系統都解掛。可重復執行以下命令,確認該硬盤上所有分區的文件系統都已解掛。 - mount | grep '/dev/vdb'
執行以下命令,進入 parted 分區工具。
- parted '<磁盤路徑>'
本文以磁盤路徑是/dev/vdb為例,則執行: - parted '/dev/vdb'
- 執行以下命令,查看分區信息,并記錄已有分區的 End 值,以此值作為下一個分區的起始偏移值。
執行以下命令,新建一個主分區。此分區將從已有分區的末尾開始,覆蓋硬盤所有的新增空間。
- mkpart primary start end
本文以 End 值是10.7GB為例,執行 - mkpart primary 10.7GB 100%
- 執行以下命令,查看新分區是否已創建成功。
執行以下命令,退出 parted 工具。
- quit
- 執行以下命令,格式化新建的分區。
- mkfs.<fstype> <分區路徑>
您可以自行選擇文件系統的格式,例如 EXT2、EXT3 等。
本文以文件系統是 EXT3 為例,則執行: - mkfs.ext3 /dev/vdb2
將擴容部分的容量劃分至原有分區(MBR)
fdisk/e2fsck/resize2fs 自動擴容工具適用于 Linux 操作系統,用于將新擴容的云硬盤空間添加到已有的文件系統中,擴容能夠成功必須滿足以下四個條件:
- 文件系統是 EXT2/EXT3/EXT4/XFS。
- 當前文件系統不能有錯誤。
- 擴容后的磁盤大小不超過2TB。
- 當前工具僅支持 Python 2 版本,不支持 Python 3 版本。
以 root 用戶執行以下命令,卸載分區。
- umount <掛載點>
本文以掛載點是/data為例,則執行: - umount /data
執行以下命令,下載工具。
- wget -O /tmp/devresize.py https://raw.githubusercontent.com/tencentyun/tencentcloud-cbs-tools/master/devresize/devresize.py
- 執行以下命令,使用擴容工具進行擴容。
- python /tmp/devresize.py <硬盤路徑>
本文以硬盤路徑是/dev/vdb且文件系統在 vdb1 上為例,則執行: - python /tmp/devresize.py /dev/vdb
- 若輸出 “The filesystem on /dev/vdb1 is now XXXXX blocks long.”則表示擴容成功
- 若輸出的是 “[ERROR] - e2fsck failed!!”,請執行以下步驟:
a. 執行以下命令,修復文件系統所在分區。
fsck -a <分區路徑>
本文以硬盤路徑是/dev/vdb且文件系統在 vdb1 上為例,則執行:
- fsck -a /dev/vdb1
b. 修復成功后,再次執行以下命令,使用擴容工具進行擴容。 - python /tmp/devresize.py /dev/vdb
- fsck -a /dev/vdb1
擴容成功日志devresize.log
2019-08-23 19:18:38,867 - [DEBUG]- devresize.py:467 - user input:/tmp/devresize.py /dev/vdb 2019-08-23 19:18:39,227 - [DEBUG]- devresize.py:193 - device_size:107374182400device_sector_number:209715200logical_sector_size:512 2019-08-23 19:18:39,233 - [DEBUG]- devresize.py:285 - target_partition:/dev/vdb1 2019-08-23 19:18:39,359 - [INFO ]- devresize.py:308 - checking filesystem healthy 2019-08-23 19:18:39,457 - [DEBUG]- devresize.py:311 - e2fsck ret is 2048 2019-08-23 19:18:39,458 - [ERROR]- devresize.py:319 - File system /dev/vdb1 error! 2019-08-23 19:18:39,458 - [DEBUG]- devresize.py:451 - close fd 2019-08-23 19:18:59,163 - [DEBUG]- devresize.py:467 - user input:/tmp/devresize.py /dev/vdb1 2019-08-23 19:18:59,164 - [ERROR]- devresize.py:409 - The argument should be a whole disk, not a partition! Example: /dev/vdb 2019-08-23 19:19:40,508 - [DEBUG]- devresize.py:467 - user input:/tmp/devresize.py /dev/vdb1 2019-08-23 19:19:40,509 - [ERROR]- devresize.py:409 - The argument should be a whole disk, not a partition! Example: /dev/vdb 2019-08-23 19:19:43,310 - [DEBUG]- devresize.py:467 - user input:/tmp/devresize.py /dev/vdb 2019-08-23 19:19:43,344 - [DEBUG]- devresize.py:193 - device_size:107374182400device_sector_number:209715200logical_sector_size:512 2019-08-23 19:19:43,348 - [DEBUG]- devresize.py:285 - target_partition:/dev/vdb1 2019-08-23 19:19:43,408 - [INFO ]- devresize.py:308 - checking filesystem healthy 2019-08-23 19:19:44,131 - [DEBUG]- devresize.py:311 - e2fsck ret is 0 2019-08-23 19:19:59,257 - [DEBUG]- devresize.py:524 - Begin to change the partation 2019-08-23 19:19:59,258 - [DEBUG]- devresize.py:257 - Start h,s,c: 0 9 20End h,s,c: 1 196 95Partition Type Name:LinuxStart LBA: 2048Sector Number: 2097131522019-08-23 19:19:59,258 - [INFO ]- devresize.py:228 - Backup MBR to /tmp/MBR_vdb1_2019-08-23_19:19:59_bak 2019-08-23 19:20:00,272 - [INFO ]- devresize.py:341 - umount /dev/vdb1 2019-08-23 19:20:01,273 - [DEBUG]- devresize.py:375 - part_probe 2019-08-23 19:20:03,419 - [INFO ]- devresize.py:341 - umount /dev/vdb1 2019-08-23 19:20:03,420 - [INFO ]- devresize.py:348 - resize filesystem 2019-08-23 19:20:04,873 - [DEBUG]- devresize.py:350 - resize2fs ret is 0 2019-08-23 19:20:04,873 - [INFO ]- devresize.py:578 - Finished 2019-08-23 19:20:04,873 - [DEBUG]- devresize.py:451 - close fd執行以下命令,手動掛載擴容后的分區。
- mount <分區路徑> <掛載點>
本文以掛載點是/data為例。 - 若擴容前已有分區且以分區路徑是/dev/vdb1為例,則執行:
- mount /dev/vdb1 /data
- 若擴容前沒有分區,則執行:
- mount /dev/vdb /data
- 執行以下命令,查看擴容后的分區容量。
- df -h
若返回類似如下圖所示的信息,說明掛載成功,即可以查看到數據盤:
- ll /data
將擴容部分的容量格式化成獨立的新分區(MBR)
以 root 用戶執行以下命令,查看已掛載的數據盤分區信息。
- df -h
執行以下命令,查看數據盤擴容后未分區的信息。
- fdisk -l
執行以下命令,解掛所有已掛載的分區。
- umount <掛載點>
本文以掛載點是/data為例,則執行: - umount /data
說明:
請將云硬盤上所有分區都解掛后 - 執行以下命令,新建一個新分區。
- fdisk <硬盤路徑>
本文以磁盤路徑是/dev/xvdc為例,則執行: - fdisk /dev/xvdc
按照界面的提示,依次輸入”p”(查看現有分區信息)、“n”(新建分區)、“p”(新建主分區)、“2”(新建第2個主分區),兩次回車(使用默認配置),輸入 “w”(保存分區表),開始分區。如下圖所示:
說明:
本文以創建一個分區為例,您也可以根據實際需求創建多個分區。
執行以下命令,查看新分區。
- fdisk -l
如下圖所示,表示新的分區 xvdc2 已經創建完成。
執行以下命令,格式化新分區并創建文件系統。
- mkfs.<fstype> <分區路徑>
您可以自行選擇文件系統的格式,例如 EXT2、EXT3 等。
本文以文件系統是 EXT3 為例,則執行: - mkfs.ext3 /dev/xvdc2
執行以下命令,創建新的掛載點。
- mkdir <新掛載點>
本文以新掛載點是/data1為例,則執行: - mkdir /data1
- 執行以下命令,手動掛載新分區。
- mount <新分區路徑> <新掛載點>
本文以新分區路徑是/dev/xvdc2,新掛載點是/data1為例,則執行: - mount /dev/xvdc2 /data1
- 執行以下命令,查看新分區信息。
- df -h
返回如下圖所示信息則說明掛載成功,即可以查看到數據盤。
若您希望云服務器在重啟或開機時能自動掛載數據盤。執行以下命令,添加信息。
- echo '/dev/xvdc2 /data1 ext3 defaults 0 0' >> /etc/fstab
執行以下命令,查看信息。
- cat /etc/fstab
若返回如下圖所示信息,則表示添加分區信息成功。
解決device is busy
王志強:無法umount問題(device is busy)?zhuanlan.zhihu.com原文鏈接:
云硬盤 擴展分區及文件系統(Linux) - 操作指南 - 文檔中心 - 騰訊云?cloud.tencent.com總結
以上是生活随笔為你收集整理的parted新建分区_扩展分区及文件系统(Linux)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《野客丛书》中的孔明是一个怎样的人?
- 下一篇: 求一部CCTV讲述西方神话的演化史的片名