วิธีการขยาย CentOS 5 พาร์ติชันบน VMware


15

ฉันมีเครื่องเสมือน CentOS 5 และฉันเพิ่มขนาดดิสก์อีก 20GB ฉันจะเริ่มต้นและขยายพื้นที่ว่างได้อย่างไร

ฉันลองโหลด GParted ด้วยเช่นกัน แต่ไดรฟ์ล็อคอยู่ ฉันจะปลดล็อคได้อย่างไร

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

คำตอบ:


25

คุณจะไม่สามารถใช้ GParted ได้เพราะระบบไฟล์อยู่ใน LVM และ GParted ไม่รองรับสิ่งนั้น

ก่อนอื่นให้ทำการแบ็คอัพข้อมูลของ VM จากนั้นดำเนินการต่อไปนี้เป็น "root" จากบรรทัดคำสั่ง

  1. ดูเหมือนว่าคุณได้รีบูตเครื่องแล้ว แต่ในกรณีนี้ให้แน่ใจว่าเคอร์เนลรู้จักดิสก์ที่ใหญ่กว่า

    echo 1 > /sys/class/scsi_disk/0:0:0:0/device/rescan
    
  2. ปรับขนาดพาร์ติชั่นที่สองด้วย fdisk

    fdisk /dev/sda
    p     # print current
    d     # delete
    - 2
    n     # create
    - p   # primary partition
    2     # partition number
    - default first/last cylinders
    t     # change partition id
    - 2
    - 8e (hex code)
    p     # print the current again to verify it's expanded
    w     # write changes
    
  3. รีบูตเครื่องเสมือน

    shutdown -r now
    
  4. เมื่อสำรองข้อมูลแล้วให้ปรับขนาดฟิสิคัลวอลุ่ม LVM

    pvresize /dev/sda2
    
  5. ตอนนี้ปรับขนาดโลจิคัลวอลุ่ม LVM ( หมายเหตุ:ฉันไม่สามารถถอดรหัสชื่อโลจิคัลวอลุ่มของคุณตามภาพหน้าจอและสมมติว่าLogVol00คุณสามารถกำหนดได้โดยการเรียกใช้lvdisplay)

    lvresize -l +100%FREE /dev/VolGroup00/LogVol00
    
  6. สุดท้ายให้ปรับขนาดระบบแฟ้ม

    resize2fs -p /dev/VolGroup00/LogVol00
    
  7. ตรวจสอบว่าระบบไฟล์มีขนาดใหญ่กว่า

    df -h
    
  8. เสร็จสิ้น


ไม่มีการรีบูตหลังจากfdiskนั้น ใช้ที่partprobeนั่น SCSI-rescan นั้นน่าสนใจ - มันใช้งานได้กับดิสก์ที่ใช้งานหรือไม่?
นิลส์

1
มาสายปาร์ตี้: p ฉันมีปัญหากับ partprobe ไม่ได้อ่านพาร์ติชั่นใหม่ที่ใช้งานอยู่ฉันเลยรีบูตเครื่องใหม่ในเกือบทุกกรณี การสแกน SCSI ทำงานได้ดีกับดิสก์ที่ใช้งานอยู่ คุณสามารถเรียกใช้dmesgเพื่อยืนยันว่าดิสก์ถูกมองว่าเป็นขนาดใหม่
TheDude

น่าเศร้าที่ไม่มีอะไรที่เหมือนกับ scsi-rescan สำหรับ xen-pv-disks แต่นั่นเป็นหัวข้ออื่น ...
นิลส์

1
ขอบคุณมากคำแนะนำของคุณทำงานได้อย่างสมบูรณ์แบบ!
Chris Haas

ฉันควรมองหาอะไรหลังจากขั้นตอนที่ 1 (echo & rescan)? ฉันจะบอกได้อย่างไรว่าเคอร์เนลรู้จักพื้นที่พิเศษหรือไม่?
เจฟฟ์

4

ขั้นตอนด้านล่างขยายพาร์ติชันของฉันจาก 12G เป็น 26GB บน VMWare EXSi 5.5 ที่รัน Centos 6 EXT4 VPS

1) ระบุชื่ออุปกรณ์ซึ่งเป็นค่าเริ่มต้น / dev / sda และยืนยันขนาดใหม่โดยการรันคำสั่ง:

