Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

Parted: สร้างและจัดการพาร์ติชันดิสก์บน Linux

ภาพรวม

Parted เป็น PARTition EDitor สำหรับ Linux ใช้สร้าง จัดรูปแบบ ลบ ย่อ และขยายพาร์ติชันดิสก์ เครื่องมือนี้ใช้งานง่ายและมีในทุกการแจกจ่าย Unix/Linux ยังมีเวอร์ชัน GUI ชื่อ Gparted บทความนี้จะแสดงวิธีจัดการพาร์ติชันดิสก์ด้วย parted บน CentOS Linux (ทำงานเหมือนกันในทุกการแจกจ่าย Linux) Parted คือเครื่องมือ Linux ที่เทียบเท่ากับ diskpart ของ Windows

วิธีติดตั้ง Parted บน Linux

อัปเดตซอฟต์แวร์บนโฮสต์ Linux และติดตั้งแพ็กเกจ parted โดยใช้ตัวจัดการแพ็กเกจของการแจกจ่าย Linux บน CentOS 8 ที่ใช้ dnf (แทน yum) สามารถติดตั้ง parted จากที่เก็บพื้นฐานได้ด้วยคำสั่ง:

# dnf update -y
# dnf install parted -y

Parted: สร้างและจัดการพาร์ติชันดิสก์บน Linux

หรือใน Debian/Ubuntu:

# apt-get install parted

ตรวจสอบเวอร์ชันเครื่องมือ:

# parted --version
parted (GNU parted) 3.2

Parted: สร้างและจัดการพาร์ติชันดิสก์บน Linux

เพื่อใช้งาน parted ให้รัน:

# parted
GNU Parted 3.2
Using /dev/vdb
Welcome to GNU Parted! Type 'help' to view a list of commands.

การจัดการตารางพาร์ติชันด้วย Parted

แสดงรายการดิสก์ที่มีอยู่:

# print

หรือใช้คำสั่ง parted:

$ sudo parted -l

Parted: สร้างและจัดการพาร์ติชันดิสก์บน Linux

มีดิสก์ 21 GB คือ /dev/vdb ไม่มีฉลากกำหนด (error /dev/vdb: unrecognized disk label)

สามารถสร้างตารางพาร์ติชัน msdos (MBR) บนดิสก์ได้:

# mklabel msdos

หรือตารางพาร์ติชัน gpt (GUID partition table รองรับขนาดพาร์ติชันเกิน 2 TB):

# mklabel gpt

โปรดทราบว่าไม่เหมือน fdisk parted ไม่มีคำสั่งเขียนการเปลี่ยนแปลง การเปลี่ยนแปลงทั้งหมดจะมีผลทันที

จากนั้น parted จะแสดงประเภทตารางพาร์ติชัน (เลย์เอาต์) บนดิสก์:

(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 21.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number  Start  End  Size  Type  File system  Flags

เห็นว่ามีตารางพาร์ติชัน MBR บนดิสก์ แต่ยังไม่มีการสร้างพาร์ติชันดิสก์
หากมีหลายดิสก์บนเซิร์ฟเวอร์ สลับระหว่างกันได้ด้วยคำสั่ง:

# select /dev/diskname

วิธีสร้างพาร์ติชันใหม่ด้วย Parted

คำสั่ง mkpart ใช้สร้างพาร์ติชันใหม่ใน parted หลังรันคำสั่งในโหมดโต้ตอบ จะถามพารามิเตอร์ของพาร์ติชันใหม่

Parted: สร้างและจัดการพาร์ติชันดิสก์บน Linux

  • Partition type — ระบุประเภทพาร์ติชัน (primary หรือ extended)
  • File system type — ตั้งค่าไฟล์ระบบ ext2 เป็นค่าเริ่มต้น (จะเปลี่ยนภายหลัง)
  • Start คือ섹เตอร์เริ่มต้นของพาร์ติชัน
  • End คือ섹เตอร์สุดท้ายของพาร์ติชัน (ในหน่วยเมกะไบต์) ในตัวอย่างใส่ 5,000 หมายถึงสร้างพาร์ติชัน 5 GB

เพื่อแสดงพื้นที่ว่างบนดิสก์ ใช้คำสั่ง:

(parted) print free

สามารถสร้างพาร์ติชันครอบคลุมทั้งดิสก์ได้:

# (parted) mkpart primary 0 0

หรือระบุขนาดพาร์ติชันใดๆ:

# (parted) mkpart primary 0 1GB

ยังสามารถตั้งขนาดพาร์ติชันเป็น % และกำหนดฉลากได้:

# (parted) mkpart "home part" ext4 2.5GiB 100%

เพื่อออกจาก parted รันคำสั่ง:

# quit

จัดรูปแบบพาร์ติชันเป็นระบบไฟล์ ext4:

# mkfs.ext4 /dev/vdb1
mke2fs 1.44.6 (5-Mar-2019)
Creating filesystem with 1220352 4k blocks and 305216 inodes
Filesystem UUID: 5c9daa97-c0f4-44bc-9cfa-f466ebd8895e
Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

ตรวจสอบระบบไฟล์ของพาร์ติชันและยืนยันว่ามีการเปลี่ยนแปลง (คำสั่ง print แสดงรายการพาร์ติชันบนดิสก์ หมายเลข ประเภท ขนาด และระบบไฟล์)

Parted: สร้างและจัดการพาร์ติชันดิสก์บน Linux

สามารถสร้างพาร์ติชันและจัดรูปแบบโดยไม่ต้องเข้า shell parted ด้วยคำสั่งบรรทัดเดียว:

# parted -a opt /dev/vdb mkpart primary ext4 0% 100% && mkfs.ext4 /dev/vda1

คำสั่งนี้จะสร้างพาร์ติชันบนดิสก์ vdb และจัดสรรพื้นที่ว่างทั้งหมด

ดังนั้น คุณสามารถทำงานให้ง่ายขึ้น หรือเพิ่มคำสั่งลักษณะนี้ในสคริปต์ bash หรือไฟล์ kickstart

วิธีปรับขนาด (ขยายหรือย่อ) พาร์ติชันด้วย Parted

เพื่อขยายหรือย่อขนาดพาร์ติชัน ใช้คำสั่งย่อย resizepart ใน parted สามารถปรับขนาดพาร์ติชันแบบโต้ตอบได้ รันคำสั่งใน parted:

# resizepart

ยกเลิกการแม้าท์พาร์ติชันที่มีระบบไฟล์ ext2/3/4 ก่อนปรับขนาด

เครื่องมือจะขอให้ใส่หมายเลขพาร์ติชัน (จากเอาต์พุต print) และขนาดสุดท้ายของพาร์ติชัน ในตัวอย่างนี้ ขนาดพาร์ติชันจะขยายจาก 5 เป็น 10 GB:

(parted) resizepart
Partition number? 1
End? [5000MB]? 10000

Parted: สร้างและจัดการพาร์ติชันดิสก์บน Linux

ขยายพาร์ติชันก่อน แล้วค่อยขยายระบบไฟล์บนมัน หากย่อขนาดพาร์ติชัน ต้องย่อขนาดระบบไฟล์ก่อน แล้วค่อยย่อพาร์ติชัน มิฉะนั้นอาจสูญเสียข้อมูล

เพื่อย่อขนาดระบบไฟล์ ใช้คำสั่งต่อไปนี้ สำหรับระบบไฟล์ ext2/3/4:

resize2fs /dev/sdab size

สำหรับ Btrfs:

btrfs filesystem resize /dev/sdab size

ยังสามารถเปลี่ยนแฟล็กพาร์ติชันใน parted ได้ สามารถตั้งค่าได้ดังนี้:

  • boot
  • root
  • swap
  • hidden
  • raid
  • lvm
  • lba
  • legacy_boot
  • irst
  • esp
  • palo

ตัวอย่าง กำหนดให้พาร์ติชันเป็น bootable:

# set 1 boot on

Parted: สร้างและจัดการพาร์ติชันดิสก์บน Linux

การลบพาร์ติชันด้วย Parted

หากต้องการลบพาร์ติชันบนดิสก์ ใช้คำสั่ง rm ใน parted:

# rm 1

คำสั่งจะลบพาร์ติชันหมายเลข 1:

(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 21.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

ระวังการใช้คำสั่งนี้ เนื่องจากไม่ต้องการยืนยันการลบ

วิธีกู้คืนพาร์ติชันดิสก์ที่ลบโดยผิดพลาดด้วย Rescue

สามารถกู้คืนพาร์ติชันที่ลบได้โดยใช้เครื่องมือ rescue ใน parted:

# rescue

คำสั่งจะขอให้ใส่ขนาดเริ่มต้นและสิ้นสุดของพาร์ติชัน หากมีข้อมูลพาร์ติชันในตำแหน่งเหล่านั้น จะพยายามกู้คืนพาร์ติชันที่ลบ

Parted: สร้างและจัดการพาร์ติชันดิสก์บน Linux

เห็นได้ว่า parted ใช้งานง่ายและสะดวกมากสำหรับการสร้าง/แก้ไขพาร์ติชันดิสก์