# fdisk -l

2) รับรายการพาร์ติชั่นสำหรับอุปกรณ์ / dev / sda:

# ls -al /dev/sda*

brw-rw---- 1 root disk 8, 0 Dec 29 15:32 /dev/sda
brw-rw---- 1 root disk 8, 1 Dec 29 15:32 /dev/sda1
brw-rw---- 1 root disk 8, 2 Dec 29 15:32 /dev/sda2

3) สร้างพาร์ติชันหลักใหม่

# fdisk /dev/sda

Then type:
  n (enter) [create new partition]
  p (enter) [primary partition]
  3 (enter) [next available number from listed /dev/sda partitions in 2)
  (enter)   [start cylinder]
  (enter to use all available physical space) or specify size in +cylinders, +size{K,M,G}
  t (enter) [change partition type]
  3 (enter) [selecting /dev/sda3 partition]
  8e (enter) [this sets partition type to Linux LVM or type L then enter to see list of types] 
  w (enter)

  The partition table has been altered!

4) Reboot Centos 6.X จากนั้นเข้าสู่ระบบอีกครั้งด้วยสิทธิ์ของรูท

# reboot

5) ตรวจสอบว่าพาร์ติชันใหม่พร้อมใช้งานแล้วพิมพ์ '8e':

# fdisk -l

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        2089    16264192   8e  Linux LVM
/dev/sda3            2089        3916    14678054   8e  Linux LVM

6) สร้างฟิสิคัลวอลุ่ม:

# pvcreate /dev/sda3

Physical volume "/dev/sda3" successfully created

7) ค้นหาชื่อกลุ่มวอลุ่ม:

# vgdisplay

--- Volume group ---
VG Name               vg_app1
...

8) ขยายฟิสิคัลวอลุ่ม:

# vgextend vg_app1 /dev/sda3

Volume group "vg_app1" successfully extended

9) ขยายกลุ่มวอลุ่มที่มีอยู่ไปยังฟิสิคัลวอลุ่มใหม่ (+ 100% ฟรีสามารถเปลี่ยนแปลงได้ตามขนาดที่ต้องการ) เนื่องจากเรากำลังขยายพาร์ติชันรูทดังนั้นจึงชี้ไปที่ lv_root ในกลุ่มวอลุ่ม vg_app1

# lvextend -l +100%FREE /dev/vg_app1/lv_root

Size of logical volume vg_app1/lv_root changed from 11.63 GiB (2978 extents) to 25.63 GiB (6561 extents).
Logical volume lv_root successfully resized

10) ปรับขนาดปริมาณรูตแบบลอจิคัล:

# resize2fs /dev/vg_app1/lv_root

resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg_app1/lv_root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/vg_app1/lv_root to 6718464 (4k) blocks.
The filesystem on /dev/vg_app1/lv_root is now 6718464 blocks long.

หมายเหตุ: ใช้ ext2online แทน resize2fs หากเป็นเครื่องเสมือน Red Hat

11) ตรวจสอบพื้นที่ว่าง:

# df -h

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_app1-lv_root
                      26G   10G   14G  42% /
tmpfs                 9.8G     0  9.8G   0% /dev/shm
/dev/sda1             477M   88M  364M  20% /boot

2

ง่าย. เข้าไปใน VM ของคุณในฐานะรูท พิมพ์ "fdisk -l" - ถ้าคุณเห็นขนาดดิสก์ใหม่ - ดี

ถ้าไม่ใช่ - ลองpartprobe- ถ้าคุณยังไม่เห็นขนาดดิสก์ใหม่ - รีบูต

ตอนนี้ fdisk /dev/sda

  1. เขียนลงถังเริ่มต้นของพาร์ติชั่นที่สอง
  2. "ลบ" ส่วนที่สอง
  3. สร้างชิ้นส่วนที่สองสร้างกระบอกสูบเริ่มต้นเดียวกันสูบสุดท้ายให้จบ
  4. ตั้งค่าประเภทของพาร์ติชันที่สร้างใหม่เป็น 8e (LVM)
  5. เขียนการเปลี่ยนแปลงและออกจาก fdisk
  6. partprobe
  7. pvresize /dev/sda2

ตอนนี้ VG VolGroup00 ของคุณมีพื้นที่เพิ่มขึ้น 20 GB ทำสิ่งที่คุณชอบด้วย เช่นเดียวกับที่คุณทำบนระบบกายภาพ (ปรับขนาด LVs แล้วปรับขนาด FS เป็นตัวอย่าง)


echo 1> / sys / class / scsi_disk / 0 \: 0 \: 0 \: 0 / อุปกรณ์ / rescan ทำเวทมนตร์การสแกนซ้ำโดยไม่ต้องรีบูต
andrej

@ andrej แม้ว่าจะมีการใช้งานดิสก์หรือไม่
นิลส์

ใช่มันเป็นเวทย์มนตร์ระดับต่ำที่ด้านตัวควบคุมดังนั้นมันจะทำงานบนแผ่นดิสก์ที่ติดตั้งด้วย คุณต้องแน่ใจว่าคุณขยายไดรฟ์ไม่ใช่เพื่อลบพื้นที่ออก
andrej

2

ดาวน์โหลดที่Gparted อาศัยซีดี ISO จากนั้นต่อ ISO เข้ากับ CentOS แล้วบู๊ตจากซีดีสด (ไปที่การตั้งค่าเครื่องเสมือนเลือก“ CD / DVD” และเลือก“ Use ISO” จากแผงด้านขวา) จากนั้นเลือกพาร์ติชันที่คุณต้องการปรับขนาด คลิกที่เมนูพาร์ติชัน (แถบเมนูด้านบน) จากนั้นคลิกที่ "ปรับขนาด" จากนั้นเลือก“ ใช้การดำเนินการทั้งหมด” จากเมนู“ แก้ไข”


ฉันโหลด แต่ไดรฟ์มีไอคอนล็อค .. ฉันแนบภาพ
Andrew


ขอบคุณ! +1 สำหรับคำแนะนำแอปพลิเคชันที่คล้ายกับ Particion Magic
jstuardo

0

ที่นี่ฉันกำลังใช้พาร์ติชันตัวอย่างเพื่อขยายดิสก์จาก 5GB เป็น 7GB โดยไม่สูญเสียข้อมูล คุณสามารถเปลี่ยนได้ตามพื้นที่ว่างของคุณ

ก่อนที่จะเพิ่มดิสก์ฉันได้รับรายละเอียดต่อไปนี้จาก Linux VM:

# df -h
 Filesystem            Size  Used Avail Use% Mounted on
 /dev/sda3             6.8G  2.1G  4.5G  32% /
 /dev/sda1              99M   12M   83M  13% /boot
 none                  252M     0  252M   0% /dev/shm
 /dev/sdb1             5.0G   39M  4.7G   1% /mnt/test
# fdisk -s /dev/sdb
Disk /dev/sdb: 5368 MB, 5368709120 bytes
 255 heads, 63 sectors/track, 652 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
 /dev/sdb1               1         652     5237158+  83  Linux

ปิด VM ลงในขณะนี้

ตอนนี้ฉันจะเพิ่มดิสก์เสมือนที่มีอยู่ ( /dev/sdb) จาก VMware พร้อมรับคำสั่ง หมายเหตุ: งานนี้ควรดำเนินการเฉพาะเมื่อปิดการใช้งาน VM

ไปที่ตำแหน่งของตำแหน่งดิสก์เสมือน

# vmware-vdiskmanager -x  7Gb RedHatEnterprise_Linux_4-0.vmdk

ตอนนี้มันจะขยายดิสก์เสมือนเป็น 7Gb

ตอนนี้คุณต้องเปิด VM ล็อกอินเข้าสู่ VM โดยใช้ PuTTY หรือคอนโซลในฐานะผู้ใช้รูท

# df -h
Filesystem            Size  Used Avail Use% Mounted on
 /dev/sda3             6.8G  2.1G  4.5G  32% /
 /dev/sda1              99M   12M   83M  13% /boot
 none                  252M     0  252M   0% /dev/shm
 /dev/sdb1             5.0G   39M  4.7G   1% /mnt/test

มันยังคงแสดงขนาดเก่า ถอนติดตั้งพาร์ติชันที่คุณกำลังจะเพิ่มขึ้น

# umount /dev/sdb1

เรียกใช้การซ่อมแซมระบบไฟล์บนดิสก์

# fsck -n /dev/sdb1

ตอนนี้เป็น goig เพื่อลบวารสารจากดิสก์เพื่อให้เป็นระบบไฟล์ ext2

# tune2fs -O ^has_journal /dev/sdb1

ตอนนี้เริ่มต้นแบ่งพาร์ทิชันเพื่อกำหนดพื้นที่ที่เพิ่มขึ้นเพื่อ/dev/sdb /dev/sdb1หมายเหตุ: อย่าตกใจคุณจะไม่สูญเสียข้อมูลที่นี่

ฉันกำลังลบสิ่งที่มีอยู่/dev/sdb1และสร้างใหม่พร้อมกับพื้นที่ว่างที่มีอยู่

# fdisk /dev/sdb
Command (m for help): m
Command action
a   toggle a bootable flag
b   edit bsd disklabel
c   toggle the dos compatibility flag
d   delete a partition
l   list known partition types
m   print this menu
n   add a new partition
o   create a new empty DOS partition table
p   print the partition table
q   quit without saving changes
s   create a new empty Sun disklabel
t   change a partition’s system id
u   change display/entry units
v   verify the partition table
w   write table to disk and exit
x   extra functionality (experts only)

Command (m for help): p
Disk /dev/sdb: 7516 MB, 7516192768 bytes
255 heads, 63 sectors/track, 913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         652     5237158+  83  Linux

Command (m for help): d
Selected partition 1

Command (m for help): n
Command action
e   extended
p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-913, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-913, default 913):
Using default value 913

Command (m for help): p
Disk /dev/sdb: 7516 MB, 7516192768 bytes
255 heads, 63 sectors/track, 913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         913     7333641   83  Linux

Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

ตอนนี้รีสตาร์ทเครื่อง Linux เพื่อให้พาร์ติชั่นมีผล (เราสามารถใช้งานpartprobeได้ก็ขอแนะนำให้รีสตาร์ทเครื่องอย่างเคร่งครัด)

# shutdown now -r

ตรวจสอบระบบไฟล์เพิ่มเติมอีกครั้งหากคุณข้ามขั้นตอนนี้resize2fsคำสั่งจะแนะนำให้เรียกใช้

# e2fsck -f /dev/sdb1
e2fsck 1.35 (28-Feb-2004)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb1: 13/655360 files (7.7% non-contiguous), 22121/1309289 blocks

ตอนนี้ปรับขนาดระบบไฟล์

# resize2fs /dev/sdb1
resize2fs 1.35 (28-Feb-2004)
Resizing the filesystem on /dev/sdb1 to 1833410 (4k) blocks.
The filesystem on /dev/sdb1 is now 1833410 blocks long.

ตอนนี้ตรวจสอบระบบไฟล์

# fsck -n /dev/sdb1
fsck 1.35 (28-Feb-2004)
e2fsck 1.35 (28-Feb-2004)
/dev/sdb1: clean, 13/917504 files, 30538/1833410 blocks

ตอนนี้สร้างพาร์ติชันใหม่ด้วยรูปแบบ ext3

# tune2fs -j /dev/sdb1
tune2fs 1.35 (28-Feb-2004)
Creating journal inode: done
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

รีสตาร์ทเครื่อง Linux หนึ่งครั้งเพื่อใช้ระบบไฟล์ ext3 อย่างมีประสิทธิภาพ

# shutdown -r now

อีกครั้งที่คุณเข้าสู่กล่องลินุกซ์โดยใช้รูท previleges ตอนนี้คุณสามารถค้นหาพาร์ติชันเพิ่มขึ้นเป็น 7 GB

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             6.8G  2.1G  4.5G  32% /
/dev/sda1              99M   12M   83M  13% /boot
none                  252M     0  252M   0% /dev/shm
/dev/sdb1             6.9G   39M  6.7G   1% /mnt/test

เหตุใดคุณจึงลบบันทึกประจำวันกลับคืน? ไม่จำเป็นต้องใช้ระบบไฟล์ ext3 สามารถขยายได้เช่นเดียวกับระบบไฟล์ ext2 นอกจากนี้คุณยังขาดจิ๊กซอว์ชิ้นใหญ่ชิ้นหนึ่ง: พาร์ติชั่นที่จะขยายคือ LVM
Gilles 'หยุดความชั่วร้าย'

0

ฉันเพิ่งทำสิ่งนี้ใน VMware ด้วย CentOS 6.4 คำตอบหมายเลข 1 ถูกต้อง แต่ไม่มีขั้นตอนเดียวที่ฉันค้นพบ

ใน Gparted ของฉันก็มีไอคอนล็อค

บนแถวที่มีพาร์ติชันซึ่งมีไอคอนล็อคให้คลิกขวาและเลือก "de-activate" นั่นทำให้ล็อคหายไป

จากนั้นคุณสามารถคลิกขวาและเปลี่ยนขนาดพาร์ติชัน

จากนั้นใช้การเปลี่ยนแปลง

จากนั้นคลิกขวาและเลือก "เปิดใช้งาน"


0

คุณสามารถทำตามขั้นตอนที่ 5 และ 6 จะเป็นหนึ่งโดยการเพิ่มสลับไป-r lvresizeที่จะทำให้lvresizeทำงานresize2fsโดยอัตโนมัติด้วย params ที่ต้องการ:

lvresize -r -l +100%FREE /dev/VolGroup00/LogVol00

ยินดีต้อนรับสู่ * nix StackExchange!

0

สำหรับ CentOS 6.6 บน VMWare ฉันทำสิ่งต่อไปนี้เพื่อเพิ่มจาก 30 GB เป็น 40 GB (หมายเหตุฉันไม่ได้ใช้ LVM เพียงพาร์ทิชันดั้งเดิมของ Linux (Id 83)):

หมายเหตุ: ทำการสำรองข้อมูล VM ของคุณก่อนในกรณีที่ข้อมูลของคุณสูญหาย คุณไม่ควรสูญเสียข้อมูลหากทุกอย่างเป็นไปด้วยดี

  1. VMWare ให้ GUI กับฉันเมื่อฉันแก้ไข VM ของฉันก่อนที่จะเริ่มต้นเพื่อปรับขนาดจำนวนเงินที่มีให้กับ VM ฉันใช้สิ่งนี้และขยายเป็น 40 GB
  2. จากนั้นฉันก็บูท CentOS และรัน 'fdisk -l' ในฐานะรูท ฉันเห็นพื้นที่ใหม่ จากนั้นฉันก็วิ่ง 'df -h' เพื่อตรวจสอบว่าพาร์ติชันเก่าของฉันยังอยู่ที่นั่น
  3. จากนั้นฉันก็วิ่ง 'cfdisk / dev / sda' และมี GUI แบบข้อความที่แสดงพาร์ติชันของฉัน ในกรณีของฉันพาร์ติชันที่ฉันต้องการปรับขนาดคือ / dev / sda3 และเป็นพาร์ติชันสุดท้าย
  4. ฉันใช้ cfdisk เพื่อลบพาร์ติชั่นแล้วสร้างพาร์ติชั่นใหม่ที่มีพื้นที่ว่างทั้งหมด ฉันเขียนการเปลี่ยนแปลงและออกจากโปรแกรม
  5. จากนั้นฉันจะรีบูต VM (ปิดตอนนี้ -r)
  6. หลังจากรีบูตฉันใช้ 'resize2fs / dev / sda3' โดยที่ / dev / sda3 เป็นพาร์ติชันที่ฉันสร้างขึ้นมาใหม่ นี่เป็นการปรับขนาดสำหรับฉันโดยอัตโนมัติ
  7. ตอนนี้ด้วย 'df -h' ฉันเห็นขนาดเต็มใหม่

ข้อมูลที่พบจากการรวมคำตอบในหน้านี้และที่http://positon.org/resize-an-ext3-ext4-partition


0

อีกวิธีหนึ่งคือการสร้าง LVM ที่ขยายบนดิสก์แบบเต็มแทนที่จะเป็นพาร์ติชัน

ในกรณีนี้คุณสามารถเพิ่ม hot disk โดยใช้วิธีการต่อไปนี้

blockscan --rereadpt /dev/<PV disk
pvresize /dev/<PV disk>
# The associated VG is now resized
lvresize /dev/mapper/<LV> -r -l +100%FREE

0

บางครั้งคุณต้องทำ

echo "- - -" >  /sys/class/scsi_host/host<n>/scan

ขึ้นอยู่กับว่าคุณกำลังสร้างดิสก์ใหม่หรือขยายดิสก์ที่มีอยู่ตามประเภทสแกนที่ต้องการ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.